ネイティブ広告

ネイティブ広告は、周囲のコンテンツとビジュアル デザインに溶け込むフォーマットで、ユーザーに見てもらいやすく、クリックされる可能性も高くなります。ネイティブ広告広告枠は、モバイルアプリ、パソコン、モバイルサイトで利用できます。ネイティブ広告について詳しくは、ネイティブ広告の概要をご覧ください。

ネイティブ広告は、認定バイヤーと Open Bidding の両方でサポートされています。

ネイティブ広告のワークフローは次のとおりです。

  1. ネイティブ広告の呼び出しが Google に対して行われます。この呼び出しでは、優先するネイティブ フィールドをそれぞれ指定している以下のネイティブ広告テンプレートのいずれかまたは両方を指定します。
  2. リクエストされたフィールドのリストを含む RTB 入札リクエストが Google から購入者に送信されます。
  3. 興味を持った購入者は、リクエストされたフィールドを返します。
  4. Google はオークションを実施して落札単価を選択し、購入者から提供されたクリエイティブ アセットをパブリッシャーに送信します。
  5. パブリッシャーはアセットを組み合わせてネイティブ広告を作成し、サイトのデザインに合わせてスタイルを設定します。

メッセージ形式

Google では、JSON と Protobuf の両方で OpenRTB の仕様をサポートしています。

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 の入札レスポンスにアセット ID は必要ありません。

購入者 SDK を使用してネイティブ広告をレンダリングする場合は、審査のためにクリエイティブを送信する際に、declared_ad に画像 type を含める必要があります。

ネイティブ広告テンプレート

動画以外のネイティブ広告と動画のネイティブ広告では、最も一般的な次の 2 つのネイティブ広告テンプレートがサポートされています。

他のテンプレートも存在し、フィールド、ディメンション、サイズの要件が異なる場合があります。

アプリ インストール広告テンプレート

次の表に、「必須」または「推奨」のラベルが付いたフィールドを示します。次のルールが適用されます。

  • [必須] のマークが付いているフィールドは、ビッダーが必須としています。
  • Recommended」とマークされているフィールドは、ビッダーは必須ではないフィールドです。パブリッシャーが指定する場合(星評価など)は、このフィールドを表示する場合とされない場合があります。
  • 行動を促すフレーズ(CTA)は常に [推奨] とマークされます。これは、ビッダーから送信されなかった場合はデフォルトが割り当てられますが、送信された場合は常に表示されるためです。

次の表に、アプリ インストール広告テンプレートのフィールドを示します。モバイルアプリでは、これらのフィールドを使ってネイティブ アプリ インストール広告が作成されます。

項目 説明 必須 / 推奨 常に表示しますか? 推奨画像サイズ/最大文字数
見出し アプリのタイトル 必須 25 文字 Flood-It!
画像 アプリのスクリーンショット、または関連する別の画像 必須 × パブリッシャーが求めるアスペクト比に応じて、1,200 x 627 ピクセルまたは 600 x 600 ピクセル。 <Flood-It! ゲームのスクリーンショット>
本体 アプリのメインテキスト 必須 × 90 文字以内 一見単純で、魅力的でやりがいがあり、うれしくて中毒になります。
アプリアイコン アプリアイコン 必須 × 128 × 128 ピクセル <Flood-it! アプリアイコン>
行動を促すフレーズ 優先するユーザー アクション おすすめ 15 文字 インストール
評価 アプリストアでのアプリの評価を表す星の数(0 ~ 5) おすすめ × 0 ~ 5 4.5
価格 アプリのコスト おすすめ × 15 文字 無料

テキストの長さに関する注意事項

購入者が推奨の最大文字数を超えるテキスト アセット(本文など)を送信すると、Google またはパブリッシャーによってテキストが切り捨てられ、省略される場合があります。中国語、日本語、韓国語では、短縮の上限は半角の半分です。たとえば、見出しの上限は、英語では 90、中国語では 45 です。

画像サイズに関する注意事項

パブリッシャー様には次のことが許可されています。

  • メインの画像を、縦または横の縦横比で最大 20% 対称になるように切り抜きます。
  • アスペクト比を変更せずに画像を拡大縮小します。
  • 高さや幅から得られるアスペクト比が大きく異なる画像は、フィルタされる可能性があります。

コンテンツ広告テンプレート

次の表に、コンテンツ広告テンプレートのフィールドを示します。パブリッシャーは、これらのフィールドを使用してネイティブ コンテンツ広告を作成します。

項目 説明 必須 / 推奨 常に表示しますか? 推奨画像サイズ/最大文字数 *
見出し 広告ヘッダー 必須 25 文字 最低住宅ローン金利
画像 広告のメイン画像 必須 × パブリッシャーが求めるアスペクト比に応じて、1,200 x 627 ピクセルまたは 600 x 600 ピクセル。 <広告のメイン画像>
本体 広告内容 必須 × 90 文字以内 ブルックリンの快適な暮らしをお届け。
ロゴ 広告主様のロゴまたは関連する別の小さな画像 おすすめ × 128 × 128 ピクセル <NY Mortgage Inc. のロゴ>
行動を促すフレーズ ユーザーが希望する操作 おすすめ × 15 文字 見積もりを依頼
広告主様 広告主またはブランドを識別するテキスト 必須 × 25 文字 NY Motgage Inc.

アプリ インストール動画広告テンプレート

