অনুরোধটি প্রক্রিয়া করুন

যখন গুগল আপনার অ্যাপ্লিকেশনে একটি বিড অনুরোধ পাঠায়, তখন একটি রিয়েল-টাইম বিডিং প্রক্রিয়া শুরু হয়। এই নির্দেশিকাটি ব্যাখ্যা করে যে, বিড অনুরোধটি প্রক্রিয়া করার জন্য আপনার অ্যাপ্লিকেশনটি কীভাবে কোড করতে হবে।

অনুরোধ পার্স করুন

গুগল একটি HTTP POST অনুরোধের পেলোড হিসাবে OpenRTB JSON অথবা Protobuf ফরম্যাটে সিরিয়ালাইজড একটি বিড অনুরোধ পাঠায়। প্রাপ্ত ফরম্যাটটি আপনার এন্ডপয়েন্টের কনফিগারেশনের উপর নির্ভর করে। একটি উদাহরণের জন্য 'উদাহরণ বিড অনুরোধ' দেখুন।

সিরিয়ালাইজড BidRequest পেতে আপনাকে অবশ্যই এই অনুরোধটি পার্স করতে হবে। আপনি যদি প্রোটোবাফ ফরম্যাট ব্যবহার করেন, তবে আপনাকে রেফারেন্স ডেটা পেজ থেকে openrtb.proto এবং openrtb-adx.proto ডাউনলোড করতে হবে এবং BidRequest মেসেজটি পার্স করার জন্য ব্যবহারযোগ্য একটি লাইব্রেরি তৈরি করতে সেগুলো ব্যবহার করতে হবে। উদাহরণস্বরূপ, নিম্নলিখিত C++ কোডটি একটি স্ট্রিং-এ থাকা POST পেলোড থেকে একটি অনুরোধ পার্স করে:

string post_payload = /* the payload from the POST request */;
BidRequest bid_request;
if (bid_request.ParseFromString(post_payload)) {
  // Process the request.
}

একবার আপনার কাছে BidRequest চলে এলে, আপনি এটিকে একটি অবজেক্ট হিসেবে ব্যবহার করে আপনার প্রয়োজনীয় ফিল্ডগুলো বের করে সেগুলোর অর্থ বুঝতে পারবেন। উদাহরণস্বরূপ, C++ এ একটি OpenRTB `BidRequest`-এর মধ্যে ডিলগুলো পর্যবেক্ষণ করার পদ্ধতিটি নিম্নলিখিতের মতো হতে পারে:

for (const BidRequest::Imp::Pmp::Deal& deal : pmp.deals()) {
  DoSomething(deal.id(), deal.wseat());
}

বিলিং আইডি

যখন আপনার এক বা একাধিক প্রি-টার্গেটিং কনফিগারেশন দ্বারা কোনো পাবলিশারের বিজ্ঞাপন ইনভেন্টরি টার্গেট করা হয়, তখন আপনি একটি বিড রিকোয়েস্ট পান। BidRequest.imp.ext.billing_id যেকোনো যোগ্য ক্রেতা এবং প্রাসঙ্গিক প্রি-টার্গেটিং কনফিগারেশনের বিলিং আইডি যুক্ত করা হবে। এছাড়াও, ডিল ইনভেন্টরির জন্য, আপনি BidRequest.imp.pmp.deal.ext.billing_id ব্যবহার করে প্রাসঙ্গিক ক্রেতাদের সাথে যুক্ত বিলিং আইডিগুলো খুঁজে পেতে পারেন। বিড করার সময় শুধুমাত্র বিড রিকোয়েস্টে অন্তর্ভুক্ত ক্রেতাদের বিলিং আইডি উল্লেখ করা যাবে।

বিড অনুরোধে একাধিক বিলিং আইডি অন্তর্ভুক্ত থাকলে, আপনাকে অবশ্যই BidResponse.seatbid.bid.ext.billing_id ফিল্ডে সেই ক্রেতার বিলিং আইডি উল্লেখ করতে হবে, যার নামে আপনি আপনার বিডটি জমা দিতে চান।

imp {
  ext {
    // The billing IDs of all of your matching pretargeting configs and eligible child seats are
    // stored in a flat list here.
    billing_id: 123
    billing_id: 456
    billing_id: 789
  }
  pmp {
    // All eligible deals are stored in a single flat list.
    deal {
      id: 1000
      ext {
        // The specific billing IDs eligible to bid on this deal are indicated here.
        billing_id: 789
      }
      ...
    }
    deal {
      id: 2000
      ext {
        billing_id: 123
        billing_id: 456
      }
      ...
    }
  }
  ...
}
...

অবরুদ্ধ বিভাগগুলি নির্ধারণ করুন

আপনি যখন বিড করবেন, তখন অন্তর্ভুক্ত ক্রিয়েটিভটিতে পাবলিশার কর্তৃক ব্লক করা কোনো ক্যাটাগরি থাকা যাবে না। অন্যথায় বিডটি অকশন থেকে ফিল্টার হয়ে যাবে।

আপনি BidRequest.bcat ফিল্ডটি পর্যালোচনা করে একটি ইম্প্রেশনের জন্য ব্লক করা ক্যাটাগরিগুলো খুঁজে পেতে পারেন, যেখানে আপনার অ্যাকাউন্টের জন্য কনফিগার করা ট্যাক্সোনমির ক্যাটাগরিগুলো দিয়ে পূরণ করা থাকে।

