بناء الرد

بعد أن يعالج تطبيقك طلب عرض السعر من Google، يجب أن ينشئ ردًا ويرسله. يشرح هذا الدليل كيفية ترميز تطبيقك لإنشاء الردّ.

إنشاء رسالة BidResponse

لإرسال عرض سعر، يجب أن يستجيب تطبيق عروض الأسعار لطلب عرض سعر باستخدام BidResponse يحتوي على Bid بالتنسيق الذي تم ضبطه. إذا كنت تستخدم تنسيق JSON، يجب أن يضبط ردّك عنوان Content-Type على application/json; charset=utf-8 وأن يتضمّن BidResponse بتنسيق JSON في النص. إذا كنت تستخدم تنسيق Protobuf، يجب أن يضبط تطبيقك عنوان Content-Type على application/octet-stream وأن يتضمّن BidResponse المتسلسل في النص.

لإنشاء BidResponse وتسلسله لتنسيق Protobuf، يجب إنشاء مكتبات Protobuf واستخدامها استنادًا إلى openrtb.proto وopenrtb-adx.proto، اللذين ينفّذان حقول BidResponse العادية في OpenRTB وإضافات Google في Protobuf على التوالي. ويمكن العثور عليها في النماذج الأولية والبيانات المرجعية.

إذا كنت لا تريد تقديم عرض سعر لظهور إعلان، عليك عرض استجابة HTTP 204 فارغة. يجب أن يعرض تطبيقك ردًا على كل BidRequest. تُعتبر المهلات والردود التي لا يمكن تحليلها أخطاءً، وتحدّ Google من مقدّمي عروض الأسعار الذين لديهم معدلات خطأ عالية.

الرقم التعريفي لتصميم الإعلان

يحدّد BidResponse تصميم إعلان من خلال الحقل BidResponse.seatbid.bid.crid (الحدّ الأقصى 128 بايت). حتى تصاميم الإعلانات المتشابهة يجب أن تتضمّن قيمًا فريدة لهذا الحقل إذا كانت تختلف في أي خصائص ملحوظة، بما في ذلك على سبيل المثال لا الحصر: الحجم وعنوان URL المعلَن وسمات تصاميم الإعلانات وأنواع المورّدين. بعبارة أخرى، يجب منح معرّفات تصاميم إعلانات مختلفة لأي إعلانَين:

  • تبدو مختلفة أو تتصرف بشكل مختلف
  • يمكنك عرض صور مختلفة.
  • يتم عرضهما بطرق مختلفة (على سبيل المثال، يتكوّن أحد الإعلانَين من صورة، بينما يتكوّن الآخر من فيديو).

عند تصميم تطبيقك، عليك اختيار طريقة منهجية لإنشاء المعرّفات تكون منطقية لأنواع تصاميم الإعلانات التي تخطّط لإرسالها.

سمات الإعلان

تنصح 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" أو "إعادة استخدام الاتصال") على خوادمك. اضبط المهلة على 10 ثوانٍ كحد أدنى، علمًا بأنّ القيم الأعلى تكون مفيدة في كثير من الحالات. تتحقّق Google من ذلك أثناء اختبارات وقت الاستجابة الأولية لتطبيقك، لأنّ "الشراة المعتمَدون" يرسلون الطلبات بمعدّل مرتفع ويحتاجون إلى تجنُّب وقت الاستجابة الإضافي لإنشاء اتصال TCP منفصل لكل طلب.
  • أدرِج عنوان URL الاختياري لتتبُّع مرّات الظهور من أجل تتبُّع وقت عرض مرّة الظهور بدلاً من وقت فوز مقدِّم عرض السعر. بسبب الانخفاض بين مرات الفوز ومرات العرض، يؤدي ذلك إلى الحصول على إحصاءات تتبُّع أكثر دقة.

  • احرص على أن يكون رمز مقدِّم عرض السعر خاليًا من الاعتماد على الحقول المتوقّفة نهائيًا، والتي يمكن أن تؤدي إلى تعذُّر تقديم عروض أسعارك بسبب حدوث أخطاء.
  • أدرِج BidResponse.seatbid.bid.w وBidResponse.seatbid.bid.h في BidResponse. يجب أن يتضمّن أي BidResponse لطلب يحتوي على أحجام إعلانات متعددة هذه الحقول، وإلا سيتم استبعاده من المزاد.
  • يجب ألا يتجاوز حجم الردّ 8 كيلوبايت. قد تؤدي الردود الكبيرة جدًا إلى زيادة وقت استجابة الشبكة وحدوث مهلات.
  • اتّبِع الإرشادات المتعلّقة بعروض الأسعار على المساحات الإعلانية المتاحة في iOS التي تتطلّب تحديد المصدر في SKAdNetwork.

