程序化

本指南简要介绍了 程序化直接交易 功能。它介绍了如何创建提案以及如何执行 协商

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 的角度考虑协商流程每个州都由 以下字段的各种组合:

如需了解详情,请访问 Ad Manager 帮助中心

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder"></ph> 程序化提案在其投放期间
           与 Marketplace 进行互动。 <ph type="x-smartling-placeholder">
</ph> 图 1:程序化提案的各种状态

协商演示

下面,我们将向您介绍如何使用该 API 完成针对 与买方协商程序化提案我们会参考图中的状态 。

正在为买方审核或接受做好准备

首先,您需要使用 发送给买方这是上图中的 state C

请求买方审核或接受

您准备好让买方审核程序化提案后,可以执行以下操作: RequestBuyerReviewRequestBuyerAcceptance(使用 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 操作。