Định dạng quảng cáo SDK của người mua

Quảng cáo SDK của người mua sử dụng mẫu quảng cáo do SDK của riêng bạn hiển thị.

Khoảng không quảng cáo trên ứng dụng di động của những nhà xuất bản tích hợp trình chuyển đổi đặt giá thầu vào ứng dụng của họ có thể chấp nhận giá thầu bằng định dạng quảng cáo do SDK của bên mua hiển thị. Cách hiển thị của các thành phần này dựa trên cách triển khai SDK và SDKRenderedAd mà bạn gửi trong phản hồi giá thầu.

Bạn có thể đặt giá thầu bao gồm quảng cáo do SDK của người mua hiển thị hoặc bất kỳ định dạng quảng cáo nào khác mà SDK quảng cáo của Google trên thiết bị di động hỗ trợ, nhưng mọi giá thầu chứa cả hai sẽ bị lọc.

Yêu cầu

Quảng cáo SDK của người mua được cung cấp cho những người mua đã được phê duyệt. Định dạng này đòi hỏi bạn và nhà xuất bản phải nỗ lực nhiều hơn. Hãy liên hệ với Nhà quản lý tài khoản kỹ thuật để định cấu hình tài khoản của bạn cho quảng cáo SDK của người mua. Sau đó, bạn có thể triển khai bộ chuyển đổi Đặt giá thầu để cho phép SDK của bạn giao tiếp với SDK quảng cáo trên thiết bị di động của Google. Nhà xuất bản cần tích hợp SDK và bộ chuyển đổi của bạn vào ứng dụng di động của họ.

Bạn nên gửi mẫu quảng cáo để xem xét trước khi đưa mẫu quảng cáo đó vào một phản hồi giá thầu. Hãy liên hệ với Nhà quản lý tài khoản kỹ thuật nếu bạn không biết loại mẫu quảng cáo tại thời điểm đặt giá thầu.

Nếu một yêu cầu giá thầu hỗ trợ định dạng quảng cáo này, bạn có thể chỉ định một quảng cáo hiển thị bằng SDK của mình bằng cách đặt trường sdk_rendered_ad trong phản hồi giá thầu.

Yêu cầu giá thầu

Yêu cầu giá thầu cho khoảng không quảng cáo trên ứng dụng di động bao gồm thông tin chi tiết về các SDK và bộ chuyển đổi trong ứng dụng của nhà xuất bản mà bạn có thể sử dụng để hiển thị trong các trường sau:

Mã SDK

Bạn có thể sử dụng yêu cầu giá thầu để tìm mã nhận dạng SDK mà bạn phải cung cấp trong phản hồi giá thầu bằng trường BidRequest.app.ext.installed_sdk.id.

Bạn có thể tìm hiểu thêm về nội dung này trong tài liệu tham khảo về InstalledSdk.

Liên kết đơn vị quảng cáo

Bạn có thể sử dụng yêu cầu giá thầu để tìm các mối liên kết đơn vị quảng cáo khớp với khung giá thầu bằng trường BidRequest.imp.ext.ad_unit_mapping.

Bạn có thể tìm hiểu thêm về nội dung này trong tài liệu tham khảo về AdUnitMapping.

Tín hiệu an toàn

Nhà xuất bản có thể chia sẻ tín hiệu an toàn với bên đặt giá thầu. Bạn có thể tìm thấy các thành phần này trong BidRequest.imp.ext.buyer_generated_request_data.data.

Bạn có thể tìm hiểu thêm về cách biểu thị tín hiệu an toàn trong tài liệu tham khảo về BuyerGeneratedRequestData.

Yêu cầu kiểm thử

Bạn có thể sử dụng trường BidRequest.test để xác minh xem yêu cầu giá thầu có phải là yêu cầu thử nghiệm hay không.

Bạn có thể tìm hiểu thêm về trường này trong tài liệu tham khảo về BidRequest.

Yêu cầu giá thầu mẫu

id: "<bid_request_id>"
imp {
  id: "1"
  banner {
    w: 320
    h: 50
    ...
  }
...
  adx_ext {
   ...
    ad_unit_mapping {
      keyvals {
        key: "key_1"
        value: "value_1"
      }
      keyvals {
        key: "key_2"
        value: "value_2"
      }
      ...
      format: FORMAT_BANNER
    }
  }
}
app {
 ...
  adx_ext {
    installed_sdk {
      id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
      sdk_version {
        major: 1
        minor: 2
        micro: 30
      }
      adapter_version {
        major: 1
        minor: 2
        micro: 3000
      }
    }
    installed_sdk {
    ...
    }
    ...
  }
}
device {
  ...
}
user {
  ...
  }
  adx_ext {
    eids {
      source: "com.google.ads.mediation.partner.PartnerMediationAdapter"
      uids {
        id: "<partner_signal_string>"
      }
    }
  }
}
at: 1
tmax: 1000
cur: "USD"
test: 1
...
adx_ext {
  google_query_id: "<query_string>"
  ...
}

Phản hồi giá thầu

Các trường sau đây là bắt buộc trong phản hồi giá thầu:

  • BidResponse.seatbid.bid.adomain
  • BidResponse.seatbid.bid.ext.billing_id
  • BidResponse.seatbid.bid.crid
  • BidResponse.seatbid.bid.w
  • BidResponse.seatbid.bid.h

