출시 노트

Android의 개인 정보 보호 샌드박스는 개발자 프리뷰 및 베타 프로그램을 제공합니다. 향후 개발자 프리뷰에 새로운 API와 기능을 도입하고 안정화된 API를 베타 프로그램에 출시할 예정입니다. 의견을 보내 주시기 바랍니다.

Android의 개인 정보 보호 샌드박스를 처음 사용한다면 프로그램 개요부터 시작하세요. 먼저 개인 정보 보호 샌드박스를 프로젝트에 빌드하려면 개발 환경을 설정하고 테스트 기기에뮬레이터에 Android의 개인 정보 보호 샌드박스를 다운로드합니다.

최신 버전

Android VanillaIceCream 미리보기

이 버전에는 Android VanillaIceCream 미리보기 출시에 Privacy Sandbox API가 포함되어 있습니다. SDK 및 에뮬레이터 이미지는 Android 스튜디오에서 Android VanillaIceCream 미리보기로 다운로드할 수 있습니다. 이 출시에는 이전에 출시된 개발자 프리뷰 10과 동일한 기능이 포함되어 있으며 추가 변경사항은 아래에 나열되어 있습니다.

Protected Audience API

  • 인증된 문맥 광고를 Protected Auction에 전달하는 기능이 추가되었습니다. 여기에는 기기에 이미 설치된 앱의 제외 필터링뿐 아니라 클릭수, 노출수, 조회수 또는 낙찰 횟수에 관한 최대 게재빈도 설정이 포함됩니다. 문맥 광고는 광고 기술에서 서명되어야 하므로 구현은 이전 버전과 다릅니다. 구현 방법은 개발자 가이드를 참고하세요.
  • ContextualAds의 이름이 SignedContextualAds로 변경되었으며 AdSelectionConfig의 관련 getter 및 setter도 getPerBuyerSignedContextualAds, setPerBuyerSignedContextualAds로 변경되었습니다.
  • 인증되지 않은 문맥 앱이 전달되면 입찰에서 삭제됩니다.

Attribution Reporting API

2023년 11월 Android의 개인 정보 보호 샌드박스 베타 업데이트

이번 Android의 개인 정보 보호 샌드박스 베타 버전에는 공개 Android 14 기기의 개인 정보 보호 샌드박스 API 업데이트가 포함되어 있습니다. SDK 및 기기 이미지는 Android 스튜디오의 SDK Manager를 Android API 34 및 확장 프로그램 수준 10으로 사용하여 다운로드할 수 있으며 개발자 프리뷰 9와 기능적으로 유사하고 몇 가지 주요 수정사항이 포함되어 있습니다.

Protected Audience API

  • 광고 기술은 이제 맞춤 잠재고객 위임을 사용하여 기기에 존재하지 않는 구매자 대신 맞춤 잠재고객에 참여할 수 있습니다.
  • Android는 이제 입찰 서비스에서 입찰 실행을 지원합니다.
  • Protected Audience 입찰은 CPC 청구를 지원합니다.
  • Protected Audience 입찰 및 보고는 이제 신뢰할 수 있는 입찰 신호용 데이터 버전 헤더를 지원합니다.
  • Protected Audience 입찰은 낙찰 이벤트에 대한 최대 게재빈도 필터링을 지원합니다.
  • 이제 Protected Audience가 Attribution Reporting API와의 통합을 지원합니다.

Attribution Reporting API

SDK 런타임

  • SDK가 SDK 런타임 내에서 다른 SDK를 로드하여 미디에이션 사용 사례를 지원할 수 있는 기능 ## 이전 출시

개발자 프리뷰 10

출시일: 2023년 12월 19일

알려진 제한사항

  • Google Play 서비스가 백그라운드에서 비정상 종료되고 사용자에게 반복적으로 다음을 알리는 문제가 있습니다.
    • 기기를 재부팅하면 이 문제를 완화할 수 있습니다.
    • 테스트 중에 비동기 호출 시간 초과 문제가 발생하면 다음 adb 명령어를 추가하여 시간 초과까지의 임계값을 연장해 보세요.
    • adb shell device_config put adservices fledge_auction_server_overall_timeout_ms 60000;
  • 실제 기기만 해당: Google 계정 추가는 지원되지 않습니다. 기기를 홈 화면으로 가져오려면 다음 단계를 따르세요.
    • 휴대전화에 미리보기 이미지를 설치합니다.
    • Wi-Fi나 모바일 데이터에 연결하지 않고 설정 마법사를 진행합니다.
    • 홈 화면이 표시되면 Wi-Fi 또는 모바일 데이터에 연결합니다.
    • 기기를 재부팅합니다.

