پرش به مطلب اصلی

BidRequest

هر بار که صفحه‌ای از سایت یک نمایش‌دهنده باز می‌شود و امکان نمایش تبلیغ وجود دارد، یک BidRequest به DSPها ارسال می‌شود. هر درخواست یک یا چند Imp (هر جایگاه یک Imp) دارد.

نمونه‌ی درخواست​

در این نمونه، عضو اول imp یک جایگاه همسان (native) و عضو دوم یک جایگاه بنر است:

{
"id": "8141592653589793",
"imp": [
{
"id": "1486",
"tagid": "1486",
"bidfloor": 10000,
"bidfloorcur": "IRR",
"native": {
"request_native": {
"plcmtcnt": 6,
"assets": [
{"id": 1, "required": true, "title": {"len": 70}},
{"id": 2, "required": true, "img": {"type": 3, "w": 300, "h": 450}},
{"id": 3, "required": false, "img": {"type": 2}},
{"id": 4, "required": false, "img": {"type": 1}},
{"id": 5, "required": false, "data": {"type": 502}},
{"id": 6, "required": false, "data": {"type": 501}},
{"id": 7, "required": false, "data": {"type": 6}},
{"id": 8, "required": false, "data": {"type": 12}},
{"id": 9, "required": false, "data": {"type": 1}}
]
}
}
},
{
"id": "1521",
"tagid": "1521",
"bidfloor": 21000,
"bidfloorcur": "IRR",
"banner": {"w": 300, "h": 250}
}
],
"at": 1,
"tmax": 200,
"cur": ["IRR"],
"device": {
"ua": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:85.0) Gecko/20100101 Firefox/85.0",
"ip": "81.90.149.130",
"w": 1920,
"h": 1080,
"dnt": false,
"devicetype": 2,
"os": "OS_TYPE_WINDOWS",
"osv": "OS_VERSION_OTHER",
"make": "DEVICE_BRAND_ASUS",
"geo": {"country": "IRN", "region": "23"}
},
"user": {"id": "3545f8bf-fc9d-4950-4668-176bb2bf434c"},
"site": {
"publisher": {"id": "yn-rtb", "name": "Yektanet", "domain": "yektanet.com"}
}
}
اطلاع

درخواست‌ها با gRPC و Protocol Buffers ارسال می‌شوند؛ JSON بالا فقط برای خوانایی است و نام فیلدها همان نام‌های openrtb.proto است.

فیلدهای سطح بالا​

فیلدمقدار
idشناسه‌ی یکتای درخواست (عدد به‌صورت رشته).
imp[]جایگاه‌های پیشنهادی؛ پایین را ببینید.
atFIRST_PRICE (۱).
tmax۲۰۰ میلی‌ثانیه.
cur["IRR"]
site یا appsite برای ترافیک وب، app برای ترافیک اپ (ادیوری).
deviceاطلاعات دستگاه.
user.idوب: شناسه‌ی کاربر یکتانت. اپ: Google Advertising ID.

Imp​

فیلدمقدار
idشناسه‌ی جایگاه. impid در پاسخ باید دقیقاً همین مقدار باشد.
tagidهمان شناسه‌ی جایگاه.
bidfloorحداقل قیمت (CPM، ریال). پیشنهادهای کمتر از آن حذف می‌شوند.
bidfloorcurIRR
native / bannerبسته به نوع جایگاه، یکی از این دو (پایین).
instltrue برای جایگاه‌های میان‌صفحه‌ای و app open موبایل.

Native​

imp.native.request_native یک NativeRequest است. plcmtcnt تعداد اسلات‌های جایگاه است: می‌توانید تا همین تعداد bid برای آن imp برگردانید. هر asset با id ثابت درخواست می‌شود و در پاسخ باید با همان id برگردد:

