ساختن پاسخ

پس‌از اینکه برنامه‌تان درخواست پیشنهاد قیمت را از Google پردازش کرد، باید پاسخی بسازد و ارسال کند. این راهنما توضیح می‌دهد که چگونه برنامه خود را برای ساختن پاسخ کدنویسی کنید.

ایجاد پیام BidResponse

برای ارسال پیشنهاد قیمت، برنامه پیشنهاد قیمت شما باید به درخواست پیشنهاد قیمت با BidResponse حاوی Bid در قالب پیکربندی‌شده شما پاسخ دهد. اگر از قالب JSON استفاده می‌کنید، پاسخ شما باید Content-Type سرصفحه را روی application/json; charset=utf-8 تنظیم کند و JSON BidResponse را در بدنه لحاظ کند. اگر از قالب Protobuf استفاده می‌کنید، برنامه‌تان باید سرصفحه Content-Type را روی application/octet-stream تنظیم کند و BidResponse سریال‌سازی‌شده را در بدنه بگنجاند.

برای ساختن و سریالی کردن BidResponse برای قالب Protobuf، باید کتابخانه‌های Protobuf را براساس openrtb.proto و openrtb-adx.proto تولید و استفاده کنید که به‌ترتیب فیلدهای استاندارد OpenRTB BidResponse و افزونه‌های Google را در Protobuf پیاده‌سازی می‌کنند. این موارد را می‌توانید در Protos & Reference Data پیدا کنید.

اگر نمی‌خواهید برای ظهور پیشنهاد قیمت دهید، باید پاسخ HTTP 204 خالی برگردانید. برنامه شما باید برای هر BidRequest پاسخی برگرداند. پاسخ‌هایی که مهلتشان تمام شده است و پاسخ‌هایی که تجزیه نمی‌شوند خطا درنظر گرفته می‌شوند و Google پیشنهاددهندگان با نرخ خطای بالا را محدود می‌کند.

شناسه طرح‌آگهی

BidResponse شما طرح آگهی را ازطریق فیلد BidResponse.seatbid.bid.crid (محدودیت ۱۲۸ بایت) مشخص می‌کند. حتی طرح‌آگهی‌های مشابه نیز باید مقادیر منحصربه‌فردی برای این فیلد داشته باشند اگر در هر ویژگی قابل‌توجهی متفاوت باشند، ازجمله اما نه محدود به: اندازه، نشانی وب اعلام‌شده، ویژگی‌های طرح‌آگهی، و انواع فروشنده. به عبارت دیگر، باید شناسه‌های طرح آگهی متفاوتی به هر دو آگهی‌ای که شرایط زیر را دارند بدهید:

  • ظاهر یا رفتار متفاوتی داشته باشد.
  • به تصاویر مختلف تبدیل کنید.
  • به روش‌های مختلفی ارائه می‌شوند (برای مثال، یک آگهی شامل تصویر است، درحالی‌که آگهی دیگر ویدیو است).

هنگام طراحی برنامه‌تان، باید درباره روشی نظام‌مند برای تولید شناسه‌هایی تصمیم بگیرید که برای انواع طرح‌های آگهی‌ای که قصد دارید ارسال کنید منطقی باشد.

مشخصه‌های آگهی

Google توصیه می‌کند که مشخصه‌های طرح آگهی را برای توصیف ویژگی‌های آگهی و هدف‌یابی آن بااستفاده از ترکیبی از BidResponse.seatbid.bid.apis و BidResponse.seatbid.bid.attr، یا افزونه BidResponse.seatbid.bid.ext.attribute اعلام کنید. در زیر توضیح داده شده است که چگونه می‌توانید مشخصه‌ها را اعلام کنید:

  • VPAID
    BidResponse.seatbid.bid.apis را روی VPAID_1، یا VPAID_2 تنظیم کنید. برای قالب JSON، این مقدار می‌تواند به‌ترتیب روی 1 یا 2 تنظیم شود.
  • MRAID
    BidResponse.seatbid.bid.apis را روی MRAID_1 یا 3 برای قالب JSON تنظیم کنید.
  • SIZELESS
    BidResponse.seatbid.bid.attr را روی RESPONSIVE یا 18 برای قالب JSON تنظیم کنید.
  • PLAYABLE
    این موضوع با تنظیم BidResponse.seatbid.bid.attr روی USER_INTERACTIVE، یا 13 برای قالب JSON نشان داده می‌شود.

