購入者 SDK 広告フォーマット

購入者 SDK 広告では、独自の SDK でレンダリングされたクリエイティブが使用されます。

購入者の入札アダプタをアプリに統合しているパブリッシャーのモバイルアプリ インベントリは、購入者 SDK でレンダリングされた広告フォーマットで入札を受け付けることができます。レンダリング方法は、SDK の実装と、入札レスポンスで送信する SDKRenderedAd に基づきます。

購入者 SDK でレンダリングされた広告または ad format supported by the Google Mobile Ads SDK でサポートされているその他の広告フォーマットを含む入札を行うことができますが、両方を含む bids は除外されます。

要件

購入者 SDK 広告は、承認された購入者が利用できます。メディエーションビッダー アダプタ、 セキュア シグナルなど、 認定バイヤーを Google Mobile Ads SDK と直接統合できます。 パブリッシャーは、SDK とアダプタをモバイルアプリに統合する必要があります。

これらの統合ポイントについて詳しくは、テクニカル アカウント マネージャーにお問い合わせください。また、広告の関連性や測定を改善するために、Google Mobile Ads SDK とのオンデバイス シグナルや処理の統合についてご相談いただくこともできます。

クリエイティブを入札レスポンスに含める前に、審査のために送信することをおすすめします。

入札リクエストがこの広告フォーマットをサポートしている場合は、 SDK でレンダリングする広告をsdk_rendered_adフィールドを入札 レスポンスで設定して指定できます。

入札リクエスト

モバイルアプリ インベントリの入札リクエストには、パブリッシャーのアプリ内の SDK とアダプタに関する詳細情報が含まれています。これらの情報は、次のフィールドでレンダリングに使用できます。

SDK ID

入札リクエストを使用して、入札レスポンスで指定する必要がある SDK ID を BidRequest.app.ext.installed_sdk.id フィールドで確認できます。

詳しくは、 InstalledSdk のリファレンス ドキュメントをご覧ください

広告ユニットのマッピング

入札リクエストを使用して、入札スロットに一致する広告ユニットのマッピングを BidRequest.imp.ext.ad_unit_mapping フィールドで確認できます。

詳しくは、 AdUnitMapping のリファレンス ドキュメントをご覧ください

セキュア シグナル

パブリッシャーは、ビッダーとセキュア シグナルを共有できます。これらのシグナルは BidRequest.imp.ext.buyer_generated_request_data.data で確認できます。

セキュア シグナルの表現方法について詳しくは、 BuyerGeneratedRequestData のリファレンス ドキュメントをご覧ください

テスト リクエスト

BidRequest.test フィールドを使用して、入札リクエストがテストかどうかを確認できます。

このフィールドについて詳しくは、 BidRequest のリファレンス ドキュメントをご覧ください

入札リクエストの例

id: "<bid_request_id>"
imp {
  id: "1"
  banner {
    w: 320
    h: 50
    ...
  }
...
  adx_ext {
   ...
    ad_unit_mapping {
      keyvals {
        key: "key_1"
        value: "value_1"
      }
      keyvals {
        key: "key_2"
        value: "value_2"
      }
      ...
      format: FORMAT_BANNER
    }
  }
}
app {
 ...
  adx_ext {
    installed_sdk {
      id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
      sdk_version {
        major: 1
        minor: 2
        micro: 30
      }
      adapter_version {
        major: 1
        minor: 2
        micro: 3000
      }
    }
    installed_sdk {
    ...
    }
    ...
  }
}
device {
  ...
}
user {
  ...
  }
  adx_ext {
    eids {
      source: "com.google.ads.mediation.partner.PartnerMediationAdapter"
      uids {
        id: "<partner_signal_string>"
      }
    }
  }
}
at: 1
tmax: 1000
cur: "USD"
test: 1
...
adx_ext {
  google_query_id: "<query_string>"
  ...
}

入札レスポンス

入札レスポンスには次のフィールドが必要です。

  • BidResponse.seatbid.bid.adomain
  • BidResponse.seatbid.bid.ext.billing_id
  • BidResponse.seatbid.bid.crid
  • BidResponse.seatbid.bid.w
  • BidResponse.seatbid.bid.h

