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

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

পার্স অনুরোধ

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

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

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

IAB কন্টেন্ট ট্যাক্সোনমি 1.0

// 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": {
    ...
  }
}
      

অভিধান ফাইল

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

দরদাতার URL ম্যাক্রো

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

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

BidRequest.user.id এ পাওয়া Google ব্যবহারকারী আইডি দিয়ে প্রতিস্থাপিত। উদাহরণস্বরূপ, অনুরোধের সময় দরদাতার URL 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 পূরণ করা হয়েছে কিনা তার উপর ভিত্তি করে।

%%HOSTED_MATCH_DATA%%

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

%%MOBILE_IS_APP%%

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

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

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

mbappgewtimrzgyytanjyg4888888.com

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

আপনি একটি অনলাইন ডিকোডার ব্যবহার করতে পারেন, তবে আপনাকে অক্ষরগুলিকে বড় হাতের অক্ষরে লিখতে হবে এবং পরবর্তী 8 s-এর পরিবর্তে = মান ব্যবহার করতে হবে।

তাই এই মানটি ডিকোড করা হচ্ছে:

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

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

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

লেনদেনের 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” এ সেট করা থাকলে আপনি নির্ধারণ করতে পারবেন যে মানগুলি প্রকাশকের পাঠানো কী-মান জোড়া।

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

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

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

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

দরপত্রের অনুরোধের উদাহরণ

নিম্নলিখিত উদাহরণগুলি Protobuf এবং 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;

  // Deprecated. This field will be removed in February 2026.
  // The minimum bid value necessary to have won the server-side component of
  // the overall auction given that there was also an interest group bidding
  // component to the overall auction which ran using the Protected Audience
  // API. The value is expressed in CPM of the buyer account currency. The
  // minimum bid to win for the overall auction, including bids from the
  // server-side and the on-device interest group components, is populated in
  // the minimum_bid_to_win field of the same BidFeedback object.
  optional double sscminbidtowin = 14 [deprecated = true];

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

  // Possible types of bid response feedback objects.
  enum FeedbackType {
    FEEDBACK_TYPE_UNSPECIFIED = 0;

    // Feedback for a bid that was submitted on a bid response.
    BID_FEEDBACK = 1;

    // Feedback for an interest group buyer submitted on a bid response to
    // particpate in an interest group bidding component of the auction run
    // using the Protected Audience API.
    INTEREST_GROUP_BUYER_FEEDBACK = 2;
  }

  // Deprecated. This field will be removed in February 2026.
  // The type of the BidFeedback message. Google will send separate
  // BidFeedback objects for:
  // a) Each bid submitted on a bid response
  // b) Each buyer submitted on a bid response to particpate in an interest
  // group bidding component of the auction run using the Protected Audience
  // API.
  optional FeedbackType feedbacktype = 15 [deprecated = true];

  // Deprecated. This field will be removed in February 2026.
  // Origin of an interest group buyer that was included in the bid response.
  // This field is populated only for feedback where a bidder opted in an
  // interest group buyer to participate in the interest group bidding
  // component of the overall auction run using the Protected Audience API.
  // To learn more about origins, see https://www.rfc-editor.org/rfc/rfc6454.
  // To learn more about interest group bidding and the Protected Audience
  // API, see
  // https://developers.google.com/authorized-buyers/rtb/fledge-origin-trial.
  optional string buyerorigin = 16 [deprecated = true];

  // Deprecated. This field will be removed in February 2026.
  // The status code for the submitted interest group buyer. This field is
  // only populated in the feedback for an interest group buyer that a bidder
  // requested to enter into the interest group auction through the bid
  // response. Individual creative status codes of bids submitted by the buyer
  // in the on-device interest group auction are not available. See
  // https://storage.googleapis.com/adx-rtb-dictionaries/interest-group-buyer-status-codes.txt
  // for a list of interest group buyer status codes.
  optional int32 igbuyerstatus = 17 [deprecated = true];
}

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

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

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

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

নমুনা

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

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

ওপেনআরটিবি জেএসএন

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

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

  • minimum_bid_to_win : রিয়েল-টাইম বিডিং নিলামে জেতার জন্য সর্বনিম্ন যে দর দর দেওয়া যেত। যদি আপনি নিলামে জিতে যান, তাহলে এটি হবে জয়ের সময় আপনার দর দরের মধ্যে সর্বনিম্ন দর। যদি আপনি নিলামে হেরে যান, তাহলে এটি হবে বিজয়ী দর।
  • sampled_mediation_cpm_ahead_of_auction_winner : যদি মধ্যস্থতা শৃঙ্খলে অন্য নেটওয়ার্ক থাকে, তাহলে এই ক্ষেত্রের মান হল একটি মূল্য যা যোগ্য মধ্যস্থতা নেটওয়ার্কগুলির একটির নমুনা বিডের প্রতিনিধিত্ব করে যা নিলাম বিজয়ীর চেয়ে বেশি ছিল, প্রত্যাশিত পূরণের হারের উপর ভিত্তি করে। যদি মধ্যস্থতা শৃঙ্খলে থাকা কোনও নেটওয়ার্ক পূরণ না করে, অথবা প্রকাশক যদি SDK মধ্যস্থতা ব্যবহার না করে তবে এটি 0 তে সেট করা হবে।

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

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

  • নিম্নোক্তটি মধ্যস্থতা শৃঙ্খলে CPM গুলিকে অবরোহী ক্রমে উপস্থাপন করে:
    \[C_1, C_2, …, C_n\]
  • মধ্যস্থতা শৃঙ্খলে CPM-এর জন্য সংশ্লিষ্ট পূরণের হারগুলি নিম্নলিখিতটি উপস্থাপন করে:
    \[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 মধ্যস্থতা চেইন উভয়ই নিম্নরূপ ব্যবহার করেন:

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) $১.০০
নিলাম রানার-ইউপি (আর) $০.০৫
রিজার্ভ মূল্য / ফ্লোর (F) $০
নিলামে জিতেছে এমন দরপত্র

একটি বিড জিতেছে তার জন্য 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 স্পেসিফিকেশনে স্কিপেবল এবং নন-স্কিপেবল বিজ্ঞাপনের সর্বোচ্চ ভিডিও সময়কাল নির্দিষ্ট করার জন্য আলাদা ক্ষেত্র নেই। Google এর বাস্তবায়ন বিদ্যমান 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 বৈশিষ্ট্যটি বিজ্ঞাপনের সুযোগ থেকে বাদ পড়েছে কিনা তা পরীক্ষা করে আপনি বিড অনুরোধে Open Measurement সমর্থন করে কিনা তা নির্ধারণ করতে পারেন। ফর্ম্যাটের উপর নির্ভর করে এটি Banner বা Video এর battr বৈশিষ্ট্যের অধীনে পাওয়া যাবে।

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

নমুনা বিড অনুরোধ

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

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

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

ওপেনআরটিবি জেএসএন

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

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

ওপেনআরটিবি জেএসএন

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

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

ওপেনআরটিবি জেএসএন

অ্যাপ নেটিভ

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

ওপেনআরটিবি জেএসএন

ওয়েব ভিডিও

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

ওপেনআরটিবি জেএসএন

এক্সচেঞ্জ বিডারের জন্য মোবাইল ওয়েব ব্যানার

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

ওপেনআরটিবি জেএসএন

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

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

ওপেনআরটিবি জেএসএন