מודעות AMPHTML ב-RTB

בדף זה מוסבר איך להתחיל להשתמש במודעות AMPHTML עם RTB. קראו את הקטע מקורות מידע שבהמשך כדי לקבל מידע נוסף על כלים ומודעות AMPHTML שיעזרו לכם להתחיל.

גישה ברמה גבוהה

בקשה להצעת מחיר ב-RTB

הבקשה להצעת מחיר ב-RTB מציינת אם הבקשה מגיעה מדף AMP, ומציינת מהן הדרישות למודעות AMPHTML.

OpenRTB

דף AMP

message SiteExt {
  enum AmpPage {
    // This is not an AMP page.
    DIALECT_HTML = 0;

    // This is an Amp page.
    DIALECT_HTML_AMP = 1;
  }

  // Whether this is an AMP page or not. Omitted if unknown.
  optional AmpPage amp = 1;
  enum VisibilityState {
    VISIBILITY_STATE_UNKNOWN = 0;

    // The page is at least partially visible. For example, in the foreground
    // tab of a non-minimized window.
    VISIBILITY_STATE_VISIBLE = 1;

    // The page is not visible to users. For example, when the page is in a
    // background browser tab, or in a minimized window.
    VISIBILITY_STATE_HIDDEN = 2;
  }

  // The visibility state of the web page containing the ad slot.
  // See https://www.w3.org/TR/page-visibility/.
  // [AdX: BidRequest.page_visibility]
  optional VisibilityState page_visibility = 2 [default =
    VISIBILITY_STATE_UNKNOWN];

  // Information about a browser window's user activation state. See
  // https://html.spec.whatwg.org/multipage/interaction.html#the-useractivation-interface.
  message UserActivation {
    // Indicates whether a user has completed an interaction since page load.
    optional bool wasact = 1;

    // Indicates whether a user is currently interacting with the page.
    optional bool isact = 2;
  }

  // User activation information from the browser for the current request, if
  // the request is for a web page.
  optional UserActivation uact = 5;

  // The set of possible web navigation types that predicate a page load. Each
  // of these types may have different performance characteristics. For example,
  // users going back and forth might experience a faster site than users
  // performing navigation for the first time or submitting forms. See
  // https://w3c.github.io/navigation-timing/#dom-performancenavigationtiming-type.
  enum NavigationType {
    NAVIGATION_TYPE_UNKNOWN = 0;

    // Navigation started by clicking a link, entering the URL in the browser's
    // address bar, form submission, or initializing through a script operation
    // other than reload and back_forward.
    NAVIGATION_TYPE_NAVIGATE = 1;

    // Navigation is through the browser's reload operation, location.reload(),
    // or a Refresh pragma directive like
    // <meta http-equiv="refresh" content="300">.
    NAVIGATION_TYPE_RELOAD = 2;

    // Navigation is through the browser's history traversal operation.
    NAVIGATION_TYPE_BACK_FORWARD = 3;

    // Navigation is initiated by a prerender hint (deprecated). See
    // https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel/prerender.
    NAVIGATION_TYPE_PRERENDER = 4;
  }

  // The type of browser navigation that led to the current page. Unset for
  // non-web ad requests.
  optional NavigationType ntype = 6;

  // Indicates that the request is using semi-transparent branding,
  // which means only a truncated version of the request URL will
  // be provided. This decision is made by the publisher, see
  // https://support.google.com/admanager/answer/4584891#urls for context.
  optional bool is_semi_transparent_request = 3;

  // The domain of the partner (of the site owner) with ownership
  // of some portion of ad inventory on the site. The partner's ads.txt file
  // will be hosted here. More detail at
  // http://iabtechlab.com/wp-content/uploads/2021/03/ctv-app-ads-explainer-guide.pdf
  optional string inventorypartnerdomain = 4;
}

הדרישות לגבי מודעות AMPHTML

