應用程式處理 Google 的出價要求後,必須建立並傳送回應。本指南說明如何編寫應用程式程式碼來建構回應。
建立 BidResponse 訊息
如要提交出價,出價應用程式必須以所設定格式,以包含 Bid
的 BidResponse
回應出價要求。如果您使用 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
傳回回應。逾時和無法剖析的回應都視為錯誤,Google 會針對出價工具的錯誤率進行調節。
廣告素材 ID
您的 BidResponse
會透過 BidResponse.seatbid.bid.crid
欄位指定廣告素材 (上限為 64 個位元組)。即使是相似的廣告素材,如果在任何顯著特徵上有所差異,也必須為這個欄位提供不重複的值,包括但不限於尺寸、宣告的網址、廣告素材屬性和供應商類型。換句話說,您必須為任何兩則廣告提供不同的廣告素材 ID,前提是:
外觀或行為不同。
算繪至不同的圖片。
以不同的方式算繪 (例如,一個廣告包含圖片,另一個廣告則包含影片)。
設計應用程式時,您應決定以系統化方式產生 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 格式。
請參閱廣告素材資源 ,瞭解如何取得廣告素材偵測屬性的意見回饋。
公開出價欄位
參與公開出價的廣告交易平台和聯播網出價方傳送的出價回應,與參與標準即時出價的授權買方傳送的出價回應類似。公開出價客戶可以指定少數額外欄位,而部分現有欄位可能有其他用途。其中包括:
欄位
詳細資料
BidResponse.imp.pmp.deals.id
廣告交易 ID 來自廣告交易平台的命名空間,與此出價相關聯,並回報給發布商。
注意: 這個欄位只會傳送給封閉 Beta 版測試人員。
BidResponse.seatbid.bid.ext.exchange_deal_type
回報給發布商的交易類型,會影響競價中對交易的處理方式。
注意: 這個欄位只會傳送給封閉 Beta 版測試人員。
BidResponse.seatbid.bid.ext.third_party_buyer_token
如果廣告交易平台是公開出價方,則此符記可用於識別最終第三方買家資訊。這個值是從第三方買家取得,必須在出價回應中保持不變,才能傳送給 Google。
建議
出價回應範例
以下範例代表 Protobuf 和 JSON 要求的可讀取範例。
OpenRTB Protobuf
顯示範例
序列化回應
id : "9u09jhHJXT2fbaDZ9V1x66"
seatbid {
bid {
id : "37Td8Gbw1Lr8161bA4B"
impid : "1"
price : 0.075
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"
adomain : "google.com"
crid : "test_creative_id_156129"
cat : "IAB22"
w : 320
h : 50
language : "es"
slotinpod : SLOT_POSITION_POD_ANY
cattax : IAB_CONTENT_1_0
[ com . google . doubleclick . bid ] {
impression_tracking_url : "https://test.com/impression?id=123456"
exchange_deal_type : OPEN_AUCTION
event_notification_token {
payload : "token"
}
billing_id : 61560909063
}
}
seat : "4778:9251:780612"
}
cur : "USD"
OpenRTB JSON
顯示範例
{
"id" : "9u09jhHJXT2fbaDZ9V1x66" ,
"seatbid" : [
{
"bid" : [
{
"id" : "37Td8Gbw1Lr8161bA4B" ,
"impid" : "1" ,
"price" : 0.075 ,
"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" ,
"google.com"
],
"crid" : "test_creative_id_156129" ,
"cat" : [
"IAB22"
],
"w" : 320 ,
"h" : 50 ,
"language" : "es" ,
"slotinpod" : 0 ,
"cattax" : 1 ,
"ext" : {
"impression_tracking_url" : [
"https://test.com/impression?id=123456"
],
"exchange_deal_type" : 0 ,
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "61560909063"
}
}
],
"seat" : "4778:9251:780612"
}
],
"cur" : "USD"
}
重要事項: 範例中顯示的 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 廣告素材片段,但請注意,在「Create BidResponse message」 部分指定 crid
欄位的限制。這項功能的其中一個用途,就是在擷取自伺服器的網址引數中加入額外資訊,以便在算繪廣告時使用。這樣一來,您就能將曝光次數的任意資料傳回至自己的伺服器。
在出價回應中傳回的 HTML 程式碼片段,大多適用於第三方廣告的政策。詳情請參閱「授權買家計畫規範 」、「第三方廣告放送相關規定 」和「在廣告中宣告點擊率網址 」。
指定巨集
巨集是經過格式設定的文字,會嵌入部分包含網址的出價回應欄位,並在廣告放送期間替換為相關值。舉例來說,如果您在出價時,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
。
舉例來說,您可以將巨集納入 HTML 程式碼片段,方法是在用於擷取廣告素材的網址中嵌入 ${MACRO}
,其中 MACRO
是 OpenRTB 規格 中所述的支援巨集之一。
Google 巨集
除了 OpenRTB 規格中的巨集,Google 也支援其他巨集。這些巨集的格式不同,如果嵌入網址,會顯示為 %%MACRO%%
。下表說明這些巨集:
巨集
說明
ADVERTISING_IDENTIFIER
允許買方在曝光顯示時收到 iOS IDFA 或 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 : "8L85Di7e9374c3jriwo2W0"
seatbid {
bid {
id : "0L7hx7783rjD1hT81FH"
impid : "1"
price : 0.4000000059604645
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_192654"
w : 300
h : 50
burl : "https://test.com/imp?id=123456"
[ com . google . doubleclick . bid ] {
impression_tracking_url : "https://test.com/impression?id=123456"
billing_id : 70614819650
skadn {
version : "3.0"
network : "Y8HK1z22"
campaign : "72382716"
itunesitem : "953637916"
sourceapp : "com.google.testapp"
fidelities {
fidelity : VIEW_THROUGH_ADS
nonce : "bf105d9a-6df9-4d49-a10d-44e21a539415"
timestamp : "1730359683568"
signature : "589Vb2BJlF955D6kUj197D84U8UWWtngYQ73o1SVMEcAk6ju348j0454AOxpR74j95BF13RLC119Qo73nyq2qgp4IJENP6yE"
}
fidelities {
fidelity : STOREKIT_RENDERED_ADS
nonce : "bf105d9a-6df9-4d49-a10d-44e21a539415"
timestamp : "1730359683568"
signature : "3Av39t8684YefY03NT715Z2dTtXQ39pQH7C9aq6Wuh4WzbS044734J7FAlw7690Nm7743G7Z4P6hX8K7H607886b7FBHTCYY"
}
skadn_opts {
always_open_appstore : true
}
}
app_promotion_type : INSTALLS
}
}
seat : "4095:5416:758587"
}
cur : "USD"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 16
}
OpenRTB JSON
顯示範例
{
"id" : "8L85Di7e9374c3jriwo2W0" ,
"seatbid" : [
{
"bid" : [
{
"id" : "0L7hx7783rjD1hT81FH" ,
"impid" : "1" ,
"price" : 0.4000000059604645 ,
"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_192654" ,
"w" : 300 ,
"h" : 50 ,
"burl" : "https://test.com/imp?id=123456" ,
"ext" : {
"impression_tracking_url" : [
"https://test.com/impression?id=123456"
],
"billing_id" : "70614819650" ,
"skadn" : {
"version" : "3.0" ,
"network" : "Y8HK1z22" ,
"campaign" : "72382716" ,
"itunesitem" : "953637916" ,
"sourceapp" : "com.google.testapp" ,
"fidelities" : [
{
"fidelity" : 0 ,
"nonce" : "bf105d9a-6df9-4d49-a10d-44e21a539415" ,
"timestamp" : "1730359683568" ,
"signature" : "589Vb2BJlF955D6kUj197D84U8UWWtngYQ73o1SVMEcAk6ju348j0454AOxpR74j95BF13RLC119Qo73nyq2qgp4IJENP6yE"
},
{
"fidelity" : 1 ,
"nonce" : "bf105d9a-6df9-4d49-a10d-44e21a539415" ,
"timestamp" : "1730359683568" ,
"signature" : "3Av39t8684YefY03NT715Z2dTtXQ39pQH7C9aq6Wuh4WzbS044734J7FAlw7690Nm7743G7Z4P6hX8K7H607886b7FBHTCYY"
}
],
"skadn_opts" : {
"always_open_appstore" : 1
}
},
"app_promotion_type" : 1
}
}
],
"seat" : "4095:5416:758587"
}
],
"cur" : "USD" ,
"ext" : {
"processing_time_ms" : 16
}
}
應用程式插頁式廣告
OpenRTB Protobuf
顯示範例
序列化回應
id: "6700Z3L2o0zSw9g8IqmiQ5"
seatbid {
bid {
id: "0UBHDN63xQ8hj1F8184"
impid: "1"
price: 0.016728
adid: "test_creative_id_179418"
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_179418"
cat: "IAB13-7"
w: 300
h: 600
burl: "https://test.com/imp?id=123456"
[com.google.doubleclick.bid] {
billing_id: 14443955188
dsa {
behalf: "TEST_ADVERTISER"
paid: "TEST_PAYING_ENTITY"
adrender: false
}
}
}
seat: "2054:4176:757161"
group: false
}
bidid: "TI590379-wi3Z9CU8-6j8V-Uj0l1I102h2q"
cur: "USD"
OpenRTB JSON
顯示範例
{
"id": "6700Z3L2o0zSw9g8IqmiQ5",
"seatbid": [
{
"bid": [
{
"id": "0UBHDN63xQ8hj1F8184",
"impid": "1",
"price": 0.016728,
"adid": "test_creative_id_179418",
"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_179418",
"cat": [
"IAB13-7"
],
"w": 300,
"h": 600,
"burl": "https://test.com/imp?id=123456",
"ext": {
"billing_id": "14443955188",
"dsa": {
"behalf": "TEST_ADVERTISER",
"paid": "TEST_PAYING_ENTITY",
"adrender": 0
}
}
}
],
"seat": "2054:4176:757161",
"group": 0
}
],
"bidid": "TI590379-wi3Z9CU8-6j8V-Uj0l1I102h2q",
"cur": "USD"
}
應用程式插頁式影片
OpenRTB Protobuf
顯示範例
序列化回應
id : "79N7F1708654i75q3k69j1"
seatbid {
bid {
id : "1gR655162hOsH9q3X6R"
impid : "1"
price : 2.3833
adid : "test_creative_id_648299"
adm : "https://video.test.com/ads?id=123456&wprice= %% WINNING_PRICE %% "
adomain : "google.com"
crid : "test_creative_id_648299"
attr : VIDEO_IN_BANNER_AUTO_PLAY
w : 1920
h : 1080
[ com . google . doubleclick . bid ] {
event_notification_token {
payload : "token"
}
billing_id : 11004606416
skadn {
version : "4.0"
network : "O5O88B57"
itunesitem : "509167749"
nonce : ""
sourceapp : "com.google.testapp"
timestamp : "OMITTED"
signature : "OMITTED"
fidelities {
fidelity : VIEW_THROUGH_ADS
nonce : "d3be52b1-8ef6-4277-8922-54450b07fd5b"
timestamp : "1730409097616"
signature : "8d52E359K158Dj1u89EpLP3544Qz7B10CV0a92YZJ6JXX8d9uXi72N43ZxjRl96Ph7v8R5u1k5y9Aoy3jZcN3C5dxRU390qc"
}
fidelities {
fidelity : STOREKIT_RENDERED_ADS
nonce : "d3be52b1-8ef6-4277-8922-54450b07fd5b"
timestamp : "1730409097616"
signature : "43C2b79X4nPY913Qs3jJLLhCjUNZg39cK022pCE2wH731Ie7q4584b5UGG137Jh12I2R6a0e35LJbvQJbn5o564roQ7G1Mtd"
}
sourceidentifier : "1"
}
app_promotion_type : INSTALLS
}
}
seat : "1061:9160:833989"
}
bidid : "m7V3rjn0-aF599ZZ6-37hA-b9o7DU8CLrtp"
cur : "USD"
OpenRTB JSON
顯示範例
{
"id" : "79N7F1708654i75q3k69j1" ,
"seatbid" : [
{
"bid" : [
{
"id" : "1gR655162hOsH9q3X6R" ,
"impid" : "1" ,
"price" : 2.3833 ,
"adid" : "test_creative_id_648299" ,
"adm" : "https://video.test.com/ads?id=123456&wprice= %% WINNING_PRICE %% " ,
"adomain" : [
"google.com"
],
"crid" : "test_creative_id_648299" ,
"attr" : [
6
],
"w" : 1920 ,
"h" : 1080 ,
"ext" : {
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "11004606416" ,
"skadn" : {
"version" : "4.0" ,
"network" : "O5O88B57" ,
"itunesitem" : "509167749" ,
"nonce" : "" ,
"sourceapp" : "com.google.testapp" ,
"timestamp" : "OMITTED" ,
"signature" : "OMITTED" ,
"fidelities" : [
{
"fidelity" : 0 ,
"nonce" : "d3be52b1-8ef6-4277-8922-54450b07fd5b" ,
"timestamp" : "1730409097616" ,
"signature" : "8d52E359K158Dj1u89EpLP3544Qz7B10CV0a92YZJ6JXX8d9uXi72N43ZxjRl96Ph7v8R5u1k5y9Aoy3jZcN3C5dxRU390qc"
},
{
"fidelity" : 1 ,
"nonce" : "d3be52b1-8ef6-4277-8922-54450b07fd5b" ,
"timestamp" : "1730409097616" ,
"signature" : "43C2b79X4nPY913Qs3jJLLhCjUNZg39cK022pCE2wH731Ie7q4584b5UGG137Jh12I2R6a0e35LJbvQJbn5o564roQ7G1Mtd"
}
],
"sourceidentifier" : "1"
},
"app_promotion_type" : 1
}
}
],
"seat" : "1061:9160:833989"
}
],
"bidid" : "m7V3rjn0-aF599ZZ6-37hA-b9o7DU8CLrtp" ,
"cur" : "USD"
}
原生應用程式
OpenRTB Protobuf
顯示範例
序列化回應
id : "96Z599PGNvp7Mr99138Fm0"
seatbid {
bid {
id : "NQb32Ge7Rtt84wFn2p8"
impid : "1"
price : 0.153584
adid : "test_creative_id_272596"
adomain : "google.com"
crid : "test_creative_id_272596"
cat : "IAB13-7"
burl : "https://test.com/imp?id=123456"
adm_native {
ver : "1.2"
assets {
id : 1
required : true
title {
text : "Luxury Mars Cruises"
}
}
assets {
id : 2
required : true
data {
value : "Visit the planet in a luxury spaceship."
}
}
assets {
id : 3
required : false
data {
value : "Book today"
}
}
assets {
id : 4
required : true
data {
value : "Galactic Luxury Cruises"
}
}
assets {
id : 5
required : true
img {
url : "https://native.test.com/image?id=123456"
w : 1200
h : 627
}
}
link {
url : "https://www.google.com"
}
eventtrackers {
event : IMPRESSION
method : IMG
url : "https://test.com/event?id=123456"
}
privacy : "https://adssettings.google.com/whythisad?source=display&reasons=OMITTED"
}
[ com . google . doubleclick . bid ] {
ad_choices_destination_url : "https://test.com/preferences"
billing_id : 29846056590
dsa {
behalf : "TEST_ADVERTISER"
paid : "TEST_PAYING_ENTITY"
adrender : false
}
}
}
bid {
id : "4vwb23qm6iqU6w6G978"
impid : "1"
price : 0.153584
adid : "test_creative_id_272596"
adomain : "google.com"
crid : "test_creative_id_272596"
cat : "IAB21"
burl : "https://test.com/imp?id=123456"
adm_native {
ver : "1.2"
assets {
id : 1
required : true
title {
text : "Luxury Mars Cruises"
}
}
assets {
id : 2
required : true
data {
value : "Visit the planet in a luxury spaceship."
}
}
assets {
id : 3
required : false
data {
value : "Book today"
}
}
assets {
id : 4
required : true
data {
value : "Galactic Luxury Cruises"
}
}
assets {
id : 5
required : true
img {
url : "https://native.test.com/image?id=123456"
w : 1200
h : 627
}
}
link {
url : "https://www.google.com"
}
eventtrackers {
event : IMPRESSION
method : IMG
url : "https://test.com/event?id=123456"
}
privacy : "https://adssettings.google.com/whythisad?source=display&reasons=OMITTED"
}
[ com . google . doubleclick . bid ] {
ad_choices_destination_url : "https://test.com/preferences"
dsa {
behalf : "TEST_ADVERTISER"
paid : "TEST_PAYING_ENTITY"
adrender : false
}
}
}
seat : "4528:1161:591635"
group : false
}
bidid : "hgu4ev7j-ZK929XM0-79f7-0A23O0VN2CFC"
cur : "USD"
OpenRTB JSON
顯示範例
{
"id" : "96Z599PGNvp7Mr99138Fm0" ,
"seatbid" : [
{
"bid" : [
{
"id" : "NQb32Ge7Rtt84wFn2p8" ,
"impid" : "1" ,
"price" : 0.153584 ,
"adid" : "test_creative_id_272596" ,
"adomain" : [
"google.com"
],
"crid" : "test_creative_id_272596" ,
"cat" : [
"IAB13-7"
],
"burl" : "https://test.com/imp?id=123456" ,
"ext" : {
"ad_choices_destination_url" : "https://test.com/preferences" ,
"billing_id" : "29846056590" ,
"dsa" : {
"behalf" : "TEST_ADVERTISER" ,
"paid" : "TEST_PAYING_ENTITY" ,
"adrender" : 0
}
},
"adm" : "{\"ver\":\"1.2\",\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"text\":\"Luxury Mars Cruises\"}},{\"id\":2,\"required\":1,\"data\":{\"value\":\"Visit the planet in a luxury spaceship.\"}},{\"id\":3,\"required\":0,\"data\":{\"value\":\"Book today\"}},{\"id\":4,\"required\":1,\"data\":{\"value\":\"Galactic Luxury Cruises\"}},{\"id\":5,\"required\":1,\"img\":{\"url\":\"https://native.test.com/image?id=123456\",\"w\":1200,\"h\":627}}],\"link\":{\"url\":\"https://www.google.com\"},\"eventtrackers\":[{\"event\":1,\"method\":1,\"url\":\"https://test.com/event?id=123456\"}],\"privacy\":\"https://adssettings.google.com/whythisad?source=display&reasons=OMITTED\"}"
},
{
"id" : "4vwb23qm6iqU6w6G978" ,
"impid" : "1" ,
"price" : 0.153584 ,
"adid" : "test_creative_id_272596" ,
"adomain" : [
"google.com"
],
"crid" : "test_creative_id_272596" ,
"cat" : [
"IAB21"
],
"burl" : "https://test.com/imp?id=123456" ,
"ext" : {
"ad_choices_destination_url" : "https://test.com/preferences" ,
"dsa" : {
"behalf" : "TEST_ADVERTISER" ,
"paid" : "TEST_PAYING_ENTITY" ,
"adrender" : 0
}
},
"adm" : "{\"ver\":\"1.2\",\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"text\":\"Luxury Mars Cruises\"}},{\"id\":2,\"required\":1,\"data\":{\"value\":\"Visit the planet in a luxury spaceship.\"}},{\"id\":3,\"required\":0,\"data\":{\"value\":\"Book today\"}},{\"id\":4,\"required\":1,\"data\":{\"value\":\"Galactic Luxury Cruises\"}},{\"id\":5,\"required\":1,\"img\":{\"url\":\"https://native.test.com/image?id=123456\",\"w\":1200,\"h\":627}}],\"link\":{\"url\":\"https://www.google.com\"},\"eventtrackers\":[{\"event\":1,\"method\":1,\"url\":\"https://test.com/event?id=123456\"}],\"privacy\":\"https://adssettings.google.com/whythisad?source=display&reasons=OMITTED\"}"
}
],
"seat" : "4528:1161:591635" ,
"group" : 0
}
],
"bidid" : "hgu4ev7j-ZK929XM0-79f7-0A23O0VN2CFC" ,
"cur" : "USD"
}
網路影片
OpenRTB Protobuf
顯示範例
序列化回應
id : "b2F6m05a9d83V7I35iw415"
seatbid {
bid {
id : "Ob7259K5679O36pMt00"
impid : "1"
price : 1.52
adid : "test_creative_id_262797"
adm : "https://video.test.com/ads?id=123456&wprice= %% WINNING_PRICE %% "
adomain : "google.com"
crid : "test_creative_id_262797"
exp : 3600
[ com . google . doubleclick . bid ] {
event_notification_token {
payload : "token"
}
billing_id : 47460168025
}
}
bid {
id : "0890di791A75n9R13jM"
impid : "1"
price : 1.2
adid : "test_creative_id_262797"
adm : "https://video.test.com/ads?id=123456&wprice= %% WINNING_PRICE %% "
adomain : "google.com"
crid : "test_creative_id_262797"
exp : 3600
[ com . google . doubleclick . bid ] {
event_notification_token {
payload : "token"
}
}
}
seat : "2121:7826:598388"
}
cur : "USD"
OpenRTB JSON
顯示範例
{
"id" : "b2F6m05a9d83V7I35iw415" ,
"seatbid" : [
{
"bid" : [
{
"id" : "Ob7259K5679O36pMt00" ,
"impid" : "1" ,
"price" : 1.52 ,
"adid" : "test_creative_id_262797" ,
"adm" : "https://video.test.com/ads?id=123456&wprice= %% WINNING_PRICE %% " ,
"adomain" : [
"google.com"
],
"crid" : "test_creative_id_262797" ,
"exp" : 3600 ,
"ext" : {
"event_notification_token" : {
"payload" : "token"
},
"billing_id" : "47460168025"
}
},
{
"id" : "0890di791A75n9R13jM" ,
"impid" : "1" ,
"price" : 1.2 ,
"adid" : "test_creative_id_262797" ,
"adm" : "https://video.test.com/ads?id=123456&wprice= %% WINNING_PRICE %% " ,
"adomain" : [
"google.com"
],
"crid" : "test_creative_id_262797" ,
"exp" : 3600 ,
"ext" : {
"event_notification_token" : {
"payload" : "token"
}
}
}
],
"seat" : "2121:7826:598388"
}
],
"cur" : "USD"
}
廣告交易平台出價方適用的行動版網站橫幅廣告
OpenRTB Protobuf
顯示範例
序列化回應
id : "l30Zu42070Man1Z5u751yG"
seatbid {
bid {
id : "4X6uu65F9J3m467C571"
impid : "1"
price : 0.17
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_941528"
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"
}
billing_id : 50962964480
}
}
seat : "7632:7504:809671"
}
bidid : "II638Xkf-6432F06d-VGu8-27B4407D136w"
[ com . google . doubleclick . bid_response ] {
processing_time_ms : 70
}
OpenRTB JSON
顯示範例
{
"id" : "l30Zu42070Man1Z5u751yG" ,
"seatbid" : [
{
"bid" : [
{
"id" : "4X6uu65F9J3m467C571" ,
"impid" : "1" ,
"price" : 0.17 ,
"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_941528" ,
"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"
},
"billing_id" : "50962964480"
}
}
],
"seat" : "7632:7504:809671"
}
],
"bidid" : "II638Xkf-6432F06d-VGu8-27B4407D136w" ,
"ext" : {
"processing_time_ms" : 70
}
}