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

BidResponse

قواعد کلی​

  • برای «بدون پیشنهاد» یک BidResponse بدون seatbid برگردانید.
  • هر bid باید impid برابر با imp.id درخواست داشته باشد. impid خالی یا غیرعددی نادیده گرفته می‌شود.
  • price قیمت CPM به ریال است و باید ≥ bidfloor باشد؛ در غیر این صورت bid حذف می‌شود.
  • حراج first price است: اگر برنده شوید، همان price پیشنهادی شما مبنای محاسبه است.
  • پاسخ‌هایی که بعد از ۲۰۰ms برسند کنار گذاشته می‌شوند.

نمونه‌ی پاسخ​

پاسخ به نمونه‌ی درخواست: عضو اول bid برای جایگاه همسان و عضو دوم برای جایگاه بنر است.

{
"id": "8141592653589793",
"bidid": "304d99ea-d78f-4385-accc-de8faa9f183f",
"cur": "IRR",
"seatbid": [
{
"seat": "advertiser-42",
"bid": [
{
"id": "a3cdf982-198f-47d5-8a09-852e7ebd6c72",
"impid": "1486",
"price": 750000,
"nurl": "https://dsp.example.com/win?bid=a3cdf982",
"burl": "https://dsp.example.com/bill?bid=a3cdf982",
"lurl": "https://dsp.example.com/loss?bid=a3cdf982",
"adid": "ad-1234",
"adm_native": {
"assets": [
{"id": 1, "title": {"text": "عنوان تبلیغ"}},
{"id": 2, "img": {"url": "https://cdn.example.com/main.jpg"}},
{"id": 3, "img": {"url": "https://cdn.example.com/logo.png"}},
{"id": 4, "img": {"url": "https://cdn.example.com/icon.png"}},
{"id": 5, "data": {"value": "f2ef1f"}},
{"id": 8, "data": {"value": "خرید"}},
{"id": 9, "data": {"value": "نام برند"}}
],
"link": {
"url": "https://advertiser.example.com/landing",
"clicktrackers": ["https://dsp.example.com/click?bid=a3cdf982"]
}
}
},
{
"id": "b71e0c55-4c1a-4f0e-9d2b-6a0f3e5d9a11",
"impid": "1521",
"price": 801000,
"nurl": "https://dsp.example.com/win?bid=b71e0c55",
"burl": "https://dsp.example.com/bill?bid=b71e0c55",
"lurl": "https://dsp.example.com/loss?bid=b71e0c55",
"adid": "ad-5678",
"w": 300,
"h": 250,
"adm": "<a href=\"https://advertiser.example.com/landing\"><img src=\"https://cdn.example.com/banner.jpg\"/></a>"
}
]
}
]
}

فیلدهای پاسخ​

فیلدتوضیح
idشناسه‌ی درخواستی که این پاسخ برای آن است (همان BidRequest.id).
bididشناسه‌ی این پاسخ در سیستم شما.
curواحد پول؛ همیشه IRR.
seatbid[]پیشنهادها، دسته‌بندی‌شده بر اساس تبلیغ‌کننده: برای هر تبلیغ‌کننده یک seatbid.
seatbid[].seatشناسه‌ی تبلیغ‌کننده در سیستم شما.
seatbid[].bid[]پیشنهادهای این تبلیغ‌کننده (جدول زیر).

فیلدهای Bid​

فیلدالزامیتوضیح
id✅شناسه‌ی bid؛ برای هر تبلیغ، هر جایگاه و هر درخواست یکتا باشد.
impid✅شناسه‌ی Imp.
price✅CPM به ریال: هم در حراج استفاده می‌شود و هم در تراکنش. به ازای هر نمایش، price ÷ ۱۰۰۰ ثبت می‌شود.
adm_nativeNativeNativeResponse (برای جایگاه‌های native و موبایل).
admBannerHTML تبلیغ بنری.
adidBannerشناسه‌ی یکتای تبلیغ؛ برای بنر الزامی است.
w, hعرض و ارتفاع تصویر بنر.
nurlWin notice. اعلان‌ها
burlBilling notice.
lurlLoss notice.
bundleنام پکیج اپ (برای تبلیغات نصب اپ در موبایل).

