Нативная реклама

Нативная реклама — это реклама, отформатированная с учетом окружающего контента и визуального дизайна, что повышает вероятность ее просмотра и нажатия пользователями. Нативные рекламные ресурсы доступны в мобильных приложениях, а также на настольных и мобильных веб-сайтах. Дополнительную информацию о нативной рекламе см. в разделе Обзор нативной рекламы .

Нативные объявления поддерживаются как для Авторизованных покупателей, так и для Open Bidding.

Вот рабочий процесс для нативной рекламы:

  1. В Google поступает запрос на нативную рекламу. В вызове указывается один или оба приведенных ниже шаблона нативных объявлений, в каждом из которых указаны предпочтительные нативные поля.
  2. Google отправляет покупателям запрос ставки RTB, содержащий список запрашиваемых полей.
  3. Заинтересованные покупатели отвечают, заполняя запрошенные поля.
  4. Google проводит аукцион, чтобы выбрать победившую ставку, и отправляет предоставленные покупателем креативные ресурсы издателю.
  5. Издатель объединяет ресурсы в нативное объявление и стилизует их в соответствии с дизайном сайта.

Форматы сообщений

Google поддерживает спецификацию OpenRTB как в JSON, так и в Protobuf.

Для нативной рекламы OpenRTB Protobuf следующие поля отличаются от спецификации:

Спецификация JSON
(PROTOCOL_OPENRTB_2_4)
Тип JSON Реализация OpenRTB
(PROTOCOL_OPENRTB_PROTOBUF_2_4)
Тип OpenRTB
BidRequest.imp[].native.request string BidRequest.imp[].native.request_native NativeRequest
BidResponse.seatbid[].bid[].adm string BidResponse.seatbid[].bid[].adm_native NativeResponse

Поля OpenRTB представляют собой сообщения Protobuf, а не строки.

Если вы используете реализацию OpenRTB Protobuf, вы не получите BidRequest.imp[].native.request и должны ответить BidResponse.seatbid[].bid[].adm_native . Ответы на запросы ставок с BidResponse.seatbid[].bid[].adm фильтруются. Идентификаторы активов не требуются для ответов на запросы OpenRTB Protobuf.

Если вы используете SDK покупателя для показа нативной рекламы, вам необходимо включить type изображения в declared_ad при отправке креативов на проверку .

Шаблоны нативных объявлений

Google поддерживает два наиболее распространенных шаблона нативных объявлений для невидео и видеообъявлений:

Существуют и другие шаблоны, которые могут иметь другой набор требований к полям, измерениям и размерам.

Шаблон объявления, ориентированного на установку приложения

В таблицах ниже показаны поля с пометками «Обязательно» или «Рекомендовано» . Применяются следующие правила:

  • Поля с пометкой «Обязательно» обязательны для заполнения участником торгов.
  • Поля с пометкой «Рекомендовано» не являются обязательными для участника торгов, и издатель может отображать или не отображать их, если они есть (например, звездный рейтинг).
  • Призыв к действию (CTA) всегда помечается как «Рекомендуемый» , поскольку назначается значение по умолчанию, если он не отправлен участником торгов, но он всегда будет отображаться в случае отправки.

В следующей таблице перечислены поля шаблона объявления, ориентированного на установку приложения. Мобильные приложения используют эти поля для создания нативной рекламы, ориентированной на установку приложения.

Поле Описание Требуется или рекомендуется? Всегда отображается? Рекомендуемый размер изображения/максимальное количество символов Пример
Заголовок Название приложения Необходимый Да 25 символов Флуд-это!
Изображение Скриншот из приложения или другое подходящее изображение. Необходимый Нет 1200 x 627 пикселей или 600 x 600 пикселей в зависимости от соотношения сторон, требуемого издателем. <Скриншот из игры Flood-It!>
Тело Основной текст приложения Необходимый Нет 90 символов Обманчиво просто + дразняще сложно = восхитительно затягивает!
Значок приложения Значок приложения Необходимый Нет 128 х 128 пикселей <Флуд-это! значок приложения>
Призыв к действию Предпочтительное действие пользователя рекомендуемые Да 15 символов Установить
Звездный рейтинг Количество звезд (0–5), обозначающих рейтинг приложения в магазине приложений. рекомендуемые Нет 0–5 4,5
Цена Стоимость приложения рекомендуемые Нет 15 символов Бесплатно

Примечания о длине текста

