컨버전 데이터

이 가이드에서는 AppsFlyerConversionListener를 사용하여 변환 데이터를 가져오는 방법과 변환 데이터를 사용하는 를 배우게 됩니다.

전환 데이터란에 대해 더 알아봅니다.

시작하기 전에

다음 코드 예시는 사용자가 다음 메서드를 가져올 것을 요구합니다: AppsFlyerLib and AppsFlyerConversionListener:

import com.appsflyer.AppsFlyerLib;
import com.appsflyer.AppsFlyerConversionListener;

안드로이드 SDK에서 AppsFlerConversionListener 설정하기

AppsFlyerConversionListener overview

The AppsFlyerConversionListener 인터페이스를 사용하면 전환을 수신 대기할 수 있습니다.

사용자가 AppsFlyerConversionListener 호출할 때 init를 구현하고 등록하면 onConversionDataSuccess 콜백은 다음과 같은 경우마다 호출됩니다.

  • 사용자가 앱을 여는 경우
  • 사용자가 앱을 휴대폰 화면(foreground)으로 이동하는 경우

어떤 이유로 SDK가 전환 데이터를 불러오지 못하는 경우 다음이 호출됩니다: onConversionDataFail is invoked.

어트리뷰션 데이터 액세스하기

호출될 때, onConversionDataSuccessMap 를 반환합니다(이 예시에서는 conversionDataMap 를 호출). 이것은 해당 인스톨을 위한 전환 데이터를 포함합니다. 전환 데이터는 onConversionDataSuccess 가 처음으로 호출될 때 캐시되며 연속 호출과 동일합니다.

Organic vs. Non-organic conversions

전환 데이터 메시지 로데이터. 오가닉이거나 논오가닉일 수 있습니다.

  • 오가닉 전환은 일반적으로 앱 스토어에서 직접 설치하여 발생하는 어트리뷰션되지 않은 전환입니다.
  • 논오가닉 전환은 미디어소스에 어트리뷰트된 전환입니다.

사용자는 af_status 값을 onConversionDataSuccess페이로드에서 확인하여 변환 유형을 얻을 수 있습니다. 다음 이벤트 유형 중 하나를 사용할 수 있습니다:

  • Organic
  • Non-organic

import com.appsflyer.AppsFlyerConversionListener;
import com.appsflyer.AppsFlyerLib;
import com.appsflyer.AppsFlyerLibCore.LOG_TAG;

AppsFlyerConversionListener conversionListener =  new AppsFlyerConversionListener() {
    @Override
    public void onConversionDataSuccess(Map<String, Object> conversionDataMap) {
        for (String attrName : conversionDataMap.keySet())
            Log.d(LOG_TAG, "Conversion attribute: " + attrName + " = " + conversionDataMap.get(attrName));
        String status = Objects.requireNonNull(conversionDataMap.get("af_status")).toString();
        if(status.equals("Organic")){
            // Business logic for Organic conversion goes here.
        }
        else {
            // Business logic for Non-organic conversion goes here.
        }
    }

    @Override
    public void onConversionDataFail(String errorMessage) {
      Log.d(LOG_TAG, "error getting conversion data: " + errorMessage);
    }

    @Override
    public void onAppOpenAttribution(Map<String, String> attributionData) {
      // Must be overriden to satisfy the AppsFlyerConversionListener interface.
      // Business logic goes here when UDL is not implemented.
    }

    @Override
    public void onAttributionFailure(String errorMessage) {
      // Must be overriden to satisfy the AppsFlyerConversionListener interface.
      // Business logic goes here when UDL is not implemented.
      Log.d(LOG_TAG, "error onAttributionFailure : " + errorMessage);
    }

};
import com.appsflyer.AppsFlyerConversionListener
import com.appsflyer.AppsFlyerLib
import com.appsflyer.AppsFlyerLibCore.LOG_TAG
  
class AFApplication : Application() {
    // ...
    override fun onCreate() {
        super.onCreate()
        val conversionDataListener  = object : AppsFlyerConversionListener{
            override fun onConversionDataSuccess(data: MutableMap<String, Any>?) {
                // ...
            }
            override fun onConversionDataFail(error: String?) {
                Log.e(LOG_TAG, "error onAttributionFailure :  $error")
            }
            override fun onAppOpenAttribution(data: MutableMap<String, String>?) {
                // Must be overriden to satisfy the AppsFlyerConversionListener interface.
                // Business logic goes here when UDL is not implemented.
                data?.map {
                    Log.d(LOG_TAG, "onAppOpen_attribute: ${it.key} = ${it.value}")
                }
            }
            override fun onAttributionFailure(error: String?) {
                // Must be overriden to satisfy the AppsFlyerConversionListener interface.
                // Business logic goes here when UDL is not implemented.
                Log.e(LOG_TAG, "error onAttributionFailure :  $error")
            }
        }
        AppsFlyerLib.getInstance().init(devKey, conversionDataListener, applicationContext)
        AppsFlyerLib.getInstance().start(this)
    }

}

Github 링크

디퍼드 딥링킹(레거시 메서드)

디퍼드 딥링킹을 통해 앱이 열리면, onConversionDataSuccess의 페이로드는 딥링킹 데이터와 함께 어트리뷰션 데이터를 반환합니다.