标签: install-referrer

测试Google Play安装推荐人库

我希望从收听Play商店的INSTALL_REFERRER意图迁移到使用新的Google Play安装引荐库.

我很难找到一种方法来测试这个新的库,而无需先将我的应用程序添加到Play商店.通过BroadcastReceiver监听INSTALL_REFERRER意图时,我可以通过活动管理器手动发送广播来模拟行为进行测试.也就是说,我可以按照Google的这些步骤进行测试.

是否还有一种方法可以测试这个新库而无需先将我的应用程序放在Play商店中?

java android google-analytics google-play install-referrer

28
推荐指数
3
解决办法
1832
查看次数

为什么Google播放服务依赖项会自动添加com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE权限

最近我将谷歌播放服务依赖版更新到15.0.0它自动添加了以下权限.

我不是不需要此Google Play Referrer API权限

<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />
Run Code Online (Sandbox Code Playgroud)

我可以删除此权限

    <uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" 
tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)

但我需要知道哪个依赖项需要BIND_GET_INSTALL_REFERRER_SERVICE权限,依赖项是否真的需要此权限.

App Level Gradle

dependencies {

     ext {
        support_library_version = '27.0.2'
        google_play_services_version = '15.0.0'
    }

    implementation 'com.android.support:multidex:1.0.3'
    implementation "com.android.support:appcompat-v7:${support_library_version}"
    implementation "com.android.support:design:${support_library_version}"
    implementation "com.android.support:recyclerview-v7:${support_library_version}"
    implementation "com.android.support:cardview-v7:${support_library_version}"

    implementation "com.google.android.gms:play-services-analytics:${google_play_services_version}"
    implementation "com.google.android.gms:play-services-gcm:${google_play_services_version}"
    implementation "com.google.firebase:firebase-messaging:${google_play_services_version}"
    implementation "com.google.firebase:firebase-core:${google_play_services_version}"
    implementation "com.google.firebase:firebase-ads:${google_play_services_version}"

}
Run Code Online (Sandbox Code Playgroud)

项目级别Gradle

dependencies {
    classpath 'com.android.tools.build:gradle:3.1.1'
    classpath 'com.google.gms:google-services:3.2.0'
  }
Run Code Online (Sandbox Code Playgroud)

注意:对于推荐人跟踪我已经在使用谷歌分析

<service   android:name="com.google.android.gms.analytics.CampaignTrackingService"
            android:enabled="true"
            android:exported="false" />
Run Code Online (Sandbox Code Playgroud)

android google-play-services android-gradle-plugin install-referrer

19
推荐指数
1
解决办法
2万
查看次数

在Play商店中正确跟踪安装推介

我有一个简单的任务:我想跟踪应用安装的引用ID并将其传递给后端.

我做了什么:我创建了一个带有额外参数的链接,referrer并将其附加到邀请链接.当它打开时,javascript检测浏览器是否是Android移动浏览器,然后准备intent并发出重定向到该意图.在准备意图时,referrer字段从网址中提取并附加到intent以下内容中:

intent://scan/#Intent;scheme=com.example.android;package=com.example.android&referrer=4;end
Run Code Online (Sandbox Code Playgroud)

这是我的代码BroadCastReceiver:

public class InstallReferrerReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        TinyDB tinyDB = new TinyDB(context);
        String referrer = intent.getStringExtra("referrer");
        tinyDB.putString(AppConstants.REFERRAL_ID, referrer);
        tinyDB.putBoolean(AppConstants.REFERRAL_SENT, false);
    }
}
Run Code Online (Sandbox Code Playgroud)

所以,我期望在这里得到的价值referrer4基于上述intent.但我得到的价值就是这个字符串utm_source=google-play&utm_medium=organic

我做错了什么,如何修复它以获得正确的referrer字段值?

编辑

referrer安装应用程序后,我在创建URL或从字段中提取值时没有任何问题.

