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

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

প্রাইমার

একটি প্রোগ্রাম্যাটিক প্রস্তাব Google Ad Manager-এর একটি অর্ডারের অনুরূপ। প্রোগ্রাম্যাটিক প্রস্তাবে আপনার এবং একজন ক্রেতার মধ্যে প্রস্তাবিত লেনদেন সম্পর্কে বিস্তৃত তথ্য রয়েছে। একটি প্রস্তাব, তার লাইন আইটেমগুলির সাথে, একটি ক্রেতার কাছে তালিকার একটি প্রস্তাব উপস্থাপন করে।

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

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

একটি Proposal বস্তু তৈরি করতে, শুধুমাত্র নাম এবং প্রোগ্রাম্যাটিক ক্রেতা প্রয়োজন। প্রোগ্রাম্যাটিক ক্রেতা আইডি UI বা Programmatic_Buyer PQL টেবিলের মাধ্যমে পাওয়া যেতে পারে।

জাভা


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);
    

পাইথন


proposal = {
    # Setting required Marketplace information.
    'isProgrammatic': 'true',
    'marketplaceInfo': {
        'buyerAccountId': programmatic_buyer_id,
    },
    # Set common required fields for proposals.
    'name': 'Proposal #%s' % uuid.uuid4(),
    # ...
}
    

পিএইচপি


$proposal = new Proposal();
$proposal->setName('Proposal #' . uniqid());

// Set the required Marketplace information.
$proposalMarketplaceInfo = new ProposalMarketplaceInfo();
$proposalMarketplaceInfo->setBuyerAccountId($buyerId);
$proposal->setMarketplaceInfo($proposalMarketplaceInfo);
    

সি#


// 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
    }
};
    

রুবি


# Create proposal configuration object.
proposal = {
  :marketplace_info => {
    :buyer_account_id => buyer_id
  },
  :name => 'Proposal %s' % SecureRandom.uuid(),
  # ...
}
    

আলোচনার জন্য ক্রেতার কাছে পাঠানোর আগে, অতিরিক্ত ক্ষেত্র সেট করতে হবে। প্রস্তাবে অবশ্যই একজন বিজ্ঞাপনদাতা, বিক্রয়কর্মী, পাচারকারী এবং বিক্রেতার পরিচিতি থাকতে হবে।

জাভা


SalespersonSplit primarySalesperson = new SalespersonSplit();
primarySalesperson.setUserId(primarySalespersonId);
proposal.setPrimarySalesperson(primarySalesperson);
    

পাইথন


'primarySalesperson': {
    'userId': primary_salesperson_id,
},
'primaryTraffickerId': primary_trafficker_id,
'probabilityOfClose': '100000',
    

পিএইচপি


// 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);
    

সি#


// 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
};
    

রুবি


:primary_salesperson => {
  :user_id => primary_salesperson_id
},
:primary_trafficker_id => primary_trafficker_id
    

যেহেতু প্রস্তাবগুলি সাধারণত ProposalLineItem অবজেক্টগুলির সমন্বয়ে গঠিত, তাই পরবর্তী পদক্ষেপটি আপনার নতুন তৈরি প্রস্তাবের নীচে প্রস্তাব লাইন আইটেম যোগ করা হবে।

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

নিম্নলিখিত চিত্রটি একটি API দৃষ্টিকোণ থেকে আলোচনার প্রক্রিয়া চলাকালীন বিভিন্ন পয়েন্টে একটি প্রোগ্রাম্যাটিক প্রস্তাবকে চিত্রিত করে৷ প্রতিটি রাজ্য নিম্নলিখিত ক্ষেত্রের বিভিন্ন সমন্বয় দ্বারা প্রতিনিধিত্ব করা হয়:

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

মার্কেটপ্লেসের সাথে ইন্টারঅ্যাকশনের সময় একটি প্রোগ্রামেটিক প্রস্তাব দেওয়া যেতে পারে।
চিত্র 1 : একটি প্রোগ্রাম্যাটিক প্রস্তাবের রাজ্য

আলোচনার পথচলা

এখানে, আমরা আপনাকে API ব্যবহার করে একজন ক্রেতার সাথে একটি প্রোগ্রাম্যাটিক প্রস্তাবের জন্য আলোচনা সম্পন্ন করব। আমরা উপরের চিত্রে রাজ্যগুলি উল্লেখ করব।

ক্রেতা পর্যালোচনা বা গ্রহণের জন্য প্রস্তুতি

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

ক্রেতা পর্যালোচনা বা গ্রহণ অনুরোধ

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

আলাপ - আলোচনা

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

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

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

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

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

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

  • আপনি প্রস্তাবে পরিবেশন-সম্পর্কিত ক্ষেত্রগুলি সম্পাদনা করে পুনঃআলোচনার জন্য প্রোগ্রাম্যাটিক প্রস্তাবটি পুনরায় খুলতে পারেন। আপনি এটি সম্পাদনার জন্য প্রস্তাব খোলার মাধ্যমে করতে পারেন ( চিত্র 1-এ state E to A ), পরিবর্তনগুলি করে, এবং তারপর ক্রেতার গ্রহণযোগ্যতার অনুরোধ করে৷
  • আপনি নন-সার্ভিং সম্পর্কিত সম্পাদনা করতে পারেন, যেমন প্রস্তাবের নাম আপডেট করা এবং এই চুক্তি থেকে তৈরি অ্যাড ম্যানেজার অর্ডার এবং লাইন আইটেমগুলিতে এই পরিবর্তনগুলি প্রতিফলিত করা। আপনি চিত্র 1-এ থেকে state E সম্পাদনা করে এবং তারপর UpdateOrderWithSellerData ক্রিয়া সম্পাদন করে এটি করবেন।