Если покупатель отправляет текстовый ресурс (например, основной текст), длина которого превышает рекомендуемое максимальное количество символов, Google или издатель могут обрезать текст и сделать его многоточием. Обратите внимание, что пределы усечения в два раза меньше на китайском, японском и корейском языках. Например, ограничение на заголовок составляет 90 для английского языка и 45 для китайского.

Примечания о размере изображения

Издателям разрешено:

  • Обрезайте основное изображение симметрично до 20 % по одному измерению (высоте или ширине).
  • Масштабируйте изображение, не меняя его соотношение сторон.
  • Изображения, соотношение сторон которых существенно отличается от тех, которые подразумеваются высотой и шириной, могут быть отфильтрованы.

Шаблон контентного объявления

В следующей таблице перечислены поля шаблона объявления в контенте. Издатели используют эти поля для создания объявлений с собственным контентом.

Поле Описание Требуется или рекомендуется? Всегда отображается? Рекомендуемый размер изображения/максимальное количество символов * Пример
Заголовок Заголовок объявления Необходимый Да 25 символов Самые низкие ставки по ипотеке
Изображение Основное изображение объявления Необходимый Нет 1200 x 627 пикселей или 600 x 600 пикселей в зависимости от соотношения сторон, требуемого издателем. <Основное изображение объявления>
Тело Содержание объявления Необходимый Нет 90 символов Ваш дом, милый дом в Бруклине – дешевле и быстрее, чем вы думаете!
Логотип Логотип рекламодателя или другое подходящее небольшое изображение. рекомендуемые Нет 128 х 128 пикселей <Логотип NY Mortgage Inc.>
Призыв к действию Предпочтительное действие пользователя рекомендуемые Нет 15 символов Получить предложение
Рекламодатель Текст, идентифицирующий рекламодателя или бренд. Необходимый Нет 25 символов Нью-Йоркская Ипотека Inc.

Шаблон видеообъявления, ориентированного на установку приложения

Поле Описание Требуется или рекомендуется? Всегда отображается? Рекомендуемый размер изображения/максимальное количество символов * Пример
видео Видеоответ VAST, содержащий все необходимые ресурсы для воспроизведения видеорекламы. Необходимый Нет - URL-адрес VAST XML, содержащий Flood-It! Видеообъявление
Заголовок Название приложения Необходимый Да 25 символов Флуд-это!
Изображение Изображение (миниатюра), отображаемое в плеере перед нажатием на видеообъявление или во время его загрузки. Необходимый Нет Соотношение сторон должно соответствовать видео (например: 1280x720 для видео 16x9, 4x3 для видео 640x480). Скриншот из игры Flood-It! Или из видео
Тело Основной текст приложения Необходимый Нет 90 символов Обманчиво просто + дразняще сложно = восхитительно затягивает!
Значок приложения Значок приложения Необходимый Нет 128 х 128 пикселей Флуд-это! значок приложения
Призыв к действию Предпочтительное действие пользователя Необходимый Да 15 символов Установить
Звездный рейтинг Количество звезд (0–5), обозначающих рейтинг приложения в магазине приложений. рекомендуемые Нет 0–5 4,5
Цена Стоимость приложения рекомендуемые Нет 15 символов Бесплатно

Ограничения

  • Видео . Все видео должны быть в виде URL-адреса VAST или тега VAST. Необработанный видеофайл, такой как WebM, MP4 и т. д., указать невозможно .

  • Длина текста . Если покупатель указывает в ответе текстовый ресурс, например body , он может быть обрезан Google или издателем. Обратите внимание, что пределы усечения в два раза меньше в китайском, японском и корейском языках. Например, ограничение на заголовок составляет 90 на английском языке и 45 на китайском.

  • Размер изображения : Издателям разрешено:

    • Обрезайте основное изображение симметрично до 20 % по одному измерению (высоте или ширине).
    • Масштабируйте изображение, не меняя его соотношение сторон.

Пример объявления, ориентированного на установку приложения

родное видео

Шаблон объявления с видеоконтентом

