Meta 설치 리퍼러

이 문서에서는 Android 앱에서 Meta 설치 리퍼러를 사용하여 앱 설치가 목표인 Facebook, Instagram 및 Audience Network 광고 캠페인에 대한 메타데이터를 가져오는 방법을 보여줍니다. Google Play Install Referrer(GPIR)는 동일한 세션 클릭 설치에 대한 정보만 제공하지만 Meta 설치 리퍼러에는 다음과 같은 데이터가 포함됩니다.

  • 조회 설치(VT)
  • 클릭 설치(CT)
  • 여러 세션 클릭 설치

Android 앱 캠페인에 Meta 설치 리퍼러를 설정할 때 두 가지 옵션(직접 통합 또는 모바일 측정 파트너(MMP)를 통해 지원되는 통합)이 있습니다.

옵션 1: 직접 통합

시작하기 전에

시작하기 전에 다음 항목이 필요합니다.

1단계. Meta 앱 추가

AndroidManifest.xml에서 Facebook, Instagram 및 Facebook Lite 앱에 대한 queries 요소를 추가하여 Meta 앱에서 리퍼럴 기여 데이터를 가져오도록 합니다.

<queries>
  <package android:name="com.facebook.katana" />
</queries>

<queries>
  <package android:name="com.instagram.android" />
</queries>

<queries>
  <package android:name="com.facebook.lite" />
</queries>

2단계. ContentProvider API 구현

ContentProvider 코드를 추가하여 Facebook 및 Instagram 앱에서 리퍼럴 기여 데이터를 가져옵니다. 앱을 처음 시작할 때 이 데이터를 가져오는 것이 좋습니다.

Cursor c = null;
try {
    String [] projection = { "install_referrer", "is_ct", "actual_timestamp", };
    Uri providerUri = null;
    
    // This IF statement queries the facebook app first.
    // To query from the instagram app first, change the sequence of the IF statement

    if (context.getPackageManager().resolveContentProvider(
           "com.facebook.katana.provider.InstallReferrerProvider", 0) != null) {
       providerUri = Uri.parse(
           "content://com.facebook.katana.provider.InstallReferrerProvider/" + FB_APP_ID);
    } else if (context.getPackageManager().resolveContentProvider(
           "com.instagram.contentprovider.InstallReferrerProvider", 0) != null) {
       providerUri = Uri.parse(
           "content://com.instagram.contentprovider.InstallReferrerProvider/" + FB_APP_ID);
    } else if (context.getPackageManager().resolveContentProvider(
           "com.facebook.lite.provider.InstallReferrerProvider", 0) != null) {
       providerUri = Uri.parse("content://com.facebook.lite.provider.InstallReferrerProvider/" + FB_APP_ID);
    } else {
       return null;
    }

    c = context.getContentResolver().query(providerUri, projection, null, null, null);
    if (c == null || !c.moveToFirst()) {
       return null;
    }

    int installReferrerIndex = c.getColumnIndex("install_referrer");
    int timestampIndex = c.getColumnIndex("actual_timestamp");
    int isCTIndex = c.getColumnIndex("is_ct");
    String installReferrer = c.getString(installReferrerIndex); // serialized and encrypted attribution details

    // TODO: 
    // 1. deserialize installReferrer (convert String to JSON)
    // 2. decrypt attribution details in install_referrer.utm_content.source.data using 
    // key: GPIR decryption key 
    // nonce: retrieve from installReferrer.utm_content.source.nonce
    // data: retrieve from installReferrer.utm_content.source.data
    // decrypt data 

    long actualTimestamp = c.getLong(timestampIndex); // timestamp in seconds for click/impression
     int isCT = c.getInt(isCTIndex); // VT or CT, 0 = VT, 1 = CT
           
} catch (Exception e) {
    return null;
} finally {
    if (c != null) {
        c.close();
    }
}

데이터를 역직렬화 및 복호화하는 단계는 설치 리퍼러 가이드에 나와 있는 단계와 유사합니다.

각 Meta 앱에 대해 역직렬화한 후 install_referrer에서 수신된 데이터 구조 응답에는 다음 내용이 포함됩니다.

  • actual_timestamp – 값은 클릭 또는 노출이 발생한 시점의 타임스탬프(초)입니다.
  • is_ct – 값은 1(클릭) 또는 0(노출)일 수 있습니다.
  • install_referrer – 값은 암호화된 GPIR 기여 데이터입니다.

JSON 응답 예시

{
  is_ct=1,
  actual_timestamp=123,
  install_referrer={
    utm_campaign = fb4a,
    utm_content: {
      source: {
        data: “7fb9bd76…”, // encrypted attribution information
        nonce: “1234” // nonce from encryption
      },
      a: <app_id>,
      t: <timestamp>
    }
    utm_source : “apps.facebook.com” //OR “apps.instagram.com”
  }
}

install_referrer.utm_content.source를 복호화한 후 샘플 데이터

