الانضمام إلى ميزة "تفويض الجمهور المخصّص" باستخدام ميزة "الجمهور المحمي"

تسمح واجهة برمجة التطبيقات fetchAndJoinCustomAudience للمشترين بتفويض إمكانية الانضمام إلى حساب مخصّص. جمهورهم من خلال الاستفادة من حضور منصّات إدارة الطلبات أو حسابات 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
      }
    }
  ]
}

يمكن العثور على مزيد من المعلومات حول كيفية حلّ هذه المشكلة من جانب واجهة برمجة التطبيقات في مقترح تصميم لتفويض الانضمام إلى هيئة إصدار الشهادات (CA):

الاختبار

بعد تنفيذ استدعاء الجلب داخل رمز العميل والحصول على نقطة نهاية على جانب وسيط عرض الطلب (DSP) لعرض بيانات الجمهور المخصص، يمكنك اختبار تفويض الانضمام إلى جمهور مخصّص قبل تشغيل التطبيق، يجب لتشغيل الأمر التالي لفتح واجهة المستخدم من أجل تفعيل "مبادرة حماية الخصوصية":

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

عند ظهور نافذة منبثقة، تأكَّد من تفعيل أو إيقاف "مبادرة حماية الخصوصية" ثم شغِّل أوامر 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

بمجرد تشغيل هذه الأوامر، يُفترض أن تتمكن من البدء بنجاح باستخدام واجهة برمجة تطبيقات الجلب.

للاطّلاع على مثال على هذه العملية، تمت إضافة طلبات الجلب إلى مطوّر البرامج. معاينة فرع مستودع نماذج "مبادرة حماية الخصوصية" على GitHub.