پاسخ Native​

bid.adm_native = NativeResponse {
assets: [
{ id: 1, title: { text: "عنوان تبلیغ" } },
{ id: 2, img: { url: "https://cdn.example.com/creative.jpg" } },
{ id: 3, img: { url: "https://cdn.example.com/logo.png" } },
{ id: 5, data: { value: "f2ef1f" } },
{ id: 8, data: { value: "خرید" } },
{ id: 9, data: { value: "نام برند" } }
],
link: {
url: "https://advertiser.example.com/landing",
clicktrackers: ["https://dsp.example.com/click?bid=..."]
}
}
  • link.url آدرس صفحه‌ی مقصد است.
  • link.clicktrackers هنگام کلیک کاربر فراخوانی می‌شوند. اعلان‌ها
  • id هر asset باید با id درخواست یکی باشد (جدول assetها).

پاسخ Banner​

adm یک HTML است که یکتانت از آن اولین <a href> را به‌عنوان مقصد کلیک و اولین <img src> را به‌عنوان تصویر بنر استخراج می‌کند. اسکریپت و iframe داخل adm اجرا نمی‌شوند.

<a href="https://advertiser.example.com/landing">
<img src="https://cdn.example.com/banner-300x250.jpg" width="300" height="250" />
</a>

ویدیو در جایگاه‌های همسان​

در جایگاه‌هایی که امکان نمایش ویدیو دارند، سه asset ویدیو، تصویر و عنوان با required: false درخواست می‌شوند. انتظار داریم یا فقط ویدیو برگردد یا فقط تصویر و عنوان. اگر هیچ‌کدام نیاید، یا هم ویدیو و هم تصویر برگردد، bid حذف می‌شود.

asset ویدیو (id: 10) در video.vasttag یک رشته‌ی VAST XML معتبر است:

  • یک Ad از نوع InLine با یک creative از نوع Linear.
  • Linear باید Duration و حداقل یک MediaFile داشته باشد؛ فقط اولین MediaFile استفاده می‌شود.
  • آدرس ویدیو باید HLS با پسوند .m3u8 باشد.
مسیر در VASTتوضیح
Linear > Durationمدت ویدیو.
MediaFile (CDATA)آدرس HLS ویدیو.
MediaFile[@width]عرض ویدیو.
MediaFile[@height]ارتفاع ویدیو.
MediaFile[@bitrate]bitrate ویدیو.
<VAST version="3.0">
<Ad>
<InLine>
<Creatives>
<Creative>
<Linear>
<Duration>00:00:30</Duration>
<MediaFiles>
<MediaFile bitrate="800" width="1080" height="1920">
<![CDATA[https://cdn.example.com/video.m3u8]]>
</MediaFile>
</MediaFiles>
</Linear>
</Creative>
</Creatives>
</InLine>
</Ad>
</VAST>

دلایل رایج حذف bid​

دلیلراه‌حل
price < bidfloorقیمت را بالاتر از کف قیمت بگذارید.
impid خالی یا نامعتبرهمان imp.id را برگردانید.
asset الزامی نیامدهassetهای الزامی را بررسی کنید.
نوع asset اشتباه (مثلاً data به جای img)نوع را مطابق درخواست بفرستید.
جایگاه مقاله با ویدیو: هم تصویر و هم ویدیو (یا هیچ‌کدام)دقیقاً یکی را بفرستید.
VAST نامعتبر یا بدون MediaFileVAST inline معتبر بفرستید.
بنر بدون <a href>، <img src> یا adidهر سه را بفرستید.
تخفیف خارج از ۱ تا ۹۹ یا قیمت غیرمثبتاین assetها نادیده گرفته می‌شوند (bid حذف نمی‌شود).