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

Quảng cáo SDK của bên 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 bộ 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 được hiển thị của SDK bên mua. Cách hiển thị các thành phần này dựa trên việc triển khai SDK của bạn 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 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 đều sẽ bị lọc.

Yêu cầu

Quảng cáo SDK của người mua chỉ dành 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 hơn. Hãy liên hệ với Giám đốc Quản lý Khách hàng về Kỹ thuật để định cấu hình tài khoản cho quảng cáo SDK người mua. Sau đó, bạn có thể triển khai một 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 để chúng tôi xem xét trước khi đưa mẫu quảng cáo vào giá thầu phản hồi. Hãy liên hệ với Giám đốc Quản lý Khách hàng về 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 yêu cầu đặt 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 đặt 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ể 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 đặt giá thầu để tìm những mối liên kết đơn vị quảng cáo khớp với vị trí đặt 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 chế độ này trong phần BidRequest.imp.ext.buyer_generated_request_data.data.

Bạn có thể tìm hiểu thêm về cách thể hiện tín hiệu an toàn trong tài liệu tham khảo 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 đặt giá thầu có phải là một 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 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

Bạn phải điền các trường sau 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 sẵn BidResponse.seatbid.bid.ext.sdk_rendered_ad bằng những thông tin sau:

Mã SDK

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

Bạn có thể tìm thấy mã này trong BidRequest.app.ext.installed_sdk.

Quảng cáo được 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 hiển thị của quảng cáo. Bạn chỉ nên điền sẵn một trong các thuộc tính 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 khỏi phiên đấu giá.

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

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 để 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.

Sau đây là một ví dụ về đối tượng SdkRenderedAd:

{
  "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 Real-time Bidding API để 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 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 về 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"

Đánh giá mẫu quảng cáo

Chúng tôi sẽ xem xét mẫu quảng cáo trước khi 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à 2 cách bạn có thể 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 đi xem xét.

API này chỉ yêu cầu bạn gửi một lần 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 đặt giá thầu kèm theo mẫu quảng cáo SDK của người mua để 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 quá 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.