Questa guida fornisce una panoramica generale di come utilizzare le funzionalità di Programmatic Direct tramite l'API. Descrive come creare una proposta e come eseguire la negoziazione.
Primer
Una proposta di pubblicità programmatica è simile a un ordine in Google Ad Manager. Le proposte programmatiche contengono informazioni generali su una transazione proposta tra te e un acquirente. Una proposta, insieme ai suoi elementi pubblicitari, rappresenta un'offerta di inventario a un acquirente.
Per saperne di più, visita il Centro assistenza.
Creazione di una proposta tramite l'API
Per creare un oggetto Proposal, sono necessari solo il nome e l'acquirente di pubblicità programmatica. L'ID acquirente programmatico può essere ottenuto tramite l'interfaccia utente o
la tabella PQL Programmatic_Buyer.
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(), # ... }
Prima di inviarla all'acquirente per la negoziazione, è necessario impostare altri campi. La proposta deve includere un inserzionista, un commerciale, un trafficker e i contatti del venditore.
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
Poiché le proposte sono generalmente composte da oggetti ProposalLineItem, il passaggio successivo consiste nell'aggiungere elementi pubblicitari della proposta sotto la proposta appena creata.
Stati di una proposta programmatica
La figura seguente mostra una proposta programmatica in vari punti del processo di negoziazione dal punto di vista dell'API. Ogni stato è rappresentato da varie combinazioni dei seguenti campi:
- ProposalMarketplaceInfo.hasLocalVersionEdits
- ProposalMarketplaceInfo.negotiationStatus
- Proposal.status
Per saperne di più, consulta il Centro assistenza Ad Manager.
Procedura dettagliata della negoziazione
Qui ti mostreremo come utilizzare l'API per completare una negoziazione per una proposta programmatica con un acquirente. Faremo riferimento agli stati nel diagramma sopra.
Preparazione per la revisione o l'accettazione da parte dell'acquirente
Innanzitutto, devi creare una bozza di proposta di pubblicità programmatica con gli elementi pubblicitari della proposta che
vuoi inviare a un acquirente. Si tratta di state C nella figura precedente.
Richiesta di revisione o accettazione da parte dell'acquirente
Quando è tutto pronto per la revisione della proposta programmatica da parte dell'acquirente, puoi
RequestBuyerReview o RequestBuyerAcceptance utilizzando il metodo
ProposalService.performProposalAction.
Verrà avviata la fase di negoziazione.
Negoziazione
In questa fase possono verificarsi diverse situazioni.
- L'acquirente può accettare la tua proposta programmatica senza modifiche.
- L'acquirente può proporre modifiche. In questo caso, la proposta verrà riportata
allo stato di bozza (
state Bnella Figura 1). Dovrai quindi aprire la proposta per la modifica, apportare le modifiche proposte e inviarla di nuovo per la revisione dell'acquirente. - Puoi anche decidere di apportare modifiche prima ancora che l'acquirente risponda. Puoi
farlo aprendo la proposta per la modifica da
state Dnella Figura 1.
La negoziazione continua finché non raggiungi un accordo con l'acquirente. I commenti
tra te e l'acquirente possono essere recuperati utilizzando
getMarketplaceCommentsByStatement.
Puoi inviare un commento all'acquirente mentre ti trovi in state A. Per farlo, devi aggiornare il
campo marketplaceComment
nella proposta utilizzando
updateProposals.
Il commento verrà inviato quando richiedi l'accettazione dell'acquirente.
Finalizzata
Quando sia tu che l'acquirente avete accettato la proposta di pubblicità programmatica, questa
passa allo stato finalizzato (state F nella Figura 1).
Ad Manager crea automaticamente gli elementi pubblicitari da questa proposta di pubblicità programmatica.
Nella maggior parte dei casi, la proposta di pubblicità programmatica è stata completata. Tuttavia, ci sono due azioni che puoi eseguire da questo stato:
- Puoi riaprire la proposta di pubblicità programmatica per la rinegoziazione modificando
i campi correlati alla pubblicazione nella proposta. Per farlo, apri la proposta per la modifica (
state E to Anella Figura 1), apporta le modifiche e poi richiedi l'accettazione dell'acquirente. - Puoi apportare modifiche non pubblicate, ad esempio aggiornare il nome della proposta e riflettere queste modifiche nell'ordine e negli elementi pubblicitari di Ad Manager creati da questo deal. Per farlo, modifica
state Enella Figura 1 e poi esegui l'azioneUpdateOrderWithSellerData.