Поле Описание Требуется или рекомендуется? Всегда отображается? Рекомендуемый размер изображения/максимальное количество символов * Пример
видео Видеоответ VAST, содержащий все необходимые ресурсы для воспроизведения видеорекламы. Необходимый Да - URL-адрес VAST XML, содержащий Flood-It! Видеообъявление
Заголовок Заголовок объявления Необходимый Да 25 символов Самые низкие ставки по ипотеке
Изображение Изображение (миниатюра), отображаемое в плеере перед нажатием на видеообъявление или во время его загрузки. Необходимый Нет Соотношение сторон должно соответствовать видео (например: 1280x720 для видео 16x9, 4x3 для видео 640x480). Скриншот из видео
Тело Содержание объявления Необходимый Нет 90 символов Ваш дом, милый дом в Бруклине – дешевле и быстрее, чем вы думаете!
Логотип Логотип рекламодателя или другое подходящее небольшое изображение. рекомендуемые Нет 128 х 128 пикселей Логотип NY Mortgage Inc.
Призыв к действию Предпочтительное действие пользователя Необходимый Нет 15 символов Получить предложение
Рекламодатель Текст, идентифицирующий рекламодателя или бренд. Необходимый Нет 25 символов Нью-Йоркская Ипотека Inc.

Мета-поля

Следующие метаполя являются общими для всех поддерживаемых шаблонов объявлений:

Буфер протокола авторизованных покупателей в реальном времени Авторизованные покупатели, эквивалент OpenRTB Описание
NativeAd.click_link_url Link.url URL-адрес, который будет вызываться браузером, когда пользователь нажимает на объявление. Может быть первым шагом в цепочке перенаправлений, которая в конечном итоге ведет на целевую страницу. Для нативной рекламы мы рекомендуем использовать click_link_url в качестве поля, чтобы указать пункт назначения, куда в конечном итоге перейдет пользователь. Это поле необходимо использовать в случае динамических целевых страниц.
Ad.click_through_url Bid.adomain

Должен быть установлен, если участник торгов намерен подать заявку. Это набор целевых URL-адресов для фрагмента, включая URL-адреса, на которые пользователь перейдет, если нажмет на отображаемое объявление, а также любые URL-адреса, которые видны в отображаемом объявлении. Не включайте промежуточные вызовы рекламного сервера, не связанные с конечной целевой страницей. Ответ на запрос BidResponse, который возвращает фрагмент или видеообъявление, но не декларирует отсутствие click_through_url будет отклонен. Устанавливайте это поле только в том случае, если установлены html_snippet , video_url или native_ad . Эти данные используются в качестве объявления целевого URL-адреса, например, для последующей фильтрации URL-адресов, заблокированных издателем, или категоризации объявлений. При использовании нативной рекламы см. NativeAd.click_link_url выше.

В случае неродной рекламы она не используется для отслеживания кликов или каких-либо других рекламных функций; он используется только как объявление целевого URL.

Для нативной рекламы, если NativeAd.click_link_url не установлен, первое значение click_through_url используется для направления пользователя на целевую страницу. Кроме того, все значения используются в качестве объявлений целевого URL-адреса (аналогично неродному случаю).

NativeAd.click_tracking_urls Link.clicktrackers Необязательный. Дополнительные URL-адреса, которые позволяют рекламодателям отслеживать клики пользователей по объявлению.
Ad.ad_choices_destination_url BidExt.ad_choices_destination_url Ссылка на рекламные настройки или страницу отказа. Если он присутствует, к нативному объявлению добавляется стандартный значок «Выбор рекламы» и связывается с этим URL-адресом. Это поддерживается для нативных объявлений, но не является частью нативного сообщения в ответе на заявку.
Ad.impression_tracking_url NativeResponse.imptrackers Нативный показ следует отслеживать с помощью impression_tracking_url в прототипе назначения ставок в режиме реального времени Авторизованных покупателей или с помощью нативных имтрекеров в OpenRTB.

required_fields и recommended_fields указываются издателем. Мы покажем, как преобразовать эти битовые поля, чтобы определить, является ли поле обязательным или рекомендуемым.

Битовое поле использует каждый бит двоичного значения для хранения утверждения «истина» или «ложь», что эквивалентно отправке множества логических сигналов, таких как is_logo_required , is_header_required и т. д., но все они упакованы вместе.

Пример

В этом примере мы будем использовать значение required_fields 1085 .

Сначала найдите эквивалентное двоичное значение : 10000111101

Получив двоичное значение, вы можете проверить биты, чтобы узнать, требуется ли поле (1) или нет (0).

В таблице ниже поля сопоставлены с их местами в двоичном значении. Считайте двоичный файл справа налево, при этом 1 бит соответствует самому правому месту в двоичном значении.