Protected Audience API

  • 문맥 경로의 광고가 Protected Auction에 참여하는 방법이 업데이트됩니다. 다음 클래스와 메서드는 이 개발자 프리뷰에서 삭제되었습니다.
    • AdSelectionConfig.getBuyerContextualAds()
    • AdSelectionConfig.Builder.setBuyerContextualAds()
    • AdSelectionManager.setAppInstallAdvertisers()
    • ContextualAds
    • AdWithBid
    • AppInstallFilters
  • ReportInteractionRequest에서 ReportEventRequest로 이름이 변경되었습니다.
  • 관련성 높은 앱 설치 광고 게재를 지원하기 위해 Protected App Signals라는 새로운 기능이 도입됩니다. 이 DP를 통해 애드테크가 다음을 할 수 있도록 API를 출시합니다.
    • 관련 앱 설치 광고를 게재하는 데 사용되는 보호된 기기 내 저장소에 앱 이벤트를 저장하여 신호를 큐레이트합니다.
    • 각 신호에 액세스하여 광고 선택 및 입찰에 도움을 줄 수 있는 신뢰할 수 있는 실행 환경 내에서 실행되는 입찰 서비스에서 보호된 입찰을 실행합니다.

Attribution Reporting API

  • 이 버전의 Attribution Reporting API는 다음을 지원합니다.
    • 집계 요약 보고서에서 맞춤 잠재고객 측정기준을 사용 설정하는 Protected Audience 통합을 추가합니다.
    • Google Cloud Provider를 집계 서비스의 TEE로 지원합니다.
    • 리디렉션 없이 교차 네트워크 기여 분석 디버깅을 지원하기 위해 shared_debug_key 필드를 추가합니다.
    • 상세 디버깅 보고서 요청에 버전 헤더를 추가합니다.

기기 내 맞춤설정

  • 연구원 및 초기 개발을 위한 최초 버전
  • 기기 내 맞춤설정은 제품과 서비스를 맞춤설정하는 혁신적인 방법을 도입하는 동시에 향상된 최종 사용자 개인 정보 보호 기능을 제공합니다. 기기 내 맞춤설정은 이를 달성하기 위한 구성 요소로 서비스 및 알고리즘 집합을 제공합니다. 여기에는 다음이 포함되나 이에 국한되지 않습니다.
    • 제휴 학습을 사용하여 모델을 학습, 평가, 맞춤설정할 수 있게 해주는 제휴 컴퓨팅(FC). 기기 내 맞춤설정의 제휴 컴퓨팅 사용은 모델 학습 및 (필요한 경우 선택적으로) 추론을 기반으로 합니다.
    • Cuckoo Filter 기반 매칭 및 서로 다른 위치에 있는 데이터 간의 교차 매칭.
    • DP Alternating Minimization(서로 다른 위치에 있는 데이터 학습용)과 Billboard DP에서의 모델 맞춤설정과 같은 새로운 기술을 사용하는 희소 모델에 대한 개인 정보 차등 보호(DP) 학습

개발자 프리뷰 9

출시일: 2023년 8월 15일

알려진 제한사항

  • 입찰 API를 호출하여 생성된 입찰 데이터는 DP9에서 자동으로 삭제되지 않습니다.
  • 동의가 취소되었을 때 getAdSelectionDatapersistAdSelectionResult를 호출하면 프로세스가 비정상 종료됩니다.
  • 제외 필터링 기능은 getAdSelectionDatapersistAdSelectionResult에서 작동하지 않습니다.

Protected Audience API

  • 이제 광고 기술이 맞춤 잠재고객 위임을 사용하여 맞춤 잠재고객을 기기 내 호출자에 조인할 수 있습니다.
  • Android가 이제 입찰 서비스에서 입찰을 실행할 수 있도록 지원합니다. Protected Audience 입찰이 CPC 청구를 지원합니다.
  • 이제 Report Interactions API의 이름이 reportEvent로 변경되었습니다.
  • 최대 게재빈도 설정 방법과 카운터 유형의 이름이 변경되었습니다.
  • 디버그 보고를 사용하면 입찰 실패 이유에 관한 정보를 얻거나 JavaScript 로직에서 문제를 식별할 수 있습니다.

Attribution Reporting API

  • 이 출시에서는 다음과 같이 Attribution Reporting API의 디버그 보고서를 개선합니다.
    • 웹에서 지원되는 상세 디버그 보고서를 지원합니다.
    • 교차 웹 및 앱 기여 분석 디버그 보고서를 사용 설정합니다(웹 및 앱 등록 시 광고 ID 필요).
  • 광고 기술이 다양한 보고 시나리오에 맞게 노이즈 매개변수를 구성할 수 있습니다.
  • 이 출시는 출처 기반 기여 분석으로 이동되며 이는 다음을 의미합니다.
    • 출처가 등록에 사용됩니다.
    • 하나의 사이트에 여러 출처가 허용됩니다.
    • 소스 앱 또는 등록당 출처 1개라는 새로운 비율 제한
  • 이제 광고 기술이 기여도 보고 사용 사례를 로컬에서 테스트하기 위해 등록을 사용 중지할 수 있습니다.