通过点击任意按钮或直接在移动浏览器中打开邀请链接后,我使用上述内容"如果已经安装了应用程序,请打开应用程序,或者在Play商店应用程序上打开应用程序页面以供用户安装".

问题是,我应该如何通过上述意图将referrer字段的值从邀请链接传递到Play商店应用,以便Play商店收到此值并在安装时将其传递给应用.

android android-intent install-referrer android-broadcastreceiver

15
推荐指数
2
解决办法
1万
查看次数

如何在应用商店中获取 iOS 应用安装推荐链接?

我正在构建电子商务平台。这包括网站、Android 应用程序和 iOS 应用程序。

我已经使用 Google Play Install Referrer API 在 Android 上实现了.

我搜索了 iOS 解决方案,但没有得到任何合适的解决方案。

我该怎么办?

谢谢。

app-store itunes-store ios install-referrer

11
推荐指数
1
解决办法
5369
查看次数

com.android.vending.INSTALL_REFERRER不起作用

我最初问过这个问题,关于在安装时通过市场链接将参数传递到我的应用程序.

每个人似乎都在说BroadcastListener用这个intent-filter动作来创造一个com.android.vending.INSTALL_REFERRER.关于这一点的所有文档似乎暗示这是Google Analytics的功能(文档在v1中,但我现在只能下载v2 SDK ...这就是我正在使用的内容).我无法通过这些链接传递数据.我有我的完整清单和我的广播听众.我已将谷歌分析包括在内,以防万一.

它根本不起作用.我的广播监听器永远不会被调用,日志中不会打印出任何内容.救命!

AndroidManifest.xml中

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.robotsidekick.webbrowser"
      android:versionCode="4"
      android:versionName="4.0">

<uses-sdk android:minSdkVersion="17"/>

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

<application
    android:label="@string/app_name"
    android:icon="@drawable/ic_launcher">

    <activity
        android:name="WebBrowser"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

    <receiver
        android:exported="true"
        android:name="com.robotsidekick.webbrowser.InstallReceiver">
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
    </receiver>

</application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

广播听众

public class InstallReceiver extends BroadcastReceiver
{
    private static final String TAG = "InstallReceiver";

