این راهنما منابع عیبیابی RTB را پوشش میدهد، که به شما امکان میدهد بهصورت برنامهریزی به معیارهای کمپین مناقصه بلادرنگ دسترسی داشته باشید که از طریق ابزار RTB Breakout موجود در رابط کاربری مجاز خریداران نیز در معرض دید قرار میگیرند. اینها شامل bidders.filterSets
، bidders.accounts.filterSets
، و همه منابع تحت آنها به صورت سلسله مراتبی است.
با استفاده از معیارهای منابع عیبیابی RTB، میتوانید بینشهایی درباره فرصتهای از دست رفته برای به دست آوردن نمایشها به دست آورید که میتواند به شما در بهینهسازی کمپین پیشنهادی خود در زمان واقعی کمک کند.
تنظیمات ساختار و سبک API
منابع عیبیابی RTB چند تغییر را برای نشان دادن صریح مالکیت و دسترسی، ارائه کنترل دقیقتر بر دادههای بازگرداندهشده توسط API و همسویی بهتر با شیوههای طراحی Google API ایجاد میکنند.
منابع در سطح پیشنهاد دهنده و سطح حساب
منابع هم بر اساس bidders
و هم bidders.accounts
ساختار می شوند. اینها به شما امکان میدهند مشخص کنید که آیا تماس API یک پیشنهاد دهنده (که به عنوان حساب والد نیز شناخته میشود) و همه حسابهای فرزند مرتبط یا حسابهای خریدار مجاز فردی را هدف قرار میدهد. در زمینه عیبیابی RTB، منابعی که تحت bidders.filterSets
ساختار یافتهاند، معیارهای انبوهی را برای پیشنهاددهنده داده شده و همه حسابهای فرزند مرتبط برمیگردانند. در مقابل، مواردی که تحت bidders.accounts.filterSets
هستند، صرف نظر از اینکه حساب پیشنهادی یا فرزند باشد، معیارهای حساب مشخص شده را برمیگردانند.
توجه: حسابهایی که مناقصه خود را به خریدار دیگری واگذار میکنند، حسابهای پیشنهاددهنده نیستند و در نتیجه نمیتوانند به منابع سطح مناقصهگر دسترسی داشته باشند. علاوه بر این، حسابهای غیر پیشنهاددهنده نمیتوانند به منابع impressionMetrics
، filteredBidResponses
، bidResponseErrors
و bidResponsesWithoutBids
در سطح حساب دسترسی داشته باشند.
معرفی نام منابع به عنوان شناسه های منحصر به فرد
نام منابع به جای شناسه های عدد صحیح یا رشته ای به عنوان شناسه های منحصر به فرد استفاده می شود. هنگام ایجاد یک نمونه جدید از یک نوع منبع معین، اکنون باید یک نام منبع نسبی را با استفاده از مسیر URI منبع و به دنبال آن شناسه منبع ترجیحی مشخص کنید. در زیر نمونه هایی از نام های مرتبط با منابع عیب یابی RTB آورده شده است:
منبع | مثال نام |
---|---|
bidders.filterSets | bidders/12345678/filterSets/fset_1 |
bidders.accounts.filterSets | bidders/12345678/accounts/87654321/filterSets/fset_2 |
توجه: شناسه منبع مشخص شده برای bidders
در نام باید شناسه حساب خریداران مجاز پیشنهاد دهنده باشد. برای accounts
، شناسه منبع باید شناسه حساب پیشنهاد دهنده یا یک حساب فرزند تحت مدیریت آن باشد. اگر نمیدانید کدام حسابهای Authorized Buyers با حساب Google شما مرتبط هستند، میتوانید از روش accounts.list برای پیدا کردن آنها استفاده کنید.
مجموعه های فیلتر
مجموعه فیلتر نمایشی از گزینه های فیلتر موجود است و می تواند در سطح مناقصه یا حساب ایجاد شود. برای فیلتر کردن نتایج فهرست منابع عیبیابی RTB که معیارهای کمپینهای پیشنهادی بیدرنگ شما را بازیابی میکنند، استفاده میشود.
فیلتر اعمال شده هنگام بازیابی معیارها، تقاطع هر فیلتر در مجموعه فیلتر مشخص شده است. فیلترهای لیست، مانند platforms
، به عنوان اتحاد هر یک از موارد در لیست تفسیر می شوند.
مجموعه فیلترهای پیشنهاد دهنده و سطح حساب متمایز هستند و فقط از سطحی که در آن ایجاد شده اند قابل دسترسی هستند - صرف نظر از حساب استفاده شده برای ایجاد آنها. مجموعههای فیلتر اشتراکگذاری مناقصهدهنده و حساب فرزند در سطح حساب ایجاد میشوند، در حالی که فقط یک پیشنهاددهنده میتواند به منابع در سطح مناقصه دسترسی داشته باشد. جدول زیر به طور خلاصه نشان می دهد که چگونه حساب های پیشنهاد دهنده و فرزند می توانند به منابع در هر سطح دسترسی داشته باشند:
bidders.filterSets | bidders.accounts.filterSets | |
---|---|---|
حساب پیشنهاد دهنده | یک تماس API که فقط بر مجموعه فیلترهای سطح پیشنهاد دهنده تأثیر می گذارد. | یک تماس API که فقط مجموعههای فیلتر در سطح حساب را تحت تأثیر قرار میدهد. |
حساب کودک | این فراخوانی API یک پاسخ خطا را برمیگرداند. | یک تماس API که فقط مجموعههای فیلتر در سطح حساب را تحت تأثیر قرار میدهد. |
یک مجموعه فیلتر ایجاد کنید
هنگام ایجاد یک مجموعه فیلتر، باید یک بازه زمانی را به صورت relativeDateRange
، absoluteDateRange
یا realtimeTimeRange
مشخص کنید. هنگام بازیابی معیارها، رفتار پیش فرض این است که همه داده ها برای کل محدوده زمانی ارائه شوند. اگر میخواهید یک تفکیک سری زمانی در محدوده زمانی دریافت کنید، میتوانید timeSeriesGranularity
برای نشان دادن بازههای HOURLY
یا DAILY
مشخص کنید.
اگر فقط به یک مجموعه فیلتر برای مدت کوتاهی نیاز دارید، میتوانید پارامتر query isTransient
را روی true
تنظیم کنید. این نشان می دهد که مجموعه فیلتر گذرا است، به این معنی که به طور نامحدود ادامه نخواهد داشت. مجموعههای فیلتر گذرا حداقل به مدت یک ساعت پس از ایجاد در دسترس خواهند بود، اما در نهایت حذف خواهند شد. به طور پیش فرض، مجموعه فیلترها گذرا نیستند.
نمونه در سطح مناقصه
برای ایجاد یک مجموعه فیلتر جدید در سطح مناقصه، یک درخواست POST
به URI منبع bidders.filterSets
ارسال کنید که فرمت زیر را دارد:
https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets
اخطار: مجموعههای فیلتر در سطح پیشنهاددهنده قادر به فیلتر کردن توسط شناسههای خلاق یا معامله نیستند. اگر این فیلترها را هنگام ایجاد یک مجموعه فیلتر در سطح پیشنهاد دهنده مشخص کنید، یک پاسخ خطا دریافت خواهید کرد.
درخواست کنید در اینجا نمونه ای از درخواست POST
است که یک مجموعه فیلتر جدید غیر گذرا در سطح پیشنهاد دهنده ایجاد می کند:
POST https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets Authorization: Bearer access token here Content-Type: application/json { "name": "bidders/12345678/filterSets/bidder-fs", "format": "DISPLAY", "environment": "APP", "platforms": ["TABLET", "MOBILE"], "absoluteDateRange": { "startDate": { "month": 11, "day": 26, "year": 2017 }, "endDate": { "month": 12, "day": 3, "year": 2017 } }, "timeSeriesGranularity": "DAILY" }
اگر درخواست با موفقیت انجام شود، سرور با یک کد وضعیت OK 200 پاسخ می دهد. بدنه پاسخ شامل منبع مجموعه فیلتر ایجاد شده است که با مجموعه فیلتر ارسال شده در درخواست یکسان خواهد بود.
مثال در سطح حساب
برای ایجاد یک مجموعه فیلتر جدید در سطح حساب، یک درخواست POST
به URI منبع bidders.accounts.filterSets
ارسال کنید که فرمت زیر را دارد:
https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets
توجه: شناسه منبع مشخصشده برای accounts
میتواند شناسه حساب هر حساب خریدار مجاز قابل دسترسی به حساب مناقصهدهنده مشخصشده در URI، از جمله خود حساب مناقصهگر باشد.
در اینجا نمونه ای از درخواست POST
است که یک مجموعه فیلتر غیر گذرا در سطح حساب ایجاد می کند:
POST https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets Authorization: Bearer access token here Content-Type: application/json { "name": "bidders/12345678/accounts/87654321/filterSets/account-fs", "format": "VIDEO", "environment": "WEB", "platforms": ["DESKTOP"], "absoluteDateRange": { "startDate": { "month": 11, "day": 26, "year": 2017 }, "endDate": { "month": 12, "day": 3, "year": 2017 } }, "timeSeriesGranularity": "DAILY" }
اگر درخواست با موفقیت انجام شود، سرور با یک کد وضعیت OK 200 پاسخ می دهد. بدنه پاسخ شامل منبع مجموعه فیلتر ایجاد شده است که با مجموعه فیلتر ارسال شده در درخواست یکسان خواهد بود.
یک مجموعه فیلتر دریافت کنید
متد دریافت فقط میتواند یک مجموعه فیلتر را در همان سطحی که ایجاد شده است دریافت کند. به عنوان مثال، یک حساب پیشنهاد دهنده باید از bidders.accounts.filterSets.get
برای بازیابی مجموعه فیلتر ایجاد شده در سطح حساب به جای روش bidders.filterSets.get
استفاده کند.
در سطح مناقصه
میتوانید با ارسال یک درخواست HTTP GET به URI منبع bidders.filterSets
که دارای فرمت زیر است، یک مجموعه فیلتر سطح پیشنهاد دهنده را بازیابی کنید:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets/{filter set resource ID}
در اینجا یک مثال است:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets/bidder-fs
اگر درخواست با موفقیت انجام شود، سرور با یک کد وضعیت HTTP 200 OK
و مجموعه فیلتر بازیابی شده پاسخ می دهد:
{ "name": "bidders/12345678/filterSets/bidder-fs", "format": "DISPLAY", "environment": "APP", "platforms": ["TABLET", "MOBILE"], "absoluteDateRange": { "startDate": { "month": 11, "day": 26, "year": 2017 }, "endDate": { "month": 12, "day": 3, "year": 2017 } }, "timeSeriesGranularity": "DAILY" }
در سطح حساب
میتوانید با ارسال یک درخواست HTTP GET
به URI منبع bidders.accounts.filterSets
یک مجموعه فیلتر در سطح حساب را بازیابی کنید، که فرمت زیر را دارد:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets/{filter set resource ID}
در اینجا یک مثال است:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets/account-fs
اگر درخواست با موفقیت انجام شود، سرور با یک کد وضعیت HTTP 200 OK
و مجموعه فیلتر بازیابی شده پاسخ می دهد:
{ "name": "bidders/12345678/accounts/87654321/filterSets/account-fs", "format": "VIDEO", "environment": "WEB", "platforms": ["DESKTOP"], "absoluteDateRange": { "startDate": { "month": 11, "day": 26, "year": 2017 }, "endDate": { "month": 12, "day": 3, "year": 2017 } }, "timeSeriesGranularity": "DAILY" }
لیست مجموعه های فیلتر
روش لیست فقط مجموعه های فیلتر قابل دسترسی را از سطحی که فراخوانی می شود برمی گرداند. به عنوان مثال، یک حساب پیشنهاد دهنده هنگام فراخوانی bidders.filterSets.list
، مجموعه فیلترهای ایجاد شده برای خود را از طریق bidders.accounts.filterSets.create
نمی بیند.
در سطح مناقصه
شما می توانید با ارسال یک درخواست HTTP GET
به URI منبع bidders.filtersets
که دارای فرمت زیر است، تمام مجموعه فیلترهای سطح پیشنهاد دهنده را برای یک پیشنهاد دهنده معین بازیابی کنید:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets
در اینجا یک مثال لیستی از تمام مجموعه فیلترهای سطح پیشنهاد دهنده برای پیشنهاد دهنده با شناسه حساب 12345678 آورده شده است:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets
{ "filterSets": [{ "filterSetId": "99994", "name": "bidders/12345678/filterSets/test-b-1", "relativeDateRange": { "durationDays": 30 } }, { "realtimeTimeRange": { "startTimeStamp": "2017-11-15T12:30:30.072831583Z" }, "filterSetId": "99995", "name": "bidders/12345678/filterSets/test-b-2", "timeSeriesGranularity": "HOURLY" }, { "absoluteDateRange": { "endDate": { "day": 12, "month": 3, "year": 2017 }, "startDate": { "day": 26, "month": 11, "year": 2017 } }, "filterSetId": "99996", "name": "bidders/12345678/filterSets/bidder-fs", "timeSeriesGranularity": "DAILY", "platforms": ["TABLET", "MOBILE"], "environment": "APP", "format": "DISPLAY" } ] }
در سطح حساب
میتوانید با ارسال یک درخواست HTTP GET
به URI منبع bidders.accounts.filtersets
که دارای فرمت زیر است، تمام مجموعههای فیلتر در سطح حساب را برای یک حساب معین بازیابی کنید:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets
در اینجا یک مثال لیستی از تمام مجموعههای فیلتر در سطح حساب برای یک حساب فرزند با شناسه حساب 87654321 آورده شده است:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets
{ "filterSets": [{ "realtimeTimeRange": { "startTimeStamp": "2017-11-19T04:24:43.252893487Z" }, "filterSetId": "99997", "name": "bidders/12345678/accounts/87654321/filterSets/test-a-1", "timeSeriesGranularity": "DAILY" }, { "absoluteDateRange": { "endDate": { "day": 3, "month": 12, "year": 2017 }, "startDate": { "day": 26, "month": 11, "year": 2017 } }, "filterSetId": "99998", "name": "bidders/12345678/accounts/87654321/filterSets/account-fs", "timeSeriesGranularity": "DAILY", "platforms": ["DESKTOP"], "environment": "WEB", "format": "VIDEO" } ] }
یک مجموعه فیلتر را حذف کنید
می توانید از روش delete
برای حذف هر مجموعه فیلتر غیر گذرا که دیگر مورد نیاز نیست استفاده کنید. فقط می تواند مجموعه فیلترهای قابل دسترسی را از سطحی که نامیده می شود حذف کند. برای مثال، یک حساب پیشنهاد دهنده نمی تواند مجموعه فیلتر ایجاد شده با bidders.accounts.filterSets.create
with bidders.filterSets.delete
را حذف کند.
در سطح مناقصه
با ارسال یک درخواست HTTP DELETE
به URI منبع bidders.filtersets
که دارای فرمت زیر است، میتوانید یک مجموعه فیلتر در سطح پیشنهاد دهنده را برای یک حساب مشخص حذف کنید:
DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets/{filter set resource ID}
در اینجا مثالی برای حذف یک مجموعه فیلتر در سطح پیشنهاد دهنده آورده شده است:
DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets/test-b-2
در صورت موفقیت آمیز بودن، بدنه درخواست خالی خواهد بود. مجموعه فیلتر مشخص شده دیگر در دسترس نخواهد بود.
در سطح حساب
میتوانید با ارسال یک درخواست HTTP DELETE
به URI منبع bidders.accounts.filtersets
، مجموعهای از فیلترهای سطح حساب را برای یک حساب مشخص حذف کنید که فرمت زیر را دارد:
DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets/{filter set resource ID}
در اینجا مثالی برای حذف یک مجموعه فیلتر در سطح حساب آورده شده است:
DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets/test-a-1
در صورت موفقیت آمیز بودن، بدنه درخواست خالی خواهد بود. مجموعه فیلتر مشخص شده دیگر در دسترس نخواهد بود.
معیارهای عیب یابی RTB را بازیابی کنید
همه منابع عیبیابی RTB که برای دریافت معیارها استفاده میشوند به روشی مشابه عمل میکنند - آنها یک روش واحد برای فهرست کردن معیارهای مجموعه فیلتر مشخص شده از طریق پارامتر مسیر filterSetName
دارند. مجموعه فیلتر مشخص شده تعیین می کند که چه فیلترها و تنظیماتی در هنگام پرس و جو از معیارها اعمال شوند. فراخوانی این منابع از سطح مناقصهدهنده، معیارهای جمعآوری شده از حساب پیشنهاددهنده و همه حسابهای فرزند مرتبط را برمیگرداند، در حالی که تماس از سطح حساب، تنها معیارهای یک حساب فردی را برمیگرداند.
معیارهای قیمت پیشنهادی
منبع bidMetrics
برای بازیابی معیارهایی استفاده می شود که بر اساس تعداد پیشنهادات اندازه گیری می شوند. به عنوان مثال، میتوانید از این برای تعیین تعداد کل پیشنهادات خود در یک بازه زمانی معین، و اینکه چه تعداد از آنها از حراج فیلتر نشدهاند، برنده یک نمایش نیستند و غیره استفاده کنید. مانند سایر منابع عیبیابی RTB که برای جمعآوری معیارها استفاده میشوند، فقط یک روش list
دارد.
معیارهای قیمت پیشنهادی در سطح پیشنهاد دهنده را فهرست کنید
میتوانید با ارسال یک درخواست HTTP GET
به URI منبع bidders.filtersets.bidMetrics
، معیارهای قیمت پیشنهادی را برای مجموعه فیلتر معین فهرست کنید که دارای قالب زیر است:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets/{filter set resource ID}/bidMetrics
در اینجا نمونه ای از معیارهای قیمت پیشنهادی در سطح پیشنهاد دهنده آورده شده است:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets/bidder-fs/bidMetrics
اگر درخواست با موفقیت انجام شود، سرور با یک کد وضعیت 200 OK
و یک بدنه حاوی ردیفهایی از معیارها برای ابعاد و جزئیات مشخص شده پاسخ میدهد.
{ "bidMetricsRows": [{ "bids": { "value": "6160" }, "bidsInAuction": { "value": "5698" }, "billedImpressions": { "value": "1196" }, "impressionsWon": { "value": "2920" }, "measurableImpressions": { "value": "1160" }, "rowDimensions": { "timeInterval": { "endTime": "2017-11-29T08:00:00Z", "startTime": "2017-11-28T08:00:00Z" } }, "viewableImpressions": { "value": "683" } }, { "bids": { "value": "104288" }, "bidsInAuction": { "value": "94016" }, "billedImpressions": { "value": "99" }, "impressionsWon": { "value": "125" }, "measurableImpressions": { "value": "94" }, "rowDimensions": { "timeInterval": { "endTime": "2017-11-30T08:00:00Z", "startTime": "2017-11-29T08:00:00Z" } }, "viewableImpressions": { "value": "87" } }, { "bids": { "value": "3999" }, "bidsInAuction": { "value": "3631" }, "billedImpressions": { "value": "618" }, "impressionsWon": { "value": "1819" }, "measurableImpressions": { "value": "604" }, "rowDimensions": { "timeInterval": { "endTime": "2017-12-01T08:00:00Z", "startTime": "2017-11-30T08:00:00Z" } }, "viewableImpressions": { "value": "369" } }, { "bids": { "value": "15" }, "bidsInAuction": { "value": "3" }, "billedImpressions": {}, "impressionsWon": { "value": "3" }, "measurableImpressions": {}, "rowDimensions": { "timeInterval": { "endTime": "2017-12-02T08:00:00Z", "startTime": "2017-12-01T08:00:00Z" } }, "viewableImpressions": {} } ] }
توجه: هر فیلدی که برای یک معیار معین روی 0 تنظیم شده باشد در پاسخ ظاهر نمی شود. معیارهای خالی billedImpressions
و measurableImpressions
در بالا نشان می دهد که هم مقدار و هم واریانس برای این موارد روی 0 تنظیم شده است.
هشدار: برای هر تفکیک دادههای موجود در پاسخ، پاسخ شامل ردیفهایی نمیشود که حداقل یک متریک غیر صفر داشته باشند. به عنوان مثال، زمانی که timeSeriesGranularity
مشخص میشود، پاسخ شامل ردیفهایی برای هیچ timeInterval
در محدوده زمانی مشخصشده مجموعه فیلتر که در آن همه معیارها صفر هستند، نمیشود.
معیارهای قیمت پیشنهادی در سطح حساب را فهرست کنید
میتوانید با ارسال یک درخواست HTTP GET
به URI منبع bidders.accounts.filtersets.bidMetrics
، معیارهای قیمت پیشنهادی در سطح حساب را برای یک مجموعه فیلتر معین فهرست کنید که فرمت زیر را دارد:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets/{filter set resource ID}/bidMetrics
در اینجا یک نمونه فهرست معیارهای قیمت پیشنهادی در سطح حساب آورده شده است:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets/account-fs/bidMetrics
اگر درخواست با موفقیت انجام شود، سرور با یک کد وضعیت 200 OK
و یک بدنه حاوی ردیفهایی از معیارها برای ابعاد و جزئیات مشخص شده پاسخ میدهد.
{ "bidMetricsRows": [{ "bids": { "value": "1748" }, "bidsInAuction": { "value": "1421" }, "billedImpressions": { "value": "301" }, "impressionsWon": { "value": "915" }, "measurableImpressions": { "value": "298" }, "rowDimensions": { "timeInterval": { "endTime": "2017-12-01T08:00:00Z", "startTime": "2017-11-30T08:00:00Z" } }, "viewableImpressions": { "value": "172" } }, { "bids": { "value": "6" }, "bidsInAuction": { "value": "2" }, "billedImpressions": {}, "impressionsWon": { "value": "1" }, "measurableImpressions": {}, "rowDimensions": { "timeInterval": { "endTime": "2017-12-02T08:00:00Z", "startTime": "2017-12-01T08:00:00Z" } }, "viewableImpressions": {} } ] }
توجه: هر فیلدی که برای یک معیار معین روی 0 تنظیم شده باشد در پاسخ ظاهر نمی شود. معیارهای خالی billedImpressions
و measurableImpressions
در بالا نشان می دهد که هم مقدار و هم واریانس برای این موارد روی 0 تنظیم شده است.
هشدار: برای هر تفکیک دادههای موجود در پاسخ، پاسخ شامل ردیفهایی نمیشود که حداقل یک متریک غیر صفر داشته باشند. به عنوان مثال، زمانی که timeSeriesGranularity
مشخص میشود، پاسخ شامل ردیفهایی برای هیچ timeInterval
در محدوده زمانی مشخصشده مجموعه فیلتر که در آن همه معیارها صفر هستند، نمیشود.