Alıcı SDK'sı reklam biçimi

Alıcı SDK'sı reklamları, kendi SDK'nız tarafından oluşturulan reklam öğelerini kullanır.

Teklifli sistem bağdaştırıcınızı uygulamalarına entegre eden yayıncıların mobil uygulama envanteri, alıcı SDK'sı tarafından oluşturulan reklam biçimiyle teklifleri kabul edebilir. Oluşturulma şekli, SDK uygulamanıza ve teklif yanıtında gönderdiğiniz SDKRenderedAd bilgisine bağlıdır.

Alıcı SDK'sı tarafından oluşturulan bir reklam veya Google Mobile Ads SDK'sı tarafından desteklenen başka herhangi bir reklam biçimi dahil olmak üzere bir teklif verebilirsiniz, ancak her ikisini de içeren teklifler filtrelenir.

Koşullar

Alıcı SDK'sı reklamları, onaylanmış alıcılar tarafından kullanılabilir. Bu biçim, siz ve yayıncı tarafından daha fazla çaba sarf etmenizi gerektirir. Hesabınızı alıcı SDK reklamları için yapılandırmak üzere Teknik Hesap Yöneticinizle iletişime geçin. Daha sonra, SDK'nızın Google Mobile Ads SDK'sı ile iletişim kurmasını sağlayan bir Teklif Bağdaştırıcısı uygulayabilirsiniz. Yayıncının, SDK'nızı ve bağdaştırıcınızı mobil uygulamalarına entegre etmesi gerekir.

Teklif yanıtına eklemeden önce reklam öğelerini incelemeye göndermenizi öneririz. Teklif zamanında reklam öğesi türünü bilmiyorsanız Teknik Hesap Yöneticinizle iletişime geçin.

Bir teklif isteği bu reklam biçimini destekliyorsa teklif yanıtında sdk_rendered_ad alanını ayarlayarak SDK'nızla oluşturulacak bir reklam belirtebilirsiniz.

Teklif isteği

Mobil uygulama envanteri için teklif istekleri, yayıncının uygulamasındaki SDK'lar ve adaptörlerle ilgili olarak aşağıdaki alanlarda oluşturmak için kullanabileceğiniz ayrıntıları içerir:

SDK kimliği

Teklif isteğini kullanarak, alıcı SDK'sı tarafından oluşturulan bir reklam için teklif yanıtında sağlamanız gereken id değerini bulabilirsiniz.

Aşağıdaki alanlara bakın:

  • Authorized Buyers: BidRequest.mobile.installed_sdk
  • OpenRTB: BidRequest.app.ext.installed_sdk

Google ve OpenRTB protokol kılavuzlarında InstalledSdk mesajı hakkında daha fazla bilgi edinebilirsiniz.

Reklam Birimi Eşleme

Teklif isteğini, teklif alanıyla eşleşen reklam birimi eşlemelerini okumak için kullanabilirsiniz.

Aşağıdaki alanlara bakın:

  • Authorized Buyers: BidRequest.AdSlot.ad_unit_mapping
  • OpenRTB: BidRequest.imp.ext.ad_unit_mapping

Google ve OpenRTB protokol kılavuzlarından AdUnitMapping nesnesi hakkında daha fazla bilgi edinebilirsiniz.

Güvenli Sinyaller

Yayıncı tarafından seçilen güvenli sinyalleri iletmek için kullanılan standart uzantı olan Genişletilmiş Kimlik nesnesini okumanız gerekir.

Aşağıdaki alanlara bakın:

  • Authorized Buyers: BidRequest.AdSlot.SecureSignal.data
  • OpenRTB: BidRequest.user.ext.eids.uids.id

Google ve OpenRTB protokol kılavuzlarından Extended Id nesnesi hakkında daha fazla bilgi edinebilirsiniz.

Test İstekleri

Teklif isteğinin bir test olup olmadığını anlamak için Test İsteği alanını okuyabilirsiniz.

Aşağıdaki alanlara bakın:

  • Authorized Buyers: BidRequest.is_test
  • OpenRTB: BidRequest.test

Google ve OpenRTB protokol kılavuzlarından Test alanı hakkında daha fazla bilgi edinebilirsiniz.

Örnek teklif isteği

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>"
  ...
}

Teklif yanıtı

Lisans Teklifi

