تبلیغات 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

صفحه 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 و مدل رایج تبلیغاتی همراه، چندین مورد اضافه شده برای پشتیبانی از تبلیغات AMPHTML در آخرین مشخصات پیش نویس توسط IAB گنجانده شده است، از جمله موارد زیر.

پیشنهاد رشته Attr تایپ کنید شرح
درخواست 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+ = مقادیر ویژه تبادل. باید از قبل به مناقصه گران اطلاع داده شود
واکنش display curl رشته در پاسخ پیشنهاد، display.curl اضافه شده است تا بتواند خلاقیت ها را از طریق URL ارسال کند، از جمله پشتیبانی از تبلیغات AMPHTML.
این نشانی اینترنتی است که نشانه گذاری خلاقانه در آن پیدا می شود. قابل استفاده برای انواع خلاقیت ها مانند: تبلیغات AMP، VAST، و DAAST و Native. معمولاً فقط یکی از adm یا curl در یک آگهی خاص معتبر است.

خریداران مجاز RTB

فیلد BidResponse.Ad.amp_ad_url در پاسخ‌های پیشنهادی خریداران مجاز، نشانی اینترنتی را می‌پذیرد که به محتوای آگهی AMPHTML اشاره می‌کند. همین فیلد به عنوان پسوند در شی Bid در اجرای OpenRTB گوگل وجود دارد.

// 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 زودتر رندر شوند، صرافی باید آنها را تأیید و امضا کند، که نشان می‌دهد آگهی در قالب خلاقانه amp4ads <html amp4ads> نوشته شده است.

تبلیغاتی که دارای AMPHTML معتبر هستند، مجاز به ارائه زود هنگام توسط صفحات AMP خواهند بود. تبلیغاتی که به‌عنوان AMPHTML معتبر تأیید نشده‌اند، با همان سرعت تبلیغات غیرAMPHTML ارائه می‌شوند.

فقط تبلیغات AMPHTML باید در amp_ad_url بازگردانده شوند.

در آینده، اگر ناشر فقط به تبلیغات AMPHTML نیاز داشته باشد، تبلیغاتی که به عنوان AMPHTML امضا نشده اند ارائه نمی شوند.

با خریداران مجاز، اگر آگهی غیرAMPHTML را به یک جایگاه تبلیغاتی مورد نیاز AMPHTML برگردانند، مبلغی از پیشنهاد دهندگان دریافت خواهد شد.

واکشی سمت سرور

برای اینکه تبلیغات AMPHTML زودتر رندر شوند، محتوای تبلیغات AMPHTML باید بدون نیاز به پرش اضافی از مشتری ارائه شود. این برای جلوگیری از تجارب ضعیف کاربر به دلیل تأخیر تبلیغات و تماس‌های اضافی سمت مشتری طراحی شده است.

پس از اینکه پیشنهاد دهنده در مزایده برنده شد، صرافی یک درخواست سرور به سرور برای بازیابی محتوای آگهی AMPHTML واقع در URL ارائه شده در amp_ad_url انجام می دهد. سرورهای خلاق باید پاسخ دهند و محتوا را در عرض 300 میلی ثانیه برگردانند.

تبلیغ AMPHTML که از سرور خلاق بازگردانده می شود به جایگاه تبلیغاتی تزریق می شود و متعاقبا ارائه می شود. توجه داشته باشید که یک تبلیغ معتبر AMPHTML نمی تواند حاوی iframe یا سایر تگ های <amp-ad> باشد. برای جزئیات بیشتر به مشخصات تبلیغات AMPHTML مراجعه کنید.

ویژگی فقط بتا: در صورت نیاز با تیم حساب خود تماس بگیرید

در طول بازیابی تبلیغ AMPHTML از سرور به سرور (مشخص شده در amp_ad_url )، خریداران مجاز ممکن است هدر HTTP و IP را از مرورگر کاربر به سرور خلاق ارسال کنند. این تضمین می کند که سرور خلاق اطلاعاتی مشابه آنچه که از یک واکشی استاندارد سمت کلاینت ارسال می شود را دریافت می کند. در برخی موارد، آدرس IP ممکن است فقط به 3 بایت اول (IPv4) یا 6 بایت اول (IPv6) کوتاه شود. اگر به این ویژگی نیاز دارید با تیم حساب خود تماس بگیرید. در اینجا یک نمونه هدر HTTP وجود دارد:

نشانی‌های وب ردیابی و کلیک روی ماکروها

خریداران RTB اغلب ردیاب‌های نمایش را به‌عنوان یک فیلد ساختاریافته در پاسخ پیشنهاد می‌دهند (این Bid.burl است، "URL اطلاعیه صورت‌حساب" در OpenRTB 2.5).

با خریداران مجاز، اینها در سمت مشتری اخراج خواهند شد. amp-pixel URL های ردیابی را هنگامی که خلاقیت ارائه می شود فعال می کند. 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>

خلاقیت ها اغلب شامل پیکسل های تطبیق کوکی در کد خلاق هستند. تبلیغات AMPHTML می توانند از اجزای amp-pixel و amp-analytics برای این مورد استفاده کنند. اگر مورد استفاده شما با استفاده از amp-analytics یا amp-pixel قابل انطباق نیست، یک مشکل GitHub را برای بحث در مورد گزینه های جایگزین باز کنید. ما از برنامه های افزودنی جدید که می توانند به طور گسترده توسط تعدادی از شرکت های مختلف استفاده شوند، استقبال می کنیم. دستورالعمل های دقیق یا یک راهنمای فنی برای ساخت یک افزونه جدید را ببینید.

نمونه URL های تبلیغات AMP برای آزمایش

می توانید از نمونه محتوای تبلیغاتی AMPHTML زیر برای آزمایش استفاده کنید:

منابع

پروژه AMP و Google منابع مختلفی را برای کمک به شما در شروع کار منتشر کرده اند:

ساخت تبلیغات در AMP
پیشنهادات ویژه RTB به گروه IAB / OpenRTB