নিম্নলিখিত উদাহরণটি একটি কনফিগার করা বিজ্ঞাপন ক্যাটাগরি ট্যাক্সোনমির উপর ভিত্তি করে ব্লক করা ক্যাটাগরিগুলো দেখায়:

আইএবি বিষয়বস্তু শ্রেণিবিন্যাস ১.০

// Bid request
{
  // Indicates the blocked categories using IAB Content 1.0 Taxonomy.
  "bcat": [
    "IAB9-9",  // Cigars
    "IAB8-18"  // Wine
  ]
  "imp": {
    ...
  }
}
      
// Bid request
{
  // Indicates the blocked categories using Google Ad Category Taxonomy.
  "bcat": [
    "10138",  // Cigar and tobacco collecting
    "10080",  // Tobacco
    "11649",  // Wine
    "10674",  // Wine collecting
    "13008"   // Wine clubs
  ]
  "imp": {
    ...
  }
}
      

অভিধান ফাইল

দরপত্র অনুরোধে ডিকশনারি ফাইলে সংজ্ঞায়িত শনাক্তকারী ব্যবহার করা হয়, যা রেফারেন্স ডেটা পৃষ্ঠায় পাওয়া যায়।

বিডার ইউআরএল ম্যাক্রো

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

ম্যাক্রো বর্ণনা
%%GOOGLE_USER_ID%%

BidRequest.user.id তে থাকা গুগল ইউজার আইডি দ্বারা প্রতিস্থাপিত হয়। উদাহরণস্বরূপ, অনুরোধ করার সময় বিডার ইউআরএল http://google.bidder.com/path?gid=%%GOOGLE_USER_ID%% http://google.bidder.com/path?gid=dGhpyBhbiBleGFtGxl এর মতো কিছু দিয়ে প্রতিস্থাপন করা হবে।

গুগল ইউজার আইডি অজানা হলে, তার পরিবর্তে একটি খালি স্ট্রিং ব্যবহৃত হয়, যার ফলাফলটি প্রায় এইরকম হয়।

http://google.bidder.com/path?gid=
%%HAS_MOBILE%%

বিড অনুরোধটি একটি মোবাইল ডিভাইস থেকে এসেছে তা বোঝাতে 1 দ্বারা প্রতিস্থাপিত, অন্যথায় 0 এটি BidRequest.device.devicetype এর মানের উপর ভিত্তি করে, যেখানে মোবাইল ডিভাইসগুলি HIGHEND_PHONE ( 4 ) বা Tablet ( 5 ) দ্বারা নির্দেশিত হয়।

%%HAS_VIDEO%%

বিড অনুরোধে ভিডিও ইনভেন্টরি থাকলে তা বোঝাতে 1 দ্বারা প্রতিস্থাপিত হয়, অন্যথায় 0 দ্বারা। এটি নির্ভর করে বিড অনুরোধে BidRequest.imp.video পূরণ করা আছে কি না তার উপর।

%%IS_CTV%%

বিড অনুরোধটি একটি CTV ডিভাইস থেকে এসেছে বোঝাতে এটিকে 1 দ্বারা প্রতিস্থাপন করা হয়, অন্যথায় 0 । এটি BidRequest.device.devicetype এর মানের উপর ভিত্তি করে নির্ধারিত হয়। Protobuf-এর জন্য, CTV ডিভাইসগুলো হলো CONNECTED_TV , CONNECTED_DEVICE , বা SET_TOP_BOX , যা JSON-এর জন্য 3 , 6 , বা 7 পূর্ণসংখ্যা মানের সাথে সঙ্গতিপূর্ণ।

%%HOSTED_MATCH_DATA%%

BidRequest.user.buyeruid এর উপর ভিত্তি করে একটি মান দ্বারা প্রতিস্থাপিত।

%%MOBILE_IS_APP%%

বিড অনুরোধটি মোবাইল অ্যাপ ইনভেন্টরির জন্য হলে এটিকে 1 দ্বারা, অন্যথায় 0 দ্বারা প্রতিস্থাপন করা হয়। এটি BidRequest.app ডেটা আছে কি না, তার উপর ভিত্তি করে নির্ধারিত হয়।

ট্রানজ্যাকশন URL থেকে মোবাইল অ্যাপ আইডি খুঁজুন

মোবাইল অ্যাপ্লিকেশন লেনদেনগুলো এইরকম দেখতে URL রিপোর্ট করবে:

mbappgewtimrzgyytanjyg4888888.com

স্ট্রিংটির বোল্ড করা অংশটি ( gewtimrzgyytanjyg4888888 ) ডিকোড করতে একটি বেস-৩২ ডিকোডার ব্যবহার করুন।

আপনি একটি অনলাইন ডিকোডার ব্যবহার করতে পারেন, কিন্তু আপনাকে অক্ষরগুলোকে বড় হাতের অক্ষরে লিখতে হবে এবং শেষের 8 -কে = চিহ্ন দিয়ে প্রতিস্থাপন করতে হবে।

সুতরাং এই মানটি ডিকোড করা:

GEWTIMRZGYYTANJYG4======
এর ফলে:
1-429610587
429610587 স্ট্রিংটি হলো iFunny নামক iOS অ্যাপটির অ্যাপ আইডি।