idAssetنوعتوضیح
۱Titletitle (len ≤ ۷۰)عنوان تبلیغ
۲Main imageimg type=MAINوب: ۳۰۰×۴۵۰. موبایل: حداقل ۶۴۰×۳۶۰، image/jpeg یا image/gif
۳Logoimg type=LOGOلوگوی تبلیغ‌کننده، در ابعاد ۳۲۰×۸۰
۴Icon / watermarkimg type=ICONآیکون، در ابعاد ۱۰۰×۱۰۰
۵Colordata type=COLORرنگ دکمه‌ی CTA، کد hex بدون # (مثلاً f2ef1f)
۶Discountdata type=DISCOUNTدرصد تخفیف، عدد صحیح بین ۱ و ۹۹
۷Pricedata type=PRICEقیمت به ریال، عدد صحیح مثبت
۸CTA textdata type=CTATEXTمتن دکمه
۹Sponsoreddata type=SPONSOREDنام برند
۱۰Videovideoفقط در جایگاه‌های مقاله، برای DSPهای فعال‌شده
۱۱Descriptiondata type=DESCتوضیح (موبایل)
۱۲Network logoimg type=LOGOلوگوی شبکه‌ی DSP؛ فقط برای DSPهایی که نمایش لوگوی خودشان را خواسته‌اند

assetهای الزامی در پاسخ:

  • Native وب: 1 (عنوان) و 2 (تصویر). بقیه اختیاری‌اند، اما اگر ارسال شوند نوعشان باید درست باشد.
  • جایگاه مقاله با ویدیو: دقیقاً یکی از 2 (تصویر) یا 10 (ویدیو). اگر تصویر برگردد، عنوان هم الزامی است.
  • موبایل (اپ): 1، 2، 4، 8، 9 و 11 الزامی‌اند.
ویدیو

جایگاه‌های موبایل: video/mp4 یا video/quicktime، ۳ تا ۶۰ ثانیه، VAST 3.0، progressive. جایگاه‌های مقاله‌ی وب: application/x-mpegURL (HLS)، ۱ تا ۶۰۰ ثانیه، VAST 3.0، streaming. در هر دو حالت ویدیو باید با vasttag (VAST inline با حداقل یک Linear و یک MediaFile) برگردد. ویدیوی Wrapper پشتیبانی نمی‌شود.

imp.banner شامل w و h جایگاه است. پاسخ در adm یک HTML برمی‌گردد (پایین را ببینید).

Site (ترافیک وب)​

فیلدمقدار
idشناسه‌ی ناشر در یکتانت.
domainدامنه‌ی اصلی صفحه (مثلاً sub.example.com ← example.com).
pageآدرس صفحه (در AMP فقط دامنه).
content.titleعنوان صفحه.
searchتوضیحات صفحه.
catدسته‌بندی IAB صفحه (v2).
publisherهمیشه یکتانت: {id: "yn-rtb", name: "Yektanet", domain: "yektanet.com"}

App (ترافیک اپ)​

فیلدمقدار
idشناسه‌ی ناشر.
nameنام ناشر.
publisherهمیشه یکتانت (مانند بالا).
اطلاع

بسته به قرارداد، ممکن است اطلاعات ناشر (site.id، domain، page و…) برای برخی DSPها ارسال نشود. در این حالت فقط publisher یکتانت پر است.

Device​

فیلدمقدار
uaUser-Agent
ipIP کاربر
w, hابعاد صفحه
dntDo-Not-Track
devicetypePERSONAL_COMPUTER (دسکتاپ) یا MOBILE (وب موبایل و اپ)
os, osv, makeسیستم‌عامل، نسخه و برند دستگاه
geo.countryکشور؛ همیشه IRN.
geo.regionکد استان طبق جدول زیر (ISO 3166-2:IR).

کدهای استان​

geo.regionاستان
00مرکزی
01گیلان
02مازندران
03آذربایجان شرقی
04آذربایجان غربی
05کرمانشاه
06خوزستان
07فارس
08کرمان
09خراسان رضوی
10اصفهان
11سیستان و بلوچستان
12کردستان
13همدان
14چهارمحال و بختیاری
15لرستان
16ایلام
17کهگیلویه و بویراحمد
18بوشهر
19زنجان
20سمنان
21یزد
22هرمزگان
23تهران
24اردبیل
25قم
26قزوین
27گلستان
28خراسان شمالی
29خراسان جنوبی
30البرز