مثال على الاستجابة لعرض السعر

تمثّل الأمثلة التالية نماذج يمكن لشخص عادي قراءتها لطلبات Protobuf وJSON.

OpenRTB Protobuf

OpenRTB JSON

ملاحظة مهمة: يتم تمثيل رسائل Protobuf الموضّحة في النماذج هنا كنص يمكن لشخص عادي قراءته. ومع ذلك، ليست هذه هي الطريقة التي يتم بها إرسال الرسائل عبر السلك. عند استخدام تنسيق OpenRTB Protobuf، سيتم قبول رسائل BidResponse المتسلسلة فقط.

يمكنك إنشاء رسالة BidResponse وتسلسلها باستخدام رمز C++‎ التالي:

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.

بدلاً من ذلك، يمكنك تحديد تصميم الإعلان باستخدام أحد الحقول التالية، استنادًا إلى شكل الإعلان:

  • إعلان معروض من خلال حزمة تطوير البرامج (SDK)
    • 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، وبحجم مناسب للخانة الإعلانية التي تقدّم عرض سعر لها.

بالإضافة إلى ذلك، يجب أن يتطابق حجم الإعلان المحدّد في الاستجابة لعرض السعر تمامًا مع إحدى مجموعات الأحجام في طلب عرض السعر في الحالات التالية:

  • إذا كان الإعلان بانر عاديًا (وليس فيديو أو إعلانًا مدمجًا مع المحتوى أو إعلانًا بينيًا)
  • أعلن مقدّم عرض السعر عن الحجم في الاستجابة لعرض السعر. يجب الإعلان عن الحجم كلما توفّر أكثر من حجم واحد في الطلب.
  • يتم استثناء الإعلانات البينية. بالنسبة إلى "الإعلانات البينية"، يجب أن يكون العرض% 50 على الأقل من عرض الشاشة، والارتفاع% 40 على الأقل من ارتفاع الشاشة.

يمكنك تحديد مقتطف HTML لتصميم الإعلان باستخدام أي رمز HTML صالح يتم عرضه بشكل صحيح، ولكن تذكَّر القيود المفروضة على تحديد حقل crid في قسم إنشاء رسالة BidResponse. ومن بين استخدامات هذه الميزة وضع معلومات إضافية في وسيطات عناوين URL التي يتم جلبها من خوادمك كجزء من عرض الإعلان. يتيح لك ذلك تمرير بيانات عشوائية حول مرّة الظهور إلى خوادمك.

معظم السياسات المتعلقة بمقتطفات HTML التي يتم عرضها في الاستجابات لعروض الأسعار هي نفسها السياسات المتعلقة بإعلانات الجهات الخارجية. لمزيد من المعلومات، يُرجى الاطّلاع على إرشادات برنامج "الشراة المعتمَدون" ومتطلبات عرض إعلانات الجهات الخارجية والإفصاح عن عناوين URL للنقرات في الإعلانات.

استخدام عناوين URL متّسقة للنقرات

يجب أن يكون عنوان URL للنقرة الذي تحدّده في حقل BidResponse.seatbid.bid.ext.clickurl مطابقًا لعنوان URL للصفحة المقصودة المحدّد في تصميم إعلانك. في ما يلي أمثلة على تصميمات الإعلانات بالتنسيقات المتوافقة التي تتوافق مع الحقل 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"
  ]
}

تحديد وحدات الماكرو

وحدات الماكرو هي نص منسَّق مضمَّن في بعض حقول الاستجابة لعرض السعر التي تحتوي على عناوين URL يتم استبدالها بقيمة ذات صلة في وقت عرض الإعلان. على سبيل المثال، إذا كان عرض السعر الفائز يتضمّن وحدة الماكرو AUCTION_PRICE في مقتطف HTML الخاص بتصميم الإعلان المضمّن في عرض السعر، سيتم استبدال وحدة الماكرو بقيمة يمكنك فك تشفيرها لتحديد المبلغ الذي دفعته مقابل ظهور الإعلان في المزاد.