এখানে আরেকটি উদাহরণ দেওয়া হলো। রিপোর্ট করা URL-টি হলো:

mbappgewtgmjug4ytmmrtgm888888.com
এই মানটির অর্থোদ্ধার:
GEWTGMJUG4YTMMRTGM======
এর ফলে:
1-314716233
ফলাফল 314716233 হলো TextNow নামক iOS অ্যাপটির অ্যাপ আইডি।

ট্রানজ্যাকশন URL থেকে মোবাইল অ্যাপের নাম খুঁজুন

অ্যাপের নাম পাওয়ার একটি উদাহরণ এখানে দেওয়া হলো। প্রাপ্ত URL-টি নিম্নরূপ:

mbappMFUXELTDN5WS42DZOBQWQLTJN4XHG3DJORUGK4Q888.com
এই মানটির অর্থোদ্ধার:
MFUXELTDN5WS42DZOBQWQLTJN4XHG3DJORUGK4Q===
এর ফলে:
air.com.hypah.io.slither
ফলাফলটি slither.io অ্যান্ড্রয়েড অ্যাপটির সমতুল্য।

উন্মুক্ত নিলাম ক্ষেত্র

ওপেন বিডিং-এ অংশগ্রহণকারী এক্সচেঞ্জ এবং নেটওয়ার্ক বিডারদের কাছে পাঠানো বিড অনুরোধগুলো, স্ট্যান্ডার্ড রিয়েল-টাইম বিডিং-এ অংশগ্রহণকারী অনুমোদিত ক্রেতাদের অনুরোধের মতোই। ওপেন বিডিং-এর গ্রাহকরা অল্প কিছু অতিরিক্ত ফিল্ড পাবেন এবং কয়েকটি বিদ্যমান ফিল্ডের বিকল্প ব্যবহার থাকতে পারে। এগুলোর মধ্যে নিম্নলিখিতগুলো অন্তর্ভুক্ত:

ওপেনআরটিবি বিস্তারিত
BidRequest.imp.ext.dfp_ad_unit_code

এতে পাবলিশারের অ্যাড ম্যানেজার নেটওয়ার্ক কোড এবং তার পরে ফরওয়ার্ড স্ল্যাশ দ্বারা পৃথক করা অ্যাড ইউনিট হায়ারার্কি থাকে।

উদাহরণস্বরূপ, এটি /1234/cruises/mars এর মতো বিন্যাসে প্রদর্শিত হবে।

BidRequest.user.data.segment

পাবলিশারের পক্ষ থেকে এক্সচেঞ্জ বিডারের কাছে বারবার কী-ভ্যালু পেয়ার পাঠানো হয়েছে।

যখন BidRequest.user.data.name “Publisher Passed” এ সেট করা থাকে, তখন আপনি নিশ্চিত হতে পারেন যে মানগুলি প্রকাশকের পাঠানো কী-ভ্যালু পেয়ার।

অনুমোদিত বিক্রেতাদের ঘোষণা করুন

যেসব প্রযুক্তি সরবরাহকারী প্রতিষ্ঠান গবেষণা, রিমার্কেটিং এবং বিজ্ঞাপন পরিবেশনের মতো পরিষেবা প্রদান করে, তারা ক্রেতা ও বিক্রেতার মধ্যকার পারস্পরিক ক্রিয়াকলাপে ভূমিকা রাখতে পারে। শুধুমাত্র সেইসব সরবরাহকারী প্রতিষ্ঠানই অনুমোদিত, যাদেরকে গুগল অনুমোদিত ক্রেতাদের পারস্পরিক ক্রিয়াকলাপে অংশগ্রহণের জন্য যাচাই করেছে।

BidRequest বুঝতে এবং আপনার BidResponse তৈরি করতে, টেকনোলজি ভেন্ডর ঘোষণা করার দুটি ভিন্ন সম্ভাবনা সম্পর্কে আপনাকে অবগত থাকতে হবে:

  1. কিছু ভেন্ডরকে ঘোষণা করার প্রয়োজন নেই; এই ভেন্ডররা 'অ্যাড ম্যানেজার সার্টিফাইড এক্সটার্নাল ভেন্ডরস' তালিকায় অন্তর্ভুক্ত থাকে।
  2. অন্যান্য বিক্রেতারা শুধুমাত্র তখনই অংশগ্রহণ করতে পারবে যদি তাদের BidRequest ঘোষণা করা থাকে।
    • BidRequest এ, BidRequest.imp.ext.allowed_vendor_type ফিল্ডটি নির্দিষ্ট করে যে বিক্রেতা কোন কোন ভেন্ডরকে অনুমোদন দেয়। allowed_vendor_type এ যে ভেন্ডরদের পাঠানো হবে, তাদের তালিকা vendors.txt ডিকশনারি ফাইলে দেওয়া থাকে।

দরপত্র অনুরোধের নমুনা

নিম্নলিখিত উদাহরণগুলি প্রোটোবাফ এবং JSON অনুরোধগুলির পাঠযোগ্য নমুনা উপস্থাপন করে।

ওপেনআরটিবি প্রোটোবাফ

ওপেনআরটিবি JSON