برای توضیح درباره نحوه دریافت بازخورد درباره ویژگی‌های شناسایی‌شده طرح‌آگهی‌هایتان، منبع طرح‌آگهی‌ها را ببینید.

فیلدهای «پیشنهاد قیمت آزاد»

پاسخ‌های پیشنهاد قیمت ارسال‌شده توسط پیشنهاددهندگان شبکه و صرافی شرکت‌کننده در «مناقصه باز» مشابه پاسخ‌های «خریداران مجاز» شرکت‌کننده در پیشنهاد قیمت هم‌زمان استاندارد است. مشتریان «پیشنهاد قیمت باز» می‌توانند تعداد کمی فیلد اضافی را مشخص کنند، و چند فیلد موجود ممکن است کاربردهای جایگزین داشته باشند. این موارد شامل موارد زیر است:

فیلد جزئیات
BidResponse.imp.pmp.deals.id

شناسه معامله از فضای نام صرافی که با این پیشنهاد قیمت مرتبط است و به ناشران گزارش می‌شود.

BidResponse.seatbid.bid.ext.exchange_deal_type

نوع معامله گزارش‌شده به ناشران که بر نحوه برخورد با معامله در مزایده تأثیر می‌گذارد.

BidResponse.seatbid.bid.ext.third_party_buyer_token اگر صرافی به‌عنوان «پیشنهاددهنده باز» واسطه باشد، از این توکن برای شناسایی اطلاعات خریدار طرف سوم نهایی استفاده می‌شود. این شناسه از خریدار طرف سوم دریافت می‌شود و باید بدون تغییر در پاسخ پیشنهاد قیمت به Google ارسال شود.

توصیه‌ها

  • اتصال‌های HTTPS پایدار (که با نام «keep-alive» یا «استفاده مجدد از اتصال» نیز شناخته می‌شود) را در سرورهایتان فعال کنید. زمان اتمام را حداقل روی ۱۰ ثانیه تنظیم کنید—مقادیر بالاتر در بسیاری از موارد مفید هستند. Google این موضوع را درطول آزمایش‌های تأخیر اولیه برنامه شما تأیید می‌کند، زیرا «خریداران مجاز» درخواست‌ها را با نرخ بالایی ارسال می‌کند و باید از سربار تأخیر ناشی از ایجاد اتصال TCP جداگانه برای هر درخواست اجتناب کند.
  • نشانی وب اختیاری ردیابی ظهور را اضافه کنید تا زمانی که ظهور پرداز می‌شود (نه زمانی که پیشنهاددهنده برنده می‌شود) ردیابی شود. به‌دلیل افت بین بردها و پردازش‌ها، این کار آمار ردیابی دقیق‌تری ارائه می‌دهد.

  • کد پیشنهاددهنده خود را از وابستگی به فیلدهای منسوخ‌شده آزاد نگه دارید، که می‌تواند باعث شود پیشنهادهای شما با خطا مواجه شوند.
  • BidResponse.seatbid.bid.w و BidResponse.seatbid.bid.h را در BidResponse خود اضافه کنید. ‫BidResponse به درخواستی که شامل چندین اندازه آگهی است باید شامل این فیلدها باشد، درغیراین‌صورت از مزایده حذف خواهد شد.
  • اندازه پاسخ خود را به کمتر از 8K محدود کنید. پاسخ‌های بسیار بزرگ ممکن است تأخیر شبکه را افزایش دهد و باعث اتمام مهلت شود.
  • رهنمودهای مربوط به پیشنهادهای قیمت در موجودی iOS که به ارجاع SKAdNetwork نیاز دارند را دنبال کنید.