{ 
  "ad_id":"6110809314024", 
  "adgroup_id":"6110808725024", 
  "adgroup_name":"RTG_Storie_", 
  "campaign_id":"6110808710224", 
  "campaign_name":"Mobex_Conversiones_Storie_Android_21 a 31 de Diciembre_OP39895",
  "campaign_group_id":"6110808710624", 
  "campaign_group_name":"Mobex_Instagram Storie_ Conversiones_ Diciembre OP 43918",
  "account_id":"485495091598353",
  "ad_objective_name":"CONVERSIONS", 
  // data included for Instagram ads
  "is_instagram":true,
  "publisher_platform":"instagram",                
  "platform_position":"instagram_stories"          
}

3단계. 데이터의 중복 제거

GPIR 광고 캠페인 메타데이터를 사용할 수 있는 경우 기존 GPIR 중복 제거 플로를 따라야 합니다.

설치 리퍼러를 사용한 중복 제거

install_referrer에서 반환된 데이터를 사용하여 중복 데이터를 제거할 수 있습니다. Meta 설치 리퍼러와 GPIR에서 CT에 대한 설치 또는 캠페인 값이 동일하기 때문입니다.

VT 및 세션 간 CT의 경우, GPIR에서 이를 지원하지 않으므로 Meta 설치 리퍼럴 데이터를 사용하세요.

GPIR 광고 캠페인 메타데이터가 없을 경우 모바일 측정 파트너(MMP)와의 협력 여부에 따라 데이터 중복을 제거합니다.

MMP를 통한 중복 제거

모바일 측정 파트너(MMP)는 Meta 또는 유기적 설치에 따른 가장 효과적인 광고 네트워크가 없는 설치에 대한 행 수준 기여 데이터에 액세스할 수 있습니다. Meta 설치 리퍼러를 통해 제공된 설치 리퍼러가 있는지 확인할 수 있습니다. 이 설치 리퍼러가 있는 경우 Meta에서 설치한 것으로 간주할 수 있으며, 제공된 설치 리퍼러 데이터는 설치에 대한 광고 캠페인 메타데이터입니다.

MMP 없이 중복 제거

Meta 설치 리퍼러는 광고 캠페인 메타데이터, 마지막 접촉에 대한 실제 타임스탬프, 마지막 접촉 행동 유형(노출 또는 클릭)을 포함하여 설치에 대한 마지막 접촉 정보를 제공합니다. 마지막 접촉 행동 유형과 마지막 접촉 타임스탬프를 다른 광고 네트워크에서 얻은 기여 데이터와 비교하고 가장 효과적인 광고 네트워크를 결정할 수 있습니다.

설정 확인

우선 이 솔루션을 지원하는 앱 버전을 사용하는지 확인합니다. 최소 버전은 다음과 같습니다.

  • Facebook: v428
  • Instagram: v296
  • Facebook Lite: v411

다음 단계에 따라 설정을 확인할 수 있습니다.

  1. 광고 관리자의 미리 보기를 사용하여 테스트 캠페인을 주입합니다.
  2. Facebook 또는 Instagram에서 광고를 찾아서 클릭합니다.
  3. 2단계의 코드에 분기점이나 로그를 추가합니다.

캠페인 데이터를 조회하려면 앱이 응답을 받아서 복호화해야 합니다.

옵션 2: MMP를 통해 지원되는 통합

1단계: 모바일 측정 파트너(MMP) SDK 업데이트

MMP SDK를 Meta 설치 리퍼러를 통합한 버전으로 업데이트합니다.

  • AppsFlyer SDK: AppsFlyer SDK v6.14.2+
  • Adjust SDK: Adjust SDK v4.36.0+(Flutter 4.36.0+, Unity 4.37.0+)
  • Singular SDK 또는 S2S API: Singular SDK v12.3.0+(Unity 4.2.0+, React Native 3.3.0+, Unreal 2.2.0+)
  • Kochava SDK: Kochava Android SDK v5.1.0+
  • Airbridge SDK: Airbridge Android SDK v2.22.3+
  • Branch SDK: Branch SDK v5.10.1+

2단계: Facebook 앱 ID가 MMP SDK와 연결되어 있는지 확인

아래 링크를 통해 지침을 확인하세요.

3단계: MMP에 따라 앱의 Android 매니페스트 파일 업데이트해야 할 수 있음

아래 링크를 통해 지침을 확인하세요.

  • Kochava 지침(Meta/Facebook 섹션으로 이동)
  • AppsFlyer, Adjust, Singular 및 Airbridge는 해당 SDK를 통해 이 단계를 자동으로 처리
  • Android SDK 대신 Flutter/React SDK를 사용하는 경우 MMP에 문의하세요.

4단계: 설치 리퍼러 복호화 키를 공유하여 MMP가 리퍼러 메타데이터를 복호화하도록 지원

참고: Google Play 스토어 설치 리퍼러에 대해 이 작업을 수행한 경우, 이 단계는 필요하지 않습니다.