বিড রিকোয়েস্টকে বাইনারি ফর্মে রূপান্তর করতে, যেমনটা আপনি একটি আসল রিকোয়েস্টের POST পেলোড থেকে পেয়ে থাকেন, আপনি নিম্নলিখিত কাজটি করতে পারেন (C++ এ)। তবে মনে রাখবেন, এটি OpenRTB JSON এর ক্ষেত্রে প্রযোজ্য নয়।

string text_format_example = /* example from above */;
BidRequest bid_request;
if (TextFormat::ParseFromString(text_format_example, &bid_request)) {
  string post_payload;
  if (bid_request.SerializeToString(&post_payload)) {
    // post_payload is a binary serialization of the protocol buffer
  }
}

রিয়েল-টাইম প্রতিক্রিয়া

অনুমোদিত ক্রেতাদের পাশাপাশি ওপেন বিডিং ব্যবহারকারী এক্সচেঞ্জ এবং নেটওয়ার্কগুলো রিয়েল-টাইম ফিডব্যাক পেয়ে থাকে।

আপনার পূর্বে করা এক বা একাধিক বিডের ফলাফলের উপর ভিত্তি করে রিয়েল-টাইম ফিডব্যাক BidRequest.ext.bid_feedback ফাইলটিতে তথ্য যোগ করে। এই ফিডব্যাক ব্যবহার করে আপনি জানতে পারবেন যে, বিডটি নিলাম জিতেছে কিনা, বা নিলাম জেতার জন্য সর্বনিম্ন কত বিড করতে হতো। রিয়েল-টাইম ফিডব্যাক চালু করতে আপনার অ্যাকাউন্ট ম্যানেজারের সাথে যোগাযোগ করুন।

বিড রেসপন্স ফিডব্যাকে পাঠানো ডিফল্ট ফিল্ডগুলো ছাড়াও, আপনি BidResponse.seatbid.bid.ext.event_notification_token ফিল্ডটি ব্যবহার করে বিড রেসপন্সে কাস্টম ডেটাও পাঠাতে পারেন। event_notification_token হলো এমন একটি যথেচ্ছ ডেটা যা শুধুমাত্র বিডারই জানেন এবং যা ডিবাগিং-এ সাহায্য করতে পারে, যেমন: একটি নতুন ট্যাকটিকের প্রতিনিধিত্বকারী নতুন টার্গেটিং আইডি বা বিডিং আইডি, অথবা ক্রিয়েটিভের সাথে সম্পর্কিত মেটাডেটা যা শুধুমাত্র বিডারই জানেন। বিস্তারিত জানতে, OpenRTB এক্সটেনশনস প্রোটোকল বাফার ফাইলটি দেখুন।

যখন অথরাইজড বায়ার্স কোনো বিডারকে একটি বিড রিকোয়েস্ট পাঠায়, তখন বিডার একটি BidResponse পাঠিয়ে উত্তর দেয়। যদি বিডারের রিয়েল-টাইম ফিডব্যাক চালু করা থাকে, তাহলে পরবর্তী কোনো বিড রিকোয়েস্টে, অথরাইজড বায়ার্স একটি BidFeedback মেসেজের মাধ্যমে সেই উত্তরের উপর ফিডব্যাক পাঠায়।

message BidFeedback {
  // The unique id from BidRequest.id.
  optional string request_id = 1;

  // The status code for the ad. See creative-status-codes.txt in the
  // technical documentation for a list of ids.
  optional int32 creative_status_code = 2;

  // Deprecated. This field is not populated and will be removed after March,
  // 2025. If the bid won the auction, this is the price paid in your account
  // currency. If the bid participated in the auction but was out-bid, this
  // is the CPM that should have been exceeded in order to win. This is not
  // set if the bid was filtered prior to the auction, if the publisher or
  // winning bidder has opted out of price feedback or if your account has
  // opted out of sharing winning prices with other bidders. For first-price
  // auctions, minimum_bid_to_win is populated instead of this field.
  optional double price = 3 [deprecated = true];

  // The minimum bid value necessary to have won the auction, in your account
  // currency. If your bid won the auction, this is the second highest bid
  // that was not filtered (including the floor price). If your bid didn't win
  // the auction, this is the winning candidate's bid. This field will only be
  // populated if your bid participated in a first-price auction, and will not
  // be populated if your bid was filtered prior to the auction.
  optional double minimum_bid_to_win = 6;

  // Billable event rate multiplier that was applied to this bid during
  // ranking. The adjustment reflects the likelihood that your bid would
  // generate a billable event (namely, the ad renders successfully) if it won
  // the auction, relative to the probability that other bids generate a
  // billable event if they won the auction. This adjustment can be larger or
  // smaller than 1. This affects the final ranking in the auction only; in
  // particular, this multiplier does not affect the payment or whether the
  // bid clears any floor price.
  optional float billable_event_rate_bid_adjustment = 13 [default = 1];

  // When a publisher uses an RTB auction and waterfall-based SDK mediation on
  // the same query, the winner of the real-time auction must also compete in
  // a mediation waterfall (which is ordered by price) to win the impression.
  // If the bid participated in the auction and there was no waterfall, the
  // value of this field is 0. If the bid participated in the auction and
  // there was a waterfall, the value of this field is a price representing a
  // sample bid from the eligible mediation networks that were higher than the
  // auction winner, weighted by expected fill rate. This field can be used
  // in conjunction with minimum_bid_to_win to train bidding models. The CPM
  // is in your account currency.
  optional double sampled_mediation_cpm_ahead_of_auction_winner = 8;

  message EventNotificationToken {
    // The contents of the token.
    optional string payload = 1;
  }

  // The token included in the corresponding bid.
  optional EventNotificationToken event_notification_token = 4;

  // The creative ID included in the corresponding bid.
  optional string buyer_creative_id = 5;
}

