측정 SDK에서 지연된 딥 링크 사용 설정하기

딥 링크를 만든 후에는 앱 캠페인에서 사용할 수 있도록 측정 SDK에서 딥 링크를 사용 설정해야 합니다.

이 도움말에서는 지원되는 서드 파티 앱 기여 분석 파트너(AAP) 또는 최신 Firebase용 Google 애널리틱스(GA4F) SDK에서 지연된 딥 링크(DDL)를 사용 설정하는 방법을 설명합니다. 서드 파티 도구를 이용해 모바일 앱 전환추적을 추적하는 방법을 알아보세요.


시작하기 전에

지원되는 AAP에서 DDL을 사용 설정하려면 연결된 피드에 올바르게 포함되었거나 광고 그룹 DDL로 제출된 작동하는 딥 링크가 있어야 합니다.


안내

지원되는 AAP에서 DDL을 활성화하는 방법

현재 DDL에 대해 Google에서 지원하는 서드 파티 AAP는 다음과 같습니다.

  • Adjust
  • AppsFlyer
  • Branch
  • Kochava
  • Singular
참고: 다른 AAP는 다양한 개발 단계에 있습니다. AppsFlyer Onelink 및 기타 '스마트 링크' 같은 서드 파티 딥 링크는 지원되지 않습니다. DDL 사용 설정에 관한 최신 업데이트는 해당 AAP 담당자에게 문의하세요.

선택한 AAP에서 DDL을 사용 설정하려면 아래 단계를 따르세요.

Adjust

Google Ads에 대한 DDL 포스트백을 사용 설정하기 위해 추가 설정은 필요하지 않습니다. 이 동작을 중지하거나 변경하려면 지연된 딥 링크 콜백을 설정해야 합니다.

AppsFlyer

  1. AppsFlyer에서 Configuration(구성) > Integrated Partners(통합 파트너)를 클릭한 다음 Google Ads(Adwords)를 선택합니다.
  2. Integration(통합) 탭에서 'Deferred deep linking with Google feeds(Google 피드와의 지연된 딥 링크)'를 사용 설정합니다.
  3. Save integration(통합 저장)을 클릭합니다.

Branch

DDL 포스트백을 사용 설정하려면 Branch의 허용 목록에 포함되어 있어야 합니다. 이 기능에 대한 액세스 권한을 얻으려면 Branch 지원팀에 문의하세요.

Kochava

'Perform Deeplink Request(딥 링크 요청 실행)' 설정이 사용 설정되어 있는지 확인합니다. 이 기능은 Google Ads에 대한 DDL 포스트백을 사용 설정하기 위해 기본적으로 설정됩니다.

Singular

Google Ads에 대한 DDL 포스트백을 사용 설정하기 위해 추가 설정은 필요하지 않습니다.

앱 기여 분석 파트너를 통한 앱 전환 추적에 대해 자세히 알아보세요.

GA4F SDK에서 DDL을 활성화하는 방법

다음 단계에 따라 Android 버전 17.2.0 이상의 최신 버전을 사용하여 GA4F SDK에서 DDL을 활성화할 수 있습니다.

GA4F SDK에서 DDL을 활성화하는 단계

1. Firebase용 Google 애널리틱스를 사용하도록 앱 구성하기

앱 build.gradle에서 firebase-core의 모든 종속 항목을 삭제합니다. 그런 다음 firebase-analytics 버전 17.2.0 이상에 대한 종속 항목을 추가하거나 업데이트합니다. 아래 예에서는 최신 버전의 SDK를 사용합니다.

종속 항목 {
    ...

    implementation 'com.google.firebase:firebase-analytics:21.0.0'
    ...
}

2. 앱에서 기능 사용 설정하기

애플리케이션 태그에 다음 메타데이터 태그를 추가하여 애플리케이션 매니페스트를 수정합니다.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.myawesome.app"
>

    <uses-permission android:name="android.permission.INTERNET" />

    <application
     android:name=".MainActivity">

     <!-- 지연된 딥 링크를 사용 설정하기 위해 추가할 값 -->
     <meta-data android:name="google_analytics_deferred_deep_link_enabled" android:value="true"/>

       <activity
            android:name=".MainActivity" >
       </activity>

    </application>

</manifest>

사용 설정하면 앱 시작 시 GA4F는 구성한 해당 캠페인에 대해 구성된 딥 링크를 가져옵니다.

참고: 매니페스트를 통해 수신기를 등록하면 메모리 사용량 및 시작 지연 시간과 같은 단점이 수반됩니다. 컨텍스트 레지스트리를 선호하면 이 문제를 완화할 수 있습니다.

3. 딥 링크 캡처하기

