買方 SDK 廣告格式

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

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

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

需求條件

只有獲得核准的買方才能使用買方 SDK 廣告。您可以將 Authorized Buyers 直接整合至 Google Mobile Ads SDK,包括中介服務競價者轉接程式安全信號。 發布商需要在行動應用程式中整合您的 SDK 和轉接程式。

如要進一步瞭解這些整合點,或討論如何透過 Google Mobile Ads 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,查看廣告素材的狀態。

詳情請參閱廣告素材指南