এই বার্তা থেকে, আপনার প্রথম যে ফিল্ডটি পরীক্ষা করা উচিত তা হলো bid_feedback.creative_status_code ; আপনি creative-status-codes.txt ফাইলে কোডটির অর্থ খুঁজে পাবেন। মনে রাখবেন যে, আপনি যদি বিডটি জিতে যান, তাহলে আপনি প্রাইস ফিডব্যাক থেকে অপ্ট-আউট করতে পারেন। আরও তথ্যের জন্য, ‘কীভাবে অপ্ট-আউট করবেন’ দেখুন।

রিয়েল-টাইম ফিডব্যাকে বিড রিকোয়েস্ট আইডি এবং নিম্নলিখিতগুলির মধ্যে একটি অন্তর্ভুক্ত থাকে:

নিলামের ফলাফল রিয়েল-টাইম প্রতিক্রিয়া
ক্রেতা কোনো দরপত্র জমা দেননি। কিছুই না।
ক্রেতা একটি দর জমা দিয়েছিলেন যা নিলামে পৌঁছানোর আগেই বাদ পড়ে যায়। সৃজনশীল স্ট্যাটাস কোড ( creative-status-codes.txt )।
ক্রেতা দরপত্র জমা দিয়েছিলেন কিন্তু নিলামে হেরে যান। সৃজনশীল স্ট্যাটাস কোড 79 (নিলামে বেশি দাম পাওয়ায় পরাজিত)।
ক্রেতা একটি দরপত্র জমা দিয়েছিলেন যা নিলামে বিজয়ী হয়। ক্লিয়ারিং প্রাইস এবং ক্রিয়েটিভ স্ট্যাটাস কোড 1

একটি অ্যাপ ইম্প্রেশন এবং 83 ক্রিয়েটিভ স্ট্যাটাস কোডের জন্য, অ্যাপ পাবলিশার একটি মিডিয়েশন ওয়াটারফল ব্যবহার করে থাকতে পারেন এবং সেই কারণে বিজয়ী বিডটি পাবলিশারের পাসব্যাক ওয়াটারফল চেইনের অন্যান্য ডিমান্ডের সাথে প্রতিযোগিতা করত। বিড করার সময় কীভাবে sampled_mediation_cpm_ahead_of_auction_winner ব্যবহার করতে হয় তা জানুন

নমুনা

সমর্থিত প্রোটোকলগুলিতে দেখা যায় এমন রিয়েল-টাইম ফিডব্যাকের একটি নমুনা নিচে দেওয়া হলো:

ওপেনআরটিবি প্রোটোবাফ

ওপেনআরটিবি JSON

প্রথম-মূল্যের নিলামের জন্য একটি দরপত্র মডেল তৈরি করুন

ফার্স্ট-প্রাইস অকশনে বিড করার পর, যদি বিডটি অকশন থেকে ফিল্টার করা না হয়ে থাকে, তাহলে আপনি minimum_bid_to_win এবং sampled_mediation_cpm_ahead_of_auction_winner ফিল্ডগুলো সহ রিয়েল-টাইম ফিডব্যাক পাবেন। ইম্প্রেশনটি জেতার জন্য আপনার বিডটি আর কতটা বেশি বা কম হতে পারত, সে সম্পর্কে আপনার বিডিং লজিককে জানাতে এই সংকেতগুলো ব্যবহার করা যেতে পারে।

  • minimum_bid_to_win : রিয়েল-টাইম বিডিং নিলাম জেতার জন্য সর্বনিম্ন যে বিডটি করা যেত। আপনি যদি নিলামটি জিতে থাকেন, তবে এটিই হবে সর্বনিম্ন বিড যা করে আপনি জিততে পারতেন। আপনি যদি নিলামটি হেরে যান, তবে এটিই হবে বিজয়ী বিড।
  • নিলাম বিজয়ীর চেয়ে বেশি sampled_mediation_cpm_ahead_of_auction_winner : যদি মিডিয়েশন চেইনে অন্য নেটওয়ার্ক থাকে, তাহলে এই ফিল্ডের মান হবে নিলাম বিজয়ীর চেয়ে বেশি যোগ্য মিডিয়েশন নেটওয়ার্কগুলোর একটির নমুনা বিডের মূল্য, যা প্রত্যাশিত ফিল রেট দ্বারা ওয়েটেড করা হয়। যদি মিডিয়েশন চেইনের কোনো নেটওয়ার্কই পূরণ হবে বলে আশা করা না যায়, অথবা যদি পাবলিশার SDK মিডিয়েশন ব্যবহার না করে, তাহলে এর মান ০ সেট করা হবে।

এটি কীভাবে কাজ করে

