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

購入者の SDK 広告では、お客様独自の SDK によってレンダリングされたクリエイティブを使用します。

お客様の入札を統合しているパブリッシャーのモバイルアプリ広告枠を アダプターをアプリに追加すると、 購入者の SDK でレンダリングされた 広告フォーマットと照合できますレンダリングの方法は SDK の実装と、SDKRenderedAd

入札には、購入者の SDK でレンダリングされた広告やその他の広告を含めて設定できます。 形式 Google Mobile Ads SDK でサポートされますが、 両方を含む入札は除外されます。

要件

購入者の SDK 広告は、承認された購入者が使用できます。この形式を使用する場合は 手間をかけずに済みます担当のテクニカル アカウント マネージャーに 購入者の SDK 広告用にアカウントを設定します。その後入札機能を実装し アダプターを使用すると、SDK が Google Mobile Ads SDK と通信する方法を 理解している必要がありますニュース メディアは SDK とアダプタをモバイルアプリに統合します

まずクリエイティブの 確認 入札レスポンスに追加する前にテクニカル アカウント マネージャーにお問い合わせください 入札時にクリエイティブ タイプが不明な場合。

入札リクエストがこの広告フォーマットに対応している場合は、表示される広告を指定できます。 SDK で入札単価の sdk_rendered_ad フィールドを設定 レスポンスをご覧ください。

入札リクエスト

モバイルアプリ広告枠の入札リクエストには、該当の SDK と アダプタを使用して、以下でのレンダリングに使用できます。 フィールド:

SDK ID

入札リクエストを使用して、入札で指定する必要がある id を確認できる 購入者の SDK でレンダリングされた広告に対するレスポンスが返されます。

次のフィールドをご覧ください。

  • OpenRTB: BidRequest.app.ext.installed_sdk
  • Google RTB プロトコル(非推奨): BidRequest.mobile.installed_sdk

InstalledSdk メッセージについて詳しくは、 OpenRTB および Google プロトコル ガイドをご覧ください。

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

入札リクエストを使用して、入札スロットに一致する広告ユニットのマッピングを読み取ることができます。

次のフィールドをご覧ください。

  • OpenRTB: BidRequest.imp.ext.ad_unit_mapping
  • Google RTB プロトコル(非推奨): BidRequest.AdSlot.ad_unit_mapping

AdUnitMapping オブジェクトについて詳しくは、 OpenRTBGoogle プロトコル ガイドをご覧ください。

セキュア シグナル

パブリッシャーはビッダーとセキュア シグナルを共有できます。次の場所で読むことができます: OpenRTB の BuyerGeneratedRequestData オブジェクト、または RTB プロトコルの SecureSignal オブジェクト。

次のフィールドをご覧ください。

  • OpenRTB: BidRequest.imp.ext.buyer_generated_request_data.data
  • Google RTB プロトコル(非推奨): BidRequest.AdSlot.SecureSignal.data

セキュア シグナルの表現方法について詳しくは、 OpenRTB Google プロトコル ガイドをご覧ください。

テスト リクエスト

[テスト リクエスト] フィールドで、入札リクエストが テストします。

次のフィールドをご覧ください。

  • OpenRTB: BidRequest.test
  • Google RTB プロトコル(非推奨): BidRequest.is_test

Test フィールドの詳細については、 OpenRTBGoogle プロトコル ガイドをご覧ください。

入札リクエストの例

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>"
  ...
}

入札レスポンス

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

  • OpenRTB: <ph type="x-smartling-placeholder">
      </ph>
    • BidResponse.seatbid.bid.adomain
    • BidResponse.seatbid.bid.ext.billing_id
    • BidResponse.seatbid.bid.crid
    • BidResponse.seatbid.bid.w
    • BidResponse.seatbid.bid.h
  • Google RTB プロトコル(サポート終了): <ph type="x-smartling-placeholder">
      </ph>
    • BidResponse.Ad.click_through_url
    • BidResponse.Ad.AdSlot.billing_id
    • BidResponse.Ad.buyer_creative_id
    • BidResponse.Ad.width
    • BidResponse.Ad.height

また、入札レスポンスには、SdkRenderedAd 次のとおりです。

SDK ID

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

入札リクエストの ID は次の項目で確認できます。

  • OpenRTB: BidRequest.app.ext.installed_sdk
  • Google RTB プロトコル(非推奨): BidRequest.mobile.installed_sdk

InstalledSdk メッセージについて詳しくは、 OpenRTBGoogle プロトコル ガイドをご覧ください。

宣言された広告

declared_ad フィールドを使用して、入札リクエストの要件を満たすクリエイティブを提供 CreativeEnforcementSettings の要件であり、広告の レンダリング データです。html_snippetvideo_urlvideo_vast_xml、または native_response に値を入力する必要があります。

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

データのレンダリング

rendering_data フィールドを使用して、購入者の SDK に次のデータを提供します。 使用されます

  • OpenRTB: BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data
  • Google RTB プロトコル(非推奨): BidResponse.ad.sdk_rendered_ad.rendering_data

購入者の 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>",
  }
}

Real-time Bidding API を使用して、キャンペーンのコンバージョンと 確認 必ず確認してください。

詳しくは、 GoogleOpenRTB プロトコル ガイド 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"

クリエイティブの審査

クリエイティブは配信前に審査され、 ポリシーとパブリッシャー 設定。

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

Real-time Bidding API(推奨)

こちらの buyers.creatives.create メソッドを使用し、 審査のためにクリエイティブを送信します。

この API では、クリエイティブごとに 1 つの送信のみが必要で、 ステータスが表示されます。

入札レスポンス

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

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

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

詳しくは、クリエイティブ ガイドをご覧ください。 詳しく見ていきます