الإعلانات التي تستخدم رمز HTML لصفحات AMP عبر عرض الأسعار في الوقت الفعلي (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)، بما في ذلك ما يلي.

عرض السعر الحقل الإحالات الناجحة Type الوصف
الطلب Site.amp amp عدد صحيح يشير الحقل Site.amp إلى ما إذا كان يتم عرض الصفحة بتنسيق AMP، ويتم حذفها إذا كانت غير معروفة:
0 = الصفحة ليست بتنسيق AMP
1 = تم تصميم الصفحة باستخدام رمز HTML لصفحات AMP
الطلب 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 والإعلانات المدمجة مع المحتوى. عادةً ما يكون شرط واحد فقط من adm أو curl صالحًا في أي إعلان.

عرض الأسعار في الوقت الفعلي (RTB) للشراة المعتمَدين

يقبل الحقل BidResponse.Ad.amp_ad_url في إجابات عروض أسعار "الشراة المعتمَدون" عنوان 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;

التحقّق من رمز HTML صالح لصفحات AMP

لعرض إعلانات AMPHTML في وقت مبكر، يجب إجراء عملية التبادل للتحقّق منها وتوقيعها، ما يشير إلى أنّ الإعلان مكتوب بتنسيق تصميم الإعلان <html amp4ads> في amp4ads.

سيُسمح بعرض الإعلانات التي تتضمّن رمز HTML لصفحات AMP صالحة في وقت مبكر من خلال صفحات 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:

عناوين URL لتتبع مرات الظهور ووحدات الماكرو

غالبًا ما يُدرج المشترون في عرض الأسعار في الوقت الفعلي أدوات تتبُّع مرّات الظهور كحقل منظم في استجابة عرض السعر (هذا هو Bid.burl، "عنوان URL لإشعار الفوترة" في الإصدار 2.5 من OpenRTB).

مع "الشراة المعتمَدون"، سيتم تنشيطها من جهة العميل، ويطلق 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