SDK 런타임

  • SDK는 서비스 허용 목록을 시작하거나 이 목록에 바인딩할 수만 있습니다.
  • SDK는 시스템 ContentProvider의 하위 집합(예: com.android.providers.settings.SettingsProvider)에만 액세스할 수 있습니다. 여기에는 획득한 데이터에 식별자가 없고 사용자의 지문을 빌드하는 데 이를 사용할 수 없습니다. 이러한 검사는 ContentResolver를 사용하여 ContentProvider에 액세스하는 경우에도 적용됩니다.
  • SDK는 보호되는 broadcast receiver의 하위 집합(예: android.intent.action.AIRPLANE_MODE)에만 액세스할 수 있습니다.
  • SDK는 다른 앱에 속한 활동을 실행할 수 있지만 인텐트에서 전송할 수 있는 항목에 제한이 있습니다.

2023년 3월 Android의 개인 정보 보호 샌드박스 베타 업데이트

2023년 3월 Android의 개인 정보 보호 샌드박스 베타 출시에는 공개 Android 13 기기의 개인 정보 보호 샌드박스 API 업데이트가 포함되어 있습니다. 이 출시는 광고 서비스 확장 프로그램 5 API를 포함하고 있으며 개발자 프리뷰 6과 기능적으로 비슷하지만 몇 가지 주요 수정사항이 있습니다.

알려진 제한사항

  • 주기적으로 실행되어 FLEDGE 맞춤 잠재고객을 업데이트하는 백그라운드 가져오기 작업으로 인해 프로세스가 비정상 종료됩니다. 이 문제로 인해 FLEDGE가 기본적으로 사용 중지되었습니다.

일반

  • 이 출시부터 Attribution Reporting API를 사용할 수 있습니다. 이전에는 이 API가 사용 중지되었습니다. 이전 베타 출시에서 Attribution Reporting API를 사용한 경우 이 베타 출시를 사용하기 전에 다음 단계 중 하나를 사용하여 앱 또는 기기 데이터를 삭제하세요.
    • 기기 또는 에뮬레이터에서 설정으로 이동하여 테스트에 사용되는 앱의 앱별 저장소를 삭제(캐시만이 아님)합니다.
    • 실제 기기나 에뮬레이션된 기기에서 초기화를 실행합니다.
    • 에뮬레이션된 기기의 경우 데이터 완전 삭제 기능을 실행합니다.
  • 이제 Attribution Reporting에서 디버그 키를 지원하므로 개발자가 Attribution API에서 변경되지 않은 보고서 및 개인 정보 보호 강화 보고서를 수신할 수 있습니다. 디버그 키를 사용하면 개인 정보 보호 샌드박스로 전환하는 동안 보고서가 구성되는 방식을 더 잘 파악할 수 있습니다.
  • Attribution Reporting에서는 최근 registerSourceregisterTrigger가 예외와 함께 실패하는 광고 서비스의 버그가 발생했습니다. 이러한 문제의 수정사항이 출시되었으며, 해당 문제는 시간이 지남에 따라 해결됩니다.
  • 이제 Topics API 미리보기 기능이 Android의 개인 정보 보호 샌드박스 개발자 프리뷰와 동등합니다. Topics API 호출자는 주간 에포크 계산에 주제 검색 호출을 포함하거나 호출자의 관찰된 주제 목록에 영향을 주지 않고 주제를 미리 볼 수 있습니다. 자세한 내용은 shouldRecordObservation 필드를 참고하세요.
  • Android의 FLEDGE에서 테스트를 사용 설정하려면 베타 프로그램에 등록하고 동일한 Google 계정을 사용하여 테스트 기기에 로그인합니다. 그러지 않고 API를 호출하려고 하면 '서비스를 사용할 수 없음'이라는 메시지와 함께 IllegalStateException이 발생합니다. FLEDGE는 다음 베타 출시에서 복원되어야 합니다.

    그동안은 개발자 프리뷰를 사용하여 테스트를 계속 진행하는 것이 좋으며 FLEDGE는 다음 사항에 유의하여 기기에서 수동으로 사용 설정할 수 있습니다.

    다음 adb 명령어로 FLEDGE를 사용 설정할 수 있습니다. 그러나 이로 인해 백그라운드 가져오기 프로세스가 비정상 종료되므로 시스템 상태 측정항목에 부정적인 영향을 미칩니다. 이는 영구적인 솔루션은 아닙니다. 이러한 값이 플랫폼에서 재설정될 수 있기 때문입니다.

    adb shell device_config set_sync_disabled_for_tests persistent
    adb shell setprop debug.adservices.fledge_select_ads_kill_switch false
    adb shell setprop debug.adservices.fledge_custom_audience_service_kill_switch false
    adb shell device_config put adservices fledge_background_fetch_enabled true