يمكنك تضمين وحدات ماكرو في الحقول التالية:

  • BidResponse.seatbid.bid.adm

    تتوفّر وحدات الماكرو لمقتطفات HTML وتنسيقات XML الأصلية وعناوين URL للفيديو وتنسيقات XML لعلامات VAST للفيديو.

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

  • BidResponse.seatbid.bid.adm_native.imptrackers

  • BidResponse.seatbid.bid.ext.amp_ad_url

    لا تتوافق تصاميم إعلانات AMP إلا مع وحدتَي الماكرو WINNING_PRICE وWINNING_PRICE_ESC الخاصتَين بـ Google.

  • BidResponse.seatbid.bid.burl

  • BidResponse.seatbid.bid.ext.impression_tracking_url

    يمكنك استخدام هذه السمة بدلاً من BidResponse.seatbid.bid.burl إذا كنت بحاجة إلى أكثر من عنوان URL واحد للفوترة.

على سبيل المثال، يمكنك تضمين ماكرو كجزء من مقتطف HTML من خلال تضمين ${MACRO} ضمن عنوان URL المستخدَم لجلب تصميم الإعلان، حيث يكون MACRO أحد وحدات الماكرو المتوافقة الموضّحة في مواصفات OpenRTB.

وحدات ماكرو Google

تتيح Google وحدات ماكرو إضافية إلى جانب تلك المتوفّرة في مواصفات OpenRTB. وتكون هذه الوحدات منسَّقة بشكل مختلف، وستظهر على النحو التالي: %%MACRO%% إذا كانت مضمَّنة في عنوان URL. يوضّح الجدول التالي وحدات الماكرو هذه:

ماكرو الوصف
ADVERTISING_IDENTIFIER يسمح هذا الإعداد للمشترين بتلقّي معرّف المعلِنين (IDFA) على iOS أو المعرّف الإعلاني على Android عند عرض الإعلان. لمزيد من التفاصيل، يُرجى الاطّلاع على مقالة فك تشفير معرّفات المعلِنين.
CACHEBUSTER تمثيل سلسلة لعدد صحيح عشوائي غير موقَّع يتألف من أربعة بايت.
CLICK_URL_UNESC

عنوان URL للنقرة غير المهرَّب للإعلان في المقتطف، يجب أن تتبع نسخة من عنوان URL للنقرة التابع لجهة خارجية مباشرةً وحدة الماكرو.

على سبيل المثال، إذا كان عنوان URL للنقرة التابع لجهة خارجية هو http://my.adserver.com/some/path/handleclick?click=clk، يمكن استخدام الرمز التالي مع النسخة التي تم إلغاء ترميزها لمرة واحدة من عنوان URL للنقرة التابع لجهة خارجية بعد استدعاء الماكرو:

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

سيسجّل عنوان URL النقرة أولاً في Google، ثم يعيد التوجيه إلى عنوان URL للنقرة التابع لجهة خارجية.

CLICK_URL_ESC

عنوان URL للنقرة الذي تم إلغاء ترميزه للإعلان استخدِم هذه السمة بدلاً من 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، وستكون هذه المنصة مسؤولة عن إعادة التوجيه إلى عنوان URL الذي تم تمريره في المَعلمة google_click_url. يفترض هذا أنّ my.adserver.com تلغي ترميز المَعلمة google_click_url.

يمكنك إلحاق عنوان URL مزدوج الإلغاء بعد %%CLICK_URL_ESC%%. بعد أن يزيل my.adserver.com الترميز، يتبقى إصدار من عنوان URL تم ترميزه مرة واحدة، ويتم إلحاقه بـ google_click_url. وعند جلب google_click_url، سيتم إلغاء ترميزه مرة أخرى ثم إعادة التوجيه.

CLICK_URL_ESC_ESC

عنوان URL الذي تم تخطّيه مرّتين للإعلان استخدِم هذه السمة بدلاً من 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 يتم توسيعها إلى http: إذا كان طلب عرض السعر لا يتطلب طبقة المقابس الآمنة (SSL) أو إلى https: إذا كان طلب عرض السعر يتطلب طبقة المقابس الآمنة (SSL).
SITE النطاق الذي تم إلغاء ترميز عنوان URL له والخاص بعنوان URL للمحتوى أو المعرّف المجهول للمساحة الإعلانية المجهولة
SITE_URL تمّ الإيقاف. تم استبدالها بوحدة ماكرو SITE التي توفّر وظائف مماثلة.
TZ_OFFSET فرق التوقيت في المنطقة الزمنية
VERIFICATION

