เข้าร่วมการมอบสิทธิ์กลุ่มเป้าหมายที่กำหนดเองด้วย Protected Audience

fetchAndJoinCustomAudience API ช่วยให้ผู้ซื้อมอบสิทธิ์การเข้าร่วมแพ็กเกจแบบกำหนดเอง โดยใช้ประโยชน์จากการแสดงในอุปกรณ์ของ MMP หรือ SSP ของพาร์ทเนอร์

ภาพรวม

ภาพรวมทั่วไปของการทำงานนี้คือ ผู้โทรในอุปกรณ์ (ไม่ว่าจะ เป็น MMP หรือ SSP SDK) จะสร้าง fetchAndJoinCustomAudienceRequest ที่ ซึ่งมีลักษณะดังต่อไปนี้

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();

หมายเหตุสำคัญเกี่ยวกับพารามิเตอร์ที่ไม่บังคับทั้งหมดคือ หากมีการตั้งค่า ภายในคำขอดึงข้อมูล ข้อมูลที่ส่งคืนมาจะลบล้างข้อมูลไม่ได้ จากผู้ซื้อ ทำให้ผู้โทรในอุปกรณ์สามารถควบคุมสิ่งต่างๆ เพิ่มเติม ระบบจะเก็บกลุ่มเป้าหมายที่กำหนดเองไว้

fetchUri ควรชี้ไปยังปลายทางเซิร์ฟเวอร์ที่ดำเนินการโดยผู้ซื้อ ซึ่งจะแสดงออบเจ็กต์ JSON สำหรับกลุ่มเป้าหมายที่กำหนดเองที่ตรงกับรูปแบบที่เห็น ที่นี่:

//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
      }
    }
  ]
}

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีแก้ไขปัญหานี้ในฝั่ง API ได้ที่ ออกแบบข้อเสนอสำหรับการมอบสิทธิ์เข้าร่วม CA

การทดสอบ

เมื่อคุณใช้การเรียกการดึงข้อมูลภายในโค้ดไคลเอ็นต์และ ปลายทางที่ตั้งค่าในฝั่ง DSP เพื่อแสดงข้อมูลกลุ่มเป้าหมายที่กำหนดเอง คุณสามารถทดสอบ การมอบสิทธิ์การเข้าร่วมกลุ่มเป้าหมายที่กำหนดเอง ก่อนที่จะเรียกใช้แอป คุณจะต้องมี เพื่อเรียกใช้คำสั่งต่อไปนี้เพื่อเปิด UI เพื่อเปิดใช้ Privacy Sandbox

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

เมื่อ UI ปรากฏขึ้น ให้ตรวจสอบว่าคุณได้สลับเพื่อเปิดใช้ Privacy Sandbox แล้วเรียกใช้คำสั่ง ADB ต่อไปนี้เพื่อตั้งค่าอุปกรณ์สำหรับการทดสอบให้เสร็จสิ้น

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

เมื่อเรียกใช้คำสั่งเหล่านี้แล้ว คุณจะสามารถเริ่มสร้าง โดยใช้ API การดึงข้อมูล

เราได้เพิ่มการโทรดึงข้อมูลเพื่อดูตัวอย่างขั้นตอนนี้แล้วในนักพัฒนาซอฟต์แวร์ แสดงตัวอย่าง Branch ของที่เก็บ Privacy Sandbox Sample ใน GitHub