نمونه پاسخ مناقصه

مثال‌های زیر نمونه‌های قابل‌خواندن برای انسان از درخواست‌های Protobuf و JSON را نشان می‌دهند.

OpenRTB Protobuf

OpenRTB JSON

مهم: پیام‌های Protobuf نشان‌داده‌شده در نمونه‌ها در اینجا به‌صورت نوشتار قابل‌خواندن برای انسان نمایش داده شده‌اند. اما پیام‌ها به این صورت ازطریق سیم ارسال نمی‌شوند. هنگام استفاده از قالب OpenRTB Protobuf، فقط پیام‌های BidResponse سریالی‌شده پذیرفته خواهد شد.

می‌توانید بااستفاده از کد C++‎ زیر، پیام BidResponse ایجاد و سریال‌سازی کنید:

BidResponse bid_response;
// fill in bid response with bid information
string post_response;
if (bid_response.SerializeToString(&post_response)) {
  // respond to the POST with post_response as the content
} else {
  // return an error to the POST
}

مشخص کردن طرح‌آگهی

پاسخ پیشنهاد قیمت شما طرح آگهی را برای ارائه درصورت برنده شدن پیشنهاد قیمت شما مشخص می‌کند. پیشنهاد قیمت شما باید شامل یکی از قالب‌های آگهی پشتیبانی‌شده (AMP، ویدیو، بومی) باشد. در این نمونه، طرح آگهی را بااستفاده از فیلد html_snippet مشخص می‌کنیم.

یا می‌توانید طرح آگهی‌تان را بااستفاده از یکی از فیلدهای زیر براساس قالب آگهی مشخص کنید:

  • آگهی ارائه‌شده توسط کیت توسعه نرم‌افزار
    • BidResponse.seatbid.bid.ext.sdk_rendered_ad
  • AMP
    • BidResponse.seatbid.bid.amp_ad_url
  • ویدیو
    • BidResponse.seatbid.bid.adm
  • بومی
    • BidResponse.seatbid.bid.adm_native

آگهی‌ای را که در سرور(های) خودتان میزبانی می‌شود بااستفاده از تکه‌کد HTML در فیلد BidResponse.seatbid.bid.adm مشخص کنید. قطعه کد در یک iFrame درج‌شده در صفحه وب قرار دارد، که باعث می‌شود آگهی هنگام بارگذاری صفحه بازیابی و رندر شود. باید قطعه HTML را طوری بسازید که آگهی (برنما یا بینابینی) به‌درستی در iFrame و با اندازه مناسب برای جایگاه آگهی‌ای که برای آن پیشنهاد قیمت می‌دهید ارائه شود.

علاوه‌براین، اندازه آگهی اعلام‌شده در پاسخ پیشنهاد قیمت باید دقیقاً با یکی از ترکیب‌های اندازه در درخواست پیشنهاد قیمت مطابقت داشته باشد، وقتی:

  • آگهی برنمای معمولی باشد (نه ویدیویی، بومی، یا بینابینی).
  • پیشنهاددهنده اندازه را در پاسخ پیشنهاد قیمت اعلام کرده است. هرگاه بیش‌از یک اندازه در درخواست وجود داشته باشد، اعلام اندازه الزامی است.
  • آگهی‌های بینابینی از این قاعده مستثنی هستند. برای بینابینی‌ها، عرض باید حداقل ۵۰٪ عرض صفحه‌نمایش و ارتفاع حداقل ۴۰٪ ارتفاع صفحه‌نمایش باشد.

می‌توانید بااستفاده از هر کد HTML معتبری که به‌درستی ارائه می‌شود، طرح آگهی تکه‌کد HTML را مشخص کنید، اما محدودیت‌های مربوط به مشخص کردن فیلد crid در بخش ایجاد پیام BidResponse را به‌خاطر داشته باشید. یکی از کاربردهای این کار، قرار دادن اطلاعات اضافی در آرگومان‌های نشانی‌های وبی است که به‌عنوان بخشی از ارائه آگهی از سرورهای شما واکشی می‌شوند. این کار به شما امکان می‌دهد داده‌های دلخواه درباره ظهور را به سرورهای خودتان برگردانید.