개발자 프리뷰 8

출시일: 2023년 5월 23일

알려진 제한사항

  • WIN 유형의 최대 게재빈도 필터를 Protected Audience 광고에 추가할 수 있지만 WIN 유형은 아직 지원되지 않고 이 유형의 필터는 무시됩니다.
  • Protected Audience 입찰의 낙찰된 구매자에게 낙찰 노출수를 보고하려면 구매자가 개인 정보 보호 샌드박스에 등록되어 있어야 합니다. 이 요구사항은 재정의할 수 없습니다.
  • 개인 정보 보호 샌드박스를 사용할 수 있는 기기에서 개인 정보 보호 샌드박스 설정에 액세스하려면 설정 > Google > 광고 > 개인 정보 보호 샌드박스로 이동합니다.
  • Android 스튜디오 Giraffe에서 에뮬레이터가 포함된 프로젝트를 배포할 수 없습니다. 다른 버전의 Android 스튜디오는 괜찮습니다. 2023년 5월 26일에 Android 스튜디오 Giraffe에 수정사항이 출시될 예정입니다.

Protected Audience API

Attribution Reporting API

  • OR 트리거 필터를 추가했습니다. 즉, 필터가 이제 필터 맵의 목록인 필터 세트로 구성됩니다. 세트의 필터 맵이 소스의 필터 데이터와 일치하지 않으면 event_trigger_data 객체가 무시됩니다.
  • 집계 및 이벤트 수준 API의 노출 만료와 보고 기간이 분리되었습니다.
  • 집계 가능한 보고서에 중복 삭제 키에 대한 지원을 추가했습니다.
  • 웹용 개인 정보 보호 샌드박스와 동등하도록 이벤트 보고서에 scheduled_report_time을 추가했습니다.
  • 리디렉션 없이 교차 네트워크 기여 분석을 구현했습니다.

SDK 런타임

개발자 프리뷰 7

출시일: 2023년 1월 26일

Android의 FLEDGE API

  • custom_audience_signals 매개변수의 이름이 다음 JavaScript 메서드에서 변경되었습니다.
    • generateBid()에서 custom_audience_bidding_signals로 이름이 변경되었습니다.
    • scoreAd()에서 custom_audience_scoring_signals로 이름이 변경되었습니다.
    • reportWin()에서 custom_audience_reporting_signals로 이름이 변경되었습니다.
  • 이 출시에서는 AdSelectionFromOutcomeConfig를 사용하여 selectAds 결과를 비교하는 새로운 selectAds 재정의를 추가합니다. 이를 통해 이 API를 활용하는 광고 기술 SDK가 폭포식 구조 미디에이션을 실행할 수 있습니다. 자세한 내용은 개발자 가이드를 참고하세요.
  • 이제 selectAds() API가 광고 선택 프로세스 중에 가져온 입찰 및 점수 로직 JavaScript를 위한 캐싱을 지원합니다.
    • 캐시는 JavaScript 가져오기 호출 중에 서버에서 반환하는 Cache-Control 헤더를 사용하여 제어할 수 있습니다. no-cache 또는 no-store를 사용하여 JavaScript 응답이 캐시되지 않도록 하고 max-age를 사용하여 캐시 기간을 제어합니다.
    • 현재 캐시 항목 max-age는 기본적으로 2일로 설정됩니다.

Android의 Attribution Reporting API

  • 이 출시에서는 registerSource()registerTrigger()에 관한 데이지 체이닝 리디렉션 지원을 추가합니다. 이제 API 소비자가 HTTP 리디렉션을 서버 응답으로 사용할 수 있습니다.

초기 베타 출시, 2023년 1월

출시일: 2023년 1월 9일

Android의 개인 정보 보호 샌드박스 베타 1은 공개 기기에서의 개인 정보 보호 샌드박스 API의 첫 번째 가용성을 나타내며 아래 나열된 영역을 개선합니다.

일반

  • Android의 개인 정보 보호 샌드박스 베타 1은 개발자 프리뷰 5와 기능적으로 동일하지만 아래에 나열된 추가 기능과 제한사항이 있습니다.
  • 개발자는 등록 프로세스를 완료해야 광고 관련 API(Topics, FLEDGE, Attribution Reporting)를 활용할 수 있습니다. 등록 프로세스에서는 개발자 ID를 확인하고 API에 필요한 개발자별 데이터를 수집합니다.
  • Android의 개인 정보 보호 샌드박스 베타 1 버전을 사용하면 허용 목록에 등록하고 세부정보를 제출한 개발자가 자체 실제 기기에서 테스트할 수도 있습니다. 이 버전에서 안정적인 API를 대상으로 개발하려면 새 SDK 광고 서비스 확장 프로그램 4를 다운로드하세요.

Topics API

