প্রোগ্রাম্যাটিক

API-এর মাধ্যমে কীভাবে প্রোগ্রাম্যাটিক ডাইরেক্ট ফিচার ব্যবহার করতে হয়, এই নির্দেশিকা থেকে তার একটি হাই-লেভেল ওভারভিউ পাওয়া যায়। এটি কীভাবে একটি প্রস্তাব তৈরি করতে হয় এবং কীভাবে নেগোসিয়েশন করতে হয় তা বর্ণনা করে।

Primer

প্রোগ্র্যামাটিক প্রস্তাব Google Ad Manager-এ অর্ডারের মতোই। প্রোগ্র্যামাটিক প্রস্তাবে আপনার ও ক্রেতার মধ্যে প্রস্তাবিত ট্রানজ্যাকশন সম্পর্কে বিস্তারিত তথ্য থাকে। একটি প্রস্তাব, তার লাইন আইটেম সহ, ক্রেতার কাছে ইনভেনটরির অফারকে উপস্থাপন করে।

আরও জানতে সহায়তা কেন্দ্র দেখুন।

API-এর মাধ্যমে প্রস্তাব তৈরি করা

Proposal অবজেক্ট তৈরি করতে, শুধুমাত্র নাম এবং প্রোগ্র্যামাটিক ক্রেতার তথ্য প্রয়োজন। প্রোগ্রাম্যাটিক ক্রেতা আইডি UI বা 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 অবজেক্ট নিয়ে গঠিত হয়, তাই পরবর্তী ধাপ হল আপনার নতুন তৈরি করা প্রস্তাবের নিচে প্রস্তাবের লাইন আইটেম যোগ করা।

প্রোগ্রাম্যাটিক প্রস্তাবের স্ট্যাটাস

নিচের ছবিতে API-এর দৃষ্টিকোণ থেকে দর কষাকষি চলাকালীন বিভিন্ন পয়েন্টে প্রোগ্রাম্যাটিক প্রস্তাব দেখানো হয়েছে। প্রতিটি স্ট্যাটাস নিম্নলিখিত ফিল্ডের বিভিন্ন কম্বিনেশনের মাধ্যমে দেখানো হয়:

আরও জানতে Ad Manager সহায়তা কেন্দ্র দেখুন।

Marketplace-এর সাথে ইন্টার‍্যাক্ট করার সময় প্রোগ্রাম্যাটিক প্রস্তাব
           যেসব স্ট্যাটাসে থাকতে পারে।
ছবি ১: প্রোগ্রাম্যাটিক প্রস্তাবের স্ট্যাটাস

দর কষাকষি সংক্রান্ত ওয়াকথ্রু

এখানে, আমরা আপনাকে API ব্যবহার করে ক্রেতার সাথে প্রোগ্রাম্যাটিক প্রস্তাবের জন্য নেগোসিয়েশন সম্পূর্ণ করার পদ্ধতি দেখাব। আমরা উপরের ডায়াগ্রামে স্টেটগুলি রেফারেন্স হিসেবে ব্যবহার করব।

ক্রেতার পর্যালোচনা বা অনুমোদনের জন্য প্রস্তুত করা হচ্ছে

প্রথমে, আপনাকে এমন প্রোপোজাল লাইন আইটেম সহ প্রোগ্র্যামাটিক প্রোপোজাল ড্রাফ্ট করতে হবে যা আপনি কোনও ক্রেতাকে পাঠাতে চান। এটি উপরের ছবিতে state C।

ক্রেতার পর্যালোচনা বা অনুমোদনের অনুরোধ করা হচ্ছে

ক্রেতা প্রোগ্রাম্যাটিক প্রস্তাব পর্যালোচনা করার জন্য প্রস্তুত হলে, আপনি ProposalService.performProposalAction পদ্ধতি ব্যবহার করে RequestBuyerReview বা RequestBuyerAcceptance করতে পারবেন। এটি আপনাকে দর কষাকষির পর্যায়ে নিয়ে যাবে।

দর কষাকষি

এই পর্যায়ে, অনেক কিছু ঘটতে পারে।

  • ক্রেতা কোনও পরিবর্তন না করেই আপনার প্রোগ্রাম্যাটিক প্রস্তাব গ্রহণ করতে পারেন।
  • ক্রেতা পরিবর্তনের প্রস্তাব দিতে পারেন। এই ক্ষেত্রে, প্রস্তাবটি ড্রাফ্ট অবস্থায় ফেরত পাঠানো হবে (ছবি ১-এ state B)। এরপর আপনাকে এডিট করার জন্য প্রস্তাব খুলতে, প্রস্তাবিত পরিবর্তন করতে এবং ক্রেতার পর্যালোচনার জন্য সেটি ফেরত পাঠাতে হবে।
  • ক্রেতা উত্তর দেওয়ার আগেই আপনি পরিবর্তন করার সিদ্ধান্ত নিতে পারেন। আপনি ছবি ১-এ state D থেকে এডিট করার জন্য প্রস্তাব খুলে এটি করতে পারবেন।

ক্রেতার সাথে কোনও চুক্তিতে না পৌঁছানো পর্যন্ত এই দর কষাকষি চলতে থাকে। getMarketplaceCommentsByStatement ব্যবহার করে আপনার এবং ক্রেতার মধ্যে হওয়া কমেন্ট উদ্ধার করা যেতে পারে। state A-এ থাকাকালীন আপনি ক্রেতাকে কমেন্ট পাঠাতে পারবেন। এটি করতে, আপনাকে updateProposals ব্যবহার করে প্রস্তাবে marketplaceComment ফিল্ড আপডেট করতে হবে। আপনি ক্রেতার সম্মতি পাওয়ার জন্য অনুরোধ করলে, এই মন্তব্য পাঠানো হবে।

চূড়ান্ত করা হয়েছে

আপনি এবং ক্রেতা, দুজনেই প্রোগ্রাম্যাটিক প্রস্তাব গ্রহণ করলে, সেটি চূড়ান্ত অবস্থায় (ছবি ১-এ state F) চলে যায়। Ad Manager তখন এই প্রোগ্রাম্যাটিক প্রস্তাব থেকে অটোমেটিক লাইন আইটেম তৈরি করে।

বেশিরভাগ ক্ষেত্রে, আপনি এখন প্রোগ্রাম্যাটিক প্রস্তাবের কাজ সম্পূর্ণ করেছেন; তবে, এই অবস্থা থেকে আপনি দুটি অ্যাকশন করতে পারেন:

  • প্রোগ্রাম্যাটিক প্রস্তাবের পরিষেবা সংক্রান্ত ফিল্ড এডিট করে আপনি আবার দর কষাকষির জন্য প্রস্তাবটি খুলতে পারবেন। আপনি এটি করতে পারেন এডিট করার জন্য প্রস্তাব (ছবি ১-এ state E to A) খুলে, পরিবর্তন করে এবং তারপর ক্রেতার সম্মতি চেয়ে অনুরোধ করে।
  • আপনি বিজ্ঞাপন দেখানো সম্পর্কিত নয় এমন এডিট করতে পারবেন, যেমন, প্রস্তাবের নাম আপডেট করা এবং এই ডিল থেকে তৈরি করা Ad Manager অর্ডার ও লাইন আইটেমে এইসব পরিবর্তন দেখানো। আপনি এটি করতে, ছবি ১-এ state E থেকে এডিট করুন এবং তারপর UpdateOrderWithSellerData অ্যাকশনটি পারফর্ম করুন।