Android의 개인 정보 보호 샌드박스 개발자 프리뷰가 출시되었습니다. 시작하는 방법을 알아보고 의견을 제공해 주세요.

앱 설치 광고 필터링

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

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

이 제안서에서는 Android의 FLEDGE가 개인 정보를 보호하는 방식으로 문맥 광고 필터링, 구체적으로는 앱 설치 광고 필터링을 지원하는 방법을 소개합니다. 이 기능을 사용하려면 기기에 설치된 앱에서 명시적으로 앱 설치 광고 필터링을 선택해야 합니다. 광고 후보는 광고 선정 과정에서 애드테크에 의해 알려진 기기에 설치된 앱 목록을 기준으로 필터링됩니다. 설치된 앱 목록은 광고 선정 흐름 내에서만 볼 수 있습니다. 구매측 플랫폼이 이 기기에 있는 앱의 존재 여부에 따라 특정 광고가 필터링되어야 함을 알려야 설치된 앱 목록이 표시됩니다.

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

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

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

void registerForAdFiltering(List<AdTechIdentifier> buyers);

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

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

  • 앱 설치 광고 필터링의 주요 사용 사례인 문맥 광고의 경우, 필터링 정보는 구매자가 FLEDGE 외부에서 문맥 입찰에 응답할 때 판매자에게 제공할 수 있는 광고 데이터의 일부로 포함됩니다. FLEDGE는 여타 광고 메타데이터와 마찬가지로 이 필터링 정보가 문맥 응답의 일부로 반환될 것으로 예상합니다.

  • 리마케팅 광고의 경우 FLEDGE는 필터링 정보가 맞춤 잠재고객에 포함될 것으로 예상합니다. 이러한 포함은 잠재고객에 참여하거나 잠재고객 업데이트 프로세스의 일환으로 새 잠재고객 데이터를 가져올 때 이루어집니다.

앱 설치 광고 필터링 요청은 AdData JSON 객체에서 다음과 같이 표시됩니다.

{
  "render_uri": "https://..",
  "metadata": {..},
  "filters": {
    "app_install": {
       "app_package_names": ["app1.package", "app2.package"]
    }
  }
}

참고: 한 번에 여러 앱의 앱 설치 광고를 필터링할 수 있습니다. 이렇게 하려면 평가해야 하는 모든 앱 패키지 이름을 나열하면 됩니다. 이러한 패키지 중 하나라도 앱 설치 목록에 포함되어 있으면 광고가 필터링됩니다.

Google에서는 현재 문맥 광고 정보의 암호화 및/또는 서명을 사용 설정할 방법을 모색 중입니다. 이 주제에 관한 개발자 여러분의 의견을 요청드립니다.

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 내에서 처리됩니다. FLEDGE는 메시지에 지정된 앱이 애드테크 구매자의 특정 앱 설치 목록에 포함된 앱과 일치하는 경우 광고를 필터링합니다. 다음 두 가지 결과가 가능합니다.

  • 앱이 이 목록에 없습니다. 즉, 앱이 설치되어 열려 있지 않습니다.
  • 앱이 이 목록에 있습니다. 즉, 앱이 설치되어 열려 있습니다.

FLEDGE가 앱이 이미 존재한다는 사실을 감지하는 경우, 입찰에서 scoreAds를 실행하는 데 사용하는 광고 목록에서 광고가 제외됩니다.

문맥 광고 관련 고려사항

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

  • selectAd 입찰이 실행되면 구매자가 ContextualAd 객체 목록을 전달할 수 있습니다. 이러한 객체에는 광고 구매자의 eTLD+1, 광고의 입찰가, 광고의 보고 로직을 가리키는 URL, 실제 광고 콘텐츠 URL을 포함하는 AdData가 포함됩니다. AdData 형식은 문맥 광고와 리마케팅 광고 양쪽에서 사용됩니다.

  • 입찰 프로세스 초기에는 표시되는 나열된 앱을 기준으로 문맥 광고와 리마케팅 광고가 필터링됩니다. 그런 다음 리마케팅 광고의 입찰가가 결정되면 제공된 scoreAds 함수를 사용하여 리마케팅 광고와 문맥 광고의 점수가 매겨집니다. 점수가 가장 높은 광고가 게재됩니다. 이 프로세스는 리마케팅 광고가 없어도 작동합니다.

  • 입찰에서 문맥 광고가 낙찰되고 앱이 노출 보고서를 트리거하면 FLEDGE는 문맥 광고 데이터에 포함된 보고 URL에서 reportWin()이라는 JS 함수를 다운로드하여 실행합니다. 이는 입찰에서 낙찰된 리마케팅 광고가 보고되는 방식과 유사합니다.

    샘플 자바스크립트 보고 함수:

    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} };
    }