minimum_bid_to_win এবং sampled_mediation_cpm_ahead_of_auction_winner এর সম্ভাব্য মানগুলো নির্ধারণে ব্যবহৃত গণনা পদ্ধতি বর্ণনা করার জন্য, আমাদের প্রথমে নিম্নলিখিত বিষয়গুলো সংজ্ঞায়িত করতে হবে:

  • নিম্নলিখিতটি মধ্যস্থতা শৃঙ্খলে থাকা CPM-গুলিকে অবরোহী ক্রমে উপস্থাপন করে:
    \[C_1, C_2, …, C_n\]
  • নিম্নলিখিতটি মেডিয়েশন চেইনে থাকা সিপিএমগুলোর সংশ্লিষ্ট ফিল রেটগুলো উপস্থাপন করে:
    \[f_1, f_2, …, f_n\]
  • নিম্নলিখিতটি হলো একটি ফাংশন যা মধ্যস্থতা শৃঙ্খল উপাদান থেকে প্রত্যাশিত CPM এবং এর সম্ভাবনা নির্ধারণ করতে ব্যবহৃত হয়। \(i\)প্রদত্ত ফিল রেটের উপর ভিত্তি করে:
    \(X_i = \{C_i\) সম্ভাবনা সহ \(f_i\); \(0\) সম্ভাবনা সহ \(1 - f_i\}\)
  • চূড়ান্ত বিজয়ী মধ্যস্থতা শৃঙ্খলটি হবে:
    \[\{C_1, C_2, …, C_K, W\}\]
    যেখানে \(W\) বিজয়ী দর, এবং \(C_K > W >= C_{K+1}\)
  • সংরক্ষিত মূল্য, বা সর্বনিম্ন সীমা, নিম্নরূপে চিহ্নিত করা হয় \(F\).
  • দ্বিতীয় সর্বোচ্চ দরকে এভাবে চিহ্নিত করা হয় \(R\).
নিলাম বিজয়ীর জন্য গণনা
মাঠ গণনা
minimum_bid_to_win
\(max\{F, R, X_{K+1}, …, X_n\}\)
sampled_mediation_cpm_ahead_
of_auction_winner
\(\{C_i\) সম্ভাবনা সহ \(\prod_{j=1}^{i-1}(1-f_j) \cdot f_i \div \prod_{j=1}^{K}(1-f_j)\}\)
জন্য \(1 <= i <= K\).

নিলামে পরাজিত ব্যক্তির জন্য গণনা
মাঠ গণনা
minimum_bid_to_win
\(max\{F, W\}\)
sampled_mediation_cpm_ahead_
of_auction_winner
\(max\{X_1, …, X_K\}\)

একটি সাধারণ মধ্যস্থতা শৃঙ্খলের উদাহরণ

ধরে নিন, একজন প্রকাশক নিম্নোক্তভাবে রিয়েল-টাইম বিডিং এবং একটি SDK মিডিয়েশন চেইন উভয়ই ব্যবহার করেন:

এসডিকে মধ্যস্থতা শৃঙ্খল প্রত্যাশিত সিপিএম পূরণের হার
নেটওয়ার্ক ১ \(C_1 = $3.00\)\(f_1 = 5\%\)
নেটওয়ার্ক ২ \(C_2 = $2.00\)\(f_2 = 45\%\)
নেটওয়ার্ক ৩ \(C_3 = $0.50\)\(f_3 = 80\%\)
নেটওয়ার্ক ৪ \(C_4 = $0.10\)\(f_4 = 85\%\)

RTB নিলামের ফলাফল হিসেবে নিম্নলিখিত বিষয়গুলো ধরে নিন:

আরটিবি নিলাম সিপিএম
নিলাম বিজয়ী (W) $১.০০
নিলামে দ্বিতীয় স্থানাধিকারী (আর) $০.০৫
সংরক্ষিত মূল্য / ফ্লোর (এফ) $0
যে দরটি নিলাম জিতেছে

একটি বিজয়ী বিডের জন্য minimum_bid_to_win এবং sampled_mediation_cpm_ahead_of_auction_winner এর মান ও সম্ভাব্যতা কীভাবে গণনা করা হয়, তার একটি উদাহরণ নিচে দেওয়া হলো।

minimum_bid_to_win সম্ভাবনা
\(max(F, R, C_3) = $0.50\)\(f_3 = 80\%\)
\(max(F, R, C_4) = $0.10\)\((1-f_3) \cdot f_4 = 17\%\)
\(max(F, R, 0) = $0.05\)\((1-f_3) \cdot (1-f_4) = 3\%\)
sampled_mediation_cpm_
ahead_of_auction_winner
সম্ভাবনা
\(C_1 = $3.00\)\(f_1 \div (1-(1-f_1) \cdot (1-f_2)) =~ 10.5\%\)
\(C_2 = $2.00\)\(((1-f_1) \cdot f_2) \div (1-(1-f_1) \cdot (1-f_2)) =~ 89.5\%\)
যে দরগুলো নিলামে হেরে গেছে

নিচে একটি উদাহরণ দেওয়া হলো যেখানে হেরে যাওয়া বিডগুলোর জন্য minimum_bid_to_win এবং sampled_mediation_cpm_ahead_of_auction_winner এর মান ও সম্ভাব্যতা গণনা করা হয়।

