appsflyer не вызывается onAppOpenAttribution после первой установки
Отложенный Deeplinking НЕ работает. Я использую appsflyer, Android 5.1.1, Android Studio 2.3.3
в build.gradle:
compile 'com.appsflyer:af-android-sdk:4.8.3@aar'
в приложении:
@Override
public void onCreate() {
super.onCreate();
AppsFlyerConversionListener conversionDataListener = new AppsFlyerConversionListener() {
@Override
public void onInstallConversionDataLoaded(Map<String, String> conversionData) {
Log.d(TAG, "onInstallConversionDataLoaded");
if (conversionData != null) {
Log.d(TAG, conversionData.toString());
Log.d(TAG, conversionData.keySet().toString());
Log.d(TAG, conversionData.values().toString());
}
}
@Override
public void onInstallConversionFailure(String errorMessage) {
if (errorMessage == null) {
Log.d(TAG, "null");
} else {
Log.d(TAG, errorMessage);
}
}
@Override
public void onAppOpenAttribution(Map<String, String> attributionData) {
Log.d(TAG, "onAppOpenAttribution");
if (attributionData != null) {
Log.d(TAG, attributionData.toString());
Log.d(TAG, attributionData.keySet().toString());
Log.d(TAG, attributionData.values().toString());
}
}
@Override
public void onAttributionFailure(String errorMessage) {
if (errorMessage == null) {
Log.d(TAG, "null");
} else {
Log.d(TAG, errorMessage);
}
}
};
AppsFlyerLib.getInstance().setDebugLog(true);
AppsFlyerLib.getInstance().init(AF_DEV_KEY, conversionDataListener);
AppsFlyerLib.getInstance().startTracking(this, "application");
}
в AndroidManifest.xml
<receiver
android:name="com.appsflyer.MultipleInstallBroadcastReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="detail"
android:scheme="prayer" />
</intent-filter>
</activity>
Все о коде это, я публикую приложение в Google Play Store. После того, как приложение можно увидеть, я нажимаю https://test5.onelink.me/B3qk?pid=test6&c=test7&af_dp=prayer%3A%2F%2Fdetail%2Ftest2&af_web_dp=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcn.renyuzhuo.testreferrer чтобы загрузить приложение, ошибка, я не могу получить атрибуты.
Самое первое открытое приложение, onInstallConversionDataLoaded
называется, и я вижу журнал
onInstallConversionDataLoaded
{af_message=organic install, af_status=Organic}
[af_message, af_status]
[organic install, Organic]
и если я нажму на URL после установки приложения, я вижу журнал:
onAppOpenAttribution
{af_android_url=https://play.google.com/store/apps/details?id=cn.renyuzhuo.testreferrer, af_deeplink=true, campaign=test7, media_source=test6, install_time=2017-10-24 06:21:29, af_status=Non-organic, path=/test2, scheme=prayer, host=detail}
[af_android_url, af_deeplink, campaign, media_source, install_time, af_status, path, scheme, host]
[https://play.google.com/store/apps/details?id=cn.renyuzhuo.testreferrer, true, test7, test6, 2017-10-24 06:21:29, Non-organic, /test2, prayer, detail]
Это не то же самое. И после того, как я прочитал документ https://support.appsflyer.com/hc/en-us/articles/207032176-Accessing-AppsFlyer-Attribution-Conversion-Data-from-the-SDK-Deferred-Deeplinking-. Я надеюсь, что установка по клику URL, при первом открытии можно получить атрибут как клик после установки.
Где я сделал не так? Спасибо.
1 ответ
Из вашего описания кажется, что вы не занесли в белый список свое тестовое устройство, как описано здесь: https://support.appsflyer.com/hc/en-us/articles/207031996--Whitelisting-a-Test-Device
После внесения белого списка в тестовое устройство убедитесь, что вы удалили приложение из телефона, прежде чем проводить тестирование еще раз.
Если это не так (устройство занесено в белый список, но данные о неорганическом преобразовании не возвращаются), пожалуйста, откройте заявку в службу поддержки по электронной почте support@appsflyer.com
Я также столкнулся с той же проблемой при использовании AppsFlyer с сегментом в нашем приложении. Вы тоже используете сегмент в своем приложении? Если да, то используяAppsFlyerConversionListener
прямо в вашем коде работать не будет. Вы должны использовать его через SDK оболочки сегмента, как описано здесь https://support.appsflyer.com/hc/en-us/articles/210041606. Вот пример кода, который объясняет, как мы можем использовать оболочку https://github.com/AppsFlyerSDK/AppsFlyer-Segment-Integration/tree/master/segmenttestapp/src/main/java/com/appsflyer/segment/app. Вы можете попросить разъяснений, если вам это непонятно.