また、入札レスポンスには、 BidResponse.seatbid.bid.ext.sdk_rendered_ad に次の情報を入力する必要があります。

SDK ID

id フィールドを使用して、広告をレンダリングする SDK の ID を指定します。

ID は BidRequest.app.ext.installed_sdk で確認できます。

申告された広告

BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad を使用して、BidRequest.imp.ext.creative_enforcement_settings に記載されている要件を満たし、広告のレンダリング データを表すクリエイティブを指定します。html_snippetvideo_urlvideo_vast_xmlnative_response のいずれか 1 つのみを入力する必要があります。

declared_ad に入力しない場合、クリエイティブを審査できず、そのクリエイティブを含むすべての入札がオークションから除外されます。

申告された広告について詳しくは、 DeclaredAd のリファレンス ドキュメントをご覧ください

レンダリング データ

BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data フィールドを使用して、購入者 SDK が広告のレンダリングに使用するデータを指定します。

購入者 SDK 広告の入札では、declared_ad フィールドにクリエイティブを指定する必要があります。申告された広告は、rendering_data を正確に表す必要があります。

SdkRenderedAd オブジェクトの例を次に示します。

{
  "id": "1234567",
  "rendering_data": "\xd58...,\xd4\x89\xd\xf9",
  "declared_ad": {
    "html_snippet": "<iframe src=\"https://example.com/ads?id=123&
      curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>",
  }
}

クリエイティブを入札レスポンスに含める前に、リアルタイム ビッダー API を使用して審査のために 送信することをおすすめします。

OpenRTB ガイドSdkRenderedAd フィールドの詳細をご確認ください。

入札レスポンスの例

広告フォーマットごとの入札レスポンスの例を次に示します。

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 99
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 320
    h: 50
    burl: "https://abc.com/billing?td=fn&win_price=${AUCTION_PRICE}"
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          html_snippet: "<!doctype html> <html> ... </html>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
      billing_id: 141763360450
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

インタースティシャル

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 412
    h: 775
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

動画リワード

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 412
    h: 775
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

ネイティブ

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 1200
    h: 627
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          native_response {
            ...
            assets {
              id: 1
              title {
                text: ""
              }
            }
            assets {
              id: 2
              data {
                value: "<some_string>"
              }
            }
            assets {
              id: 3
              data {
                value: "View now"
              }
            }
            assets {
              id: 4
              img {
                url: "<valid_image_url>"
                w: 1200
                h: 627
                type: 3
              }
            }
            assets {
              id: 5
              img {
                url: "<valid_image_url>"
                w: 100
                h: 100
                type: 1
              }
            }
            assets {
              id: 6
              data {
                value: ""
              }
            }
            assets {
              id: 7
              data {
                value: "<some_string>"
              }
            }
            link {
              url: "<destination_link>"
            }
          }
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

広告の審査

クリエイティブは、Google の ポリシーとパブリッシャーの 設定を満たしていることを確認するために、配信前に審査されます。

クリエイティブを審査のために送信する方法は次の 2 つです。

Real-time Bidding API(推奨)

リアルタイム ビッダー API の buyers.creatives.create メソッドを使用して、クリエイティブを審査のために 送信できます

この API では、クリエイティブごとに 1 回の送信のみが必要で、クリエイティブの審査ステータスを確認できます。

入札レスポンス

新しいクリエイティブを入札レスポンスで直接送信できます。

購入者 SDK クリエイティブを含む入札レスポンスを審査のために送信するには、SdkRenderedAd オブジェクトの declared_ad フィールドを使用する必要があります。

入札レスポンスで送信されたクリエイティブは、多くの入札が行われた後にのみ審査されます。 審査が完了する前に行われた入札はすべてオークションから除外されます。 審査の開始後にクリエイティブのステータスを確認するには、リアルタイム ビッダー インターフェース または リアルタイム ビッダー API を使用します。

詳しくは、クリエイティブ ガイドについて 詳しくは、こちらをご覧ください。