Attribution Reporting API

  • Attribution Reporting이 사용 중지되었으며 이 버전에서 사용할 수 없습니다. 이 API에 대한 액세스는 다음 베타 버전에서 다시 사용 설정됩니다. 개발자 프리뷰로 계속 테스트하는 것이 좋습니다.

SDK 런타임

다음 제한사항은 다음 메이저 Android 플랫폼 버전에서 수정될 예정입니다.

  • RecyclerView와 같은 스크롤 가능한 뷰 내 광고 렌더링이 현재 제대로 작동하지 않습니다. 요소의 크기를 조절하면 버벅거림이 발생할 수 있습니다. 사용자 터치 스크롤 이벤트가 런타임에 제대로 전달되지 않습니다.
  • SDK 런타임 프로세스에서 WebView 렌더링을 사용할 수 없습니다.
  • SDK별 저장소를 사용할 수 없습니다.
  • getAdIdgetAppSetId API 지원이 아직 활성화되지 않았습니다.

개발자 프리뷰 6

출시일: 2022년 10월 31일

Android의 개인 정보 보호 샌드박스 개발자 프리뷰 6에서는 다음 영역이 개선되었습니다.

일반

  • 프로덕션 출시의 준비를 위해, 개발자 프리뷰 6에서는 개인 정보 보호 API 액세스를 기본적으로 사용 중지하는 플래그가 도입되었습니다. 테스트 목적으로 다음 명령어를 실행하여 개발자 프리뷰에서 개인 정보 보호 API 액세스를 사용 설정할 수 있습니다.

    adb shell device_config put adservices global_kill_switch false
    
  • AdIdManagerAppSetIdManager API에는 Google Play 서비스 버전 22.36.16 이상이 필요합니다.

    • Android 지원 기기에서 설정 > 앱 > Google Play 서비스 아래에 올바른 버전이 표시되는지 확인합니다.
    • Google Play 서비스를 적절한 버전으로 업데이트해야 하는 경우 Google 계정으로 Android 테스트 기기 또는 에뮬레이터에서 로그인합니다. 그런 다음 Google Play 스토어 > 프로필 아이콘 > 설정 > 정보로 이동합니다. Play 스토어 버전 제목 아래에서 Play 스토어 업데이트를 탭합니다.
    • 이 단계는 개발 및 테스트에만 적용되며 개인 정보 보호 샌드박스가 일반 사용자에게 출시된 후에는 필요하지 않습니다.

Topics API

  • getTopics가 관찰자로 등록되는지 여부를 전환하기 위한 Preview API가 추가되었습니다.
  • GetTopicsRequest 클래스의 초기화 코드가 약간 변경되었습니다.
  • 주제 통합 가이드가 출시되었습니다.

Android의 FLEDGE API

  • 실제 서버에서 테스트하는 경우 이제 API 사용 설정이 적용됩니다. 다음 단계에 따라 기기를 구성하세요. 샘플 앱에 있는 원격 재정의를 사용하는 경우에는 이러한 단계가 필요하지 않습니다.
  • 브레이킹 체인지:
    • 매개변수의 UrlUri로 대체했습니다. 이는 모든 FLEDGE API 및 입찰 및 점수 로직용 맞춤 JavaScript에 적용됩니다.
    • Custom Audience API 입력에서 owner 필드가 삭제되었습니다.
  • 불완전한 맞춤 잠재고객이 이제 백그라운드 새로고침을 즉시 사용할 수 있습니다.
  • JavaScript 메모리 제한이 이제 10MB로 설정됩니다. 이는 입찰 및 점수 로직에 적용됩니다.

Attribution Reporting API

  • 광고 기술은 등록되어야 개발자 프리뷰 6에서 Attribution Reporting API를 사용할 수 있습니다. 자세한 내용은 개인 정보 보호 샌드박스 계정 등록을 참고하세요.
  • 이 버전에는 개발자가 Attribution Reporting API에서 개인 정보 보호 강화 보고서와 함께 변경되지 않은 보고서를 수신할 수 있도록 하는 디버그 키가 도입되었습니다. 개인 정보 보호 샌드박스로 전환하는 동안 보고서가 구성되는 방식을 디버그 키를 통해 보다 잘 파악할 수 있습니다.

개발자 프리뷰 5

일반

  • 개발자 프리뷰 5에서 Privacy Sandbox API에 액세스하려면 먼저 API를 사용 설정하고 API 관련 권한을 구성해야 합니다.
    • Android의 개인 정보 보호 샌드박스 설계 덕분에 사용자는 개인 정보 보호 API와 SDK 런타임이 기기에서 활성 상태인지 여부를 제어할 수 있습니다. 이러한 설정은 개발자 프리뷰 5에서 기본적으로 사용 중지되어 있습니다. adb 명령어를 사용하여 API 액세스를 사용 설정할 수 있습니다.
    • 호출자 앱은 삽입된 SDK의 액세스를 제어하는 매니페스트 및 관련 AdServices 구성에서 API 관련 권한을 지정해야 합니다.
  • 앱은 포그라운드에서 실행될 때 개인 정보 보호 API를 호출해야 합니다.
  • AdIdManagerAppSetIdManager는 현재 작동하지 않습니다. 이후 버전에서 사용 설정될 예정입니다.

