【问题标题】:Android Install referral tracking uniquenessAndroid 安装推荐跟踪唯一性
【发布时间】:2016-02-02 09:47:30
【问题描述】:

我在我的应用中实施了安装推荐跟踪: https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#google-play-campaigns

我的推荐接收者:

    public class ReferrerReceiver extends BroadcastReceiver
{
    private static final ObservableChanged _observable = new ObservableChanged();

    //--------------------------------------------------------------------------
    public static Observable getObservable()
    {
        return _observable;
    }

    //--------------------------------------------------------------------------
    public static String getReferrer(Context context)
    {
        // Return any persisted referrer value or null if we don't have a referrer.
        return context.getSharedPreferences("referrer", Context.MODE_PRIVATE).getString("referrer", null);
    }

    //--------------------------------------------------------------------------
    public ReferrerReceiver()
    {
        Logger.log(null, "ReferrerReceiver.ReferrerReceiver()");
    }

    //--------------------------------------------------------------------------
    @Override public void onReceive(Context context, Intent intent)
    {
        Logger.log(context, "ReferrerReceiver.onReceive(Context, Intent)", intent);

        try
        {
            // Make sure this is the intent we expect - it always should be.
            if ((null != intent) && (intent.getAction().equals("com.android.vending.INSTALL_REFERRER")))
            {
                // This intent should have a referrer string attached to it.
                String rawReferrer = intent.getStringExtra("referrer");
                if (null != rawReferrer)
                {
                    // The string is usually URL Encoded, so we need to decode it.
                    String referrer = URLDecoder.decode(rawReferrer, "UTF-8");

                    // Log the referrer string.
                    Logger.log(context,
                        "ReferrerReceiver.onReceive(Context, Intent)" +
                        "\nRaw referrer: " + rawReferrer +
                        "\nReferrer: " + referrer);

                    // Persist the referrer string.
                    context.getSharedPreferences("referrer", Context.MODE_PRIVATE).
                        edit().putString("referrer", referrer).commit();

                    // Let any listeners know about the change.
                    _observable.notifyObservers(referrer);
                }
            }
        }
        catch (Exception e)
        {
            Logger.log(context, e.toString());
        }
    }

    //**************************************************************************
    protected static class ObservableChanged extends Observable
    {
        //----------------------------------------------------------------------
        @Override public boolean hasChanged()
        {
            return true;
        }
    }
}

但每次重复安装(卸载并安装在同一设备上)后,Play 商店都会将推荐人属性广播到我的应用程序。

为了快速测试,请通过此链接从 Play 商店(不是我的)安装此应用程序: https://play.google.com/store/apps/details?id=fr.simon.marquis.installreferrer&referrer=myReferrerValue

您将在每次首次启动重复安装(卸载并安装在同一设备上)时获得推荐值 = "myReferrerValue"。

我的问题是:

  1. 即使应用在同一设备上重复安装多次,Play 商店是否也会发送推荐广播?

  2. 每个设备不应该只广播一次引荐来源网址吗?

【问题讨论】:

    标签: android referrals


    【解决方案1】:
    1. 是的,每次安装应用程序时,Play 商店都会使用包含参数的链接发送引荐来源网址。

    2. 如果您关心唯一性,则需要一些后端来验证这一点。这就是例如adjust 的方式。推荐人存储在Receiver 中,并在将来的某个时间发送到后端。

    如果您认为它很有意义:Play 商店应用程序所做的唯一事情就是从 url 中获取引荐来源网址参数并将其委托回已安装的应用程序。这里基本不涉及逻辑。

    此外,Google 的开发人员不知道您是否对唯一性感兴趣,因此如果您愿意,他们不会阻止您多次计算安装量。 (AFAIK Play 开发者控制台中的统计信息面板确实过滤掉重复项,但它们仍会传送到您的应用程序)

    【讨论】:

    • 所以所有安装跟踪 sdk 都在自己定义唯一安装?如果有人将安装跟踪 sdk 假设从 Tune(tune.com) 更改为 adjust(adjust.com) 会发生什么,那么所有以前的用户都会变成新用户?
    • @mrYogi 是的。他们可能会提供一些迁移(毕竟这通常是一项付费服务​​),但我不知道。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-30
    • 2011-08-18
    • 2011-06-07
    • 2012-04-19
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    相关资源
    最近更新 更多