BidResponse.seatbid.bid nesnesinde aşağıdaki alanların doldurulması zorunludur:

  • Authorized Buyers:

    • BidResponse.Ad.click_through_url
    • BidResponse.Ad.AdSlot.billing_id
    • BidResponse.Ad.buyer_creative_id
    • BidResponse.Ad.width
    • BidResponse.Ad.height
  • OpenRTB:

    • BidResponse.seatbid.bid.adomain
    • BidResponse.seatbid.bid.cid
    • BidResponse.seatbid.bid.crid
    • BidResponse.seatbid.bid.w
    • BidResponse.seatbid.bid.h

Google ve OpenRTB protokol kılavuzlarında SeatBid mesajı hakkında daha fazla bilgi edinebilirsiniz.

Teklif yanıtınız aşağıdaki özelliklere sahip bir SdkRenderedAd içermelidir:

SDK kimliği

Reklamı oluşturmak için SDK'nın kimliğini sağlamak üzere id alanını kullanın.

Kimliği, aşağıdaki alanları kullanarak teklif isteğinde bulabilirsiniz:

  • Authorized Buyers: BidRequest.mobile.installed_sdk
  • OpenRTB: BidRequest.app.ext.installed_sdk

Google ve OpenRTB protokol kılavuzlarında InstalledSdk mesajı hakkında daha fazla bilgi edinebilirsiniz.

Beyan edilen reklam

Teklif isteğinin CreativeEnforcementSettings gereksinimlerini karşılayan ve reklamın oluşturma verilerini temsil eden bir reklam öğesi sağlamak için declared_ad alanı kullanın. Yerel olmayan reklam biçimleri için html_snippet, video_url veya video_vast_xml biçimlerinden yalnızca biri sunulmalıdır. Doğal reklam biçimi için yalnızca native_response sunulmalıdır.

declared_ad öğesini doldurmazsanız reklam öğesini inceleyemeyiz ve reklam öğesine sahip tüm teklifler açık artırmadan filtrelenir.

Veriler oluşturuluyor

Alıcı SDK'sının reklamınızı oluşturmak için kullanacağı verileri sağlamak üzere rendering_data alanını kullanın.

  • Authorized Buyers: BidResponse.ad.sdk_rendered_ad.rendering_data
  • OpenRTB: BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data

Alıcı SDK reklamı yerleştirme tekliflerinde declared_ad alanında bir reklam öğesi belirtilmelidir. Beyan edilen reklam rendering_data öğesini doğru şekilde temsil etmelidir.

Aşağıda örnek bir SdkRenderedAd nesnesini görebilirsiniz:

{
  "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>",
  }
}

Teklif yanıtına eklemeden önce reklam öğelerini incelemeye göndermek için Gerçek Zamanlı Teklif Verme API'sini kullanmanızı öneririz.

SdkRenderedAd alanları hakkında daha fazla bilgi için Google ve OpenRTB protokol kılavuzlarına bakın.

Örnek teklif yanıtı

Aşağıda, her bir reklam biçimi için örnek teklif yanıtları verilmiştir:

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"

Geçişli

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"

Ödüllü video

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"

Yerel biçim

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"

Reklam incelemesi

Reklam öğeleri, politikalarımıza ve yayıncı ayarlarına uygun olduklarından emin olmak için yayınlanmadan önce incelenir.

Reklam öğelerini incelemeye göndermenin iki yolu aşağıda açıklanmıştır:

Gerçek Zamanlı Teklif Verme API'si (önerilir)

Reklam öğelerini incelemeye göndermek için Gerçek Zamanlı Teklif Verme API'sinin buyers.creatives.create yöntemini kullanabilirsiniz.

API, reklam öğesi başına yalnızca bir gönderim gerektirir ve reklam öğenizin inceleme durumunu kontrol edebilmenizi sağlar.

Teklif yanıtı

Yeni reklam öğelerini doğrudan teklif yanıtında gönderebilirsiniz.

İncelenmek üzere bir alıcı SDK reklam öğesiyle teklif yanıtı göndermek için SdkRenderedAd nesnesinin declared_ad alanını kullanmanız gerekir.

Teklif yanıtında gönderilen reklam öğeleri yalnızca çok sayıda tekliften sonra incelenir. İnceleme tamamlanmadan önce verilen tüm teklifler açık artırmadan filtrelenir. İnceleme başladıktan sonra bir reklam öğesinin durumunu kontrol etmek için Gerçek Zamanlı Teklif Verme arayüzünü veya Gerçek Zamanlı Teklif Verme API'sini kullanabilirsiniz.

Daha ayrıntılı bilgi için reklam öğeleri kılavuzuna bakın.