强烈建议您使用可选的 impression_tracking_url 字段来检索展示机会层级的数据,了解 Google 何时记录了将向您收取费用的可计费事件。对于 OpenRTB,这在 Google 协议中以 BidResponse.seatbid[].bid[].ext.impression_tracking_url 的形式公开,而在 Google 协议中则以 BidResponse.ad[].impression_tracking_url 的形式公开。
Google 需求差异解决方案(Beta 版)
此功能旨在确保广告交易平台结算的展示次数与通过 Google Display & Video 360 (DV360) 支付的展示次数保持一致。
为了确保 Google 需求来源中的有效展示次数一致,必须按原样将 google_query_id 从公开出价请求传播到 Google 需求平台。这是解决公开出价差异问题的先决条件。google_query_id 的当前预期长度约为 64 个字节。
在出价响应中传播 third_party_buyer_token
如果 Google 需求平台在广告交易平台的内部竞价中胜出,则必须在出价响应中按原样通过公开出价展示传回 third_party_buyer_token 字段。这样一来,Google 发布商平台便可以确定,来自公开出价合作伙伴的胜出出价是代表 Google 需求对同一展示机会的出价。此字段的当前最大长度预计为 150 个字节。
按原样在出价响应中传递 Google 广告素材标记
为了确保差异解决方案适用于来自 Google 需求来源的出价,广告交易平台必须在不使用任何封装容器(脚本代码、iframe 或 VAST 封装容器)的情况下传播 Google 广告素材标记。由于差异解决方案,Google 可能会使 Google 需求平台未计入的公开出价展示机会失效,并且不会开具账单。Google 会定期检查广告素材标记,以确认带有 third_party_buyer_token 的出价是代表 Google 需求来源提交的,而非任何其他买方。
HTML5 广告素材
广告交易平台必须按原样提交 Google HTML 标记,其中包含通常适用的广告交易平台专属宏扩展,以及(可选)广告交易平台通常添加的额外跟踪器像素或脚本。
如果广告交易平台将 Google HTML 广告素材封装到随后加载或呈现 Google HTML 代码的代码(script、iframe 或其他技术),Google 便无法应用差异解决方案。
符合技术要求
在此示例中,Google (DV360) 会一字不差地传递出价响应中的广告素材 HTML 代码,并在前面或后面附加特定于广告交易平台的 HTML 代码。
<!-- START exchange-specific HTML header -->
<iframe src="https://exchange.example.com/impression?…" width="0" height="0" frameborder="0" scrolling="no" style="display:none;" marginheight="0" marginwidth="0"></iframe>
<!-- END exchange-specific HTML header -->
<!-- START HTML code as returned by Google in the bid response -->
<DIV STYLE="position: absolute; left: 0px; top: 0px; visibility: hidden;"><IMG SRC="https://pagead2.googlesyndication.com/pagead/gen_204?id=xbid&dbm_b=…" BORDER=0 WIDTH=1 HEIGHT=1 ALT="" STYLE="display:none"></DIV><iframe title="Blank" src="https://googleads.g.doubleclick.net/xbbe/pixel?d=…" style="display:none" aria-hidden="true"></iframe><div><div style="position:relative; display:inline-block;"><div class="GoogleActiveViewClass" id="DfaVisibilityIdentifier_…"><script>var url = 'https://googleads.g.doubleclick.net/dbm/ad?…';document.write('<script src="' + (window.rfl ? window.rfl(url) : url) + '"></s' + 'cript>');</script>…
<!-- END HTML code as returned by Google in the bid response -->
<!-- START exchange-specific HTML footer -->
<img src='https://exchange.example.com/track?…' width='0' height='0' style='display:none;'>
<!-- END exchange-specific HTML footer -->
不符合技术要求
在此示例中,Google 返回的 HTML 代码在广告交易平台提供的出价响应中经过了混淆处理,不会在出价响应中一字不差地显示。Google 提供的 HTML 代码可能会由浏览器中由广告交易平台提供的封装容器呈现。
<!-- START exchange ad tag that encodes / renders Google creative in the browser -->
<!-- Google creatives markup from the bid response (adm) is not present verbatim -->
<span class="ad"><script type='text/javascript' src='https://exchange.example.com/ad?p=%%WINNING_PRICE%%&m=n_ybbRoVpsLlXSo8gVHRn-W0tynBt-Hoe8t8m0qwKhLFiaF-0gB0U4w-5pjeB8IMIkg7PcRri5iCIjBMMKDqg
…'></script></span>
<!-- END exchange ad tag that encodes / renders Google creative in the browser -->
VAST 视频广告素材
为了符合差异解决方案的条件,广告交易平台必须使用以下方法之一在 VAST XML 响应中填充 VASTTagURI:
广告交易平台可以按原样将 VASTTagURI 元素的值作为 Google 在 adm 字段中返回的 VAST XML 文档的一部分保留,并采用通常适用的广告交易平台专用宏扩展。
在此示例中,系统会逐字传递出价响应中的 Google (DV360) 广告素材 VAST URI,并由广告交易平台添加其特定的 VAST 事件和错误跟踪器。
<!-- START exchange VAST tag referencing Google creative -->
<?xml version="1.0" encoding="UTF-8"?><VAST version="2.0"><Ad id="123456789"><Wrapper>
<!-- Google VAST URI from the bid response is present verbatim -->
<AdSystem>XBid</AdSystem><VASTAdTagURI><![CDATA[https://bid.g.doubleclick.net/dbm/vast?…]]></VASTAdTagURI>
<!-- START Exchange-specific event trackers -->
<Error><![CDATA[https://video.exchange.example.com/vast_error?error=[ERRORCODE]&…]]></Error><Impression><![CDATA[https://video.exchange.example.com/impression?price=%%WINNING_PRICE%%&…]]></Impression><Creatives><Creative id="1234567890" sequence="1"><Linear><TrackingEvents><Tracking event="creativeView"><![CDATA[https://video.exchange.example.com/track/view?…]]></Tracking><Tracking event="start"><![CDATA[https://video.exchange.example.com/track/start?…]]></Tracking><Tracking event="midpoint"><![CDATA[https://video.exchange.example.com/track/midpoint?…]]></Tracking></TrackingEvents><VideoClicks><ClickTracking><![CDATA[https://video.exchange.example.com/click?…]]></ClickTracking></VideoClicks>
<!-- END Exchange-specific event trackers -->
</Linear></Creative></Creatives></Wrapper></Ad></VAST>
<!-- END exchange VAST tag referencing Google creative -->
<!-- START exchange VAST tag that encodes or loads Google VAST creative subsequently -->
<!-- Google VAST URI or VAST document from the bid response is not present verbatim -->
<?xml version="1.0" encoding="UTF-8"?><VAST version="2.0"><Ad id="1234567890"><Wrapper><AdSystem version="0.1">VideoExchange</AdSystem><VASTAdTagURI><![CDATA[https://video.exchange.example.com/creative?…]]></VASTAdTagURI><Error><![CDATA[https://video.exchange.example.com/error?ec=[ERRORCODE]]]></Error><Impression><![CDATA[https://video.exchange.example.com/imp?…]]></Impression><Creatives><Creative></Creative></Creatives></Wrapper></Ad></VAST>
<!-- END exchange VAST tag that encodes or loads Google VAST creative subsequently -->
特惠
参与公开出价的广告交易平台可以将首选交易 (PD)、私下竞价 (PA) 与公开出价功能结合使用。必须按如下方式指定交易 ID 和类型:
字段
说明
OpenRTB 协议: BidResponse.seatbid[].bid[].dealid
Google 协议: BidResponse.ad[].adslot[].exchange_deal_id