به هیئت مخاطبان سفارشی با مخاطبان محافظت شده بپیوندید

fetchAndJoinCustomAudience API به خریداران اجازه می دهد تا با استفاده از حضور MMPs یا SSP شریک خود در دستگاه، پیوستن به یک مخاطب سفارشی را واگذار کنند.

بررسی اجمالی

یک نمای کلی از نحوه کار این است که تماس گیرنده روی دستگاه (خواه MMP باشد یا یک SSP SDK) یک fetchAndJoinCustomAudienceRequest ایجاد می کند که به شکل زیر است:

کاتلین

/**
 * @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()

جاوا

/**
 * @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 یافت.

آزمایش کردن

هنگامی که فراخوانی Fetch را در داخل کد مشتری پیاده‌سازی کردید و یک نقطه پایانی در سمت DSP برای بازگرداندن داده‌های مخاطب سفارشی تنظیم کردید، می‌توانید تفویض پیوستن به یک مخاطب سفارشی را آزمایش کنید. قبل از اجرای برنامه خود، باید دستور زیر را اجرا کنید تا رابط کاربری باز شود تا جعبه ایمنی حریم خصوصی فعال شود:

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

هنگامی که این دستورات را اجرا کردید، باید بتوانید با استفاده از Fetch API شروع به برقراری تماس با موفقیت کنید.

برای مشاهده نمونه‌ای از این جریان، تماس‌های واکشی به شاخه پیش‌نمایش توسعه‌دهنده مخزن Privacy Sandbox Samples در Github اضافه شده است.

،

fetchAndJoinCustomAudience API به خریداران اجازه می دهد تا با استفاده از حضور MMPs یا SSP شریک خود در دستگاه، پیوستن به یک مخاطب سفارشی را واگذار کنند.

بررسی اجمالی

یک نمای کلی از نحوه کار این است که تماس گیرنده روی دستگاه (خواه MMP باشد یا یک SSP SDK) یک fetchAndJoinCustomAudienceRequest ایجاد می کند که به شکل زیر است:

کاتلین

/**
 * @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()

جاوا

/**
 * @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 یافت.

آزمایش کردن

هنگامی که فراخوانی Fetch را در داخل کد مشتری پیاده‌سازی کردید و یک نقطه پایانی در سمت DSP برای بازگرداندن داده‌های مخاطب سفارشی تنظیم کردید، می‌توانید تفویض پیوستن به یک مخاطب سفارشی را آزمایش کنید. قبل از اجرای برنامه خود، باید دستور زیر را اجرا کنید تا رابط کاربری باز شود تا جعبه ایمنی حریم خصوصی فعال شود:

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

هنگامی که این دستورات را اجرا کردید، باید بتوانید با استفاده از Fetch API شروع به برقراری تماس با موفقیت کنید.

برای مشاهده نمونه‌ای از این جریان، تماس‌های واکشی به شاخه پیش‌نمایش توسعه‌دهنده مخزن Privacy Sandbox Samples در Github اضافه شده است.