Ngoài ra, phản hồi giá thầu của bạn phải điền vào BidResponse.seatbid.bid.ext.sdk_rendered_ad những thông tin sau:

Mã SDK

Sử dụng trường id để cung cấp mã nhận dạng cho SDK hiển thị quảng cáo.

Bạn có thể tìm thấy mã nhận dạng trong BidRequest.app.ext.installed_sdk.

Quảng cáo đã khai báo

Sử dụng BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad để cung cấp một mẫu quảng cáo đáp ứng các yêu cầu trong BidRequest.imp.ext.creative_enforcement_settings và đại diện cho dữ liệu kết xuất của quảng cáo. Chỉ được điền một trong các giá trị html_snippet, video_url, video_vast_xml hoặc native_response.

Nếu bạn không điền declared_ad, chúng tôi sẽ không thể xem xét mẫu quảng cáo và tất cả giá thầu có mẫu quảng cáo đó sẽ bị lọc ra khỏi phiên đấu giá.

Bạn có thể tìm hiểu thêm về quảng cáo đã khai báo trong tài liệu tham khảo về DeclaredAd.

Kết xuất dữ liệu

Sử dụng trường BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data để cung cấp dữ liệu cho SDK của bên mua sử dụng nhằm hiển thị quảng cáo của bạn.

Giá thầu để đặt quảng cáo SDK của người mua phải chỉ định một mẫu quảng cáo trong trường declared_ad. Quảng cáo được khai báo phải thể hiện chính xác rendering_data.

Dưới đây là một đối tượng SdkRenderedAd mẫu:

{
  "id": "1234567",
  "rendering_data": "\xd58...,\xd4\x89\xd\xf9",
  "declared_ad": {
    "html_snippet": "<iframe src=\"https://example.com/ads?id=123&
      curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>",
  }
}

Bạn nên sử dụng API Đặt giá thầu theo thời gian thực để gửi mẫu quảng cáo để xem xét trước khi đưa mẫu quảng cáo đó vào phản hồi giá thầu.

Hãy xem hướng dẫn về OpenRTB để biết thêm thông tin chi tiết về các trường SdkRenderedAd.

Phản hồi giá thầu mẫu

Dưới đây là các phản hồi giá thầu mẫu cho từng định dạng quảng cáo:

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 99
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 320
    h: 50
    burl: "https://abc.com/billing?td=fn&win_price=${AUCTION_PRICE}"
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          html_snippet: "<!doctype html> <html> ... </html>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
      billing_id: 141763360450
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

Quảng cáo xen kẽ

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 412
    h: 775
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

Video có tặng thưởng

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 412
    h: 775
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

Mã gốc

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 1200
    h: 627
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          native_response {
            ...
            assets {
              id: 1
              title {
                text: ""
              }
            }
            assets {
              id: 2
              data {
                value: "<some_string>"
              }
            }
            assets {
              id: 3
              data {
                value: "View now"
              }
            }
            assets {
              id: 4
              img {
                url: "<valid_image_url>"
                w: 1200
                h: 627
                type: 3
              }
            }
            assets {
              id: 5
              img {
                url: "<valid_image_url>"
                w: 100
                h: 100
                type: 1
              }
            }
            assets {
              id: 6
              data {
                value: ""
              }
            }
            assets {
              id: 7
              data {
                value: "<some_string>"
              }
            }
            link {
              url: "<destination_link>"
            }
          }
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

Xem xét mẫu quảng cáo

Mẫu quảng cáo sẽ được xem xét trước khi có thể phân phát để đảm bảo mẫu quảng cáo đó tuân thủ chính sách và chế độ cài đặt của nhà xuất bản.

Sau đây là hai cách để bạn gửi mẫu quảng cáo để xem xét:

Real-time Bidding API (nên dùng)

Bạn có thể sử dụng phương thức buyers.creatives.create của API Đặt giá thầu theo thời gian thực để gửi mẫu quảng cáo để xem xét.

API chỉ yêu cầu một lần gửi cho mỗi mẫu quảng cáo và cho phép bạn kiểm tra trạng thái xem xét mẫu quảng cáo.

Phản hồi giá thầu

Bạn có thể gửi mẫu quảng cáo mới ngay trong phản hồi giá thầu.

Bạn phải sử dụng trường declared_ad của đối tượng SdkRenderedAd để gửi phản hồi giá thầu kèm theo mẫu quảng cáo SDK của người mua để được xem xét.

Mẫu quảng cáo được gửi trong giá thầu phản hồi chỉ được xem xét sau nhiều giá thầu. Tất cả giá thầu được đặt trước khi quy trình xem xét hoàn tất đều bị lọc khỏi phiên đấu giá. Bạn có thể sử dụng giao diện Đặt giá thầu theo thời gian thực hoặc API Đặt giá thầu theo thời gian thực để kiểm tra trạng thái của mẫu quảng cáo sau khi quy trình xem xét bắt đầu.

Hãy xem hướng dẫn về mẫu quảng cáo để biết thêm thông tin chi tiết.