Sau khi xử lý yêu cầu giá thầu của Google, ứng dụng của bạn phải tạo và gửi phản hồi. Hướng dẫn này giải thích cách lập trình ứng dụng để tạo phản hồi.
Tạo thông báo BidResponse Protobuf
Authorized Buyers gửi BidRequest
dưới dạng nội dung thư của POST
HTTP. Nếu điểm cuối đặt giá thầu được định cấu hình để sử dụng định dạng Protobuf, thì ứng dụng của bạn phải gửi một phản hồi có tiêu đề Content-Type
được đặt thành application/octet-stream
và nội dung thông báo bao gồm vùng đệm giao thức được chuyển đổi tuần tự. Vùng đệm giao thức là một thông báo BidResponse
như được xác định trong openrtb.proto
. Ứng dụng của bạn phải trả về một BidResponse
có thể phân tích cú pháp để phản hồi mọi BidRequest
. Hết thời gian chờ và các phản hồi không thể phân tích cú pháp được coi là lỗi và Google sẽ điều tiết những bên đặt giá thầu có tỷ lệ lỗi cao.
Nếu không muốn đặt giá thầu cho một lượt hiển thị, bạn phải trả về một phản hồi HTTP 204 trống. Bạn có thể lấy openrtb.proto
từ trang dữ liệu tham chiếu.
Mã mẫu quảng cáo
BidResponse
chỉ định một mẫu quảng cáo thông qua trường BidResponse.seatbid.bid.crid
(giới hạn 64 byte). Ngay cả các mẫu quảng cáo tương tự cũng phải có giá trị riêng biệt cho trường này nếu chúng khác nhau về bất kỳ đặc điểm đáng chú ý nào, bao gồm nhưng không giới hạn ở: kích thước, URL đã khai báo, thuộc tính mẫu quảng cáo và loại nhà cung cấp. Nói cách khác, bạn phải cung cấp mã mẫu quảng cáo khác nhau cho hai quảng cáo bất kỳ:
- Có vẻ ngoài hoặc hành vi khác.
- Kết xuất sang nhiều hình ảnh.
- Kết xuất theo nhiều phương thức (ví dụ: một quảng cáo bao gồm hình ảnh, còn quảng cáo còn lại là video).
Khi thiết kế ứng dụng, bạn nên quyết định một cách có hệ thống để tạo giá trị nhận dạng phù hợp với các loại mẫu quảng cáo mà bạn dự định gửi.
Thuộc tính quảng cáo
Bạn nên khai báo các thuộc tính mẫu quảng cáo để mô tả các đặc điểm và tiêu chí nhắm mục tiêu của quảng cáo bằng cách kết hợp BidResponse.seatbid.bid.apis
và BidResponse.seatbid.bid.attr
hoặc tiện ích BidResponse.seatbid.bid.ext.attribute
. Phần sau đây mô tả cách bạn có thể khai báo thuộc tính:
VPAID
ĐặtBidResponse.seatbid.bid.apis
thànhVPAID_1
hoặcVPAID_2
. Đối với định dạng JSON, bạn có thể đặt giá trị này thành1
hoặc2
tương ứng.MRAID
ĐặtBidResponse.seatbid.bid.apis
thànhMRAID_1
hoặc3
cho định dạng JSON.SIZELESS
ĐặtBidResponse.seatbid.bid.attr
thànhRESPONSIVE
hoặc18
cho định dạng JSON.PLAYABLE
Điều này được biểu thị bằng cách đặtBidResponse.seatbid.bid.attr
thànhUSER_INTERACTIVE
hoặc13
cho định dạng JSON.
Hãy xem Tài nguyên về mẫu quảng cáo để biết nội dung giải thích về cách nhận ý kiến phản hồi liên quan đến các thuộc tính được phát hiện của mẫu quảng cáo.
Các trường Đặt giá thầu mở
Phản hồi giá thầu do bên đặt giá thầu mạng và bên đặt giá thầu trao đổi tham gia tính năng Đặt giá thầu mở gửi tương tự như phản hồi giá thầu của Authorized Buyers tham gia tính năng đặt giá thầu theo thời gian thực chuẩn. Khách hàng sử dụng tính năng Đặt giá thầu mở có thể chỉ định một số trường bổ sung và một số trường hiện có có thể có cách sử dụng thay thế. Các tính năng này bao gồm:
OpenRTB | Authorized Buyers | Thông tin chi tiết |
---|---|---|
BidResponse.imp[].pmp.deals[].id |
BidResponse.ad[].adslot[].exchange_deal_id |
Mã giao dịch trong không gian tên của hệ thống trao đổi được liên kết với giá thầu này và được báo cáo cho nhà xuất bản. |
BidResponse.seatbid[].bid[].ext.exchange_deal_type |
BidResponse.ad[].adslot[].exchange_deal_type |
Loại giao dịch được báo cáo cho nhà xuất bản, ảnh hưởng đến cách giao dịch được xử lý trong phiên đấu giá. |
BidResponse.seatbid[].bid[].ext.third_party_buyer_token |
BidResponse.ad[].adslot[].third_party_buyer_token |
Mã thông báo dùng để xác định thông tin người mua bên thứ ba cuối cùng nếu hệ thống trao đổi đóng vai trò là Người đặt giá thầu mở là một bên trung gian. Thông tin này được lấy từ bên mua bên thứ ba và phải được truyền đến Google mà không bị thay đổi trong phản hồi giá thầu. |
Đề xuất
- Bật kết nối HTTPS ổn định (còn gọi là "keep-alive" hoặc "sử dụng lại kết nối") trên máy chủ của bạn. Đặt thời gian chờ tối thiểu là 10 giây – các giá trị cao hơn sẽ có lợi trong nhiều trường hợp. Google xác minh điều này trong quá trình kiểm thử độ trễ ban đầu của ứng dụng, vì Authorized Buyers gửi yêu cầu với tốc độ cao và cần tránh hao tổn độ trễ khi thiết lập kết nối TCP riêng cho từng yêu cầu.
Thêm URL theo dõi lượt hiển thị (không bắt buộc) để theo dõi thời điểm lượt hiển thị hiển thị thay vì thời điểm bên đặt giá thầu giành chiến thắng. Do sự sụt giảm giữa số lần thắng và số lần kết xuất, điều này sẽ mang lại số liệu thống kê theo dõi chính xác hơn.
- Đảm bảo mã của bên đặt giá thầu không có phần phụ thuộc trên các trường không dùng nữa, vì điều này có thể khiến giá thầu của bạn không thành công và gặp lỗi.
- Thêm
BidResponse.seatbid.bid.w
vàBidResponse.seatbid.bid.h
vàoBidResponse
.BidResponse
đến một yêu cầu bao gồm nhiều kích thước quảng cáo phải bao gồm các trường này, nếu không sẽ bị loại khỏi phiên đấu giá. - Giới hạn kích thước phản hồi ở mức dưới 8K. Các phản hồi rất lớn có thể làm tăng độ trễ mạng và gây ra thời gian chờ.
- Làm theo nguyên tắc về giá thầu trên khoảng không quảng cáo iOS yêu cầu mô hình phân bổ SKAdNetwork.
Ví dụ về phản hồi giá thầu
Các ví dụ sau đây thể hiện các mẫu yêu cầu Protobuf và JSON mà con người có thể đọc được.
Ví dụ minh họa
Phản hồi tuần tự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"
Ví dụ minh họa
{ "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" }
Ví dụ minh họa
Phản hồi tuần tựad { html_snippet: "<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>" adslot { id: 1 max_cpm_micros: 226722 billing_id: 78614473201 currency: "USD" } click_through_url: "google.com" attribute: 105 buyer_creative_id: "test_creative_id_827359" width: 336 height: 280 impression_tracking_url: "https://test.com/imp?id=123456" event_notification_token: "token" }
Lưu ý quan trọng: Các thông điệp Protobuf được mô tả trong các mẫu được trình bày ở đây dưới dạng văn bản mà con người có thể đọc được. Tuy nhiên, đó không phải là cách gửi thông báo qua mạng. Khi sử dụng định dạng Google hoặc OpenRTB Protobuf, hệ thống sẽ chỉ chấp nhận các thông báo BidResponse đã chuyển đổi tuần tự.
Bạn có thể tạo và chuyển đổi tuần tự một thông báo BidResponse
bằng mã C++ sau:
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 }
Chỉ định mẫu quảng cáo
Giá thầu phản hồi của bạn chỉ định mẫu quảng cáo sẽ phân phát nếu giá thầu của bạn thắng. Giá thầu của bạn phải bao gồm một trong các định dạng quảng cáo được hỗ trợ (AMP, video, quảng cáo gốc). Trong ví dụ này, chúng ta chỉ định mẫu quảng cáo bằng cách sử dụng trường html_snippet
.
Ngoài ra, bạn có thể chỉ định mẫu quảng cáo bằng một trong các trường sau, dựa trên định dạng quảng cáo:
- Quảng cáo do SDK hiển thị
BidResponse.seatbid.bid.ext.sdk_rendered_ad
- AMP
BidResponse.seatbid.bid.amp_ad_url
- Video
BidResponse.seatbid.bid.adm
- Quảng cáo gốc
BidResponse.seatbid.bid.adm_native
Chỉ định một quảng cáo được lưu trữ trên(các) máy chủ của riêng bạn bằng cách sử dụng đoạn mã HTML trong trường BidResponse.seatbid.bid.adm
. Đoạn mã được đưa vào một iFrame được chèn vào trang web, nhờ đó quảng cáo được truy xuất và hiển thị khi trang được tải. Bạn phải tạo đoạn mã HTML để quảng cáo (biểu ngữ hoặc quảng cáo xen kẽ) hiển thị chính xác bên trong iFrame và ở kích thước phù hợp với vị trí quảng cáo mà bạn đang đặt giá thầu.
Ngoài ra, kích thước quảng cáo được khai báo trong phản hồi giá thầu phải khớp chính xác với một trong các tổ hợp kích thước trong yêu cầu giá thầu khi:
- Quảng cáo là một biểu ngữ thông thường (không phải quảng cáo dạng video, quảng cáo gốc hoặc quảng cáo xen kẽ).
- Bên đặt giá thầu đã khai báo kích thước trong phản hồi giá thầu. Bạn bắt buộc phải khai báo kích thước bất cứ khi nào có nhiều kích thước trong yêu cầu.
- Có một ngoại lệ đối với quảng cáo xen kẽ. Đối với quảng cáo xen kẽ, chiều rộng phải bằng ít nhất 50% chiều rộng màn hình và chiều cao phải bằng ít nhất 40% chiều cao màn hình.
Bạn có thể chỉ định mẫu quảng cáo đoạn mã HTML bằng bất kỳ mã HTML hợp lệ nào hiển thị đúng cách, nhưng hãy lưu ý các quy định hạn chế về việc chỉ định trường crid
trong phần Tạo thông báo BidResponse.
Một cách sử dụng cho tính năng này là đưa thêm thông tin vào các đối số của URL được tìm nạp từ máy chủ của bạn trong quá trình hiển thị quảng cáo. Điều này cho phép bạn chuyển dữ liệu tuỳ ý về lượt hiển thị về lại máy chủ của riêng bạn.
Hầu hết các chính sách đối với đoạn mã HTML được trả về trong phản hồi giá thầu đều giống như đối với quảng cáo của bên thứ ba. Hãy xem Nguyên tắc của chương trình Authorized Buyers, Yêu cầu đối với hoạt động phân phát quảng cáo của bên thứ ba và Khai báo URL của lượt nhấp vào quảng cáo để biết thêm thông tin.
Chỉ định macro
Macro là văn bản được định dạng được nhúng vào một số trường phản hồi giá thầu chứa các URL được thay thế bằng một giá trị có liên quan tại thời điểm phân phát quảng cáo. Ví dụ: nếu giá thầu chiến thắng của bạn bao gồm macro AUCTION_PRICE
trong mẫu quảng cáo đoạn mã HTML đi kèm với giá thầu, thì macro đó sẽ được thay thế bằng một giá trị mà bạn có thể giải mã để xác định số tiền bạn đã trả cho lượt hiển thị trong phiên đấu giá.
Bạn có thể đưa macro vào các trường sau:
-
BidResponse.seatbid.bid.adm
Macro được hỗ trợ cho các định dạng đoạn mã HTML, gốc, URL video và video VAST XML.
-
BidResponse.seatbid.bid.adm_native.eventtrackers.url
-
BidResponse.seatbid.bid.adm_native.imptrackers
-
BidResponse.seatbid.bid.ext.amp_ad_url
Chỉ hỗ trợ các macro
WINNING_PRICE
vàWINNING_PRICE_ESC
dành riêng cho Google cho mẫu quảng cáo AMP. -
BidResponse.seatbid.bid.burl
-
BidResponse.seatbid.bid.ext.impression_tracking_url
Sử dụng phương thức này thay vì
BidResponse.seatbid.bid.burl
nếu bạn cần nhiều URL thanh toán.
Ví dụ: bạn có thể đưa một macro vào một đoạn mã HTML bằng cách nhúng ${MACRO}
vào URL dùng để tìm nạp mẫu quảng cáo, trong đó MACRO
là một trong các macro được hỗ trợ được mô tả trong quy cách OpenRTB.
Macro Google RTB
Google hỗ trợ các macro bổ sung ngoài những macro có trong thông số kỹ thuật OpenRTB. Các macro này được định dạng khác nhau và sẽ xuất hiện dưới dạng %%MACRO%%
nếu được nhúng trong URL. Bảng sau đây mô tả các macro này:
Macro | Nội dung mô tả |
---|---|
ADVERTISING_IDENTIFIER |
Cho phép người mua nhận được IDFA cho iOS hoặc mã nhận dạng cho quảng cáo của Android khi hiển thị lượt hiển thị. Hãy xem bài viết Giải mã Giá trị nhận dạng nhà quảng cáo để biết thông tin chi tiết. |
CACHEBUSTER |
Một chuỗi đại diện cho một số nguyên ngẫu nhiên, không dấu, 4 byte. |
CLICK_URL_UNESC |
URL nhấp không thoát cho quảng cáo. Trong đoạn mã, phiên bản đã thoát của URL lượt nhấp của bên thứ ba phải trực tiếp theo sau macro. Ví dụ: nếu URL nhấp của bên thứ ba là <a href="%%CLICK_URL_UNESC%%http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a> Tại thời điểm phân phát quảng cáo, giá trị này sẽ mở rộng thành: <a href="http://google-click-url?...&ad_url=http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a> Trước tiên, URL này sẽ đăng ký lượt nhấp với Google, sau đó chuyển hướng đến URL nhấp của bên thứ ba. |
CLICK_URL_ESC |
URL của trang đích khi nhấp đã thoát cho quảng cáo. Hãy sử dụng phương thức này thay vì Ví dụ: bạn có thể sử dụng mã sau trong một đoạn mã HTML: <a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC%%"></a> Tại thời điểm phân phát quảng cáo, giá trị này sẽ mở rộng thành: <a href="http://my.adserver.com/click?google_click_url=http://google-click- url%3F...%26ad_url%3D"></a> Thao tác này sẽ đăng ký lượt nhấp bằng Bạn có thể thêm một URL được thoát kép sau
|
CLICK_URL_ESC_ESC |
URL được thoát hai lần cho quảng cáo. Hãy sử dụng phương thức này thay vì Ví dụ: bạn có thể sử dụng mã sau trong một đoạn mã HTML: <a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC_ESC%%"></a> Tại thời điểm phân phát quảng cáo, giá trị này sẽ mở rộng thành: <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 |
Mở rộng thành http: nếu yêu cầu giá thầu không yêu cầu SSL hoặc thành https: nếu yêu cầu giá thầu yêu cầu SSL. |
SITE |
Miền được thoát URL của URL nội dung hoặc mã nhận dạng ẩn danh cho khoảng không quảng cáo ẩn danh. |
SITE_URL |
Không dùng nữa. Được thay thế bằng macro SITE có chức năng tương tự. |
TZ_OFFSET |
Chênh lệch múi giờ. |
VERIFICATION |
Các giá trị khác nhau cho hoạt động sản xuất và thời điểm quét mẫu quảng cáo trong quy trình xác minh. Định dạng là: Ví dụ: nếu một mẫu quảng cáo bao gồm |
WINNING_PRICE |
Chi phí lượt hiển thị đã mã hoá (tức là CPI thay vì CPM) tính bằng đơn vị vi mô của đơn vị tiền tệ của tài khoản. Ví dụ: CPM chiến thắng là 5 USD tương ứng với 5.000.000 micro CPM hoặc 5.000 micro CPI. Giá trị đã giải mã của Để phân tích cú pháp macro này, bạn cần triển khai một ứng dụng giải mã thông báo xác nhận giá. Hãy tham khảo trang Giải mã thông báo xác nhận giá để biết thêm thông tin. |
WINNING_PRICE_ESC |
WINNING_PRICE đã thoát URL. |
Google yêu cầu bạn sử dụng macro CLICK_URL_UNESC
hoặc CLICK_URL_ESC
trong mẫu quảng cáo do bên thứ ba phân phát. Google sử dụng macro CLICK_URL
để theo dõi lượt nhấp.
Việc thoát URL trong macro sử dụng lược đồ sau:
- Ký tự dấu cách được thay thế bằng dấu cộng (
+
). - Các ký tự chữ-số (0-9, a-z, A-Z) và các ký tự trong tập hợp !()*,-./:_~ vẫn không thay đổi.
- Tất cả ký tự khác được thay thế bằng
%XX
, trong đóXX
là số thập lục phân biểu thị ký tự.
Các quy định hạn chế và yêu cầu đối với nhà xuất bản
Yêu cầu giá thầu bao gồm thông tin về các loại quy định hạn chế và yêu cầu mà nhà xuất bản đặt ra cho mẫu quảng cáo trong phiên đấu giá.
BidRequest.bcat
- Bạn có thể so sánh các danh mục bị chặn do trường này chỉ định với các danh mục được phát hiện cho mẫu quảng cáo mà bạn đã gửi bằng cách sử dụng trường
detectedCategories
của API Đặt giá thầu theo thời gian thực.
- Bạn có thể so sánh các danh mục bị chặn do trường này chỉ định với các danh mục được phát hiện cho mẫu quảng cáo mà bạn đã gửi bằng cách sử dụng trường
BidRequest.imp.ext.allowed_vendor_type
BidRequest.imp.secure
- Trong thực tế, giá trị này sẽ luôn được đặt thành
true
vì Google yêu cầu tất cả mẫu quảng cáo đều phải hỗ trợ SSL.
- Trong thực tế, giá trị này sẽ luôn được đặt thành
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
Không bao giờ đặt giá thầu bằng quảng cáo có chứa tính năng bị hạn chế. Đối với các tính năng được phép, chẳng hạn như loại nhà cung cấp, chỉ trả về quảng cáo nếu loại nhà cung cấp của quảng cáo đó có trong danh sách allowed_vendor_type
trong BidRequest
. Giá thầu của bạn chỉ được bao gồm các định dạng quảng cáo được chỉ định trong yêu cầu giá thầu bằng cách điền vào các trường như BidRequest.imp.banner
. Hãy xem các nhận xét về các trường này trong định nghĩa vùng đệm giao thức BidRequest
để biết thêm thông tin chi tiết.
Nếu quảng cáo được trả về trong BidResponse
, bạn bắt buộc phải thiết lập chính xác các trường BidResponse.seatbid.bid.attr
, BidResponse.seatbid.bid.cat
và BidResponse.seatbid.bid.adomain
hoặc BidResponse.seatbid.bid.adm_native.link.url
trong BidResponse
. Nếu một quảng cáo có nhiều giá trị áp dụng cho các trường này, thì bạn phải thêm mọi giá trị. Hãy xem các nhận xét cho các trường này trong định nghĩa vùng đệm giao thức BidResponse
để biết thêm thông tin chi tiết.
Những câu trả lời không có các trường này sẽ bị loại bỏ.
Đo lường mở
Đo lường mở cho phép bạn chỉ định các nhà cung cấp bên thứ ba cung cấp dịch vụ đo lường và xác minh độc lập cho quảng cáo phân phát đến môi trường ứng dụng di động.
Các định dạng quảng cáo được hỗ trợ bao gồm quảng cáo dạng video, quảng cáo biểu ngữ và quảng cáo xen kẽ. Để biết thêm thông tin về cách sử dụng tính năng Đo lường mở trong phản hồi giá thầu chứa các định dạng này, hãy tham khảo bài viết về SDK Đo lường mở trong Trung tâm trợ giúp.
Phản hồi giá thầu mẫu
Các phần sau đây cho thấy các phản hồi giá thầu mẫu cho nhiều loại quảng cáo.
Biểu ngữ ứng dụng
Ví dụ minh họa
Phản hồi tuần tự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 }
Ví dụ minh họa
{ "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 } }
Ví dụ minh họa
Phản hồi tuần tựad { html_snippet: "<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>" adslot { id: 1 max_cpm_micros: 44095 billing_id: 99718422589 } click_through_url: "google.com" attribute: 47 attribute: 50 category: 7 buyer_creative_id: "test_creative_id_997551" advertiser_name: "Google" width: 300 height: 250 impression_tracking_url: "https://test.com/imp?id=123456" skadn { version: "4.0" network: "DofiF4X5" itunesitem: "448730563" sourceapp: "195751234" fidelities { fidelity_type: VIEW_THROUGH_ADS nonce: "a869c155-3566-475c-8cb9-d0a75159e0c5" timestamp: 1728803273481 signature: "0KXE97ri9xnW9M10NDg64r014MsN7SO5R11N29oe8h8Cuao3K477i9dFH61bKny28iA6337A6EK6T3fgR9p9EJK12qvaY96E" } fidelities { fidelity_type: STOREKIT_RENDERED_ADS nonce: "a869c155-3566-475c-8cb9-d0a75159e0c5" timestamp: 1728803273481 signature: "EF1Vj82st371O79029Q9067AL00972U3NqNG9u295r8B4681c12Se2jk34XSR8404681c9WGa9a69779CQ87o9T81Y85198C" } source_identifier: 1 } advertised_app_id: "APP_ID_OMITTED" app_promotion_type: INSTALLS } processing_time_ms: 13
Quảng cáo xen kẽ trong ứng dụng
Ví dụ minh họa
Phản hồi tuần tự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"
Ví dụ minh họa
{ "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" }
Ví dụ minh họa
Phản hồi tuần tựad { html_snippet: "<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>" adslot { id: 1 max_cpm_micros: 80117 min_cpm_micros: 0 billing_id: 12608068331 deal_id: 0 } click_through_url: "google.com" attribute: 47 buyer_creative_id: "test_creative_id_266407" advertiser_name: "Google" width: 756 height: 384 impression_tracking_url: "https://test.com/imp?id=123456" event_notification_token: "token" dsa_transparency { buyer_render: true } } processing_time_ms: 11
Quảng cáo xen kẽ dạng video trong ứng dụng
Ví dụ minh họa
Phản hồi tuần tự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"
Ví dụ minh họa
{ "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" }
Ví dụ minh họa
Phản hồi tuần tựad { adslot { id: 1 max_cpm_micros: 2454000 billing_id: 95400492935 deal_id: 1 } click_through_url: "google.com" attribute: 22 attribute: 105 buyer_creative_id: "test_creative_id_716344" width: 0 height: 0 video_vast_xml: "OMITTED_VAST_XML" event_notification_token: "token" skadn { version: "4.0" network: "113tdmXM" itunesitem: "460184775" sourceapp: "751592940" fidelities { fidelity_type: STOREKIT_RENDERED_ADS nonce: "1c3ed154-33f5-4cb7-960a-3e571cb9c3b9" timestamp: 1728932156118 signature: "7m3PDLV778PZ741T2I3561kkCW3UjIp5p63989cP311iiZ2445v20HP5ymfD8ThYO7437h22075h4h9O21S8A08U1kw3qis2" } fidelities { fidelity_type: VIEW_THROUGH_ADS nonce: "1c3ed154-33f5-4cb7-960a-3e571cb9c3b9" timestamp: 1728932156118 signature: "28X90AX01Z762a3W92186a40Eb4J8ekACsYFo55J8vD445f5pcA80MH45753Iy887596gK8ax0s55ndC23eg0V7P862yS240" } source_identifier: 1 } advertised_app_id: "APP_ID_OMITTED" app_promotion_type: INSTALLS } processing_time_ms: 51
Ứng dụng gốc
Ví dụ minh họa
Phản hồi tuần tự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"
Ví dụ minh họa
{ "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" }
Ví dụ minh họa
Phản hồi tuần tựad { adslot { id: 1 max_cpm_micros: 158000 billing_id: 41106584355 deal_id: 1 } click_through_url: "google.com" attribute: 70 buyer_creative_id: "test_creative_id_251451" advertiser_name: "Google" native_ad { headline: "Luxury Mars Cruises" body: "Visit the planet in a luxury spaceship." call_to_action: "Book today" advertiser: "Galactic Luxury Cruises" image { url: "https://native.test.com/image?id=123456" width: 1200 height: 222 } app_icon { url: "https://native.test.com/icon?id=123456" width: 512 height: 512 } star_rating: 4.300000190734863 click_link_url: "https://www.google.com" } impression_tracking_url: "https://test.com/imp?id=123456" impression_tracking_url: "https://test.com/imp?id=123456" event_notification_token: "token" skadn { version: "4.0" network: "l6x39K4z" itunesitem: "731305960" sourceapp: "627009739" fidelities { fidelity_type: STOREKIT_RENDERED_ADS nonce: "9216faff-74a9-4b35-badc-66878c35f67c" timestamp: 1728975919221 signature: "b0USXkmg02Q3v6p301kYOHG36CCOWWdEo52RHRttB9t8PTNi79qL17E4D6h7UeUSuq479oTK13G2Ev34MJlU86C5vY1SMVw2" } fidelities { fidelity_type: VIEW_THROUGH_ADS nonce: "9216faff-74a9-4b35-badc-66878c35f67c" timestamp: 1728975919221 signature: "4Cf4NH6239z9f3wa8j6420Z7H0UISYxyxN5720444dkq6457I5FY0Jg8bk1xge2P8YgiDp74l2738136v2g1A8D50331IRm0" } source_identifier: 1 } click_tracking_urls: "https://google.com/rtb/click?imp_id=55d2112c-4947-4da5-bc37-b79ebf4577dd" advertised_app_id: "APP_ID_OMITTED" app_promotion_type: INSTALLS } processing_time_ms: 63
Video trên web
Ví dụ minh họa
Phản hồi tuần tự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"
Ví dụ minh họa
{ "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" }
Ví dụ minh họa
Phản hồi tuần tựfad { adslot { id: 1 max_cpm_micros: 68340760 min_cpm_micros: 0 billing_id: 75752641104 deal_id: 0 } click_through_url: "google.com" vendor_type: 145 attribute: 47 attribute: 8 video_url: "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%" buyer_creative_id: "test_creative_id_877383" advertiser_name: "Google" event_notification_token: "token" dsa_transparency { buyer_render: true } } processing_time_ms: 17
Biểu ngữ trên web dành cho thiết bị di động cho bên đặt giá thầu trên Ad Exchange
Ví dụ minh họa
Phản hồi tuần tự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 }
Ví dụ minh họa
{ "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 } }