買方 SDK 廣告格式

買方 SDK 廣告會使用您自有 SDK 顯示的廣告素材。

發布商將您的出價轉接程式整合至應用程式後,行動應用程式廣告空間即可接受以買家 SDK 顯示廣告格式的出價。系統會根據您的 SDK 實作方式和您在競價回應中提交的 SDKRenderedAd,決定如何算繪這些廣告。

您可以出價,包括買方 SDK 顯示的廣告或 Google Mobile Ads SDK 支援的任何其他廣告格式,但如果出價同時包含這兩者,系統會將其篩除。

需求條件

買方 SDK 廣告僅適用於已獲准的買方。這個格式需要您和發布商付出額外心力。請與技術客戶經理聯絡,為買方 SDK 廣告設定帳戶。接著導入出價轉接程式,讓 SDK 與 Google Mobile Ads SDK 通訊。發布商必須將您的 SDK 和轉接程式整合至行動應用程式。

建議您先提交廣告素材以供審查,再將其納入出價回應。如果您在出價時不知道廣告素材類型,請與技術客戶經理聯絡。

如果出價請求支援此廣告格式,您可以在出價回應中設定 sdk_rendered_ad 欄位,指定要透過 SDK 放送的廣告。

出價要求

行動應用程式廣告空間的出價要求包含發布商應用程式中 SDK 和轉接程式的詳細資料,您可以在下列欄位中用於顯示:

SDK ID

您可以使用出價要求,透過 BidRequest.app.ext.installed_sdk.id 欄位找出必須在出價回應中提供的 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,以便顯示廣告。

您可以在 BidRequest.app.ext.installed_sdk 中找到 ID。

已聲明廣告

使用 BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad 提供符合 BidRequest.imp.ext.creative_enforcement_settings 中規定的素材資源,並代表廣告的算繪資料。請只填寫 html_snippetvideo_urlvideo_vast_xmlnative_response 其中一個。

如果未填入 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>",
  }
}

建議您先使用 Real-time Bidding API 提交廣告素材以供審查,再將廣告素材納入出價回應。

如要進一步瞭解 SdkRenderedAd 欄位,請參閱 OpenRTB 指南

出價回應範例

以下是每種廣告格式的範例競價回應:

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"

廣告素材審查

廣告素材必須先經過審查,確保符合政策和發布商設定,才能開始放送。

您可以透過下列兩種方式將廣告素材送審:

Real-time Bidding API (建議)

您可以使用 Real-time Bidding API 的 buyers.creatives.create 方法,將廣告素材送審

每個廣告素材只需透過 API 提交一次,即可查看廣告素材的審查狀態。

出價回應

您可以直接在出價要求中提交新的廣告素材。

您必須使用 SdkRenderedAd 物件的 declared_ad 欄位,提交含有買方 SDK 廣告素材的出價回應以供審查。

出價回應中提交的廣告素材只會在多個出價後接受審查。 審查完成前,系統會從競價中濾除所有出價。 審查開始後,您可以使用即時出價介面即時出價 API 檢查廣告素材狀態。

詳情請參閱廣告素材指南