SDK 런타임

  • sendData()가 향후 버전에서 지원 중단됩니다.
  • loadSdk()가 이제 AIDL에 정의된 런타임 지원 SDK와 앱 간의 양방향 통신을 용이하게 하기 위해 IBinder 객체를 반환합니다.
  • 앱이 추가 런타임 지원 SDK 수명 주기 이벤트에 액세스할 수 있습니다(예: SDK 프로세스가 종료될 때).

Attribution Reporting API

이 출시에서는 다음과 같은 Attribution Reporting API의 추가 기능을 도입합니다.

  • 암호화된 집계 보고서 지원
  • 교차 앱 및 웹 측정 지원
  • 소스 및 트리거 등록 응답의 통합 헤더
    • 소스: Attribution-Reporting-Register-Aggregatable-Source가 이제 Attribution-Reporting-Register-Source의 일부입니다.
    • 트리거: Attribution-Reporting-Register-Event-Trigger, Attribution-Reporting-Register-Aggregatable-Trigger-DataAttribution-Reporting-Register-Aggregatable-ValuesAttribution-Reporting-Register-Event-Trigger라는 단일 헤더로 통합되었습니다.
    • Attribution-Reporting-Redirects는 여전히 별도의 헤더입니다.

Android의 FLEDGE API

이 출시에는 몇 가지 새로운 기능과 개선사항 및 브레이킹 체인지가 포함되어 있습니다.

  • 브레이킹 체인지:
    • runAdSelection()에서 selectAds()로 이름을 바꿨습니다.
    • AdSelectionConfig.Builder.setAdSelectionSignals()의 매개변수를 JSON 객체를 나타내는 AdSelectionSignals로 대체했습니다.
    • 광고 기술 구매자/판매자를 나타내는 String 사용을 AdTechIdentifier 객체로 대체했습니다.
    • 원격 JavaScript 가져오기를 재정의하기 위한 TestCustomAudienceManagerTestAdSelectionManager 클래스를 추가했습니다.
    • 맞춤 잠재고객의 소유자는 호출 앱의 패키지 이름이어야 합니다.
  • FLEDGE API가 이제 개발자 가이드에 설명된 일련의 제한사항에 따라 호출자 앱을 검증합니다. 다음은 주목할 만한 예입니다.
    • 이제 selectAdsreportImpression에 실행 시간 제한이 있으며 제한 시간을 지나면 호출이 종료됩니다.
    • 이제 selectAdsreportImpression은 JavaScript 실행 중에 소비되는 메모리에 제한이 있습니다. 메모리 소비가 구성된 제한을 초과하면 API에서 오류가 발생합니다.
    • selectAdsreportImpression이 이제 AdSelectionConfig 객체를 검증하여 필드가 문법적으로 유효하고 URL이 판매자 필드에서 사용되는 eTLD+1 아래에 있는지 확인합니다.
    • 이제 AdServices가 생성 시 맞춤 잠재고객을 검증합니다. 이러한 검증 중 일부는 만료 시간이 유효한지 확인하는 것을 포함하고 앱에서 만들 수 있는 맞춤 잠재고객 수와 joinCustomAudience 호출에 제공된 광고의 총 크기에 제한을 적용합니다. 또한 검증에서는 신호와 입찰 로직 검색, 백그라운드 가져오기에 제공된 URI가 모두 구매자의 도메인에 속하도록 강제합니다.
  • 맞춤 잠재고객 메타데이터는 백그라운드 가져오기 프로세스로 매일 업데이트됩니다.
  • 맞춤 잠재고객은 '소유자' 앱이 제거될 때 삭제됩니다.
  • 광고 선택 중에 신뢰할 수 있는 점수 신호와 신뢰할 수 있는 입찰 데이터를 지정하는 지원이 추가되었습니다. 응답 형식은 코드 샘플을 참고하세요.
  • Android용 FLEDGE API는 WebView 버전 105.0.5195.58 이상에 종속됩니다. 자세한 내용은 개발자 가이드의 설정 정보를 참고하세요.
  • 알려진 문제:

    • 맞춤 잠재고객에 참여할 때 메타데이터 또는 AdData 값이 어느 하나라도 비어 있거나 null인 경우 플랫폼에서는 현재 백그라운드 업데이트를 즉시 실행하지 않습니다. 맞춤 잠재고객은 하루가 지난 후 업데이트될 때까지 광고 선택 대상이 될 수 없습니다. 향후 출시에서는 불완전한 맞춤 잠재고객이 즉시 백그라운드 가져오기 업데이트를 사용할 수 있게 됩니다. JavaScript 실행의 현재 기본 메모리 제한이 너무 낮으므로 일반 워크로드로 인해 기기에서 JavaScriptEngine이 다운될 수도 있습니다. JavaScript 실행이 "Fatal javascript OOM in CALL_AND_RETRY_LAST" 오류 메시지와 함께 예기치 않게 종료될 수 있습니다.

      다음 명령어로 적절한 메모리 기준점을 구성하여 이 문제를 수동으로 해결할 수 있습니다.

      adb shell "device_config put adservices fledge_js_isolate_enforce_max_heap_size 10485760"
      
    • 필수 JSON 구조와 일치하지 않는 맞춤 잠재고객 광고는 백그라운드 가져오기 중에 업데이트됩니다.