Поле Размещение двоичных значений (справа налево)
HEADLINE 1
BODY 2
CALL_TO_ACTION 4
ADVERTISER 8
IMAGE 16
LOGO 32
APP_ICON 64
STAR_RATING 128
PRICE 256
STORE 512
VIDEO 1024

Если посмотреть на пример двоичного значения 10000111101 , то 1-бит (крайний правый) равен 1 , что означает необходимое значение. Согласно таблице 1 бит соответствует HEADLINE .

2-битный (второе значение справа) равен 0 , что означает, что не требуется. 2-бит соответствует BODY .

Вот все интерпретируемые обязательные поля в нашем примере:

Ценить Описание Необходимый?
1 VIDEO Да
0 STORE Нет
0 PRICE Нет
0 STAR_RATING Нет
0 APP_ICON Нет
1 LOGO Да
1 IMAGE Да
1 ADVERTISER Да
1 CALL_TO_ACTION Да
0 BODY Нет
1 HEADLINE Да

Сообщение NativeAdTemplate

При получении запроса ставки, содержащего нативный инвентарь, он будет содержать заполненный BidRequest.adSlot[].native_ad_template . Сообщение NativeAdTemplate содержит спецификации для:

  • Поля, которые являются обязательными или рекомендуемыми.
  • Размеры изображений, логотипов и значков приложений.
  • Характеристики стиля, в котором отображается объявление.
message BidRequest {
  //...
  message AdSlot {
    //...

    message NativeAdTemplate {
      // Defines the bits used in required_fields and recommended_fields.
      // There is one bit for each of the fields in BidResponse.Ad.NativeAd
      enum Fields {
        NO_FIELDS = 0x0;
        HEADLINE = 0x1;
        BODY = 0x2;
        CALL_TO_ACTION = 0x4;
        ADVERTISER = 0x8;
        IMAGE = 0x10;
        LOGO = 0x20;
        APP_ICON = 0x40;
        STAR_RATING = 0x80;
        PRICE = 0x100;
        DEPRECATED_STORE = 0x200;
        VIDEO = 0x400;
      }

      // Bitfield describing which fields are required by the publisher. Bid
      // responses with no value for these fields will be rejected. Click
      // and view tracking urls are always implicitly required.
      optional int64 required_fields = 1;

      // Bitfield describing which fields are recommended by the publisher.
      // All recommended field are supported, but not all recommended fields
      // are required.
      optional int64 recommended_fields = 2;

      // max_safe_length indicates the maximum number of Unicode characters that
      // are guaranteed to be shown without truncation. Longer strings may be
      // truncated and ellipsized by Ad Exchange or the publisher during
      // rendering.
      optional int32 headline_max_safe_length = 3;
      optional int32 body_max_safe_length = 4;
      optional int32 call_to_action_max_safe_length = 5;
      optional int32 advertiser_max_safe_length = 6;
      optional int32 price_max_safe_length = 15;

      // The width and height from which to calculate the required aspect ratio.
      // You can provide a larger image in the response. Images that have aspect
      // ratios substantially different than those implied by the height and
      // width may be filtered.
      optional int32 image_width = 7;
      optional int32 image_height = 8;
      optional int32 logo_width = 9;
      optional int32 logo_height = 10;
      optional int32 app_icon_width = 11;
      optional int32 app_icon_height = 12;

      // Globally distinct id for the specific style, HTML, and CSS with which
      // the native ad is rendered.
      optional int32 style_id = 16;

      // Type of style layout for each native ad template.
      enum LayoutType {
        PIXEL = 0;
        FLUID = 1;
      }
      optional LayoutType style_layout_type = 17 [default = PIXEL];

      // If the style_layout_type is Pixel, width and height of the
      // entire native ad after rendering. If the style_layout_type is
      // Fluid, the style_height and style_width may optionally
      // not be populated.
      optional int32 style_height = 18;
      optional int32 style_width = 19;
    }
    repeated NativeAdTemplate native_ad_template = 51;
  }

    // NativePlacementType describes placement of native ad slot with respect to
    // surrounding context.
    enum NativePlacementType {
      PLACEMENT_UNKNOWN = 0;
      // In the feed of content - for example as an item inside the organic
      // feed/grid/listing/carousel.
      PLACEMENT_IN_FEED = 1;
      // In the atomic unit of the content - for example, in the article page or single
      // image page.
      PLACEMENT_ATOMIC_UNIT = 2;
      // Outside the core content - for example in the ads section on the right
      // rail, as a banner-style placement near the content, etc.
      PLACEMENT_OUTSIDE = 3;
      // Recommendation widget, most commonly presented below the article
      // content.
      PLACEMENT_RECOMMENDATION = 4;
    }

    optional NativePlacementType native_placement_type = 45;

  // ...
}