اکثر خط‌مشی‌های مربوط به قطعه‌های HTML که در پاسخ‌های پیشنهاد قیمت برگردانده می‌شوند، مشابه خط‌مشی‌های آگهی‌های طرف سوم است. برای اطلاعات بیشتر، به رهنمودهای برنامه خریداران مجاز، الزامات برای ارائه آگهی شخص ثالث، و اعلام نشانی‌های وب کلیک‌گذری در آگهی‌ها مراجعه کنید.

استفاده از نشانی‌های وب ازطریق کلیک یکسان

نشانی وب ازطریق کلیک که در فیلد BidResponse.seatbid.bid.ext.clickurl مشخص می‌کنید باید با نشانی وب صفحه مقصد مشخص‌شده در طرح آگهی شما یکسان باشد. در زیر نمونه‌هایی از طرح‌های آگهی در قالب‌های پشتیبانی‌شده که با فیلد clickurl تنظیم‌شده روی https://play.google.com/store/apps/details?id=com.example.myawesomeapp&referrer=utm_source%3Dgoogle_ab%26utm_medium%3Dcpc%26utm_campaign%3Dinstall_campaign_1 مطابقت دارند آورده شده است:

HTML

<div id="my-app-install-ad"
     style="font-family: sans-serif; border: 1px solid #ddd; padding: 10px;
            display: flex; align-items: center; width: 100%; height: 100%;
            box-sizing: border-box; cursor: pointer;"
     onclick="window.open('https://play.google.com/store/apps/details?id=com.example.myawesomeapp&referrer=utm_source%3Dgoogle_ab%26utm_medium%3Dcpc%26utm_campaign%3Dinstall_campaign_1', '_blank')">
  <img src="https://example.com/path/to/app_icon.png" alt="App Icon"
       style="width: 60px; height: 60px; margin-right: 10px;
              border-radius: 8px;">
  <div style="flex-grow: 1;">
    <h4 style="margin: 0 0 5px 0; font-size: 16px; color: #1a73e8;">
      My Awesome App
    </h4>
    <p style="margin: 0 0 10px 0; font-size: 14px; color: #5f6368;">
      The best app for doing awesome things! Download now and get started!
    </p>
    <span style="background-color: #1a73e8; color: white; padding: 8px 12px;
                 text-align: center; text-decoration: none;
                 display: inline-block; border-radius: 4px; font-size: 14px;
                 font-weight: bold;">Install</span>
  </div>
</div>

VAST XML