// Ad Exchange extensions for the Imp object.
message ImpExt {
...
  // Possible requirement types for AMP ads.
  enum AmpAdRequirementType {
    // AMP ad requirements unknown.
    UNKNOWN_AMP_AD_REQUIREMENT_TYPE = 1;
    // AMP ads are not allowed.
    AMP_AD_NOT_ALLOWED = 2;
    // Either AMP ads or non-AMP ads are allowed;
    // AMP ads are not early rendered.
    AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED = 3;
    // Either AMP ads or non-AMP ads are allowed;
    // AMP ads are early rendered.
    AMP_AD_ALLOWED_AND_EARLY_RENDERED = 4;
    // AMP ads are required.
    // Ads that are non-AMP may be rejected by the publisher.
    AMP_AD_REQUIRED = 5;
    // Exchange-specific values above 500.
  }
  optional AmpAdRequirementType ampad = 8
    [default = UNKNOWN_AMP_AD_REQUIREMENT_TYPE];
}

הצעות מחיר בזמן אמת (RTB) לקונים ב-Authorized Buyers

דף AMP

// Whether this is an AMP page or not.
enum AmpPage {
  // AMP page status unknown.
  UNKNOWN_AMP_PAGE = 0;

הדרישות לגבי מודעות AMPHTML

// Possible requirement types for AMP ads.
enum AmpAdRequirementType {
  // AMP ad requirements unknown.
  UNKNOWN_AMP_AD_REQUIREMENT_TYPE = 0;

תגובה להצעת מחיר ב-RTB

OpenRTB

ב- OpenRTB 3.0 וב-Advertising Common Model הנלווה, כמה תוספות לתמיכה במודעות AMPHTML נכללות בטיוטות העדכניות ביותר של המפרטים של IAB, כולל המפרטים הבאים.

הצעת מחיר שדה מאפיין תיאור התיאור
בקשה Site.amp amp מספר שלם השדה Site.amp מציין אם הדף מעובד ב-AMP, הושמט אם הוא לא ידוע:
0 = הדף לא בפורמט AMP
1 = הדף נוצר באמצעות AMP HTML
בקשה ampformat rend מספר שלם מפרט הפורמטים של AMP מציין את הדרישות ואת התנהגות הרינדור של מודעות AMPHTML:
1 = הדרישות לגבי מודעות AMP אינן ידועות
2 = אסור להשתמש במודעות AMP
3 = מותר להשתמש במודעות AMP או במודעות שאינן AMP; מודעות AMP לא עוברות עיבוד מוקדם
4 = מותר להשתמש במודעות AMP או במודעות שאינן AMP, וכן מודעות AMP עוברות עיבוד מוקדם
5 = נדרשות מודעות AMP. יכול להיות שבעלי התוכן הדיגיטלי ידחו מודעות שאינן בפורמט AMP
500+ = ערכים ספציפיים ל-Exchange. יש להודיע על כך למגישי הצעות המחיר מראש
תשובה display curl מחרוזת בתגובה להצעת המחיר, הוספנו את הפרמטר display.curl כדי לאפשר לשלוח נכסי קריאייטיב דרך כתובת URL, כולל תמיכה במודעות AMPHTML.
זוהי כתובת ה-URL שבה נמצאים תגי העיצוב של הקריאייטיב. רלוונטי לסוגי קריאייטיב כמו: מודעות AMP, VAST, DAAST ו-Native. בדרך כלל, רק אחד מתוך adm או curl חוקי במודעה נתונה.

הצעות מחיר בזמן אמת (RTB) לקונים ב-Authorized Buyers

השדה BidResponse.Ad.amp_ad_url בתגובות להצעות מחיר של Authorized Buyers מקבל כתובת URL שמפנה לתוכן של מודעת AMPHTML. השדה הזה קיים גם כתוסף באובייקט Bid בהטמעת OpenRTB של Google.

// The URL to fetch an AMPHTML ad. Only one of the following should be set:
// html_snippet, video_url, amp_ad_url, native_ad.
optional string amp_ad_url = 23;

אימות של AMPHTML חוקי

כדי שמודעות AMPHTML יוצגו בשלב מוקדם, יש לבצע את ההחלפה לאמת ולחתום עליהן. המשמעות היא שהמודעה כתובה בפורמט הקריאייטיב <html amp4ads> amp4ads.

מודעות בפורמט AMPHTML תקפות יורשו להופיע בשלב מוקדם על ידי דפי AMP. מודעות שלא מאומתות כ-AMPHTML תקינות יעובדו באותה מהירות כמו מודעות שאינן AMPHTML.

אפשר להחזיר רק מודעות AMPHTML ברכיב amp_ad_url.

בעתיד, אם בעל האתר ידרוש שימוש במודעות AMPHTML בלבד, לא יוצגו מודעות שאינן חתומות כ-AMPHTML.

ב-Authorized Buyers, מגישי הצעות המחיר עדיין יחויבו אם הם יחזירו מודעה שאינה AMPHTML למיקום מודעה שנדרש על ידי AMPHTML.

אחזור בצד השרת

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

אחרי שמגיש הצעות המחיר זוכה במכרז, פלטפורמת ה-Exchange תבצע בקשה משרת לשרת כדי לאחזר את התוכן של מודעת ה-AMPHTML בכתובת ה-URL שצוינה בשדה amp_ad_url. שרתי הקריאייטיב חייבים להגיב ולהחזיר תוכן תוך 300 אלפיות השנייה.

מודעת ה-AMPHTML שמוחזרת משרת הקריאייטיב תוחדר למיקום המודעה ולאחר מכן תעובד. שימו לב שמודעת AMPHTML חוקית לא יכולה להכיל מסגרות iframe או תגי <amp-ad> אחרים. לפרטים נוספים, אפשר לעיין במפרט של מודעות AMPHTML.

תכונת בטא בלבד: אפשר ליצור קשר עם צוות ניהול החשבון אם זה נדרש

במהלך אחזור מודעת AMPHTML משרת לשרת (שצוין ב-amp_ad_url), Authorized Buyers יכולים להעביר את כותרת ה-HTTP וכתובת ה-IP מדפדפן המשתמש אל שרת הקריאייטיב. כך אפשר להבטיח ששרת הקריאייטיב יקבל מידע שדומה לזה שנשלח משליפה רגילה מצד הלקוח. בחלק מהמקרים כתובת ה-IP תקוצר ל-3 הבייטים הראשונים (IPv4) או ל-6 הבייטים הראשונים (IPv6). אם אתם צריכים את התכונה הזו, צרו קשר עם צוות ניהול החשבון. הנה דוגמה לכותרת HTTP:

כתובות URL למעקב אחר חשיפות ופקודות מאקרו של קליקים

קוני הצעות מחיר ב-RTB כוללים לעיתים קרובות כלים למעקב אחרי חשיפות כשדה מובנה בתגובה להצעת המחיר (היא Bid.burl, "כתובת ה-URL של הודעת החיוב" ב-OpenRTB 2.5).

עם Authorized Buyers, הנכסים האלה יופעלו בצד הלקוח, וכתובות URL למעקב אחר הפעלת amp-pixel מופעלות בזמן עיבוד הקריאייטיב. הכלי amp-analytics יכול לטפל בתרחישים מתקדמים יותר של מעקב, מעבר לעיבוד.

מודעות AMPHTML צריכות להכיל ב-AMPHTML מאקרו לקליק חוקי. בדרך כלל הוא ייראה בערך כך:

<a href="%%CLICK_URL_UNESC%%http%3A%2F%2my.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a>
<a href=”https://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC%%”></a>

קריאייטיבים כוללים לעתים קרובות פיקסלים של קובצי cookie תואמים בתוך קוד הקריאייטיב. בתרחיש לדוגמה הזה, מודעות AMPHTML יכולות להשתמש ברכיבי amp-pixel ו-amp-analytics. אם אי אפשר לתת מענה לתרחיש לדוגמה שלכם באמצעות amp-analytics או amp-pixel, תוכלו לפתוח בעיה ב-GitHub כדי לדון באפשרויות החלופיות. אנחנו מקדמים בברכה תוספים חדשים, שמספר חברות שונות יכולות להשתמש בהם באופן נרחב. ראו הנחיות מפורטות או מדריך טכני לבניית תוסף חדש.

דוגמאות לכתובות URL של מודעות AMP לצורך בדיקה

אפשר להשתמש בדוגמה הבאה של תוכן מודעת AMPHTML לצורך בדיקה:

מקורות מידע

פרויקט AMP ו-Google השיקו מספר משאבים שיעזרו לכם להתחיל:

יצירת מודעות ב-AMP
הצעות ספציפיות ל-RTB עבור קבוצת IAB / OpenRTB