יצירת תגובה

אחרי שהאפליקציה מעבדת את בקשת הצעת המחיר מ-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.seatbid.bid.crid ב-BidResponse מציין קריאייטיב (מגבלה של 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.

במשאב Creatives מוסבר איך לקבל משוב על המאפיינים שזוהו בקריאייטיב.

שדות של Open Bidding

התגובות לבקשות להצעות מחיר שנשלחות על ידי מגישי הצעות מחיר של בורסות ורשתות שמשתתפים ב-Open Bidding דומות לאלה של Authorized Buyers שמשתתפים בבידינג בזמן אמת רגיל. לקוחות Open Bidding יכולים לציין מספר קטן של שדות נוספים, ויכול להיות שיהיו שימושים חלופיים לכמה שדות קיימים. למשל:

שדה פרטים
BidResponse.imp.pmp.deals.id

מספר העסקה ממרחב השמות של הבורסה שמשויך להצעת המחיר הזו ומדווח לבעלי התוכן הדיגיטלי.

BidResponse.seatbid.bid.ext.exchange_deal_type

סוג העסקה שמדווח לבעלי התוכן הדיגיטלי, שמשפיע על אופן הטיפול בעסקה במכרז.

BidResponse.seatbid.bid.ext.third_party_buyer_token האסימון שמשמש לזיהוי פרטי הקונה הסופי מצד שלישי, אם הבורסה בתור Open Bidder היא מתווכת. הוא מתקבל מהקונה מצד שלישי וצריך להעביר אותו ל-Google ללא שינוי בתגובה לבקשה להצעת מחיר.

המלצות

  • מפעילים בשרתים חיבורי HTTPS קבועים (שנקראים גם keep-alive או connection reuse). צריך להגדיר את הזמן הקצוב לתפוגה ל-10 שניות לפחות – במקרים רבים ערכים גבוהים יותר מועילים. ‫Google בודקת את זה במהלך בדיקות זמן האחזור הראשוניות של האפליקציה, כי מערכת Authorized Buyers שולחת בקשות בקצב גבוה וצריכה להימנע מהתקורה של זמן האחזור שנוצרת כשיוצרים חיבור TCP נפרד לכל בקשה.
  • אפשר להוסיף את כתובת ה-URL האופציונלית למעקב אחרי חשיפות כדי לעקוב אחרי החשיפה כשהיא מוצגת, ולא כשהמגיש הצעת המחיר זוכה. בגלל ההבדל בין מספר הזכיות במכרזים לבין מספר העיבודים, הנתונים הסטטיסטיים של המעקב מדויקים יותר.

  • חשוב לוודא שקוד הבידינג לא תלוי בשדות שהוצאו משימוש, כי זה עלול לגרום לשגיאות בהצעות המחיר.
  • כוללים את BidResponse.seatbid.bid.w ואת BidResponse.seatbid.bid.h ב-BidResponse. BidResponse לבקשה שכוללת כמה גדלים של מודעות חייבת לכלול את השדות האלה, אחרת היא תוסר מהמכרז.
  • הגבילו את גודל התגובה לפחות מ-8K. תשובות גדולות מאוד עלולות להגדיל את זמן האחזור ברשת ולגרום לתפוגת זמן קצוב.
  • פועלים לפי ההנחיות להגשת הצעות מחיר על מלאי שטחי פרסום ב-iOS שדורש שיוך (Attribution) של 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 שמוחזרים בתגובות לבקשות להצעות מחיר זהים לכללי המדיניות לגבי מודעות של צד שלישי. מידע נוסף זמין במאמרים הנחיות למשתתפים בתוכנית Authorized Buyers, דרישות להצגת מודעות על ידי צד שלישי והצהרה על כתובות היעד של הקליקים במודעות.

שימוש בכתובות היעד של קליקים עקביות

כתובת היעד של הקליק שציינתם בשדה 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"
  ]
}

ציון פקודות מאקרו

פקודות מאקרו הן טקסט מעוצב שמוטמע בחלק מהשדות של התגובה לבקשה להצעת מחיר, שמכילים כתובות URL שמוחלפות בערך רלוונטי בזמן הצגת המודעה. לדוגמה, אם הצעת המחיר הזוכה שלכם כללה את פקודת המאקרו AUCTION_PRICE בקטע הקוד של קריאייטיב ה-HTML שנכלל בהצעת המחיר, פקודת המאקרו תוחלף בערך שתוכלו לפענח כדי לקבוע את הסכום ששילמתם על החשיפה במכרז.

אפשר לכלול פקודות מאקרו בשדות הבאים:

  • BidResponse.seatbid.bid.adm

    יש תמיכה בפקודות מאקרו בפורמטים הבאים: קטע קוד HTML, מודעות מותאמות, כתובת URL של סרטון ו-VAST XML של סרטון.

  • 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

    אם אתם צריכים יותר מכתובת URL אחת לחיוב, השתמשו במאפיין הזה במקום במאפיין BidResponse.seatbid.bid.burl.

לדוגמה, אפשר לכלול פקודת מאקרו כחלק מקטע קוד HTML על ידי הטמעת ${MACRO} בתוך כתובת ה-URL שמשמשת לאחזור הקריאייטיב, כאשר MACRO היא אחת מפקודות המאקרו הנתמכות שמתוארות במפרט של OpenRTB.

