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를 열고 개인 정보 보호 샌드박스를 사용 설정해야 합니다.

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

UI가 표시되면 개인 정보 보호 샌드박스를 사용 설정하도록 전환한 후 다음 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를 사용하여 호출을 시작할 수 있습니다.

이 흐름의 예를 확인할 수 있도록 GitHub의 개인 정보 보호 샌드박스 샘플 저장소의 개발자 프리뷰 브랜치에 가져오기 호출이 추가되었습니다.