<VAST version="3.0">
  <Ad id="creative_id_789">
    <InLine>
      <AdSystem>MyBidderSystem</AdSystem>
      <AdTitle>My Awesome App Install Video</AdTitle>
      <Description>Install My Awesome App now!</Description>
      <Error>
        <![CDATA[https://tracking.example.com/vast_error?errorcode=[ERRORCODE]]]>
      </Error>
      <Impression>
        <![CDATA[https://tracking.example.com/vast_impression]]>
      </Impression>
      <Creatives>
        <!-- Main Video Creative -->
        <Creative>
          <Linear>
            <Duration>00:00:15</Duration>
            <TrackingEvents>
              <Tracking event="start">
                <![CDATA[https://tracking.example.com/vast_event?label=start]]>
              </Tracking>
              <Tracking event="firstQuartile">
                <![CDATA[https://tracking.example.com/vast_event?label=firstQuartile]]>
              </Tracking>
              <Tracking event="midpoint">
                <![CDATA[https://tracking.example.com/vast_event?label=midpoint]]>
              </Tracking>
              <Tracking event="thirdQuartile">
                <![CDATA[https://tracking.example.com/vast_event?label=thirdQuartile]]>
              </Tracking>
              <Tracking event="complete">
                <![CDATA[https://tracking.example.com/vast_event?label=complete]]>
              </Tracking>
            </TrackingEvents>
            <VideoClicks>
              <ClickThrough id="gplay-video">
                <![CDATA[https://play.google.com/store/apps/details?id=com.example.myawesomeapp&referrer=utm_source%3Dgoogle_ab%26utm_medium%3Dcpc%26utm_campaign%3Dinstall_campaign_1]]>
              </ClickThrough>
              <ClickTracking id="bidder-tracker-video">
                <![CDATA[https://tracking.example.com/vast_click]]>
              </ClickTracking>
            </VideoClicks>
            <MediaFiles>
              <MediaFile delivery="progressive" type="video/mp4" width="640"
                         height="360" bitrate="800" scalable="true"
                         maintainAspectRatio="true">
                <![CDATA[https://cdn.example.com/myawesomeapp_video.mp4]]>
              </MediaFile>
            </MediaFiles>
          </Linear>
        </Creative>
        <!-- Companion Ad Creative -->
        <Creative>
          <CompanionAds>
            <Companion id="companion1" width="300" height="250"
                       assetWidth="300" assetHeight="250">
              <StaticResource creativeType="image/png">
                <![CDATA[https://cdn.example.com/companion_banner_300x250.png]]>
              </StaticResource>
              <TrackingEvents>
                <Tracking event="creativeView">
                  <![CDATA[https://tracking.example.com/vast_companion_view]]>
                </Tracking>
              </TrackingEvents>
              <CompanionClickThrough>
                <![CDATA[https://play.google.com/store/apps/details?id=com.example.myawesomeapp&referrer=utm_source%3Dgoogle_ab%26utm_medium%3Dcpc%26utm_campaign%3Dinstall_campaign_1]]>
              </CompanionClickThrough>
              <CompanionClickTracking>
                <![CDATA[https://tracking.example.com/vast_companion_click]]>
              </CompanionClickTracking>
            </Companion>
          </CompanionAds>
        </Creative>
      </Creatives>
    </InLine>
  </Ad>
</VAST>

بومی

{
  "ver": "1.2",
  "assets": [
    {
      "id": 1,
      "title": {
        "text": "My Awesome App"
      }
    },
    {
      "id": 2,
      "img": {
        "url": "https://example.com/path/to/app_icon.png",
        "w": 60,
        "h": 60
      }
    },
    {
      "id": 3,
      "data": {
        "value":
          "The best app for doing awesome things! Download now and get started!"
      }
    },
    {
      "id": 4,
      "data": {
        "value": "Install"
      }
    }
  ],
  "link": {
    "url": "https://play.google.com/store/apps/details?id=com.example.myawesomeapp&referrer=utm_source%3Dgoogle_ab%26utm_medium%3Dcpc%26utm_campaign%3Dinstall_campaign_1",
    "clicktrackers": [
      "https://tracking.example.com/native_click"
    ]
  },
  "imptrackers": [
    "https://tracking.example.com/native_impression"
  ]
}

مشخص کردن ماکروها

ماکروها نوشتار قالب‌بندی‌شده‌ای هستند که در برخی‌از فیلدهای پاسخ پیشنهاد قیمت جاسازی شده‌اند و حاوی نشانی‌های وبی هستند که در زمان ارائه آگهی با مقدار مربوطه جایگزین می‌شوند. برای مثال، اگر پیشنهاد قیمت برنده شما شامل ماکرو AUCTION_PRICE در قطعه HTML طرح‌آگهی موجود در پیشنهاد قیمت شما باشد، ماکرو با مقداری جایگزین می‌شود که می‌توانید آن را رمزگشایی کنید تا مبلغی را که برای ظهور در مزایده پرداخت کرده‌اید تعیین کنید.

می‌توانید ماکروها را در فیلدهای زیر اضافه کنید:

  • BidResponse.seatbid.bid.adm

    ماکروها برای قالب‌های XML قطعه HTML، بومی، نشانی وب ویدیو، و VAST ویدیو پشتیبانی می‌شوند.

  • BidResponse.seatbid.bid.adm_native.eventtrackers.url

  • BidResponse.seatbid.bid.adm_native.imptrackers

  • BidResponse.seatbid.bid.ext.amp_ad_url

    فقط ماکروهای WINNING_PRICE و WINNING_PRICE_ESC مختص Google برای طرح‌های آگهی AMP پشتیبانی می‌شوند.

  • BidResponse.seatbid.bid.burl

  • BidResponse.seatbid.bid.ext.impression_tracking_url

    اگر به بیش‌از یک نشانی وب صورت‌حساب نیاز دارید، به‌جای BidResponse.seatbid.bid.burl از این استفاده کنید.

به‌عنوان مثال، می‌توانید با جاسازی کردن ${MACRO} در نشانی وب استفاده‌شده برای واکشی طرح آگهی، یک ماکرو را به‌عنوان بخشی از تکه‌کد HTML اضافه کنید، که در آن MACRO یکی از ماکروهای پشتیبانی‌شده است که در مشخصات OpenRTB شرح داده شده است.

ماکروهای Google

Google علاوه‌بر ماکروهای موجود در مشخصات OpenRTB، از ماکروهای دیگری نیز پشتیبانی می‌کند. این ماکروها قالب‌بندی متفاوتی دارند و اگر در نشانی وب جاسازی شوند، به‌صورت %%MACRO%% نمایش داده می‌شوند. جدول زیر این ماکروها را شرح می‌دهد:

ماکرو شرح
ADVERTISING_IDENTIFIER به خریداران اجازه می‌دهد شناسه تبلیغاتی Android یا شناسه iOS IDFA را در پرداخت ظهور دریافت کنند. برای جزئیات، رمزگشایی شناسه‌های تبلیغ‌کننده را ببینید.
CACHEBUSTER نمایش رشته‌ای از یک عدد صحیح چهار بایتی تصادفی و بدون علامت.
CLICK_URL_UNESC

نشانی وب کلیک بدون گریز برای آگهی. در قطعه کد، نسخه گریزدار نشانی وب کلیک شخص ثالث باید مستقیماً پس‌از ماکرو بیاید.

برای مثال، اگر نشانی وب کلیک شخص ثالث http://my.adserver.com/some/path/handleclick?click=clk باشد، می‌توان از کد زیر با نسخه یک‌بار گریزیافته نشانی وب کلیک شخص ثالث پس‌از فراخوانی ماکرو استفاده کرد:

<a href="%%CLICK_URL_UNESC%%http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a>

در زمان ارائه آگهی، این عبارت به این صورت گسترش می‌یابد:

<a href="http://google-click-url?...&ad_url=http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a>

نشانی وب ابتدا کلیک را در Google ثبت می‌کند و سپس به نشانی وب کلیک شخص ثالث هدایت می‌کند.

CLICK_URL_ESC

نشانی وب کلیک گریز برای آگهی. اگر لازم است ابتدا مقدار را از سرور دیگری عبور دهید که سپس تغییرمسیر را برمی‌گرداند، به‌جای CLICK_URL_UNESC از این استفاده کنید.

برای مثال، کد زیر می‌تواند در تکه‌کد HTML استفاده شود:

<a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC%%"></a>

در زمان ارائه آگهی، این عبارت به این صورت گسترش می‌یابد:

<a href="http://my.adserver.com/click?google_click_url=http://google-click- url%3F...%26ad_url%3D"></a>

با این کار، کلیک با my.adserver.com ثبت می‌شود که سپس مسئول بازهدایت به نشانی وب ارسال‌شده در پارامتر google_click_url خواهد بود. این فرض می‌کند که my.adserver.com پارامتر google_click_url را از حالت گریز خارج می‌کند.

می‌توانید نشانی وب با گریز دوگانه را بعداز %%CLICK_URL_ESC%% اضافه کنید. پس‌از اینکه لغو گریز توسط my.adserver.com انجام شد، نسخه تک‌گریز نشانی وب به google_click_url اضافه می‌شود. وقتی google_click_url واکشی شود، یک‌بار دیگر از حالت گریز خارج می‌شود و سپس تغییرمسیر می‌دهد.

CLICK_URL_ESC_ESC

نشانی وب با گریز دوگانه برای آگهی. اگر لازم است ابتدا مقدار را از سرور دیگری عبور دهید که سپس تغییرمسیر را برمی‌گرداند، به‌جای CLICK_URL_UNESC از این استفاده کنید.

برای مثال، کد زیر می‌تواند در تکه‌کد HTML استفاده شود:

<a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC_ESC%%"></a>

در زمان ارائه آگهی، این عبارت به این صورت گسترش می‌یابد:

<a href="http://my.otheradserver.com/click?google_click_url=http%3A%2F%2Fmy.adserver.com%2Fclick%3Fgoogle_click_url%3Dhttp%3A%2F%2Fgoogle-click-%20url%253F...%2526ad_url%253D"></a>
SCHEME اگر درخواست پیشنهاد قیمت به SSL نیاز نداشته باشد، به http: ازهم باز می‌شود یا اگر درخواست پیشنهاد قیمت به SSL نیاز داشته باشد، به https: ازهم باز می‌شود.
SITE دامنه url-escaped نشانی وب محتوا یا شناسه ناشناس برای فضای آگهی ناشناس.
SITE_URL منسوخ‌شده. با ماکرو SITE که عملکرد یکسانی دارد جایگزین شده است.
TZ_OFFSET فاصله زمانی منطقه زمانی.
VERIFICATION

مقادیر مختلف برای تولید و زمانی که طرح آگهی در خط لوله درستی‌سنجی اسکن می‌شود. قالب به‌صورت زیر است: %%?VERIFICATION:true-val:false-val%% که در آن هر مقداری به‌جز ماکروها می‌تواند برای true-val و false-val استفاده شود، ازجمله رشته‌های خالی. برای «پیشنهاد قیمت باز»، توصیه می‌کنیم که صرافی‌ها از این ماکرو استفاده کنند؛ وقتی این کار را انجام دهند، پلاتفرم‌های طرف تقاضا نیازی به ایجاد تغییرات ندارند.

برای مثال، اگر طرح آگهی شامل %%?VERIFICATION:-1:5000%% باشد، جایگزینی نوشتار درهنگام ارائه 5000 و در خط لوله درستی‌سنجی -1 خواهد بود. این کار برای کمک به تمایز بین این دو مجموعه پینگ است.

WINNING_PRICE

هزینه ظهور کدبندی‌شده (یعنی CPI به‌جای CPM) در میکروهای واحد پول حساب. برای مثال، هزارظهوربهای برنده ۵ دلار امریکا برابر با ۵٬۰۰۰٬۰۰۰ میکرو هزارظهوربها یا ۵٬۰۰۰ میکرو هزینه به‌ازای نصب است. مقدار رمزگشایی‌شده WINNING_PRICE در این مورد ۵٬۰۰۰ خواهد بود. قیمت برنده در CPI مشخص شده است.

برای تجزیه این ماکرو، باید برنامه‌ای را پیاده‌سازی کنید که تأییدیه‌های قیمت را رمزگشایی کند. برای اطلاعات بیشتر، به صفحه رمزگشایی تأییدیه‌های قیمت مراجعه کنید.

WINNING_PRICE_ESC ‫WINNING_PRICE با نویسه گریز نشانی وب.

Google از شما می‌خواهد که از ماکرو CLICK_URL_UNESC یا CLICK_URL_ESC در طرح آگهی ارائه‌شده توسط شخص ثالث استفاده کنید. ‫Google از ماکروهای CLICK_URL برای ردیابی کلیک استفاده می‌کند.

گریز نشانی وب در ماکروها از طرح زیر استفاده می‌کند:

  • نویسه فاصله با علامت جمع (+) جایگزین می‌شود.
  • نویسه‌های الفباعددی (0-9، a-z، A-Z) و نویسه‌های مجموعه !()*,-./:_~ بدون تغییر باقی می‌مانند.
  • همه نویسه‌های دیگر با %XX جایگزین می‌شوند، که در آن XX عدد شانزده‌شانزدهی نشان‌دهنده نویسه است.

محدودیت‌ها و الزامات ناشر

درخواست پیشنهاد قیمت شامل اطلاعاتی درباره انواع محدودیت‌ها و الزاماتی است که ناشران برای طرح‌های آگهی در مزایده تعیین می‌کنند.

  • BidRequest.bcat
    • می‌توانید دسته‌های مسدودشده مشخص‌شده توسط این فیلد را با دسته‌های شناسایی‌شده برای طرح‌های آگهی ارسالی‌تان بااستفاده از فیلد detectedCategories در Real-time Bidding API مقایسه کنید.
  • BidRequest.imp.ext.allowed_vendor_type
  • BidRequest.imp.secure
    • در عمل، این مقدار همیشه روی true تنظیم می‌شود زیرا Google برای همه آگهی‌های خلاقانه به پشتیبانی SSL نیاز دارد.
  • BidRequest.imp.{audio/banner/native/video}
  • BidRequest.imp.{audio/banner/native/video}.api
  • BidRequest.imp.{audio/banner/native/video}.battr
  • BidRequest.imp.{audio/banner/video}.mimes

هرگز با آگهی‌ای که حاوی ویژگی محدودشده است پیشنهاد قیمت ندهید. برای ویژگی‌های مجاز مانند نوع فروشنده، آگهی را فقط درصورتی برگردانید که نوع فروشنده آن در فهرست allowed_vendor_type در BidRequest باشد. فقط قالب‌های آگهی مشخص‌شده در درخواست پیشنهاد قیمت با پر کردن فیلدهایی مثل BidRequest.imp.banner باید در پیشنهاد قیمت شما گنجانده شود. برای جزئیات بیشتر، نظرات مربوط به این فیلدها را در تعریف میان‌گیر پروتکل BidRequest ببینید.

اگر آگهی‌ای در BidResponse برگردانده شود، باید فیلدهای BidResponse.seatbid.bid.attr، BidResponse.seatbid.bid.cat، و BidResponse.seatbid.bid.adomain یا BidResponse.seatbid.bid.adm_native.link.url را در BidResponse به‌طور دقیق تنظیم کنید. اگر آگهی‌ای چند مقدار قابل‌اعمال برای این فیلدها داشته باشد، باید همه مقادیر را اضافه کنید. برای جزئیات بیشتر، نظرات مربوط به این فیلدها را در تعریف میان‌گیر پروتکل BidResponse ببینید. پاسخ‌هایی که این فیلدها را ندارند حذف می‌شوند.

اندازه‌گیری باز

«سنجش باز» به شما امکان می‌دهد فروشندگان طرف سومی را مشخص کنید که خدمات سنجش و درستی‌سنجی مستقل برای آگهی‌های ارائه‌شده به محیط‌های برنامه تلفن همراه ارائه می‌دهند.

قالب‌های آگهی پشتیبانی‌شده شامل آگهی‌های ویدیویی، برنما، و بینابینی است. برای اطلاعات بیشتر درباره نحوه استفاده از Open Measurement در پاسخ پیشنهاد قیمت حاوی این قالب‌ها، به مقاله «مرکز راهنمایی» کیت توسعه نرم‌افزار Open Measurement مراجعه کنید.

پاسخ‌های نمونه قیمت پیشنهادی

بخش‌های زیر نمونه پاسخ‌های پیشنهاد قیمت را برای انواع مختلف آگهی نشان می‌دهد.

برنمای برنامه

OpenRTB Protobuf

OpenRTB JSON

برنامه بینابینی

OpenRTB Protobuf

OpenRTB JSON

ویدیو بینابینی برنامه

OpenRTB Protobuf

OpenRTB JSON

برنامه بومی

OpenRTB Protobuf

OpenRTB JSON

ویدیوی وب

OpenRTB Protobuf

OpenRTB JSON

برنمای وب تلفن همراه برای پیشنهاددهنده مبادله

OpenRTB Protobuf

OpenRTB JSON