Terprogram

Panduan ini adalah ikhtisar tingkat tinggi tentang cara menggunakan Langsung Terprogram fitur baru via API. Dokumen ini berisi penjelasan mengenai cara membuat Proposal dan cara melakukannya negosiasi.

Primer

Proposal terprogram mirip dengan pesanan di Google Ad Manager. Proposal terprogram berisi banyak informasi tentang transaksi yang diusulkan antara Anda dan pembeli. Proposal, bersama dengan item barisnya, mewakili penawaran inventaris kepada pembeli.

Untuk informasi lebih lanjut, lihat Pusat Bantuan.

Membuat proposal melalui API

Untuk membuat objek Proposal, hanya nama dan pembeli terprogram yang tidak diperlukan. ID pembeli terprogram dapat diperoleh melalui UI atau 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(),
  # ...
}
    

Sebelum dikirim ke pembeli untuk negosiasi, kolom tambahan harus ditetapkan. Proposal harus memiliki kontak pengiklan, staf penjualan, pemroses iklan, dan penjual.

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
    

Karena proposal umumnya terdiri dari ProposalLineItem langkah berikutnya adalah menambahkan item baris proposal di bawah proposal yang dibuat.

Status proposal terprogram

Gambar berikut menggambarkan proposal terprogram pada berbagai tahap selama proses negosiasi dari sudut pandang API. Setiap negara bagian diwakili oleh berbagai kombinasi kolom berikut:

Untuk informasi selengkapnya, lihat Pusat Bantuan Ad Manager.

Negara bagian tempat proposal terprogram berada selama
           dengan Marketplace.
Gambar 1: Status proposal terprogram

Panduan negosiasi

Di sini, kami akan memandu Anda menggunakan API untuk menyelesaikan negosiasi proposal terprogram dengan pembeli. Kita akan mereferensikan status dalam diagram di atas.

Mempersiapkan peninjauan atau persetujuan pembeli

Pertama, Anda perlu membuat draf proposal terprogram dengan item baris proposal yang yang ingin Anda kirimkan kepada pembeli. Jumlahnya state C pada gambar di atas.

Meminta peninjauan atau persetujuan pembeli

Setelah Anda siap meminta pembeli meninjau proposal terprogram, Anda dapat RequestBuyerReview atau RequestBuyerAcceptance dengan menggunakan Metode ProposalService.performProposalAction. Langkah ini akan membawa Anda ke fase negosiasi.

Negosiasi

Di fase ini, beberapa hal mungkin terjadi.

  • Pembeli dapat menerima proposal terprogram Anda tanpa perubahan.
  • Pembeli dapat mengajukan perubahan. Dalam hal ini, proposal akan dikirim kembali menjadi status draf (state B pada Gambar 1). Anda kemudian perlu membuka proposal untuk pengeditan, membuat perubahan yang diusulkan, dan mengirimkannya kembali untuk ditinjau pembeli.
  • Anda juga dapat memutuskan untuk melakukan perubahan bahkan sebelum pembeli membalas. Anda dapat melakukannya dengan membuka proposal untuk edit dari state D pada Gambar 1.

Negosiasi ini berlanjut hingga Anda mencapai kesepakatan dengan pembeli. Komentar antara Anda dan pembeli dapat diambil menggunakan getMarketplaceCommentsByStatement. Anda dapat mengirim komentar kepada pembeli saat berada di state A. Yang akan dilakukan hal ini, Anda harus memperbarui marketplaceComment bidang di proposal menggunakan updateProposals. Komentar akan dikirim saat Anda meminta persetujuan pembeli.

Diselesaikan

Jika Anda dan pembeli telah menyetujui proposal terprogram, beralih ke status final (state F pada Gambar 1). Kemudian, Ad Manager akan otomatis membuat item baris dari proposal terprogram ini.

Umumnya, sekarang Anda sudah selesai dengan proposal terprogram; Namun, ada adalah dua tindakan yang dapat Anda lakukan dari status ini:

  • Anda dapat membuka kembali proposal terprogram untuk negosiasi ulang dengan mengedit kolom terkait penayangan di proposal. Anda dapat melakukannya dengan membuka proposal untuk pengeditan (state E to A di Gambar 1), membuat perubahan, lalu meminta persetujuan pembeli.
  • Anda dapat melakukan pengeditan terkait yang tidak tayang, seperti memperbarui dan mencerminkan perubahan ini di pesanan Ad Manager dan item baris yang dibuat dari kesepakatan ini. Anda melakukannya dengan mengedit dari state E pada Gambar 1, lalu melakukan tindakan UpdateOrderWithSellerData.