minimum_bid_to_win সম্ভাবনা
\(max(F, W) = $1.00\)\(100\%\)
sampled_mediation_cpm_
ahead_of_auction_winner
সম্ভাবনা
\(C_1 = $3.00\)\(f_1 = 5\%\)
\(C_2 = $2.00\)\((1-f_1) \cdot f_2 =~ 42.8\%\)
\(0\)\((1-f_1) \cdot (1-f_2) =~ 52.2\%\)

বিড সমতলকরণ

বিড ফ্ল্যাটেনিং বলতে একটি একক জটিল BidRequest একাধিক বিড রিকোয়েস্টে প্রক্রিয়াকরণ করাকে বোঝায়, যা আপনার অ্যাপ্লিকেশনে পাঠানো হয়। যখন একটি বিড রিকোয়েস্ট ফ্ল্যাটেন করা হয়, তখন আপনি বুঝতে পারবেন কোন বিড রিকোয়েস্টগুলো মূলটির অংশ ছিল, কারণ সেগুলোর BidRequest.ext.google_query_id ফিল্ডে একটি অভিন্ন মান থাকবে।

বিড ফ্ল্যাটেনিং ডিফল্টরূপে সক্রিয় থাকে, তবে আপনি যদি এটি নিষ্ক্রিয় করতে চান তবে আপনার অ্যাকাউন্ট ম্যানেজারের সাথে যোগাযোগ করতে পারেন।

বিজ্ঞাপনের ফর্ম্যাট

কিছু বিজ্ঞাপনের সুযোগ একাধিক ফরম্যাট গ্রহণ করতে পারে। বিড ফ্ল্যাটেনিং পদ্ধতিতে, প্রতিটি ফরম্যাট একটি স্বতন্ত্র বিড অনুরোধে পাঠানো হয়, যেখানে যোগ্য বিলিং আইডি-র মতো অ্যাট্রিবিউটগুলো অনুরোধে নির্দিষ্ট করা ফরম্যাটের সাথে প্রাসঙ্গিক থাকে।

নিম্নলিখিত ফরম্যাটযুক্ত দরপত্র অনুরোধগুলিকে একত্রিত করে স্বতন্ত্র দরপত্র অনুরোধ তৈরি করা হবে:

  • ব্যানার
  • ভিডিও
  • অডিও
  • স্থানীয়

বিজ্ঞাপন বিন্যাস সমতলকরণের উদাহরণ

নিম্নে অ্যাড ফরম্যাট ফ্ল্যাটেনিং ছাড়া একটি সরলীকৃত OpenRTB JSON বিড রিকোয়েস্টের উদাহরণ, সমতুল্য ফ্ল্যাটেন করা রিকোয়েস্টের সেটের সাথে তুলনা করে দেখানো হলো:

আগে থেকে সমতল করুন

পোস্ট-ফ্ল্যাটেন

ডিল

একজন নির্দিষ্ট বিডারের জন্য একটি বিজ্ঞাপনের সুযোগ ওপেন অকশন ছাড়াও বিভিন্ন ধরনের ডিলের ক্ষেত্রে প্রযোজ্য হতে পারে। ডিলের জন্য বিড ফ্ল্যাটেনিং চালু থাকলে, ওপেন অকশনের জন্য একটি এবং প্রতিটি নির্দিষ্ট-মূল্যের ডিলের জন্য আলাদা আলাদা বিড রিকোয়েস্ট পাঠানো হবে। বাস্তবে, অকশন এবং নির্দিষ্ট-মূল্যের ডিলের ধরনের মধ্যে বিজ্ঞাপনের সীমাবদ্ধতা ভিন্ন হতে পারে। উদাহরণস্বরূপ, একটি নির্দিষ্ট ভিডিও বিজ্ঞাপনের সুযোগ যা ওপেন অকশন এবং নির্দিষ্ট-মূল্যের ডিল উভয়ের জন্যই উপলব্ধ, সেক্ষেত্রে একজন বিডার উভয়ের জন্য আলাদা বিড রিকোয়েস্ট পাবেন, যেখানে বিজ্ঞাপনের সর্বোচ্চ সময়কাল এবং স্কিপেবল বিজ্ঞাপন অনুমোদিত কিনা, এই ধরনের সীমাবদ্ধতাগুলো ভিন্ন হতে পারে। ফলস্বরূপ, বিজ্ঞাপনের সুযোগে ফ্ল্যাটেনিং প্রয়োগ করলে আপনি ওপেন অকশন এবং নির্দিষ্ট-মূল্যের ডিলের জন্য বিজ্ঞাপনের সীমাবদ্ধতাগুলো আরও সহজে বুঝতে পারবেন।

এড়িয়ে যাওয়ার যোগ্যতা এবং ভিডিওর সময়কাল

OpenRTB স্পেসিফিকেশনে স্কিপযোগ্য এবং স্কিপ-অযোগ্য বিজ্ঞাপনের সর্বোচ্চ ভিডিও সময়কাল নির্দিষ্ট করার জন্য আলাদা কোনো ফিল্ড নেই। গুগলের ইমপ্লিমেন্টেশনটি বিদ্যমান BidRequest.video.maxduration এবং BidRequest.video.skip ফিল্ড ব্যবহার করে বিড ফ্ল্যাটেনিংয়ের মাধ্যমে এগুলোর মধ্যে পার্থক্য করে।

