如果用户使用我的意向游戏商店网址

时间:2016-09-17 09:21:36

标签: android install-referrer

我正在开发应用程序,建议应用程序。如果用户使用我的应用成功安装应用,那么他会在我的应用中获得奖励。 我正在获取有关" com.android.vending.INSTALL_REFERRER"的信息。接收者的行动提供了这个但没有取得成功...
所以请帮助我得到一些完整的例子或其他建议...

这是我的代码......

按钮单击事件

btnInstallApp.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent goToMarket = new Intent(Intent.ACTION_VIEW)
                    .setData(Uri.parse("market://details?id=com.idea.backup.smscontacts&referrer=tecksky"));
            startActivity(goToMarket);
        }
    });

的Manifest.xml

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

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

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".activity.MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <receiver
        android:name=".receiver.ReferrerCatcher"
        android:exported="true">
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER"></action>
        </intent-filter>
    </receiver>
</application>

</manifest>

ReferrerCatcher.java

public class ReferrerCatcher extends BroadcastReceiver {
private static String referrer = "";

@Override
public void onReceive(Context context, Intent intent) {
    referrer = "";
    Bundle extras = intent.getExtras();
    if (extras != null) {
        referrer = extras.getString("referrer");
    }
    Log.e("REFERRER : ", referrer);
   }
}

1 个答案:

答案 0 :(得分:0)

嘿,看看它是如何工作的我已经在我的应用程序中实现了这个并且对我很有效,所以我发布了你的推荐代码:

创建单独的类以接收参考:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import com.google.android.gms.analytics.CampaignTrackingReceiver;

public class CustomReceiver extends BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
          new CampaignTrackingReceiver().onReceive(context, intent);
          Bundle b= intent.getExtras();
             String referrerString = b.getString("referrer");
            // Log.e("bundle", "bundle= " + referrerString+ " " + referrerString.substring(11, referrerString.length()));
             SharedPrefManager.setPrefVal(context, Constants.REFERRAL, referrerString.substring(11, referrerString.length()));              

    }
}

此类将收到您必须保存的引用,就像我将其保存在SharedPrefrence中一样。当用户从Play商店安装应用时,此广播将会收到,并且在 "referrer" 中,您将获得有关哪个用户通过此用户链接下载应用的信息,然后您可以从该引荐来源键获取对推荐您的应用的用户有利。

在清单文件中添加接收者标记

  <receiver
            android:name="gcm.CustomReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER" />
            </intent-filter>
        </receiver>

从后端,您将从服务器端获得一个特定用户的链接,您将点击该游戏商店,然后点击

  

https://play.google.com/store/apps/details?id=com.example.app&referrer=utm_source=123456ref

基本上在您的接收器类中,您正在选择此utm_source,并且当用户在您的应用中注册时,您必须将其发送到服务器端。这意味着它将让我们知道从哪个引用生成了哪个id。

希望这会对你有所帮助。试试这个,让我知道。