פקודות מאקרו של Google

‫Google תומכת בפקודות מאקרו נוספות מלבד אלה שנמצאות במפרט של OpenRTB. הפורמט שלהן שונה, והן יופיעו בתור %%MACRO%% אם הן מוטמעות בכתובת URL. בטבלה הבאה מתוארות פקודות המאקרו האלה:

מאקרו תיאור
ADVERTISING_IDENTIFIER מאפשר לקונים לקבל את מזהה ה-IDFA ב-iOS או את מזהה הפרסום ב-Android בזמן עיבוד החשיפה. פרטים נוספים זמינים במאמר פענוח מזהי מפרסמים.
CACHEBUSTER ייצוג מחרוזת של מספר שלם אקראי, לא חתום, של ארבעה בייטים.
CLICK_URL_UNESC

כתובת אתר לקליקים של המודעה, ללא תו בריחה (escape). בקטע הקוד, גרסה עם תווי בריחה (escape) של כתובת אתר לקליקים של הצד השלישי צריכה להופיע מיד אחרי המאקרו.

לדוגמה, אם כתובת ה-URL של הצד השלישי היא http://my.adserver.com/some/path/handleclick?click=clk, אפשר להשתמש בקוד הבא עם הגרסה עם תו בריחה (escape) יחיד של כתובת ה-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 של המודעה, עם תווי בריחה (escape) כפולים. צריך להשתמש בזה במקום ב-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 הדומיין עם תווי בריחה (escape) של כתובת ה-URL של התוכן, או המזהה האנונימי של מלאי שטחי פרסום אנונימי.
SITE_URL הוצא משימוש. הוחלפה בפקודת המאקרו SITE שמספקת פונקציונליות זהה.
TZ_OFFSET ההסטה מאזור הזמן.
VERIFICATION

הערכים השונים של הייצור ומתי נסרק הקריאייטיב בצינור עיבוד הנתונים של האימות. הפורמט הוא: %%?VERIFICATION:true-val:false-val%%, כאשר אפשר להשתמש בכל הערכים מלבד פקודות מאקרו עבור true-val ו-false-val, כולל מחרוזות ריקות. ב-Open Bidding, מומלץ שבורסות ישתמשו בפקודת המאקרו הזו. אחרי שהן יעשו את זה, לא יהיה צורך לבצע שינויים בפלטפורמות למפרסמים (DSP).

לדוגמה, אם קריאייטיב כולל את %%?VERIFICATION:-1:5000%%, הטקסט החלופי יהיה 5000 בהצגת המודעות ו--1 בצינור עיבוד הנתונים לאימות. כך אפשר להבדיל בין שתי קבוצות הפינגים.

WINNING_PRICE

עלות החשיפה המקודדת (כלומר, עלות להתקנה (CPI) ולא עלות לאלף חשיפות (CPM)) במיקרו-יחידות של מטבע החשבון. לדוגמה, עלות של 5 דולר ארה"ב לאלף חשיפות שזכתה במכרז מקבילה ל-5,000,000 מיקרו-יחידות של עלות לאלף חשיפות, או ל-5,000 מיקרו-יחידות של עלות להתקנה. הערך המפוענח של WINNING_PRICE במקרה הזה יהיה 5,000. המחיר הזוכה מצוין בעלות להתקנה (CPI).

כדי לנתח את המאקרו הזה, צריך להטמיע אפליקציה שמפענחת אישורי מחיר. מידע נוסף זמין בדף פענוח אישורי מחירים.

WINNING_PRICE_ESC WINNING_PRICE עם תווי בריחה (escape) של כתובת 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. פרטים נוספים זמינים בהערות לשדות האלה בהגדרה של מאגר האחסון לפרוטוקולים 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 מאפשר לכם לציין ספקים חיצוניים שמספקים שירותי מדידה ואימות עצמאיים למודעות שמוצגות בסביבות של אפליקציות לנייד.

הפורמטים הנתמכים של המודעות כוללים מודעות וידאו, מודעות באנר ומודעות מעברון. מידע נוסף על השימוש ב-Open Measurement בתגובה לבקשה להצעת מחיר שכוללת את הפורמטים האלה זמין במאמר במרכז העזרה בנושא Open Measurement SDK.

תגובות לדוגמה לבקשות להצעות מחיר

בקטעים הבאים מוצגות דוגמאות לתגובות לבקשות להצעות מחיר לסוגי מודעות שונים.

באנר של האפליקציה

OpenRTB Protobuf

OpenRTB JSON

מודעת מעברון באפליקציה

OpenRTB Protobuf

OpenRTB JSON

מודעת וידאו מעברון באפליקציה

OpenRTB Protobuf

OpenRTB JSON

מודעה מותאמת באפליקציה

OpenRTB Protobuf

OpenRTB JSON

סרטונים באינטרנט

OpenRTB Protobuf

OpenRTB JSON

מודעת באנר לאינטרנט לנייד למגיש הצעת מחיר בבורסת מודעות

OpenRTB Protobuf

OpenRTB JSON