プログラマティック

このガイドでは、Google Cloud で プログラマティック直接取引 API を介して利用できますプロポーザルの作成方法と実行方法について説明します。 交渉の対象になります。

Primer

プログラマティック プロポーザルは、Google アド マネージャーのオーダーに似ています。プログラマティック プロポーザル には、お客様と購入者の間で提示される取引に関する幅広い情報が含まれます。 プロポーザルは、その広告申込情報とともに、特定の広告主への広告枠のオファーを表します。 あります

詳しくは、ヘルプセンターをご覧ください。

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 完了したら、次に新しく作成する 作成しました。

プログラマティック プロポーザルの状態

次の図は、P-MAX キャンペーンのさまざまな段階におけるプログラマティック プロポーザルを表しています。 API の観点から見ていきます各状態は、各状態を 次のフィールドのさまざまな組み合わせを使用できます。

詳しくは、アド マネージャー ヘルプセンターをご覧ください。

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder"></ph> プログラマティック プロポーザルが有効な状態
           やり取りできます をご覧ください。 <ph type="x-smartling-placeholder">
</ph> 図 1: プログラマティック プロポーザルの状態

交渉のチュートリアル

ここでは、API を使用して Chronicle の プログラマティックプロポーザルを 購入者と合意しますこの図に示す状態と ご覧ください。

購入者による審査または承認の準備

まずプログラマティックプロポーザルを作成し 選択します上の図では state C です。

購入者に審査または承認をリクエストする

購入者にプログラマティックプロポーザルを確認してもらう 準備ができたら RequestBuyerReview または RequestBuyerAcceptance ProposalService.performProposalAction メソッド。 これで、交渉フェーズに入ります。

交渉

このフェーズでは、さまざまなことが起こる可能性があります。

  • 購入者はお客様のプログラマティック プロポーザルを変更せずに承認できます。
  • 購入者は変更を提案できます。この場合 提案は Google に差し戻され 下書き状態(図 1 の state B)に変更します。その後、次の作業を行います。 編集対象の提案を開きます。 提案された変更を行い、購入者に審査してもらうために返送します。
  • 購入者から返信がある前であっても、変更を加えることもできます。Google Chat では これを行うには、図 1 の state D から提案を開いて編集します。
で確認できます。

この交渉は、購入者と合意に達するまで続きます。コメント 購入者との間の交渉は getMarketplaceCommentsByStatement. state A で購入者にコメントを送信できます。タスク この場合は、kubectl の marketplaceComment 新しい P-MAX キャンペーンを updateProposals. 購入者に承認をリクエストすると、コメントが送信されます。

最終処理済み

お客様と購入者の両方がプログラマティック プロポーザルを承認すると、 ファイナライズ状態に移行する(図 1 の state F)。 アド マネージャーでは、このプログラマティック プロポーザルから広告申込情報が自動的に作成されます。

ほとんどの場合、プログラマティック プロポーザルは完了しています。ただし、 この状態から実行できるアクションは 2 つあります。

  • 編集することで、プログラマティック プロポーザルをもう一度開いて再交渉に進めることができます。 自由に選択できますこれを行うには、 編集の提案(図 1 の state E to A)を開き、変更を行ってから 購入者の承認をリクエストします
  • 配信に関係のない編集は可能です。たとえば、プロポーザル 新しく作成したアド マネージャーのオーダーと広告申込情報に、これらの変更が反映される 獲得できますこれを行うには、図 1 の state E を編集してから、UpdateOrderWithSellerData アクションを実行します。