項目 説明 必須 / 推奨 常に表示しますか? 推奨画像サイズ/最大文字数 *
動画 動画広告の再生に必要なすべてのアセットを含む動画の VAST レスポンス。 必須 × - Flood-It! を含む VAST XML の URL。動画広告
見出し アプリのタイトル 必須 25 文字 Flood-It!
画像 動画広告がクリックされる前または読み込み中にプレーヤーに表示される画像(サムネイル)。 必須 × 動画のアスペクト比と一致する必要があります(例: 16x9 の動画は 1280x720、640x480 の動画は 4x3)。 ゲーム「Flood-It!」のスクリーンショット。または動画から
本文 アプリのメインテキスト 必須 × 90 文字 一見単純で、魅力的でやりがいがあり、うれしくて中毒になります。
アプリアイコン アプリアイコン 必須 × 128 x 128 px Flood-it! アプリアイコン
行動を促すフレーズ 優先するユーザー アクション 必須 15 文字 インストール
星評価 アプリストアでのアプリの評価を表す星の数(0 ~ 5) 推奨 × 0 ~ 5 4.5
料金 アプリの費用 推奨 × 15 文字 無料

制限

  • 動画: 動画はすべて VAST URL または VAST タグの形式にする必要があります。WebM や MP4 などの未加工の動画ファイルは指定できません

  • テキストの長さ: 購入者がレスポンスの body などのテキスト アセットを指定すると、Google またはパブリッシャーによって切り捨てられ、省略される場合があります。中国語、日本語、韓国語の場合、切り捨ての上限は半分のサイズになります。たとえば、見出しの上限は、英語では 90 文字、中国語では 45 文字です。

  • 画像のサイズ: パブリッシャー様が許可しているコンテンツは次のとおりです。

    • メインの画像を、縦または横の縦横比で最大 20% 対称になるように切り抜きます。
    • アスペクト比を変更せずに画像を拡大縮小します。

アプリ インストール広告の例

ネイティブ動画

動画コンテンツ広告テンプレート

項目 説明 必須 / 推奨 常に表示しますか? 推奨画像サイズ/最大文字数 *
動画 動画広告の再生に必要なすべてのアセットを含む動画の VAST レスポンス。 必須 - Flood-It! を含む VAST XML の URL。動画広告
見出し 広告ヘッダー 必須 25 文字 最低住宅ローン金利
画像 動画広告がクリックされる前または読み込み中にプレーヤーに表示される画像(サムネイル)。 必須 × 動画のアスペクト比と一致する必要があります(例: 16x9 の動画は 1280x720、640x480 の動画は 4x3)。 動画のスクリーンショット
本文 広告コンテンツ 必須 × 90 文字 ブルックリンの快適な暮らしをお届け。
ロゴ 広告主様のロゴまたは関連する別の小さな画像 推奨 × 128 x 128 px NY Mortgage Inc. のロゴ
行動を促すフレーズ ユーザーが希望する操作 必須 × 15 文字 見積もりを依頼
広告主 広告主やブランドを識別するテキスト 必須 × 25 文字 ニューヨークローン株式会社

メタフィールド

次のメタフィールドは、サポートされているすべての広告テンプレートで共有されます。

認定バイヤーのリアルタイム プロトコル バッファ 認定バイヤー OpenRTB の同等の機能 説明
NativeAd.click_link_url Link.url ユーザーが広告をクリックしたときにブラウザが呼び出す URL。 最終的にランディング ページにつながるリダイレクト チェーンの最初のステップとして設定できます。ネイティブ広告では、ユーザーが最終的に到達する到達ページを設定するフィールドとして click_link_url を使用することをおすすめします。動的なランディング ページの場合、このフィールドを使用する必要があります。
Ad.click_through_url Bid.adomain

入札者が入札する場合に設定する必要があります。これはスニペットのリンク先 URL のセットです。これには、ユーザーが表示された広告をクリックしたときに表示される URL と、レンダリングされた広告に表示されるすべての URL が含まれます。最終的なランディング ページに関係のない、広告サーバーへの中間呼び出しは含めないでください。スニペットまたは動画広告を返しても click_through_url が宣言されていない BidResponse は破棄されます。このフィールドは、html_snippetvideo_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 広告表示設定またはオプトアウト ページへのリンク。標準の AdChoices アイコンがネイティブ クリエイティブに追加され、この URL にリンクされます。これはネイティブ広告でサポートされますが、入札レスポンスのネイティブ メッセージには含まれません。
Ad.impression_tracking_url NativeResponse.imptrackers ネイティブ インプレッションは、認定バイヤーのリアルタイム ビッダー プロトコルでは impression_tracking_url、OpenRTB ではネイティブ インプトラッカーを使用してトラッキングする必要があります。

required_fieldsrecommended_fields はパブリッシャーが指定します。これらのビットフィールドを変換して、フィールドが必須か推奨かを判断する方法を示します。

ビットフィールドは 2 進値の各ビットを使用して true または false のステートメントを格納します。これは、is_logo_requiredis_header_required などの多くのブール型シグナルをすべてまとめて送信するのと同じことです。

この例では、1085required_fields 値を使用します。

まず、同等の 2 進数値を見つけます。10000111101

バイナリ値を取得したら、ビットをチェックして、フィールドが必須(1)か必須ではない(0)かを確認できます。

次の表に、各フィールドを 2 進数値での位置にマッピングします。バイナリを右から左に読み取ります。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 ビット(右から 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 プロトコル バッファ

動画の入札レスポンス