Topics API

  • 모바일 앱 분류를 위해 분류를 업데이트했습니다.
  • 할당된 주제를 볼 수 있도록 설정 UI를 실행하면서 디자인 제안서샘플 앱을 업데이트했습니다.

도구 업데이트

Android 스튜디오 카나리아는 새 모듈 유형으로 SDK APK를 빌드하는 작업을 지원합니다. SDK 런타임 개발자 가이드가 업데이트되었으며 GitHub의 개인 정보 보호 샌드박스 샘플 앱에 이 업데이트가 반영되어 있습니다.

개발자 프리뷰 4

출시일: 2022년 7월 14일

Android의 개인 정보 보호 샌드박스 개발자 프리뷰 4에서는 다음 영역이 개선되었습니다.

SDK 런타임

  • 이제 앱은 추가된 sendData()를 통해 런타임 지원 SDK(RE-SDK)와 통신할 수 있습니다.
  • 이제 로컬 저장소를 SDK 런타임 프로세스에서 사용할 수 있습니다.
  • SDK는 SDK 런타임에서 독립형 동영상 기반 광고 또는 콘텐츠를 렌더링할 수도 있습니다.
  • 콘텐츠가 다른 RE-SDK에 있지 않은 경우 리플렉션을 사용하는 기능을 포함하도록 리플렉션 사용에 관한 설명을 추가했습니다.

Attribution Reporting API

이 출시에는 Attribution Reporting API 사용 방법을 좀 더 명확하게 하기 위해 다음과 같은 몇 가지 변경사항이 도입되었습니다.

  • 가독성 개선을 위해 집계 보고서 형식이 변경되었습니다.
  • 전환 필터링 및 입찰 가능성 기능의 헤더 필드가 업데이트되었습니다.
  • WebApp API 참조에는 소스 등록과 트리거 등록, 개인 정보 보호 및 동의 API 가용성을 명확히 설명하는 부분이 추가되었습니다.

Android의 FLEDGE API

이 출시에는 테스트 및 디버그 가능성을 지원하는 새로운 기능과 내부 개선사항이 포함되어 있습니다.

  • 개발 중에 JavaScript 로직을 검색하도록 원격 URL 재정의 지원이 추가되었습니다.
  • 광고를 선택하는 동안의 오류 보고가 개선되었습니다.
  • 이제 광고를 선택하는 동안 비활성 맞춤 잠재고객은 필터링됩니다.

Topics API

이 출시에는 Topics API와 관련하여 몇 가지 중요한 변경사항이 있습니다. 가장 중요한 점은 다음과 같습니다.

  • getTopics() API의 반환 유형은 분류의 주제에 해당하는 정수 ID와 분류 기준 및 분류 버전 관련 정보를 캡슐화하는 새로운 Topic 객체 유형으로 변경되었습니다. 이 API를 사용하여 기존 앱을 업데이트해야 합니다.
  • 이제 Topics API에 새로운 일반 권한이 필요합니다.
  • 공개적으로 사용 가능한 앱 정보를 기반으로 주제를 동적으로 할당하고자 '기기 내 분류 기준' 시스템이 도입되었습니다.

알려진 문제

  • 이러한 기기 이미지(버전 6)의 최초 출시 버전은 Android Emulator 버전 31.2.10에서 로드되지 않습니다. 이 문제를 해결한 기기 이미지의 업데이트 버전은 2022년 7월 27일부터 제공됩니다.

개발자 프리뷰 3

출시일: 2022년 6월 9일

Android 개발자 프리뷰 3의 개인 정보 보호 샌드박스에는 Attribution Reporting API 및 Android의 FLEDGE 기능이 추가되었습니다.

Attribution Reporting API

Attribution Reporting API는 당사자 간 사용자 식별자에 관한 의존성을 제거하여 사용자 개인 정보 보호를 개선하고 앱에서 기여 분석 및 전환 측정을 위한 주요 사용 사례를 지원합니다.

