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

এই নির্দেশিকাটি এপিআই (API)-এর মাধ্যমে প্রোগ্রাম্যাটিক ডিরেক্ট (Programmatic Direct) -এর ফিচারগুলো কীভাবে ব্যবহার করতে হয়, তার একটি সামগ্রিক ধারণা দেয়। এতে একটি প্রপোজাল (Proposal) তৈরি করার এবং নেগোসিয়েশন (negotiation) করার পদ্ধতি বর্ণনা করা হয়েছে।

প্রাইমার

একটি প্রোগ্রাম্যাটিক প্রপোজাল গুগল অ্যাড ম্যানেজারের একটি অর্ডারের অনুরূপ। প্রোগ্রাম্যাটিক প্রপোজালগুলোতে আপনার এবং একজন ক্রেতার মধ্যে প্রস্তাবিত লেনদেন সম্পর্কিত বিস্তৃত তথ্য থাকে। একটি প্রপোজাল, তার লাইন আইটেমগুলোসহ, একজন ক্রেতার কাছে ইনভেন্টরির একটি অফার হিসেবে গণ্য হয়।

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

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

একটি 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 দৃষ্টিকোণ থেকে আলোচনা প্রক্রিয়ার বিভিন্ন পর্যায়ে একটি প্রোগ্রাম্যাটিক প্রস্তাবকে চিত্রিত করে। প্রতিটি অবস্থা নিম্নলিখিত ফিল্ডগুলির বিভিন্ন সংমিশ্রণ দ্বারা প্রতিনিধিত্ব করা হয়:

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

মার্কেটপ্লেসের সাথে মিথস্ক্রিয়ার সময় একটি প্রোগ্রাম্যাটিক প্রস্তাবনা যেসব অবস্থায় থাকতে পারে।
চিত্র ১ : একটি কর্মসূচিমূলক প্রস্তাবের অবস্থাসমূহ

আলোচনার রূপরেখা

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

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

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

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

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

আলোচনা

এই পর্যায়ে বিভিন্ন ঘটনা ঘটতে পারে।

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

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

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

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

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

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