應用程式處理 Google 的出價請求後,必須建構並傳送回應。本指南說明如何編寫應用程式程式碼,以建構回應。
建立 BidResponse 訊息
如要提交出價,出價應用程式必須以 BidResponse 回應出價要求,其中包含您設定格式的 Bid。如果使用 JSON 格式,回應必須將 Content-Type 標頭設為 application/json; charset=utf-8,並在主體中加入 JSON BidResponse。如果您使用 Protobuf 格式,應用程式必須將 Content-Type 標頭設為 application/octet-stream,並在主體中加入序列化的 BidResponse。
如要建構及序列化 Protobuf 格式的 BidResponse,您必須根據 openrtb.proto 和 openrtb-adx.proto 產生並使用 Protobuf 程式庫,這兩者分別會實作標準 OpenRTB BidResponse 欄位和 Protobuf 中的 Google 擴充功能。這些內容位於「Protos & Reference Data」(原型和參考資料) 。
如不想對曝光出價,請務必傳回空白的 HTTP 204 回應。應用程式必須針對每個 BidRequest 傳回回應。如果發生逾時或無法剖析的回應,系統會視為錯誤,並對錯誤率高的出價工具進行調節。
廣告素材 ID
您的 BidResponse 會透過 BidResponse.seatbid.bid.crid 欄位指定廣告素材 (128 位元組限制)。即使是類似的廣告素材,只要在任何顯著特徵上有所差異,就必須為這個欄位提供不重複的值,包括但不限於:大小、已宣告的網址、廣告素材屬性和供應商類型。換句話說,如果兩個廣告符合下列任一條件,您就必須提供不同的廣告素材 ID:
外觀或行為與平常不同。
算繪成不同圖片。
以不同方式算繪 (例如,一個廣告包含圖片,另一個廣告則是影片)。
設計應用程式時,您應決定產生 ID 的系統化方式,以符合您打算提交的廣告素材類型。
廣告屬性
Google 建議您使用 BidResponse.seatbid.bid.apis 和 BidResponse.seatbid.bid.attr 的組合,或 BidResponse.seatbid.bid.ext.attribute 擴充功能,聲明廣告素材屬性,說明廣告的特徵和指定目標。以下說明如何宣告屬性:
VPAID
將 BidResponse.seatbid.bid.apis 設為 VPAID_1 或 VPAID_2。如果是 JSON 格式,則可分別設為 1 或 2。
MRAID
將 BidResponse.seatbid.bid.apis 設為 MRAID_1 或 3,以使用 JSON 格式。
SIZELESS
將 BidResponse.seatbid.bid.attr 設為 RESPONSIVE 或 18,以使用 JSON 格式。
PLAYABLE
如要指出這點,請將 BidResponse.seatbid.bid.attr 設為 USER_INTERACTIVE,或將 13 設為 JSON 格式。
如要瞭解如何取得廣告素材偵測到的屬性相關意見回饋,請參閱廣告素材資源 。
公開出價欄位
參與公開出價的廣告交易平台和聯播網出價方傳送的出價回應,與參與標準即時出價的 Authorized Buyers 類似。公開出價客戶可以指定少數額外欄位,部分現有欄位也可能有其他用途。包括:
欄位
詳細資料
BidResponse.imp.pmp.deals.id
與這項出價相關聯,且向發布商回報的交易 ID (來自交易所的命名空間)。
BidResponse.seatbid.bid.ext.exchange_deal_type
向發布商回報的交易類型,會影響系統在競價中處理交易的方式。
BidResponse.seatbid.bid.ext.third_party_buyer_token
如果交易平台是公開出價中介服務,這個權杖可用於識別第三方買方資訊。這項資訊是從第三方買方取得,且必須在出價回應中原封不動地傳遞給 Google。
建議
出價回覆範例
下列範例代表 Protobuf 和 JSON 要求的可讀取範例。
OpenRTB Protobuf
顯示範例
序列化回應
id : "1lY5z94y6Bz404R9H0ZN38"
seatbid {
bid {
id : "n1KLe2Q26Xyu431W1PU"
impid : "1"
price : 1.0575798749923706
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>"
crid : "test_creative_id_666097"
dealid : "0"
w : 339
h : 53
burl : "https://test.com/imp?id=123456"
[ com . google . doubleclick . bid ] {
event_notification_token {
payload : "token"
}
billing_id : 86548870602
dsa {
adrender : true
}
clickurl : "google.com"
}
}
}
cur : "JPY"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 7
}
OpenRTB JSON
顯示範例
{
"id" : "1lY5z94y6Bz404R9H0ZN38" ,
"seatbid" : [
{
"bid" : [
{
"id" : "n1KLe2Q26Xyu431W1PU" ,
"impid" : "1" ,
"price" : 1.0575798749923706 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>" ,
"crid" : "test_creative_id_666097" ,
"dealid" : "0" ,
"w" : 339 ,
"h" : 53 ,
"burl" : "https://test.com/imp?id=123456" ,
"ext" : {
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "86548870602" ,
"dsa" : {
"adrender" : 1
},
"clickurl" : [
"google.com"
]
}
}
]
}
],
"cur" : "JPY" ,
"ext" : {
"processing_time_ms" : 7
}
}
重要事項: 範例中顯示的 Protobuf 訊息會以人類可解讀的文字表示。不過,訊息在網路上傳送時並非如此。使用 OpenRTB Protobuf 格式時,系統只會接受序列化的 BidResponse 訊息。
您可以使用下列 C++ 程式碼建立及序列化 BidResponse 訊息:
BidResponse bid_response;
// fill in bid response with bid information
string post_response;
if (bid_response.SerializeToString(&post_response)) {
// respond to the POST with post_response as the content
} else {
// return an error to the POST
}
指定廣告素材
出價回應會指定出價勝出時要放送的廣告素材。出價必須包含其中一種支援的廣告格式 (AMP、影片、原生)。在本範例中,我們使用 html_snippet 欄位指定廣告素材。
或者,您也可以根據廣告格式,使用下列其中一個 欄位指定廣告素材:
SDK 顯示的廣告
BidResponse.seatbid.bid.ext.sdk_rendered_ad
AMP
BidResponse.seatbid.bid.amp_ad_url
影片
BidResponse.seatbid.bid.adm
原生
BidResponse.seatbid.bid.adm_native
在 BidResponse.seatbid.bid.adm 欄位中使用 HTML 程式碼片段,指定託管在自有伺服器上的廣告。程式碼片段會封裝在插入網頁的 iFrame 中,因此網頁載入時,系統會擷取並顯示廣告。您必須製作 HTML 程式碼片段,確保廣告 (橫幅或插頁式) 能在 iFrame 中正確顯示,且大小適合您出價的廣告空間。
此外,在下列情況下,出價回應中宣告的廣告大小必須與出價要求中的其中一個大小組合完全相符:
廣告是一般橫幅 (不是影片、原生或插頁式廣告)。
出價工具已在出價回應中宣告大小。如果要求中有多個大小,就必須聲明大小。
插頁式廣告則不在此限。插頁式廣告的寬度至少須達螢幕寬度的 50%,高度則至少須達螢幕高度的 40%。
您可以使用任何可正確顯示的有效 HTML 程式碼,指定 HTML 片段廣告素材,但請注意「建立 BidResponse 訊息 」一節中,指定 crid 欄位的限制。其中一個用途是將額外資訊放入從伺服器擷取的網址引數中,做為廣告的算繪程序。您可以藉此將曝光的任意資料傳回至自己的伺服器。
出價回應中傳回的 HTML 片段,大部分都適用與第三方廣告相同的政策。詳情請參閱「Authorized Buyers 計畫指南 」、「第三方廣告放送相關規定 」和「在廣告中聲明點擊後到達網址 」。
指定巨集
巨集是嵌入部分出價回應欄位的格式化文字,內含網址,會在廣告放送時替換為相關值。舉例來說,如果您的得標出價在 HTML 程式碼片段廣告素材中包含 AUCTION_PRICE 巨集,該巨集就會替換為可解密的數值,方便您判斷在競價中為曝光支付的金額。
您可以在下列欄位中加入巨集:
BidResponse.seatbid.bid.adm
HTML 程式碼片段、原生、影片網址和影片 VAST XML 格式均支援巨集。
BidResponse.seatbid.bid.adm_native.eventtrackers.url
BidResponse.seatbid.bid.adm_native.imptrackers
BidResponse.seatbid.bid.ext.amp_ad_url
AMP 廣告素材僅支援 Google 專屬的 WINNING_PRICE 和 WINNING_PRICE_ESC 巨集。
BidResponse.seatbid.bid.burl
BidResponse.seatbid.bid.ext.impression_tracking_url
如果您需要多個帳單網址,請使用這個選項,而非 BidResponse.seatbid.bid.burl。
舉例來說,您可以在用來擷取廣告素材的網址中嵌入 ${MACRO},將巨集納入 HTML 片段,其中 MACRO 是OpenRTB 規格 中說明的其中一個支援巨集。
Google 巨集
除了 OpenRTB 規格中的巨集,Google 也支援其他巨集。這些巨集的格式不同,如果嵌入網址,會顯示為 %%MACRO%%。下表說明這些巨集:
巨集
說明
ADVERTISING_IDENTIFIER
允許買方在廣告曝光時接收 iOS 廣告識別碼或 Android 廣告 ID。詳情請參閱「解密廣告主 ID 」。
CACHEBUSTER
隨機無正負號四位元組整數的字串表示法。
CLICK_URL_UNESC
廣告的未逸出點擊網址。在程式碼片段中,第三方點擊網址的逸出版本應直接接在巨集後面。
舉例來說,如果第三方點擊網址為
http://my.adserver.com/some/path/handleclick?click=clk,
則下列程式碼可搭配巨集呼叫後方的第三方點擊網址單一逸出版本使用:
<a href="%%CLICK_URL_UNESC%%http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a>
在廣告放送時,這會展開為:
<a href="http://google-click-url?...&ad_url=http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a>
網址會先向 Google 登錄點擊,然後重新導向至第三方點擊網址。
CLICK_URL_ESC
廣告的逸出點擊網址。若您需要先將值傳遞到另一部稍後將會傳回重新導向的伺服器,請使用此巨集取代 CLICK_URL_UNESC。
舉例來說,您可以在 HTML 片段中使用下列程式碼:
<a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC%%"></a>
在廣告放送時,這會展開為:
<a href="http://my.adserver.com/click?google_click_url=http://google-click- url%3F...%26ad_url%3D"></a>
這會向 my.adserver.com 註冊點擊,然後由 my.adserver.com 負責重新導向至 google_click_url 參數中傳遞的網址。這項假設的前提是 my.adserver.com 會逸出 google_click_url 參數。
您可以在 %%CLICK_URL_ESC%% 後方附加經過雙重逸出的網址。my.adserver.com 完成逸出字元解除作業後,系統會將網址的單一逸出版本附加至 google_click_url。系統擷取 google_click_url 時,會再次取消逸出,然後重新導向。
CLICK_URL_ESC_ESC
廣告的雙重逸出網址。若您需要先將值傳遞到另一部稍後將會傳回重新導向的伺服器,請使用此巨集取代 CLICK_URL_UNESC。
舉例來說,您可以在 HTML 片段中使用下列程式碼:
<a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC_ESC%%"></a>
在廣告放送時,這會展開為:
<a href="http://my.otheradserver.com/click?google_click_url=http%3A%2F%2Fmy.adserver.com%2Fclick%3Fgoogle_click_url%3Dhttp%3A%2F%2Fgoogle-click-%20url%253F...%2526ad_url%253D"></a>
SCHEME
如果出價要求不需要 SSL,則會展開為 http:;如果出價要求需要 SSL,則會展開為 https:。
SITE
內容網址的網址逸出網域,或是匿名廣告空間的匿名 ID。
SITE_URL
已淘汰,已由提供相同功能的 SITE 巨集取代。
TZ_OFFSET
時區偏移。
VERIFICATION
製作時和在驗證管道中掃描廣告素材時,會有不同的值。格式為:
%%?VERIFICATION:true-val:false-val%%,其中 true-val 和 false-val 可使用巨集以外的任何值,包括空白字串。對於公開出價,我們建議交易平台使用這個巨集;一旦使用,需求端平台就不需要進行變更。
舉例來說,如果廣告素材包含 %%?VERIFICATION:-1:5000%%,則在放送時,文字會替換為 5000,在驗證管道中則會替換為 -1。這樣才能區分這兩組 Ping。
WINNING_PRICE
經過編碼的曝光費用 (單次安裝出價,而非千次曝光出價),以帳戶幣別的百萬分之一表示。舉例來說,以美金 $5 元贏得的千次曝光出價,相當於 5 百萬個百萬分之一的千次曝光出價,或是 5 千個百萬分之一單次安裝出價。在此情況下,WINNING_PRICE 的解碼值為 5,000。單次安裝出價中會指定勝出價格。
如要剖析這個巨集,您必須導入可解密價格確認的應用程式。詳情請參閱「解密價格確認 」頁面。
WINNING_PRICE_ESC
經過網址逸出處理的 WINNING_PRICE。
Google 規定您必須在第三方放送廣告的廣告素材中,使用 CLICK_URL_UNESC 或 CLICK_URL_ESC 巨集。Google 會使用 CLICK_URL 巨集追蹤點擊。
巨集中的網址逸出採用下列配置:
空格字元會替換為加號 (+)。
英數字元 (0-9、a-z、A-Z) 和 !()*,-./:_~ 字元集中的字元維持不變。
所有其他字元都會替換成 %XX,其中 XX 是代表該字元的十六進位數字。
發布商限制和規定
出價要求包含發布商在競價中對廣告素材設定的限制和規定。
BidRequest.bcat
BidRequest.imp.ext.allowed_vendor_type
BidRequest.imp.secure
實際上,這項設定一律為 true,因為 Google 要求所有廣告素材都必須支援 SSL。
BidRequest.imp.{audio/banner/native/video}
BidRequest.imp.{audio/banner/native/video}.api
BidRequest.imp.{audio/banner/native/video}.battr
BidRequest.imp.{audio/banner/video}.mimes
請勿使用含有受限制功能的廣告出價。如果是允許的功能 (例如供應商類型),只有在廣告供應商類型出現在 BidRequest 的 allowed_vendor_type 清單中的情況下,您才需要傳回廣告。出價中只能包含出價要求中指定的廣告格式,例如填入 BidRequest.imp.banner 等欄位。詳情請參閱 BidRequest 通訊協定緩衝區定義中這些欄位的註解。
如果 BidResponse 中傳回廣告,您必須在 BidResponse 中準確設定 BidResponse.seatbid.bid.attr、BidResponse.seatbid.bid.cat 和 BidResponse.seatbid.bid.adomain 或 BidResponse.seatbid.bid.adm_native.link.url 欄位。如果廣告有多個適用的值,則必須包含每個值。如要進一步瞭解這些欄位,請參閱 BidResponse 通訊協定緩衝區定義中的註解。如果回應未設定這些欄位,系統會捨棄該回應。
Open Measurement
Open Measurement 可讓您指定第三方供應商,為在行動應用程式環境中放送的廣告提供獨立的評估和驗證服務。
支援的廣告格式包括影片廣告、橫幅廣告和插頁式廣告。如要進一步瞭解如何在包含這些格式的出價回應中使用 Open Measurement,請參閱 Open Measurement SDK 說明中心文章。
出價回應範例
下列各節顯示不同廣告類型的範例競價回應。
注意: Protobuf 範例包含類似序列化出價回應的下載連結。無法保證兩者完全相同。
應用程式橫幅廣告
OpenRTB Protobuf
顯示範例
序列化回應
id : "4308k26S0C36XQ2z1dIo99"
seatbid {
bid {
id : "y2OcJw5j213rO95Gz78"
impid : "1"
price : 18.360865389304116
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>"
crid : "test_creative_id_391487"
dealid : "1"
w : 390
h : 60
[ com . google . doubleclick . bid ] {
impression_tracking_url : "https://test.com/impression?id=123456"
ad_choices_destination_url : "https://test.com/preferences"
billing_id : 82364411103
skadn {
version : "4.0"
network : "cF58w81X"
itunesitem : "788729094"
sourceapp : "1422994973"
fidelities {
fidelity : VIEW_THROUGH_ADS
nonce : "017e597c-3c7d-4a44-afeb-41cd9a17066f"
timestamp : "1757235407882"
signature : "11iF1L96q2cw8tu790p301c10530ogr7h250k1P9pLxqcJ2qe37klG8xB3M592YbpafQ9861493838C521XA6AEF4A40DK8X"
}
fidelities {
fidelity : STOREKIT_RENDERED_ADS
nonce : "017e597c-3c7d-4a44-afeb-41cd9a17066f"
timestamp : "1757235407882"
signature : "f67L3C138Y6XB7940141011Pd58AZbdBk9Xo1Mlf1973706DsB5808ILLKumU2ic9fr72b9bSs3CD25CCZo8DJB65JB0615L"
}
sourceidentifier : "5507"
}
app_promotion_type : INSTALLS
clickurl : "google.com"
clickurl : "example.com"
}
}
seat : "2542:1534:245840"
}
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 3
}
OpenRTB JSON
顯示範例
{
"id" : "4308k26S0C36XQ2z1dIo99" ,
"seatbid" : [
{
"bid" : [
{
"id" : "y2OcJw5j213rO95Gz78" ,
"impid" : "1" ,
"price" : 18.360865389304116 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" ,
"crid" : "test_creative_id_391487" ,
"dealid" : "1" ,
"w" : 390 ,
"h" : 60 ,
"ext" : {
"impression_tracking_url" : [
"https://test.com/impression?id=123456"
],
"ad_choices_destination_url" : "https://test.com/preferences" ,
"billing_id" : "82364411103" ,
"skadn" : {
"version" : "4.0" ,
"network" : "cF58w81X" ,
"itunesitem" : "788729094" ,
"sourceapp" : "1422994973" ,
"fidelities" : [
{
"fidelity" : 0 ,
"nonce" : "017e597c-3c7d-4a44-afeb-41cd9a17066f" ,
"timestamp" : "1757235407882" ,
"signature" : "11iF1L96q2cw8tu790p301c10530ogr7h250k1P9pLxqcJ2qe37klG8xB3M592YbpafQ9861493838C521XA6AEF4A40DK8X"
},
{
"fidelity" : 1 ,
"nonce" : "017e597c-3c7d-4a44-afeb-41cd9a17066f" ,
"timestamp" : "1757235407882" ,
"signature" : "f67L3C138Y6XB7940141011Pd58AZbdBk9Xo1Mlf1973706DsB5808ILLKumU2ic9fr72b9bSs3CD25CCZo8DJB65JB0615L"
}
],
"sourceidentifier" : "5507"
},
"app_promotion_type" : 1 ,
"clickurl" : [
"google.com" ,
"example.com"
]
}
}
],
"seat" : "2542:1534:245840"
}
],
"ext" : {
"processing_time_ms" : 3
}
}
應用程式插頁式廣告
OpenRTB Protobuf
顯示範例
序列化回應
id : "U0t6Une80802A28Mi98o1t"
seatbid {
bid {
id : "300z78I726nCP7u4sFp"
impid : "1"
price : 149.83914184570312
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>"
crid : "test_creative_id_732353"
dealid : "0"
w : 360
h : 715
burl : "https://test.com/imp?id=123456"
[ com . google . doubleclick . bid ] {
event_notification_token {
payload : "token"
}
billing_id : 68640308112
dsa {
adrender : true
}
clickurl : "google.com"
}
}
}
cur : "JPY"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 10
}
OpenRTB JSON
顯示範例
{
"id" : "U0t6Une80802A28Mi98o1t" ,
"seatbid" : [
{
"bid" : [
{
"id" : "300z78I726nCP7u4sFp" ,
"impid" : "1" ,
"price" : 149.83914184570312 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>" ,
"crid" : "test_creative_id_732353" ,
"dealid" : "0" ,
"w" : 360 ,
"h" : 715 ,
"burl" : "https://test.com/imp?id=123456" ,
"ext" : {
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "68640308112" ,
"dsa" : {
"adrender" : 1
},
"clickurl" : [
"google.com"
]
}
}
]
}
],
"cur" : "JPY" ,
"ext" : {
"processing_time_ms" : 10
}
}
應用程式插頁式影片
OpenRTB Protobuf
顯示範例
序列化回應
id : "n40G42d551UX18627ao8lt"
seatbid {
bid {
id : "17u6BnD62h88r5q7066"
impid : "1"
price : 0.797848
adm : "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%"
adomain : "google.com"
crid : "test_creative_id_987914"
w : 320
h : 480
cattax : GOOGLE_CATEGORIES
[ com . google . doubleclick . bid ] {
attribute : 47
attribute : 50
billing_id : 55383762512
skadn {
version : "4.0"
network : "306el65O"
itunesitem : "832461214"
sourceapp : "977150768"
fidelities {
fidelity : VIEW_THROUGH_ADS
nonce : "0054e0b9-0b53-4426-99dd-a1eefeb45565"
timestamp : "1757329316673"
signature : "oE3Ek8347oZV1Yl1J42G2c88BSKr2dqEbiOK2S4ni7NVDh3v128NN0hlzWK5aX96ecV1504E9k288i0t0wGX73P317812WE7"
}
fidelities {
fidelity : STOREKIT_RENDERED_ADS
nonce : "0054e0b9-0b53-4426-99dd-a1eefeb45565"
timestamp : "1757329316673"
signature : "b1GqXA4v889p842512GQ1p3249q5VmPt1335f1H1zdK92fq24j7a7ml419W7u8B7rhhH97s507f2251923oWi89XF1voZv4b"
}
sourceidentifier : "8396"
}
app_promotion_type : INSTALLS
clickurl : "google.com"
}
}
}
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 20
}
OpenRTB JSON
顯示範例
{
"id" : "n40G42d551UX18627ao8lt" ,
"seatbid" : [
{
"bid" : [
{
"id" : "17u6BnD62h88r5q7066" ,
"impid" : "1" ,
"price" : 0.797848 ,
"adm" : "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%" ,
"adomain" : [
"google.com"
],
"crid" : "test_creative_id_987914" ,
"w" : 320 ,
"h" : 480 ,
"cattax" : 500 ,
"ext" : {
"attribute" : [
47 ,
50
],
"billing_id" : "55383762512" ,
"skadn" : {
"version" : "4.0" ,
"network" : "306el65O" ,
"itunesitem" : "832461214" ,
"sourceapp" : "977150768" ,
"fidelities" : [
{
"fidelity" : 0 ,
"nonce" : "0054e0b9-0b53-4426-99dd-a1eefeb45565" ,
"timestamp" : "1757329316673" ,
"signature" : "oE3Ek8347oZV1Yl1J42G2c88BSKr2dqEbiOK2S4ni7NVDh3v128NN0hlzWK5aX96ecV1504E9k288i0t0wGX73P317812WE7"
},
{
"fidelity" : 1 ,
"nonce" : "0054e0b9-0b53-4426-99dd-a1eefeb45565" ,
"timestamp" : "1757329316673" ,
"signature" : "b1GqXA4v889p842512GQ1p3249q5VmPt1335f1H1zdK92fq24j7a7ml419W7u8B7rhhH97s507f2251923oWi89XF1voZv4b"
}
],
"sourceidentifier" : "8396"
},
"app_promotion_type" : 1 ,
"clickurl" : [
"google.com"
]
}
}
]
}
],
"ext" : {
"processing_time_ms" : 20
}
}
應用程式原生
OpenRTB Protobuf
顯示範例
序列化回應
id : "550102L8So5v6gi4C00T36"
seatbid {
bid {
id : "U796oSA426V3U666ue8"
impid : "1"
price : 1.057860016822815
crid : "test_creative_id_395811"
dealid : "0"
adm_native {
ver : "1.2"
assets {
id : 6
img {
url : "https://native.test.com/logo?id=123456"
w : 200
h : 200
type : LOGO
}
}
assets {
id : 5
img {
url : "https://native.test.com/image?id=123456"
w : 800
h : 800
type : MAIN
}
}
assets {
id : 4
data {
value : "Galactic Luxury Cruises"
type : SPONSORED
}
}
assets {
id : 3
data {
value : "Book today"
type : CTATEXT
}
}
assets {
id : 1
title {
text : "Luxury Mars Cruises"
}
}
assets {
id : 2
data {
value : "Visit the planet in a luxury spaceship."
type : DESC
}
}
link {
url : "https://www.google.com"
}
}
[ com . google . doubleclick . bid ] {
impression_tracking_url : "https://test.com/impression?id=123456"
impression_tracking_url : "https://test.com/impression?id=123456"
ad_choices_destination_url : "https://test.com/preferences"
event_notification_token {
payload : "token"
}
billing_id : 73917825312
dsa {
adrender : true
}
clickurl : "google.com"
}
}
}
cur : "JPY"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 17
}
OpenRTB JSON
顯示範例
{
"id" : "550102L8So5v6gi4C00T36" ,
"seatbid" : [
{
"bid" : [
{
"id" : "U796oSA426V3U666ue8" ,
"impid" : "1" ,
"price" : 1.057860016822815 ,
"crid" : "test_creative_id_395811" ,
"dealid" : "0" ,
"ext" : {
"impression_tracking_url" : [
"https://test.com/impression?id=123456" ,
"https://test.com/impression?id=123456"
],
"ad_choices_destination_url" : "https://test.com/preferences" ,
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "73917825312" ,
"dsa" : {
"adrender" : 1
},
"clickurl" : [
"google.com"
]
},
"adm" : "{ \" ver \" : \" 1.2 \" , \" assets \" :[{ \" id \" :6, \" img \" :{ \" url \" : \" https://native.test.com/logo?id=123456 \" , \" w \" :200, \" h \" :200, \" type \" :2}},{ \" id \" :5, \" img \" :{ \" url \" : \" https://native.test.com/image?id=123456 \" , \" w \" :800, \" h \" :800, \" type \" :3}},{ \" id \" :4, \" data \" :{ \" value \" : \" Galactic Luxury Cruises \" , \" type \" :1}},{ \" id \" :3, \" data \" :{ \" value \" : \" Book today \" , \" type \" :12}},{ \" id \" :1, \" title \" :{ \" text \" : \" Luxury Mars Cruises \" }},{ \" id \" :2, \" data \" :{ \" value \" : \" Visit the planet in a luxury spaceship. \" , \" type \" :2}}], \" link \" :{ \" url \" : \" https://www.google.com \" }}"
}
]
}
],
"cur" : "JPY" ,
"ext" : {
"processing_time_ms" : 17
}
}
網路影片
OpenRTB Protobuf
顯示範例
序列化回應
id : "04XK8XoQI227314y42h0LL"
seatbid {
bid {
id : "R9TtHE88cGu48FA4DuG"
impid : "1"
price : 1.0523000955581665
adm : "https://video.test.com/ads?id=123456&wprice= %% WINNING_PRICE %% "
crid : "test_creative_id_400281"
dealid : "45957820"
[ com . google . doubleclick . bid ] {
event_notification_token {
payload : "token"
}
billing_id : 63495119434
dsa {
adrender : true
}
clickurl : "google.com"
}
}
}
cur : "JPY"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 11
}
OpenRTB JSON
顯示範例
{
"id" : "04XK8XoQI227314y42h0LL" ,
"seatbid" : [
{
"bid" : [
{
"id" : "R9TtHE88cGu48FA4DuG" ,
"impid" : "1" ,
"price" : 1.0523000955581665 ,
"adm" : "https://video.test.com/ads?id=123456&wprice= %% WINNING_PRICE %% " ,
"crid" : "test_creative_id_400281" ,
"dealid" : "45957820" ,
"ext" : {
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "63495119434" ,
"dsa" : {
"adrender" : 1
},
"clickurl" : [
"google.com"
]
}
}
]
}
],
"cur" : "JPY" ,
"ext" : {
"processing_time_ms" : 11
}
}
供交易平台出價者使用的行動版網站橫幅廣告
OpenRTB Protobuf
顯示範例
序列化回應
id : "1qCcL0350ZX64rx8WQm7N1"
seatbid {
bid {
id : "9I6TCG083egHnxY1490"
impid : "1"
price : 0.34
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>"
adomain : "google.com"
crid : "test_creative_id_607960"
w : 320
h : 100
[ com . google . doubleclick . bid ] {
impression_tracking_url : "https://test.com/impression?id=123456"
event_notification_token {
payload : "token"
}
billing_id : 29290087654
third_party_buyer_token : "0W4u1J2Ya9GqKfzo925xPxN527l74y91z6P9h9b4s0Dg2t1q84O4S652wcHe63576VvK8aG6K7387yQujd13kdb99q75447qr6k332G4l3Mzhq75f155894Jg0U1vB18t73C24B4D1cd"
}
}
bid {
id : "1xHeg1ANn9RbY9n4rG2"
impid : "1"
price : 0.2
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>"
adomain : "google.com"
crid : "test_creative_id_607960"
w : 300
h : 50
[ com . google . doubleclick . bid ] {
impression_tracking_url : "https://test.com/impression?id=123456"
event_notification_token {
payload : "token"
}
third_party_buyer_token : "ha1g9MaJIJ8R0110bkX95Jb0ksv78l4139zr4t98A19DDO6NCpX84TQp84a6H470M7mop5KzVHRyrJtn1zw78N1559WRm7554X7R21jnI0E1X7c10Xj98c08iH85742t76Y26H67cW78"
}
}
seat : "3581:7507:419542"
}
seatbid {
bid {
id : "x0ch5K0vq3iY6M7ZT84"
impid : "1"
price : 0.11
adm : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>"
adomain : "google.com"
crid : "test_creative_id_607960"
w : 320
h : 50
[ com . google . doubleclick . bid ] {
impression_tracking_url : "https://test.com/impression?id=123456"
impression_tracking_url : "https://test.com/impression?id=123456"
event_notification_token {
payload : "token"
}
}
}
seat : "3581:7507:419542"
}
bidid : "EFa8lD5s-3w28kZzd-4221-aZkE1F6r5810"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 250
}
OpenRTB JSON
顯示範例
{
"id" : "1qCcL0350ZX64rx8WQm7N1" ,
"seatbid" : [
{
"bid" : [
{
"id" : "9I6TCG083egHnxY1490" ,
"impid" : "1" ,
"price" : 0.34 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>" ,
"adomain" : [
"google.com"
],
"crid" : "test_creative_id_607960" ,
"w" : 320 ,
"h" : 100 ,
"ext" : {
"impression_tracking_url" : [
"https://test.com/impression?id=123456"
],
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "29290087654" ,
"third_party_buyer_token" : "0W4u1J2Ya9GqKfzo925xPxN527l74y91z6P9h9b4s0Dg2t1q84O4S652wcHe63576VvK8aG6K7387yQujd13kdb99q75447qr6k332G4l3Mzhq75f155894Jg0U1vB18t73C24B4D1cd"
}
},
{
"id" : "1xHeg1ANn9RbY9n4rG2" ,
"impid" : "1" ,
"price" : 0.2 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>" ,
"adomain" : [
"google.com"
],
"crid" : "test_creative_id_607960" ,
"w" : 300 ,
"h" : 50 ,
"ext" : {
"impression_tracking_url" : [
"https://test.com/impression?id=123456"
],
"event_notification_token" : {
"payload" : "token"
},
"third_party_buyer_token" : "ha1g9MaJIJ8R0110bkX95Jb0ksv78l4139zr4t98A19DDO6NCpX84TQp84a6H470M7mop5KzVHRyrJtn1zw78N1559WRm7554X7R21jnI0E1X7c10Xj98c08iH85742t76Y26H67cW78"
}
}
],
"seat" : "3581:7507:419542"
},
{
"bid" : [
{
"id" : "x0ch5K0vq3iY6M7ZT84" ,
"impid" : "1" ,
"price" : 0.11 ,
"adm" : "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src= \" https://test.com/ads?id=123456&curl= %% CLICK_URL_ESC %% &wprice= %% WINNING_PRICE_ESC %% \" ></iframe>" ,
"adomain" : [
"google.com"
],
"crid" : "test_creative_id_607960" ,
"w" : 320 ,
"h" : 50 ,
"ext" : {
"impression_tracking_url" : [
"https://test.com/impression?id=123456" ,
"https://test.com/impression?id=123456"
],
"event_notification_token" : {
"payload" : "token"
}
}
}
],
"seat" : "3581:7507:419542"
}
],
"bidid" : "EFa8lD5s-3w28kZzd-4221-aZkE1F6r5810" ,
"ext" : {
"processing_time_ms" : 250
}
}