Programmatique

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:

Pour en savoir plus, consultez le Centre d'aide Ad Manager.

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder"></ph> Les états possibles d&#39;une proposition programmatique
           une interaction avec la place de marché. <ph type="x-smartling-placeholder">
</ph> Figure 1: États d'une proposition programmatique

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'action UpdateOrderWithSellerData.