Ce guide offre une vue d'ensemble de l'utilisation Programmatique direct via l'API. Il décrit comment créer une proposition et comment réaliser négociation.
Primer
Une proposition programmatique est semblable à une campagne dans Google Ad Manager. Propositions programmatiques contenir des informations générales sur une proposition de transaction entre vous et un acheteur. Une proposition, avec ses éléments de ligne, représente une offre d'inventaire à un acheteur.
Pour en savoir plus, consultez le Centre d'aide.
Création d'une proposition via l'API
Pour créer un objet Proposal
, seuls le nom et l'acheteur programmatique sont
obligatoire. Vous pouvez obtenir l'ID de l'acheteur programmatique via l'interface utilisateur ou
le Programmatic_Buyer
table 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(), # ... }
Avant de l'envoyer à l'acheteur pour négociation, vous devez définir des champs supplémentaires. La proposition doit comporter un annonceur, un commercial, un trafficker et des contacts du vendeur.
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
Étant donné que les propositions sont généralement composées ProposalLineItem l'étape suivante consiste à ajouter des éléments de campagne de proposition sous la proposition créée.
États d'une proposition programmatique
La figure suivante illustre une proposition programmatique à différents moments de la le processus de négociation du point de vue de l'API. Chaque état est représenté par différentes combinaisons des champs suivants:
- ProposalMarketplaceInfo.hasLocalVersionEdits
- ProposalMarketplaceInfo.negotiationStatus
- Proposal.status
Pour en savoir plus, consultez le Centre d'aide Ad Manager.
<ph type="x-smartling-placeholder">Tutoriel sur la négociation
Dans cet article, nous allons vous expliquer comment utiliser l'API pour négocier un une proposition programmatique avec un acheteur. Nous ferons référence aux états dans le schéma ci-dessus.
Préparer l'examen ou l'acceptation de l'acheteur
Tout d'abord, vous devez créer une proposition programmatique avec des éléments de campagne
que vous voulez envoyer à un acheteur. Il s'agit de state C
dans la figure ci-dessus.
Demander l'examen ou l'accord de l'acheteur
Lorsque vous souhaitez que l'acheteur examine la proposition programmatique,
RequestBuyerReview
ou RequestBuyerAcceptance
à l'aide de la méthode
ProposalService.performProposalAction.
Cela vous amènera à la phase de négociation.
Négociation
Au cours de cette phase, un certain nombre de choses peuvent se produire.
- L'acheteur peut accepter votre proposition programmatique sans la modifier.
- L'acheteur peut proposer des modifications. Dans ce cas, la proposition est renvoyée
à l'état de brouillon (
state B
sur la figure 1). Vous devrez ensuite ouvrir la proposition pour modification, apportez les modifications proposées, puis renvoyez-la pour que l'acheteur l'examine. - Vous pouvez également décider d'apporter des modifications avant même que l'acheteur ne réponde. Vous pouvez
pour ce faire, ouvrez la proposition de modification depuis
state D
dans la figure 1.
Cette négociation se poursuit jusqu'à ce que vous parveniez à un accord avec l'acheteur. Commentaires
entre vous et l'acheteur peuvent être récupérées en utilisant
getMarketplaceCommentsByStatement.
Vous pouvez envoyer un commentaire à l'acheteur lorsque vous êtes dans state A
. À faire
vous devez mettre à jour
marketplaceComment
de la proposition en utilisant
updateProposals.
Ce commentaire sera ensuite envoyé lorsque vous demanderez l'accord de l'acheteur.
Finalisée
Une fois que l'acheteur et vous avez tous les deux accepté la proposition programmatique,
passe à l'état finalisé (state F
dans la figure 1).
Ad Manager crée ensuite automatiquement des éléments de campagne à partir de cette proposition programmatique.
Dans la plupart des cas, vous en avez terminé avec la proposition programmatique. Cependant, il existe Voici deux actions que vous pouvez effectuer à partir de cet état:
- Vous pouvez la rouvrir pour la renégocier en modifiant
liés à la diffusion dans la proposition. Pour ce faire, ouvrez le
une proposition de modification (
state E to A
sur la figure 1), y apporter des modifications, puis demandant l'accord de l'acheteur. - Vous pouvez effectuer des modifications qui ne sont pas liées à la diffusion, comme mettre à jour les
et refléter ces modifications dans la campagne et les éléments de campagne Ad Manager créés
de cet accord. Pour ce faire, modifiez l'élément
state E
de la figure 1, puis exécutez l'actionUpdateOrderWithSellerData
.