    public void onReceive(Context …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver google-play install-referrer

10
推荐指数
1
解决办法
1万
查看次数

install_referrer 意图弃用和更新库

我收到了来自谷歌的电子邮件:

我们最近宣布将弃用 install_referrer 意图广播机制。由于您的一个或多个应用使用此 Intent 来跟踪引荐,我们希望确保您在 2020 年 3 月 1 日之前进行切换。在此日期之后,Play 商店应用的新版本将不再在应用安装后广播 install_referrer Intent。

我在 Stack 上检查了这个答案:install_referrer intent deprecation并遵循等待 Firebase 库更新的建议,现在我将我的项目更新到最新版本,但仍然在 package="com.google.firebase 下的清单合并中进入 INSTALL_REFERRER。 measurement_impl"

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.firebase.measurement_impl" >

<uses-sdk android:minSdkVersion="14" />

<!-- Required permission for App measurement to run. -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />

<application>
    <receiver
        android:name="com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver"
        android:enabled="true"
        android:exported="true"
        android:permission="android.permission.INSTALL_PACKAGES" >
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
    </receiver>
</application>
Run Code Online (Sandbox Code Playgroud)

这里是我在项目中使用的 firebase 版本

    implementation 'com.google.firebase:firebase-messaging:20.1.0'
    implementation 'com.google.firebase:firebase-analytics:17.2.2'
    implementation 'com.google.firebase:firebase-crash:16.2.1'
    implementation …
Run Code Online (Sandbox Code Playgroud)

android deprecated firebase android-studio install-referrer

10
推荐指数
1
解决办法
607
查看次数

Android - Google Analytics INSTALL_REFERRER未触发

我正在尝试在谷歌分析中跟踪我的广告系列,我已按照教程但它无法正常工作:(这是我的清单:

    <service android:name="com.google.android.gms.analytics.CampaignTrackingService" />
    <receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
        android:exported="true"
        android:permission="android.permission.INSTALL_PACKAGES">
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)

当我尝试测试这个并通过控制台发送此命令时它什么都不做:

$ shell am broadcast -a com.android.vending.INSTALL_REFERRER -n "MY_PACKAGE_NAME/com.google.android.gms.analytics.CampaignTrackingReceiver" --es referrer "utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign"
Run Code Online (Sandbox Code Playgroud)

我唯一看到的是,如果我发送两次它说:

Ignoring duplicate install campaign
Run Code Online (Sandbox Code Playgroud)

所以我猜应用程序会收到意图,除此之外,当我发送意图时应用程序会唤醒.

教程说该应用程序将记录(如果它是正确的)

GAv4    : Received installation campaign: source=testSource
Run Code Online (Sandbox Code Playgroud)

如果有任何问题:

Thread[GAThread,5,main]: No campaign data found.
Run Code Online (Sandbox Code Playgroud)

但就我而言,它什么也没说:(

有人可以帮帮我吗??? 谢谢!!

android google-analytics install-referrer

9
推荐指数
1
解决办法
1311
查看次数

安装referrer无法在某些redmi设备中运行

我需要跟踪我的Android应用程序的安装引荐.它在大多数设备中都能正常工作.但在Redmi设备中,广播没有被触发.我用Redmi Note 4测试了它

我已经通过ADB和Play商店测试了它.两者都不会在Redmi设备中触发广播

下面是我正在使用的代码

public class ReferrerReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
           Log.d("Broadcast", "RECEIVED!");
        }
}


<receiver
    android:name=".receiver.ReferrerReceiver"
    android:exported="true">
    <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER"/>
    </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

请建议是否有人遇到同样的问题,并得到一些解决方案?

android google-analytics android-studio install-referrer android-broadcastreceiver

9
推荐指数
1
解决办法
881
查看次数

安装 Referrer Library v1.1 添加权限

将 Install Referrer Library 从 v1.0 更新到 v1.1 添加了以下权限:

WRITE_EXTERNAL_STORAGE

READ_EXTERNAL_STORAGE

READ_PHONE_STATE

这些权限不存在于 Install Referrer Library manifest.xml 中:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.installreferrer" >

    <uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />

    <application />

</manifest>
Run Code Online (Sandbox Code Playgroud)

来源:https : //mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.1

为什么将这些权限添加到合并的清单中?

android install-referrer

9
推荐指数
2
解决办法
1267
查看次数

解析失败:Lcom/google/android/aidl/BaseStub;

我更新了

implementation 'com.android.installreferrer:installreferrer:X'   
Run Code Online (Sandbox Code Playgroud)

1.1.22.0

然后开始收到此错误:

Process: com.tomatedigital.lottogram, PID: 13424
    java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/aidl/BaseStub;
        at com.android.installreferrer.api.InstallReferrerClientImpl.startConnection(InstallReferrerClientImpl.java:36)
        at com.tomatedigital.lottogram.app.App.saveReferralInfo(App.java:221)
        at com.tomatedigital.lottogram.app.App.onCreate(App.java:102)
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1182)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6460)
        at android.app.ActivityThread.access$1300(ActivityThread.java:219)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Run Code Online (Sandbox Code Playgroud)

代码没有从上一个版本改变(工作正常)

final InstallReferrerClient mReferrerClient = InstallReferrerClient.newBuilder(this).build();
        try {
            mReferrerClient.startConnection(new InstallReferrerStateListener() {
                public void onInstallReferrerSetupFinished(int responseCode) {
                     //do stuff
                }

                @Override
                public void onInstallReferrerServiceDisconnected() {

                }
            });
        } catch (Exception e) {
            FirebaseCrashlytics.getInstance().recordException(e);
             

        }
    }
Run Code Online (Sandbox Code Playgroud)

我正在使用 android …

android install-referrer

9
推荐指数
0
解决办法
366
查看次数