买方 SDK 广告格式

买方 SDK 广告使用由您自己的 SDK 呈现的广告素材。

如果发布商将您的出价适配器集成到其应用中,那么来自发布商的移动应用广告资源便可接受使用买方 SDK 呈现的广告格式的出价。广告的呈现方式取决于您的 SDK 实现方式以及您在出价响应中提交的 SDKRenderedAd

您可以采用包含买方 SDK 呈现的广告或 Google 移动广告 SDK 支持的任何其他广告格式进行出价,但包含这两者的所有出价都会被滤除。

要求

买方 SDK 广告适用于已获批准的买方。这种格式需要您和发布商执行额外的工作。如需为买方 SDK 广告配置您的帐号,请与您的技术支持客户经理联系。然后,您可以实现出价适配器,以便您的 SDK 能够与 Google 移动广告 SDK 进行通信。发布商需要将您的 SDK 和适配器集成到其移动应用中。

我们建议您先提交广告素材以供审核,然后再将其包含在出价响应中。如果您在出价时不知道广告素材类型,请与您的技术支持客户经理联系。

如果出价请求支持此广告格式,您可以通过设置出价响应中的 sdk_rendered_ad 字段来指定使用 SDK 呈现的广告。

出价请求

针对移动应用内广告资源的出价请求中包含有关发布商应用中的 SDK 和适配器的详细信息,您可以利用这些 SDK 和适配器在以下字段中进行呈现:

SDK ID

您可以使用出价请求来查找您必须在买方 SDK 呈现的广告的出价响应中提供的 id

请参阅以下字段:

  • Authorized Buyers:BidRequest.mobile.installed_sdk
  • OpenRTB:BidRequest.app.ext.installed_sdk

如需详细了解 InstalledSdk 消息,请参阅 GoogleOpenRTB 协议指南。

广告单元映射

您可以使用出价请求来读取与出价位置匹配的广告单元映射。

请参阅以下字段:

  • Authorized Buyers:BidRequest.AdSlot.ad_unit_mapping
  • OpenRTB:BidRequest.imp.ext.ad_unit_mapping

如需详细了解 AdUnitMapping 对象,请参阅 GoogleOpenRTB 协议指南。

安全信号

您应该读取 Extended Id 对象,该对象是用于传递发布商选择的安全信号的标准扩展程序。

请参阅以下字段:

  • Authorized Buyers:BidRequest.AdSlot.SecureSignal.data
  • OpenRTB:BidRequest.user.ext.eids.uids.id

如需详细了解 Extended Id 对象,请参阅 GoogleOpenRTB 协议指南。

测试请求

您可以查看“测试请求”字段,了解出价请求是否为测试。

请参阅以下字段:

  • Authorized Buyers:BidRequest.is_test
  • OpenRTB:BidRequest.test

如需详细了解 Test 字段,请参阅 GoogleOpenRTB 协议指南。

出价请求示例

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 对象中必须包含以下字段:

  • Authorized Buyers:

    • BidResponse.Ad.click_through_url
    • BidResponse.Ad.AdSlot.billing_id
    • BidResponse.Ad.buyer_creative_id
    • BidResponse.Ad.width
    • BidResponse.Ad.height
  • OpenRTB:

    • BidResponse.seatbid.bid.adomain
    • BidResponse.seatbid.bid.cid
    • BidResponse.seatbid.bid.crid
    • BidResponse.seatbid.bid.w
    • BidResponse.seatbid.bid.h

如需详细了解 SeatBid 消息,请参阅 GoogleOpenRTB 协议指南。

出价响应必须包含包含以下内容的 SdkRenderedAd

SDK ID

使用 id 字段为 SDK 提供 ID 以呈现广告。

您可在出价请求中找到该 ID,其中包含以下字段:

  • Authorized Buyers:BidRequest.mobile.installed_sdk
  • OpenRTB:BidRequest.app.ext.installed_sdk

如需详细了解 InstalledSdk 消息,请参阅 GoogleOpenRTB 协议指南。

声明的广告

使用 declared_ad 字段提供符合出价请求的 CreativeEnforcementSettings 要求且能代表广告呈现数据的广告素材。对于非原生广告格式,只能呈现 html_snippetvideo_urlvideo_vast_xml 中的一个。对于原生广告格式,应仅显示 native_response

如果您不填充 declared_ad,我们将无法审核该广告素材,而且该广告素材的所有出价都会被滤除而无法参与竞价。

呈现数据

使用 rendering_data 字段提供数据,以供买方 SDK 用于呈现您的广告。

  • Authorized Buyers:BidResponse.ad.sdk_rendered_ad.rendering_data
  • OpenRTB:BidResponse.seatbid.bid.ext.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 提交广告素材以供审核,然后再将其包含在出价响应中。

如需详细了解 SdkRenderedAd 字段,请参阅 GoogleOpenRTB 协议指南。

出价响应示例

以下是每种广告格式的出价响应示例:

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 广告素材的出价响应以供审核。

在出价响应中提交的广告素材只有在多次出价后才会接受审核。 在审核完成之前提交的所有出价都会被滤除而无法参与竞价。 在审核开始后,您可以使用实时出价界面Real-time Bidding API 查看广告素材的状态。

如需了解详情,请参阅广告素材指南