이 출시 버전에는 다음 Attribution Reporting API 기능을 테스트하는 데 도움이 되는 개발자 리소스가 포함되어 있습니다.

  • 기여 분석 소스 및 트리거 이벤트 등록
  • 소스 우선순위 기여 분석 및 설치 후 기여 분석 실행
  • 이벤트 보고서 수신
  • 이 출시에서 암호화되지 않은 집계 가능한 보고서 수신

테스트를 돕기 위해 샘플 앱 및 참조 광고 기술 서버가 제공됩니다.

알려진 문제:

Android의 FLEDGE

Android의 FLEDGE는 앱 개발자가 정의한 맞춤 잠재고객과 앱 내의 상호작용을 기반으로 광고를 표시하는 새로운 방법을 도입했습니다. 이 솔루션은 정보 및 연결된 광고를 로컬에 저장하며 광고 선택 워크플로를 조정할 수 있는 프레임워크를 제공합니다.

이 출시 버전에는 Android의 다음 FLEDGE 기능을 테스트하는 데 도움이 되는 개발자 리소스가 포함되어 있습니다.

  • 맞춤 잠재고객에 참여하거나 탈퇴하고 매개변수 값이 입찰 결과에 미칠 수 있는 영향 관찰
  • 원격 엔드포인트에서 JavaScript 입찰 코드 가져오기
  • 기기 내 광고 입찰 구성 및 시작
  • 노출 보고 처리
  • 테스트에 도움이 되는 샘플 앱 및 모의 서버 구성이 제공됨

알려진 문제:

  • 맞춤 잠재고객은 '활성화 시간' 전에도 광고 선택에 참여할 수 있습니다.

개발자 프리뷰 2

출시일: 2022년 5월 17일

개발자 프리뷰 2에는 MeasurementManager Attribution Reporting API의 초기 프리뷰가 포함되어 있습니다.

  • registerSource()registerTrigger()를 호출하여 앱 광고 이벤트를 등록하고 앱 간 기여 분석을 위한 이벤트 수준 보고 데이터를 수신할 수 있습니다. 현재 구현에서는 마지막 터치 기여 분석을 사용합니다. 보고서는 보고 기간에 정의된 대로 전송될 예정입니다. 자세한 내용은 MeasurementManager API 참조를 확인하세요.
  • 실제 보고서 업로드는 정확히 예약된 시간이 아니라 고정된 시간 간격이 끝날 때 발생합니다. 보고 업로드 간격은 기본적으로 4시간이지만 다음 adb 명령어로 재정의할 수 있습니다.

    adb shell device_config put adservices measurement_main_reporting_job_period_ms <duration in milliseconds>
    
  • API 테스트를 위한 샘플 앱 및 참조 광고 기술 서버는 향후 출시에서 게시됩니다.

  • 집계 보고, 설치 후 기여 분석, 리디렉션과 같은 기타 MeasurementManager Attribution Reporting API 기능은 향후 출시에서 제공됩니다.

개발자 프리뷰 1

출시일: 2022년 4월 28일

개발자 프리뷰 1에는 Topics APISDK 런타임의 초기 프리뷰가 포함되어 있습니다. 향후 출시에서 Android의 FLEDGEAttribution Reporting API의 기능이 제공됩니다.

  • Topics API
    • getTopics() API는 현재 제한된 앱 세트의 오프라인 분류를 기반으로 테스트 값을 반환합니다. 기기 내 분류는 아직 구현되지 않았습니다.
    • adb 명령어를 사용하여 에포크 간격을 재정의하고 에포크 계산을 강제 트리거할 수 있습니다.
    • 자세한 내용은 Topics 개발자 가이드를 참고하세요.
  • SDK 런타임
    • SDK 앱의 매니페스트 파일에서 새 <sdk-library> 요소를 사용하여 런타임 지원 SDK(RE SDK)를 패키징하고 빌드할 수 있습니다. 일반적으로 개발 중에 앱을 설치하는 것처럼, 지원되는 테스트 기기 또는 에뮬레이터에 RE SDK를 설치합니다.
    • 앱을 RE SDK와 통합하고 SDK 런타임에서 로드하여 제한된 액세스가 SDK 코드에 미치는 영향(권한, 메모리, 앱과 SDK 간 통신)을 테스트할 수 있습니다. RE SDK용 Storage API는 아직 구현되지 않았으며 향후 출시에서 제공될 예정입니다.
    • SDK는 SDK 런타임에서 WebView 기반 배너 광고 또는 콘텐츠를 렌더링할 수 있습니다.
    • 자세한 내용은 SDK 런타임 개발자 가이드를 참고하세요.
  • Android 린트 검사
    • Android 린트 검사는 API 수준 TiramisuPrivacySandbox로 컴파일된 프로젝트에 경고를 잘못 표시할 수 있습니다. 예를 들어 '호출에는 API 수준 33이 필요합니다'라는 경고 메시지가 표시될 수 있습니다. @SuppressLint("NewApi") 주석을 사용하여 이 문제를 일시적으로 해결할 수 있습니다.