Programatik

Bu kılavuz, Programatik Doğrudan özelliklerinin API üzerinden nasıl kullanılacağına dair genel bir bakış sunar. Bu bölümde, nasıl Teklif oluşturulacağını ve pazarlığın nasıl gerçekleştirileceği açıklanmaktadır.

Primer

Programatik teklif, Google Ad Manager'daki siparişe benzer. Programatik teklifler, siz ve alıcı arasında önerilen bir işlem hakkında kapsamlı bilgiler içerir. Teklif, satır öğeleriyle birlikte alıcıya yönelik bir envanter teklifini temsil eder.

Daha fazla bilgi için Yardım Merkezi'ne göz atın.

API aracılığıyla teklif oluşturma

Proposal nesnesi oluşturmak için yalnızca ad ve programatik alıcı gereklidir. Programatik alıcı kimliği, kullanıcı arayüzü veya Programmatic_Buyer PQL tablosundan elde edilebilir.

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(),
  # ...
}
    

Pazarlık için alıcıya göndermeden önce ek alanların ayarlanması gerekir. Teklifte bir reklamveren, satış görevlisi, trafiker ve satıcı iletişim bilgileri bulunmalıdır.

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
    

Teklifler genellikle ProposalLineItem nesnelerinden oluştuğu için bir sonraki adım yeni oluşturulan teklifinizin altına teklif satır öğeleri eklemek olur.

Programatik teklifin durumları

Aşağıdaki şekilde, pazarlık sürecinin çeşitli noktalarındaki programatik teklif API açısından gösterilmektedir. Her eyalet, aşağıdaki alanların çeşitli kombinasyonlarıyla temsil edilir:

Daha fazla bilgi için Ad Manager Yardım Merkezi'ne bakın.

Programatik teklifin, Pazar Yeri ile etkileşimi sırasında içinde bulunabileceği durumlar.
Şekil 1: Programatik teklifin durumları

Pazarlık adım adım açıklamalı kılavuzu

Burada, alıcıyla programatik teklif pazarlığını tamamlamak için API'yi kullanma konusunda size yol göstereceğiz. Yukarıdaki diyagramda bulunan durumlara referansta bulunacağız.

Alıcının incelemesi veya kabulü için hazırlanma

Öncelikle, alıcıya göndermek istediğiniz teklif satır öğelerine sahip programatik bir teklif taslağı hazırlamanız gerekir. Bu, yukarıdaki resimde state C olarak belirtilmiştir.

Alıcının incelemesini veya kabul etmesini isteme

Alıcının programatik teklifi incelemesi için hazır olduğunuzda RequestBuyerReview veya RequestBuyerAcceptance ProposalService.performProposalAction yöntemini kullanarak yapabilirsiniz. Bu aşamadan sonra müzakere aşamasına geçersiniz.

Müzakere

Bu aşamada birçok şey olabilir.

  • Alıcı, programatik teklifinizi değişiklik olmadan kabul edebilir.
  • Alıcı değişiklikler önerebilir. Bu durumda, teklif taslak durumuna geri gönderilir (Şekil 1'de state B). Ardından teklifi düzenlemek için açmanız, önerilen değişiklikleri yapmanız ve alıcının incelemesi için geri göndermeniz gerekir.
  • Alıcı yanıt vermeden önce de değişiklik yapabilirsiniz. Bunu, Şekil 1'de state D adlı kuruluştan alınan düzenleme teklifini açarak yapabilirsiniz.

Bu pazarlık, alıcıyla anlaşmaya varılana kadar devam eder. Alıcıyla aranızdaki yorumlar, getMarketplaceCommentsByStatement kullanılarak alınabilir. state Adayken alıcıya yorum gönderebilirsiniz. Bunu yapmak için updateProposals öğesini kullanarak teklifteki marketplaceComment alanını güncellemeniz gerekir. Ardından, alıcının kabul etmesini istediğinizde yorum gönderilir.

Tamamlandı

Programatik teklif hem siz hem de alıcı tarafından kabul edildiğinde programatik teklif kesinleştirilir (Şekil 1'de state F). Daha sonra Ad Manager, bu programatik tekliften otomatik olarak satır öğeleri oluşturur.

Çoğu durumda, artık programatik teklifle işiniz bitmiştir; ancak, bu durumdan gerçekleştirebileceğiniz iki işlem vardır:

  • Teklifteki yayınla ilgili alanları düzenleyerek programatik teklifi yeniden pazarlık için yeniden açabilirsiniz. Bunu yapmak için teklifi düzenleme için açın (Şekil 1'de state E to A), değişiklikler yapın ve ardından alıcının kabul etmesini isteyin.
  • Teklifin adını güncellemek ve bu değişiklikleri Ad Manager siparişinde ve bu anlaşmadan oluşturulan satır öğelerinde yansıtmak gibi yayınlanmayan ilgili düzenlemeler yapabilirsiniz. Bunu, Şekil 1'de verilen state E öğesinden düzenleyerek ve ardından UpdateOrderWithSellerData işlemini gerçekleştirerek yaparsınız.