本指南简要介绍了 程序化直接交易 功能。它介绍了如何创建提案以及如何执行 协商。
Primer
程序化提案类似于 Google Ad Manager 中的订单。程序化提案 包含您和买方之间提议的交易的各种信息。 提案及其订单项表示向 买方。
如需了解详情,请访问帮助中心。
通过 API 创建提案
要创建 Proposal
对象,只需指定名称和程序化买方
必填字段。程序化交易买方 ID 可通过界面或
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 } };
Ruby
# 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 };
Ruby
:primary_salesperson => { :user_id => primary_salesperson_id }, :primary_trafficker_id => primary_trafficker_id
由于提案通常由 ProposalLineItem 下一步就是在您的新 已创建提案。
程序化提案的状态
下图描绘了一个程序化提案在投放期间 从 API 的角度考虑协商流程每个州都由 以下字段的各种组合:
- ProposalMarketplaceInfo.hasLocalVersionEdits
- ProposalMarketplaceInfo.negotiationStatus
- Proposal.status
如需了解详情,请访问 Ad Manager 帮助中心。
<ph type="x-smartling-placeholder">协商演示
下面,我们将向您介绍如何使用该 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
)、进行更改,然后 请求买方接受 - 您可以修改与投放无关的修改,例如更新提案的
并在所创建的 Ad Manager 订单和订单项中
从这笔交易中受益为此,您可以在图 1 中的
state E
中修改,然后执行UpdateOrderWithSellerData
操作。