القيم المختلفة للإنتاج ووقت فحص تصميم الإعلان في مسار التحقّق التنسيق هو: %%?VERIFICATION:true-val:false-val%% حيث يمكن استخدام أي قيم باستثناء وحدات الماكرو لكل من true-val وfalse-val، بما في ذلك السلاسل الفارغة. بالنسبة إلى &quot;عرض الأسعار المفتوح&quot;، ننصح بأن تستخدم منصات التبادل الإعلاني هذا الماكرو، وبعد ذلك، لن تحتاج منصات إدارة الطلب إلى إجراء أي تغييرات.

على سبيل المثال، إذا كان تصميم الإعلان يتضمّن %%?VERIFICATION:-1:5000%%، سيكون النص البديل هو 5000 عند العرض و-1 في مسار التحقّق. يساعد ذلك في التمييز بين هاتين المجموعتين من إشعارات الاتصال.

WINNING_PRICE

تكلفة الظهور المشفّرة (أي التكلفة لكل تثبيت بدلاً من التكلفة لكل ألف ظهور) بالمايكرو من عملة الحساب على سبيل المثال، إذا كانت التكلفة لكل ألف ظهور الفائزة هي 5 دولار أمريكي، ستكون التكلفة لكل ألف ظهور بالوحدات الصغيرة هي 5,000,000، أو التكلفة لكل تثبيت بالوحدات الصغيرة هي 5,000. وستكون القيمة التي تم فك ترميزها لسمة WINNING_PRICE في هذه الحالة 5,000. يتم تحديد السعر الفائز في التكلفة لكل تثبيت.

لتحليل هذا الماكرو، عليك تنفيذ تطبيق يفك تشفير تأكيدات الأسعار. لمزيد من المعلومات، يُرجى الاطّلاع على صفحة فك تشفير تأكيدات الأسعار.

WINNING_PRICE_ESC ‫WINNING_PRICE معرَّف باستخدام ترميز URL

تتطلّب Google استخدام وحدة الماكرو CLICK_URL_UNESC أو CLICK_URL_ESC ضمن تصميم الإعلان الذي يتم عرضه من خلال جهة خارجية. تستخدم Google وحدات ماكرو CLICK_URL لتتبُّع النقرات.

يستخدم إلغاء عنوان 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. لمزيد من التفاصيل، يُرجى الاطّلاع على التعليقات الخاصة بهذه الحقول في تعريف Protocol Buffers لبروتوكول BidRequest.

إذا تم عرض إعلان في BidResponse، عليك ضبط حقول BidResponse.seatbid.bid.attr وBidResponse.seatbid.bid.cat وBidResponse.seatbid.bid.adomain أو BidResponse.seatbid.bid.adm_native.link.url بدقة في BidResponse. إذا كان الإعلان يحتوي على قيم متعددة سارية لهذه الحقول، يجب تضمين كل قيمة. يمكنك الاطّلاع على التعليقات الخاصة بهذه الحقول في تعريف Protocol Buffers BidResponse لمزيد من التفاصيل. ويتم تجاهل الردود التي لم يتم ضبط هذه الحقول فيها.

القياس المفتوح

يتيح لك "القياس المفتوح" تحديد مقدّمي الخدمات الخارجيين الذين يقدّمون خدمات قياس وتحقّق مستقلة للإعلانات التي يتم عرضها في بيئات التطبيقات المتوافقة مع الأجهزة الجوّالة.

وتشمل أشكال الإعلانات المتوافقة إعلانات الفيديو وإعلانات البانر والإعلانات البينية. لمزيد من المعلومات حول كيفية استخدام Open Measurement في استجابة لعرض سعر تحتوي على هذه الأشكال، يُرجى الرجوع إلى مقالة "مركز المساعدة" حول حزمة تطوير البرامج (SDK) لخدمة Open Measurement.

نماذج الاستجابات لعروض الأسعار

تعرض الأقسام التالية نماذج لاستجابات عروض الأسعار لأنواع الإعلانات المختلفة.

بانر التطبيق

OpenRTB Protobuf

OpenRTB JSON

إعلان بيني داخل التطبيق

OpenRTB Protobuf

OpenRTB JSON

فيديو إعلان بيني داخل التطبيق

OpenRTB Protobuf

OpenRTB JSON

إعلان مدمج مع المحتوى في التطبيق

OpenRTB Protobuf

OpenRTB JSON

فيديو ويب

OpenRTB Protobuf

OpenRTB JSON

إعلان بانر على الويب للأجهزة الجوّالة لمقدّم عرض سعر في Ad Exchange

OpenRTB Protobuf

OpenRTB JSON