নিম্নলিখিতটি একটি উদাহরণ যেখানে দেখানো হয়েছে কিভাবে ভিডিও ইনভেন্টরি ফ্ল্যাট করা হয়, যখন একটি নন-স্কিপেবল বিজ্ঞাপনের সর্বোচ্চ সময়কাল 15 এবং একটি স্কিপেবল বিজ্ঞাপনের সর্বোচ্চ সময়কাল 60 হয়।

উদাহরণ max_ad_duration skip (সত্য অথবা মিথ্যা)
সমতলকরণ ছাড়া মূল অনুরোধ 15 true
ফ্ল্যাট করা অনুরোধ #১: এড়িয়ে যাওয়া যাবে না 15 false
ফ্ল্যাট করা অনুরোধ #২: এড়িয়ে যাওয়ার যোগ্য 60 true

স্কিপযোগ্য ভিডিওর সময়কালের বিড অনুরোধের সমতলীকরণ শুধুমাত্র তখনই ঘটবে যখন এই শর্তগুলো পূরণ হবে:

  • অনুরোধটি ভিডিওর অনুমতি দেয়।
  • স্কিপযোগ্য এবং স্কিপ-অযোগ্য উভয় প্রকার ভিডিওই অনুমোদিত, এবং এগুলোর সর্বোচ্চ সময়সীমার মান ভিন্ন।
  • এই অনুরোধটি ব্যক্তিগত নিলাম বা উন্মুক্ত নিলামের জন্য যোগ্য।

আপনার টেকনিক্যাল অ্যাকাউন্ট ম্যানেজারের সাথে যোগাযোগ করে আপনি এই ধরনের ফ্ল্যাটেনিং থেকে অপ্ট আউট করতে পারেন। যখন এটি নিষ্ক্রিয় করা হয়, এবং প্রকাশক স্কিপ করার যোগ্যতার উপর ভিত্তি করে ভিন্ন ভিন্ন সর্বোচ্চ সময়কাল সহ স্কিপযোগ্য এবং অ-স্কিপযোগ্য উভয় ধরনের ভিডিও বিজ্ঞাপনের অনুমতি দেয়, তখন skip true তে সেট করা হবে এবং maxduration স্কিপযোগ্য ও অ-স্কিপযোগ্য বিজ্ঞাপনের সীমাবদ্ধতার মধ্যে যেটি কম, সেই সময়কাল হিসেবে সেট করা হবে।

ভিডিও পড

একাধিক বিজ্ঞাপনের সুযোগসহ একটি ভিডিও পডের জন্য বিডের অনুরোধগুলোকে এমনভাবে একত্রিত করা হয়, যাতে প্রতিটি বিডের অনুরোধ সেই পডের একটি স্বতন্ত্র বিজ্ঞাপনের সুযোগের জন্য হয়। এর ফলে আপনি একটি নির্দিষ্ট পডের জন্য একাধিক বিজ্ঞাপনের সুযোগে বিড করতে পারেন।

উন্মুক্ত পরিমাপ

ওপেন মেজারমেন্ট আপনাকে এমন তৃতীয়-পক্ষ বিক্রেতাদের নির্দিষ্ট করার সুযোগ দেয়, যারা মোবাইল অ্যাপ পরিবেশে পরিবেশিত বিজ্ঞাপনের জন্য স্বাধীন পরিমাপ ও যাচাইকরণ পরিষেবা প্রদান করে।

কোনো পাবলিশার বিড রিকোয়েস্টে ওপেন মেজারমেন্ট সাপোর্ট করে কিনা, তা আপনি পাবলিশার-এক্সক্লুডেবল ক্রিয়েটিভ অ্যাট্রিবিউটস- এর মধ্যে থাকা OmsdkType: OMSDK 1.0 অ্যাট্রিবিউটটি অ্যাড অপরচুনিটি থেকে বাদ দেওয়া হয়েছে কিনা তা পরীক্ষা করে দেখতে পারেন। ফরম্যাটের উপর নির্ভর করে, এটি ব্যানার বা ভিডিওর জন্য battr অ্যাট্রিবিউটের অধীনে পাওয়া যাবে।

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

নমুনা দরপত্র অনুরোধ

নিম্নলিখিত বিভাগগুলিতে বিভিন্ন ধরণের বিজ্ঞাপনের জন্য নমুনা বিড অনুরোধ দেখানো হয়েছে।

অ্যাপ ব্যানার

ওপেনআরটিবি প্রোটোবাফ

ওপেনআরটিবি JSON

অ্যাপ ইন্টারস্টিশিয়াল

ওপেনআরটিবি প্রোটোবাফ

ওপেনআরটিবি JSON

অ্যাপ ইন্টারস্টিশিয়াল ভিডিও

ওপেনআরটিবি প্রোটোবাফ

ওপেনআরটিবি JSON

অ্যাপ নেটিভ

ওপেনআরটিবি প্রোটোবাফ

ওপেনআরটিবি JSON

ওয়েব ভিডিও

ওপেনআরটিবি প্রোটোবাফ

ওপেনআরটিবি JSON

বিনিময় দরদাতার জন্য মোবাইল ওয়েব ব্যানার

ওপেনআরটিবি প্রোটোবাফ

ওপেনআরটিবি JSON

মাল্টিফরম্যাট নেটিভ এবং ভিডিও

ওপেনআরটিবি প্রোটোবাফ

ওপেনআরটিবি JSON