기본 시작 활동 클래스 내에서 SharedPreferences 변경 리스너를 설정합니다. 이는 DDL을 사용할 수 있을 때 트리거됩니다. 앱 수명 주기 후반에 리스너를 등록하는 경우 딥 링크가 이미 가져와진 상태일 수도 있습니다. 이 경우 리스너가 트리거되지 않으며 SharedPreferences를 읽어 딥 링크의 값을 즉시 조회할 수 있습니다.

GA4F는 deeplink 키를 사용하여 딥 링크를 SharedPreferences 파일 google.analytics.deferred.deeplink.prefs에 저장합니다. 또한 GA4F는 동일한 SharedPreferences 파일에 timestamp 키를 사용하여 광고 클릭 타임스탬프를 저장합니다. 타임스탬프의 형식은 마이크로초(밀리초 다음에 점과 마이크로초)이며 유형이 Double인 경우 Long을 사용하여 SharedPreferences에 저장됩니다. Double.longBitsToDouble(...)을 사용하여 실제 값을 파싱합니다.

:

/**
* 앱의 기본 시작 활동.
*/

public class MainActivity extends AppCompatActivity {

  private SharedPreferences preferences;
  private SharedPreferences.OnSharedPreferenceChangeListener deepLinkListener;

    @Override
    protected void onStart() {
        super.onStart();
        preferences.registerOnSharedPreferenceChangeListener(deepLinkListener);
    }

    @Override
    protected void onStop() {
        super.onStop();
        preferences.unregisterOnSharedPreferenceChangeListener(deepLinkListener);
        deepLinkListener =
null;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        preferences =
              getSharedPreferences(
"google.analytics.deferred.deeplink.prefs", MODE_PRIVATE);

        deepLinkListener = (sharedPreferences, key) -> {
            Log.d("DEEPLINK_LISTENER", "Deep link changed");
           if ("deeplink".equals(key)) {
              String deeplink = sharedPreferences.getString(key, null);
              Double cTime = Double.longBitsToDouble(sharedPreferences.getLong("timestamp", 0));
              Log.d("DEEPLINK_LISTENER", "Deep link retrieved: " + deeplink);
              showDeepLinkResult(deeplink);
            }
        };
    }

   public void showDeepLinkResult(String result) {
        String toastText = result;
        if (toastText == null) {
            toastText =
"The deep link retrieval failed";
        }
else if (toastText.isEmpty()) {
            toastText = "Deep link empty";
        }

        Toast.makeText(MainActivity.this, toastText, Toast.LENGTH_LONG).show();
        Log.d("DEEPLINK", toastText);
    }
}

4. 진단 테스트용 데이터 준비하기

구현을 검증하려면 테스트할 기기의 AdID를 가져옵니다. 다음 명령어를 사용하여 앱에서 수신할 DDL을 설정할 수 있습니다.

curl "googleadservices.com/pagead/conversion/app/deeplink?&rdid=<<your device adid>>&id_type=adid&bundleid=<<your application package>>&deeplink=<<deeplink you want to receive>>&ddl_test=1"

딥 링크가 올바르게 설정되었는지 확인하려면 이 요청을 사용하여 응답을 확인하면 됩니다.

curl "googleadservices.com/pagead/conversion/app/deeplink?&rdid=<<your device adid>>&id_type=adid&bundleid=<<your application package>>&ddl_test=1"

이 테스트 딥 링크는 24시간 후에 만료됩니다. 테스트 딥 링크가 만료되면 이 단계를 반복합니다.

5 테스트 모드를 사용 설정하여 테스트 DDL 가져오기

DDL 테스트 모드를 사용 설정하여 기기에서 테스트를 시작합니다.

adb shell setprop debug.deferred.deeplink <<애플리케이션 패키지>>

그런 다음 기기에서 디버그 모드를 사용 설정합니다. 앱을 사용하면서 Logcat에서 로그 메시지에 gmp_version이 최소 18200으로 표시되는지 확인합니다. deferred 키워드를 검색하면 해당 기능과 관련된 Firebase용 Google 애널리틱스의 모든 디버그 메시지가 필터링됩니다.

:

D/FA: 지연된 딥 링크 기능을 사용 설정했습니다.
FA-SVC:
업로드 중 데이터. 앱, 압축되지 않은 크기, 데이터: <<애플리케이션 패키지>>,

gmp_version:
18200


관련 링크

도움이 되었나요?

어떻게 하면 개선할 수 있을까요?
검색
검색어 지우기
검색 닫기
Google 앱
기본 메뉴
6420516461085393988
true
도움말 센터 검색
true
true
true
true
true
73067
false
false
false