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

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

Primer

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

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

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

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

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

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 सहायता केंद्र पर जाएं.

मार्केटप्लेस के साथ इंटरैक्ट करते समय, प्रोग्रामैटिक प्रपोज़ल की स्थितियां.
पहली इमेज: प्रोग्राम के हिसाब से तैयार किए गए प्रपोज़ल की स्थितियां

नेगोसिएशन के बारे में जानकारी

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

खरीदार की समीक्षा या अनुमति के लिए तैयार किया जा रहा है

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

खरीदार से समीक्षा करने या स्वीकार करने का अनुरोध किया जा रहा है

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

मोल-भाव

इस दौरान, कई तरह की गतिविधियां हो सकती हैं.

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

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

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

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

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

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