Protected Audience의 앱 설치 광고 필터링

신규 모바일 앱 설치는 주로 앱 설치 광고를 통해 이루어집니다. 광고비 ROI를 극대화하려면 앱이 이미 설치되어 있는 기기에서는 앱 설치를 권유하는 광고를 게재하지 않는 것이 좋습니다. 이 제안서에서는 이러한 방식을 '앱 설치 광고 필터링'이라고 지칭합니다.

이 제안서에서는 Android의 Protected Audience가 개인 정보를 보호하는 방식으로 문맥 광고 필터링, 구체적으로는 앱 설치 광고 필터링을 지원하는 방법을 소개합니다. 이 기능을 사용하려면 기기에 설치된 앱에서 명시적으로 앱 설치 광고 필터링을 선택해야 합니다. 광고 조합은 광고 선택 중에 광고 기술에 의해 알려진 기기에 설치된 앱 목록을 기반으로 필터링됩니다.

설치된 앱 목록은 광고 선정 흐름 내에서만 볼 수 있습니다. 구매측 플랫폼이 이 기기에 있는 앱의 존재 여부에 따라 특정 광고가 필터링되어야 함을 알려야 설치된 앱 목록이 표시됩니다.

앱 설치 광고 필터링을 설정하려면 다음 단계를 따르세요.

1단계: 앱 설치 광고 필터링을 위한 앱 등록

앱 설치 광고 필터링을 선택하려면 앱 개발자가 앱 또는 애드테크 SDK에서 애드테크 구매자 eTLD+1 목록을 사용하여 registerForAdFiltering 앱 등록 API를 호출합니다. 이렇게 하면 목록에 있는 구매자만 앱의 설치 상태를 기준으로 직접 또는 광고 기술의 SDK를 통해 광고를 필터링할 수 있습니다. 등록을 통해 앱 설치 광고 필터링에 앱의 참여 여부를 앱 개발자가 완전히 제어할 수 있습니다.java void registerForAdFiltering(List<AdTechIdentifier> buyers);

2단계: 앱 설치 광고 필터링 요청

광고가 입찰을 위해 고려되면 구매자는 앱의 설치 상태를 기준으로 광고가 필터링되도록 플래그할지 여부를 선택할 수 있습니다. 이렇게 하려면 광고 메타데이터에 앱의 패키지 이름을 포함하면 됩니다. 앱 설치 광고 필터링 요청은 Protected Audience 입찰 프로세스에 입력되는 광고 데이터의 일부입니다. 이 광고 데이터는 문맥 광고인지 아니면 리마케팅 광고인지에 따라 다르게 생성됩니다.

  • 앱 설치 광고 필터링의 주요 사용 사례인 문맥 광고의 경우, 필터링 정보는 구매자가 Protected Audience 외부에서 문맥 입찰에 응답할 때 판매자에게 제공할 수 있는 광고 데이터의 일부로 포함됩니다. Protected Audience는 여타 광고 메타데이터와 마찬가지로 이 필터링 정보가 문맥 응답의 일부로 반환될 것으로 예상합니다.
  • 리마케팅 광고의 경우 Protected Audience는 필터링 정보가 맞춤 잠재고객에 포함될 것으로 예상합니다. 이러한 포함은 잠재고객에 참여하거나 잠재고객 업데이트 프로세스의 일환으로 새 잠재고객 데이터를 가져올 때 이루어집니다. 앱 설치 광고 필터링 요청은 AdData JSON 객체 내에서 다음과 같이 표시됩니다. json { "render_uri": "https://..", "metadata": {..}, "filters": { "app_install": { "app_package_names": ["app1.package", "app2.package"] } } }

3단계: 광고 선정 중에 앱 설치 광고 필터링

광고 요청 중에 구매자는 설치된 앱의 광고가 필터링될 수 있도록 판매자에게 필터 정보를 포함하는 여러 개의 광고를 전달할 수 있습니다. 판매측은 selectAds 함수 구성의 일부로 adData 필드에 필터링 정보를 전달해야 합니다. Android는 아래와 비슷한 메시지 형식을 예상합니다.

AdData myAdData = new AdData.Builder()
        .setRenderUri(Uri.parse("https://.."))
        .setMetadata("{...}")
        .setFilters(new AdFilters.Builder()
                .setAppInstalledFilter(new AppInstalledFilter.Builder()
                    .setPackageNames(ImmutableList.of("app1.package", "app2.package"))
                    .build())
                .build())
        .build();
