प्रोग्रामेटिक

इस गाइड में, एपीआई के ज़रिए प्रोग्रामैटिक डायरेक्ट की सुविधाओं को इस्तेमाल करने के बारे में खास जानकारी दी गई है. इसमें प्रस्ताव बनाने और मोल-भाव करने का तरीका बताया गया है.

Primer

प्रोग्राम के हिसाब से अपने-आप बनने वाला प्रस्ताव, Google Ad Manager में किए गए ऑर्डर के जैसा होता है. प्रोग्रामैटिक प्रस्तावों में आपके और खरीदार के बीच प्रस्तावित लेन-देन के बारे में व्यापक जानकारी शामिल होती है. प्रस्ताव, अपने लाइन आइटम के साथ, खरीदार को इन्वेंट्री का ऑफ़र दिखाता है.

ज़्यादा जानकारी के लिए, सहायता केंद्र पर जाएं.

एपीआई के ज़रिए प्रस्ताव बनाना

Proposal ऑब्जेक्ट बनाने के लिए, सिर्फ़ नाम और प्रोग्रामैटिक खरीदार की ज़रूरत होती है. प्रोग्राम के हिसाब से अपने-आप बनने वाला खरीदार आईडी, यूज़र इंटरफ़ेस (यूआई) या 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(),
  # ...
}
    

खरीदार को मोल-भाव के लिए भेजने से पहले, अतिरिक्त फ़ील्ड सेट करने होंगे. प्रस्ताव में एक विज्ञापनदाता, विक्रेता, ट्रैफ़िकर और विक्रेता संपर्क होने चाहिए.

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
    

आम तौर पर, प्रस्तावों में ProposalLineItem ऑब्जेक्ट शामिल होते हैं. इसलिए, अगला चरण होगा, अपने नए प्रस्ताव के नीचे, प्रस्ताव के लिए लाइन आइटम जोड़ना.

प्रोग्रैम्ड तरीके से विज्ञापन दिखाने के प्रस्ताव की स्थितियां

नीचे दिए गए डायग्राम में, एपीआई के नज़रिए से समझौते की प्रक्रिया के दौरान अलग-अलग पॉइंट पर, प्रोग्रामैटिक प्रस्ताव को दिखाया गया है. हर राज्य को नीचे दिए गए फ़ील्ड के अलग-अलग कॉम्बिनेशन से दिखाया जाता है:

ज़्यादा जानकारी के लिए, Ad Manager सहायता केंद्र पर जाएं.

इन स्थितियों में, Marketplace के साथ अपने इंटरैक्शन के दौरान, प्रोग्राम के हिसाब से अपने-आप बनने वाला कोई प्रस्ताव
           शामिल हो सकता है.
पहली इमेज: प्रोग्रैम्ड तरीके से विज्ञापन दिखाने के प्रस्ताव की स्थितियां

नेगोशिएशन के लिए सिलसिलेवार तरीके से निर्देश

यहां, हम आपको एपीआई का इस्तेमाल करके, खरीदार के साथ प्रोग्रामैटिक प्रपोज़ल के लिए मोल-भाव करने का तरीका बताएंगे. हम ऊपर दिए गए डायग्राम में स्थितियों को देखेंगे.

खरीदार की समीक्षा या मंज़ूरी के लिए तैयारी करना

पहले, आपको ऐसे प्रस्ताव लाइन आइटम के साथ एक प्रोग्रामैटिक प्रस्ताव ड्राफ़्ट करना होगा जिसे आप खरीदार को भेजना चाहते हैं. ऊपर दी गई इमेज में यह state C है.

खरीदार की समीक्षा या मंज़ूरी का अनुरोध करना

जब आप खरीदार को प्रोग्राम से जुड़े प्रस्ताव की समीक्षा करवाने के लिए तैयार हों, तो ProposalService.performProposalAction तरीका इस्तेमाल करके RequestBuyerReview या RequestBuyerAcceptance किया जा सकता है. इससे आपको नेगोशिएशन के चरण पर ले जाया जाएगा.

नेगोशिएशन

इस चरण में कई चीज़ें हो सकती हैं.

  • खरीदार बिना किसी बदलाव के आपके प्रोग्रामैटिक प्रस्ताव को स्वीकार कर सकता है.
  • खरीदार, बदलावों का सुझाव दे सकता है. इस मामले में, प्रस्ताव को वापस ड्राफ़्ट स्थिति में भेजा जाएगा (इमेज 1 में state B). इसके बाद, आपको बदलाव के लिए प्रस्ताव खोलना होगा, सुझाए गए बदलाव करने होंगे, और उसे खरीदार की समीक्षा के लिए वापस भेजना होगा.
  • खरीदार के जवाब देने से पहले ही, बदलाव करने का फ़ैसला लिया जा सकता है. ऐसा करने के लिए, इमेज 1 में state D से बदलाव करने के सुझाव को खोलें.

यह मोल-भाव तब तक जारी रहता है, जब तक खरीदार के साथ कोई समझौता नहीं होता. आपके और खरीदार के बीच हुई टिप्पणियों को getMarketplaceCommentsByStatement का इस्तेमाल करके वापस पाया जा सकता है. आप state A में रहते हुए खरीदार को कोई टिप्पणी भेज सकते हैं. इसके लिए, आपको प्रस्ताव पर marketplaceComment फ़ील्ड को अपडेट करना होगा. इसके लिए, updateProposals का इस्तेमाल करें. इसके बाद, आपके खरीदार की अनुमति का अनुरोध करने पर टिप्पणी भेज दी जाएगी.

फ़ाइनल ड्राफ़्ट

जब आप और खरीदार, दोनों ने प्रोग्राम के हिसाब से बनाए गए प्रस्ताव को स्वीकार कर लिया हो, तो यह पूरी तरह से फ़ाइनल स्थिति में चला जाता है (इमेज 1 में state F). इसके बाद, Ad Manager इस प्रोग्रामैटिक प्रस्ताव से अपने-आप लाइन आइटम बनाता है.

ज़्यादातर मामलों में, प्रोग्राम के हिसाब से, अपने-आप बनने वाले प्रस्ताव की प्रोसेस पूरी हो जाती है. हालांकि, इस स्थिति से दो कार्रवाइयां की जा सकती हैं:

  • प्रस्ताव में सेवा से जुड़े फ़ील्ड में बदलाव करके, फिर से बातचीत करने के लिए प्रोग्रामैटिक प्रस्ताव को फिर से खोला जा सकता है. ऐसा करने के लिए, बदलाव करने के लिए प्रस्ताव खोलें (इमेज 1 में state E to A), बदलाव करें, और फिर खरीदार को मंज़ूरी देने का अनुरोध करके.
  • दिखाई न देने वाले संबंधित बदलाव किए जा सकते हैं, जैसे कि प्रस्ताव के नाम को अपडेट करना और इस ऑफ़र से बनाए गए Ad Manager ऑर्डर और लाइन आइटम में इन बदलावों को दिखाना. ऐसा करने के लिए, पहली इमेज में state E के विकल्प में बदलाव करें और फिर UpdateOrderWithSellerData कार्रवाई करें.