Özel Kitle Yetkisini Protected Audience ile birleştirme

fetchAndJoinCustomAudience API, alıcıların iş ortağı MMP'lerinin veya STP'lerinin cihaz üzerindeki varlığından yararlanarak özel bir kitleye katılma yetkisi vermesine olanak tanır.

Genel bakış

Bunun işleyiş şekline genel bir bakış sunan cihaz üzerinde çağrı yapanın (ister MMP ister SSP SDK'sı olsun), aşağıdaki gibi görünen bir fetchAndJoinCustomAudienceRequest oluşturması gerekir:

Kotlin

/**
 * @param fetchUri The URL to retrieve the CA from.
 * (optional)@param name The name of the CA to join.
 * (optional)@param activationTime The time when the CA will activate.
 * (optional)@param expirationTime The time when the CA will expire,
    must be a time in the future otherwise this will fail
 * (optional)@param userBiddingSignals The user bidding signals used at auction.
*/

val request = FetchAndJoinCustomAudienceRequest.Builder(fetchUri)
    .setName(name)
    .setActivationTime(activationTime)
    .setExpirationTime(expirationTime)
    .setUserBiddingSignals(userBiddingSignals)
    .build()

Java

/**
 * @param fetchUri The URL to retrieve the CA from.
 * (optional)@param name The name of the CA to join.
 * (optional)@param activationTime The time when the CA will activate.
 * (optional)@param expirationTime The time when the CA will expire,
    must be a time in the future otherwise this will fail
 * (optional)@param userBiddingSignals The user bidding signals used at auction.
*/

FetchAndJoinCustomAudienceRequest request =
 new FetchAndJoinCustomAudienceRequest.Builder(fetchUri)
  .setName(name) //Optional
  .setActivationTime(activationTime) //Optional
  .setExpirationTime(expirationTime) //Optional
  .setUserBiddingSignals(userBiddingSignals) //Optional
  .build();

İsteğe bağlı parametrelerin tümü ile ilgili önemli bir nokta da getirme isteğinin içinde ayarlandıkları takdirde verilerinin, Alıcı'dan döndürülen verilerle geçersiz kılınmamasıdır. Böylece, cihaz üzerinde çağrı yapan kişiye hangi özel kitlenin devam ettirileceği konusunda ek kontroller sağlanır.

fetchUri, Alıcı tarafından yönetilen bir sunucu uç noktasına işaret etmelidir. Bu uç nokta, burada görülen biçimle eşleşen bir Özel Kitle JSON nesnesi döndürür:

//Return a 200 response with data matching the format of the following in the body
{
  "daily_update_uri": "https://js.example.com/bidding/daily",
  "bidding_logic_uri": "https://js.example.com/bidding",
  "user_bidding_signals": {
    "valid": true,
    "arbitrary": "yes"
  },
  "trusted_bidding_data": {
    "trusted_bidding_uri": "https://js.example.com/bidding/trusted",
    "trusted_bidding_keys": [
      "key1",
      "key2"
    ]
  },
  "ads": [
    {
      "render_uri": "https://js.example.com/render/fetch_and_join_ad1",
      "metadata": {
        "valid": 1
      }
    },
    {
      "render_uri": "https://js.example.com/render/fetch_and_join_ad2",
      "metadata": {
        "valid": 2
      }
    }
  ]
}

Bunun API tarafında nasıl çözümleneceği hakkında daha fazla bilgiyi CA Katılma İçin Tasarım Teklifi bölümünde bulabilirsiniz.

Test

İstemci kodunun içinde Getirme çağrısını uyguladıktan ve Özel Kitle Verilerini döndürmek için TTP tarafında bir uç noktayı ayarladıktan sonra, Özel Kitleye katılma yetkisini test edebilirsiniz. Uygulamanızı çalıştırmadan önce Özel Korumalı Alan'ı etkinleştirmek üzere kullanıcı arayüzünü açmak için aşağıdaki komutu çalıştırmanız gerekir:

adb shell am start -n com.google.android.adservices.api/com.android.adservices.ui.settings.activities.AdServicesSettingsMainActivity

Kullanıcı arayüzü açıldığında Özel Korumalı Alan'ı etkinleştirdiğinizden emin olun, ardından aşağıdaki ADB komutlarını çalıştırarak cihazı test için ayarlamayı tamamlayın:

adb shell device_config set_sync_disabled_for_tests persistent
adb shell device_config put adservices ppapi_app_signature_allow_list \"\*\"
adb shell device_config put adservices ppapi_app_allow_list \"\*\"
adb shell device_config put adservices adservice_system_service_enabled true
adb shell device_config put adservices adservice_enabled true
adb shell device_config put adservices adservice_enable_status true
adb shell device_config put adservices global_kill_switch false
adb shell device_config put adservices fledge_js_isolate_enforce_max_heap_size false
adb shell device_config put adservices fledge_custom_audience_service_kill_switch false
adb shell device_config put adservices fledge_select_ads_kill_switch false
adb shell device_config put adservices adid_kill_switch false
adb shell setprop debug.adservices.disable_fledge_enrollment_check true
adb shell device_config put adservices fledge_fetch_custom_audience_enabled true

Bu komutları çalıştırdıktan sonra, Fetch API'yi kullanarak başarılı bir şekilde çağrı yapmaya başlayabileceksiniz.

Bu akışın bir örneğini görmek için getirme çağrıları GitHub'daki Özel Korumalı Alan Örnekleri deposunun geliştirici önizleme dalına eklenmiştir.