强烈建议您使用可选的 impression_tracking_url 字段来检索展示级数据,了解 Google 何时记录将向您收取费用的事件。对于 OpenRTB,该字段显示为 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