android - 首次安装后 appsflyer 未调用 onAppOpenAttribution

标签 android deep-linking appsflyer appsflyer-android-sdk

延迟深度链接不起作用。我正在使用 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 商店。看到应用后,我点击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安装,第一次打开能像安装后点击一样得到Attribution。

我哪里做错了?谢谢。

最佳答案

根据您的描述,您似乎没有将您的测试设备列入白名单,如下所述:https://support.appsflyer.com/hc/en-us/articles/207031996--Whitelisting-a-Test-Device

将测试设备列入白名单后,请确保在再次测试之前从手机中删除该应用程序。

如果不是这种情况(设备已列入白名单,但未返回非自然转化数据),请发送邮件至 support@appsflyer.com 打开支持票

关于android - 首次安装后 appsflyer 未调用 onAppOpenAttribution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46904232/

相关文章:

android - 在高于 4.4 的 Android 操作系统版本中,无法使用 Canvas 绘制线条

java - 两个正在盘旋的圆圈的动画方法是什么?

android - 如何使用 Target API 23 及更高版本通过 GPS 获取用户位置

ios - 点击我的应用程序的链接(关联域)后,如何检查用户来自哪个应用程序?

ios - Swift iOS 中动态链接 Web URL 查询项为空

android - 当应用程序依赖于 AppsFlyerLib 时,Robolectric 单元测试失败并出现 NoClassDefFoundError

java - 如何在按钮中使用模数并设置点击限制?

android - 默认情况下,应用程序链接不会在 Android 12 中打开。可能的 SHA256 问题

ios - AppsFlyer GoogleTagManager 集成 - 不同数量的事件