本指南概略介紹使用方式 程式輔助直接交易 透過 API 發布更多功能說明如何建立提案以及執行方式 。
Primer
程式輔助提案與 Google Ad Manager 中的訂單類似,程式輔助提案 包含您與買方之間提議交易的廣泛資訊。 提案與其委刊項同時代表向發布商提供廣告空間 買方。
如需更多資訊,請造訪說明中心。
透過 API 建立提案
如要建立 Proposal
物件,只有名稱和程式輔助買方
這通常代表交易
不會十分要求關聯語意您可透過 UI 或
Programmatic_Buyer
PQL 資料表。
Java
Proposal proposal = new Proposal(); // Setting required Marketplace information. ProposalMarketplaceInfo proposalMarketplaceInfo = new ProposalMarketplaceInfo(); proposalMarketplaceInfo.setBuyerAccountId(programmaticBuyerId); // Set common required fields for a proposal. proposal.setName("Proposal #" + new Random().nextInt(Integer.MAX_VALUE)); proposal.setPrimaryTraffickerId(primaryTraffickerId); proposal.setMarketplaceInfo(proposalMarketplaceInfo);
Python
proposal = { # Setting required Marketplace information. 'isProgrammatic': 'true', 'marketplaceInfo': { 'buyerAccountId': programmatic_buyer_id, }, # Set common required fields for proposals. 'name': 'Proposal #%s' % uuid.uuid4(), # ... }
PHP
$proposal = new Proposal(); $proposal->setName('Proposal #' . uniqid()); // Set the required Marketplace information. $proposalMarketplaceInfo = new ProposalMarketplaceInfo(); $proposalMarketplaceInfo->setBuyerAccountId($buyerId); $proposal->setMarketplaceInfo($proposalMarketplaceInfo);
C#
// Create a proposal with the minimum required fields. Proposal proposal = new Proposal() { name = "Programmatic proposal #" + new Random().Next(int.MaxValue), // Set required Marketplace information marketplaceInfo = new ProposalMarketplaceInfo() { buyerAccountId = programmaticBuyerId } };
小茹
# Create proposal configuration object. proposal = { :marketplace_info => { :buyer_account_id => buyer_id }, :name => 'Proposal %s' % SecureRandom.uuid(), # ... }
您必須設定其他欄位,才能傳送給買方進行協議。 提案必須包含廣告客戶、銷售專員、廣告投放專員和賣方聯絡人。
Java
SalespersonSplit primarySalesperson = new SalespersonSplit(); primarySalesperson.setUserId(primarySalespersonId); proposal.setPrimarySalesperson(primarySalesperson);
Python
'primarySalesperson': { 'userId': primary_salesperson_id, }, 'primaryTraffickerId': primary_trafficker_id, 'probabilityOfClose': '100000',
PHP
// Create salesperson splits for the primary salesperson. $primarySalesperson = new SalespersonSplit(); $primarySalesperson->setUserId($primarySalespersonId); $proposal->setPrimarySalesperson($primarySalesperson); // Set the primary trafficker on the proposal for when it becomes an // order. $proposal->setPrimaryTraffickerId($primaryTraffickerId); $advertiser = new ProposalCompanyAssociation(); $advertiser->setType( ProposalCompanyAssociationType::ADVERTISER ); $advertiser->setCompanyId($advertiserId); $proposal->setAdvertiser($advertiser);
C#
// Set fields that are required before sending the proposal to the buyer. proposal.primaryTraffickerId = primaryTraffickerId; proposal.sellerContactIds = new long[] { primarySalespersonId }; proposal.primarySalesperson = new SalespersonSplit() { userId = primarySalespersonId, }; proposal.advertiser = new ProposalCompanyAssociation() { type = ProposalCompanyAssociationType.ADVERTISER, companyId = advertiserId };
小茹
:primary_salesperson => { :user_id => primary_salesperson_id }, :primary_trafficker_id => primary_trafficker_id
由於提案一般包含 ProposalLineItem 下一步是在新廣告空間下方新增提案委刊項 已建立的提案。
程式輔助提案的狀態
下圖描述了 Google Ads 廣告活動期間不同時間點的程式輔助提案 從 API 角度來看協議每個州 下列欄位的各種組合:
- ProposalMarketplaceInfo.hasLocalVersionEdits
- ProposalMarketplaceInfo.negotiationStatus
- Proposal.status
詳情請參閱 Ad Manager 說明中心。
協商逐步操作說明
我們將逐步引導您使用 API 為 與買方進行協議我們將參考圖表中的狀態 。
準備買方審查或接受
首先,您需要擬定程式輔助提案草稿,其中含有符合以下條件的提案委刊項:
你要傳送給買方的目標如上圖所示,此為 state C
。
要求買方審查或接受
準備好開放買方審查程式輔助提案後,您就可以
RequestBuyerReview
或 RequestBuyerAcceptance
,方法是使用
ProposalService.performProposalAction 方法。
就能進入協商階段。
協商
在這個階段中,可能會發生幾種狀況。
- 買方可以在不進行任何變更的情況下接受您的程式輔助提案。
- 買方可能會提議變更。在這種情況下,提案將傳回
轉換為草稿狀態 (圖 1 中的
state B
)。接著您需要 開啟提案編輯 做出變更提案,然後回傳給買方審核 - 此外,您還可以在買方回覆之前甚至先修改相關設定。你可以
方法是在圖 1 開啟
state D
編輯的提案。
這個協議會持續進行,直到您與買方達成協議為止。註解
與您和買方之間的直接交易
getMarketplaceCommentsByStatement.
您可以在 state A
中傳送註解給買方。待辦
就需要更新
marketplaceComment
填寫提案請求
updateProposals.
當您要求買家接受時,註解就會傳送。
己完成
當您和買方都接受程式輔助提案後,
進入最終狀態 (圖 1 中的 state F
)。
接著,Ad Manager 會自動根據這項程式輔助提案建立委刊項。
在大部分的情況下,您現在已完成程式輔助提案:然而 以下說明您可以執行的兩種動作:
- 您可以進行修改,重新開啟用於重新協商的程式輔助提案
提案中的放送相關欄位做法是開啟
修改提案 (圖 1 中的
state E to A
)、進行變更,然後 請求買方接受 - 您可以進行非放送的相關編輯,例如更新提案的
命名並反映這些變更
這筆交易方法是編輯圖 1 中的
state E
,然後執行UpdateOrderWithSellerData
動作。