Нативное рекламное сообщение

При назначении ставок на нативный инвентарь покупатель должен заполнить BidResponse.ad[].native_ad обязательными полями, объявленными в соответствующем BidRequest.adSlot[].native_ad_template .

message BidResponse {
  //...
  message Ad {
    //...

    message NativeAd {
      // A short title for the ad.
      optional string headline = 1;

      // A long description of the ad.
      optional string body = 2;

      // A label for the button that the user is supposed to click.
      optional string call_to_action = 3;

      // The name of the advertiser or sponsor, to be displayed in the ad
      // creative.
      optional string advertiser = 4;

      // Next tag to use: 4
      message Image {
        optional string url = 1;

        // Image width and height are specified in pixels. You may provide a
        // larger image than was requested, so long as the aspect ratio is
        // preserved.
        optional int32 width = 2;
        optional int32 height = 3;
      }

      // A large image.
      optional Image image = 5;

      // A smaller image, for the advertiser's logo.
      optional Image logo = 6;

      // The app icon, for app download ads.
      optional Image app_icon = 7;

      // The video file. Only set this field if the video field is requested.
      oneof video {
        // The URL to fetch a video ad. The URL should return an XML response
        // that conforms to VAST standards.
        string video_url = 13;

        // The VAST document to be returned.
        string video_vast_xml = 16;
      }

      // The app rating in the app store. Must be in the range [0-5].
      optional double star_rating = 8;

      // The URL that the browser/SDK will load when the user clicks the ad.
      // This can be the landing page directly, or the first step of a redirect
      // chain that eventually leads to it. For backward compatibility, if this
      // is not set, the first Ad.click_through_url is used.
      optional string click_link_url = 14;

      // The URL to use for click tracking. The SDK pings click tracking url on
      // a background thread. When resolving the url, HTTP 30x redirects are
      // followed. The SDK ignores the contents of the response; this URL
      // has no effect on the landing page for the user.
      // This field is planned to be deprecated and we are moving to the
      // repeated click_tracking_urls field.
      optional string click_tracking_url = 11;

      // The URLs to use for click tracking. This will be used throughout the
      // serving stack and will incorporate any URL in click_tracking_urls.
      repeated string click_tracking_urls = 15;

      // The price of the promoted app including the currency info.
      optional string price = 10;

    };
    optional NativeAd native_ad = 18;

    // The set of destination URLs for the snippet. This includes the URLs that
    // the user will go to if they click on the displayed ad, and any URLs that
    // are visible in the rendered ad. Do not include intermediate calls to the
    // adserver that are unrelated to the final landing page. A BidResponse that
    // returns a snippet or video ad but declares no click_through_url will be
    // discarded. Only set this field if html_snippet or video_url or native_ad
    // are set. This data is used as a destination URL declaration, for example
    // for post-filtering of publisher-blocked URLs or ad categorization.
    //
    // For non-native ads, it is not used for click tracking or any
    // other ad functionality; it is only used as a destination URL
    // declaration.
    //
    // For native ads, if NativeAd.click_link_url is not set, the first
    // value of click_through_url is used to direct the user to the landing
    // page. In addition, all values are used as destination
    // URL declarations (similar to the non-native case).
    repeated string click_through_url = 4;

    //...

    // The URLs to call when the impression is rendered. The SDK pings
    // impression urls on a background thread and ignores the contents
    // of the response.
    repeated string impression_tracking_url = 19;

    // Link to ad preferences page. This is only supported for native ads.
    // If present, a standard AdChoices icon is added to the native ad creative and
    // linked to this URL.
    optional string ad_choices_destination_url = 21;
    // ...
  }
}

Примеры запросов ставок

Запросы ставок, не связанные с видео

Google

OpenRTB JSON

OpenRTB Протобуф

Запросы ставок для видео

Пример ответов на запросы ставок

Обратите внимание, что значения в этих ответах не предназначены для соответствия соответствующим запросам выше. Однако если шаблон запроса предлагает обязательные/необязательные поля, ответы здесь соответствуют этим требованиям.

Ответы на запросы ставок, не относящиеся к видео

Google

OpenRTB JSON

OpenRTB Протобуф

Видеоответы на ставки