AdSelectionConfig myAdSelectionConfig = new AdSelectionConfig.Builder()
    .setSeller(AdTechIdentifier.fromString("example-ssp1.com"))
    .setDecisionLogicUri(Uri.parse("https://..."))
    ...
    .setContextualAds(ImmutableList.of(new ContextualAd.Builder()
                      .setBuyer(AdTechIdentifier.fromString("example.com"))
                      .setReportingUri("https://example.com/reporting")
                      .setBid(20)
                      // myAdData could be taken from the JSON above
                      .setAd(myAdData)
                      .build()))
    .build();
// Invoke ad services API to initiate ad selection workflow.
selectAds(myAdSelectionConfig);

필터링은 selectAds API 내에서 처리됩니다. Protected Audience는 메시지에 지정된 앱이 애드테크 구매자의 특정 앱 설치 목록에 있는 앱과 일치하는 경우 광고를 필터링합니다. 다음 두 가지 결과가 가능합니다.

  • 앱이 이 목록에 없습니다. 즉, 앱이 설치되어 열려 있지 않습니다.
  • 앱이 이 목록에 있습니다. 즉, 앱이 설치되어 열려 있습니다. Protected Audience가 앱이 이미 존재한다는 사실을 감지하는 경우, 입찰에서 scoreAds를 실행하는 데 사용하는 광고 목록에서 광고가 제외됩니다.

문맥 광고 관련 고려사항

앱 설치 광고 필터링에서는 Protected Audience API가 문맥 광고 필터링을 지원하기 시작합니다. 입찰이 문맥 광고와 리마케팅 광고의 조합으로 구성되었거나 오직 문맥 광고로만 구성된 경우에는 몇 가지 항목을 지정해야 합니다.

  • selectAd 입찰이 실행되면 구매자가 ContextualAd 객체 목록을 전달할 수 있습니다. 이러한 객체에는 광고 구매자의 eTLD+1, 광고의 입찰가, 광고의 보고 로직을 가리키는 URL, 실제 광고 콘텐츠 URL을 포함하는 AdData, 구매자가 소유한 인증 서명이 포함됩니다 (자세한 내용은 문맥 광고 서명 참고). AdData 형식은 문맥 광고와 리마케팅 광고 양쪽에서 사용됩니다.
  • 입찰 프로세스 초기에는 표시되는 AdData.adFilters.appInstallFilters.packageNames에 지정된 패키지 이름 세트를 사용하여 문맥 광고와 리마케팅 광고가 필터링됩니다. 그런 다음 리마케팅 광고의 입찰가가 결정되고 제공된 scoreAds 함수를 사용하여 리마케팅 광고와 문맥 광고의 점수가 매겨집니다. 점수가 가장 높은 광고가 낙찰됩니다. 이 프로세스는 리마케팅 광고가 없어도 작동합니다.
  • 입찰에서 문맥 광고가 낙찰되고 앱이 노출 보고서를 트리거하면 Protected Audience는 문맥 광고 데이터에 포함된 보고 URL에서 reportWin()이라는 JS 함수를 다운로드하여 실행합니다. 이는 입찰에서 낙찰된 리마케팅 광고가 보고되는 방식과 유사합니다.

    샘플 JavaScript 보고 함수:

    function reportWin(ad_selection_signals, per_buyer_signals, signals_for_buyer,
    contextual_signals) {
    let reporting_address = 'https://reporting.example.com';
    return {'status': 0, 'results': {'reporting_uri':
         reporting_address + '?some_signal=' + per_buyer_signals.some_signal} };
    }
    

문맥 광고 서명

  • 앱 설치 필터링이 포함된 문맥 광고에는 구매자의 서명이 요구됩니다. 플랫폼은 이 서명을 사용하여 광고를 제공한 광고 기술과 광고에 적용할 광고 기술 앱 설치 필터를 확인합니다. 이는 악성 광고 기술이 다른 광고 기술의 ID를 사용하여 다른 광고 기술의 앱 설치 필터링 등록을 악용하는 것을 방지하기 위한 조치입니다.

  • 개인 정보 보호 샌드박스는 등록 과정에서 제공된 광고 기술 엔드포인트에서 이러한 키를 가져옵니다. 키는 자주, 최소 6개월에 한 번씩 업데이트하는 것이 좋습니다.

  • 개인 정보 보호 샌드박스는 등록 프로세스 중에 광고 기술이 광고 기술에서 제공한 엔드포인트의 가용성을 확인하도록 요청합니다. 기존 광고 기술과 새로 등록된 광고 기술에 필요한 조치에 관한 자세한 내용은 등록 안내를 참고하세요.

  • 자세한 구현 방법이 나와 있는 개발자 가이드가 조만간 게시될 예정입니다.