Install referrer is not tracking on android web market

后端 未结 2 1908
野的像风
野的像风 2020-12-11 03:59

When installing an app via the Market app on a phone, the app will correctly receive the referrer information passed to it (as described here: http://code.google.com/mobile/

相关标签:
2条回答
  • 2020-12-11 04:40

    No, it is not possible to track install referrer from the web-based Google Play store. This is a known issue with the latest SDK.

    Google Play Campaign Tracking does not currently support web-to-device installs initiated from the web Play Store.

    0 讨论(0)
  • 2020-12-11 04:43

    Probably a little late here. Fortunately, this works for us to track installs that come from the web store.

    receiver class:

    public class OwnReceiver extends BroadcastReceiver {
    
    public static final String ACTION_UPDATE_DATA = "ACTION_UPDATE_DATA";
    private static final String ACTION_INSTALL_REFERRER = "com.android.vending.INSTALL_REFERRER";
    private static final String KEY_REFERRER = "referrer";
    
    public OwnReceiver() {
    }
    
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent == null) {
            Log.e("ReferrerReceiver", "Intent is null");
            return;
        }
        if (!ACTION_INSTALL_REFERRER.equals(intent.getAction())) {
            Log.e("ReferrerReceiver", "Wrong action! Expected: " + ACTION_INSTALL_REFERRER + " but was: " + intent.getAction());
            return;
        }
        Bundle extras = intent.getExtras();
        if (intent.getExtras() == null) {
            Log.e("ReferrerReceiver", "No data in intent");
            return;
        }
    
        MyApplication.setReferrerDate(context.getApplicationContext(), new Date().getTime());
        //Contro.setReferrerData(context.getApplicationContext(), (String) extras.get(KEY_REFERRER));
        MyApplication.setReferrerData(context.getApplicationContext(), (String) extras.get(KEY_REFERRER));
        LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent(ACTION_UPDATE_DATA));
    }
    }
    

    usage in MainActivity:

    private final BroadcastReceiver mUpdateReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
           someMethod(); //send received data to your method and use it your way
        }
    };
    

    someMethod where you're receiving the data:

     private void someMethod(){
        String referrerDataRaw = MyApplication.getReferrerDataRaw(getApplicationContext());
    
        if(referrerDataRaw.toLowerCase().contains(matchx.toLowerCase())){        
            Log.i("true",referrerDataRaw);
            Toast.makeText(getBaseContext(),"Install referrer found",Toast.LENGTH_SHORT).show();
            //postBack();
        }
        else {
            Log.i("false","no referrer found");
            Toast.makeText(getBaseContext(),"no referrer found",Toast.LENGTH_SHORT).show();
        }
    
    }
    

    Bonus This one if you're sending postbacks

    public void postBack() {
       // String postTest = "https://play.google.com/store/apps/details?id=com.neon.myApp&referrer=utm_source=someOne&utm_medium=cpr&utm_term=testytest";
        String referrerDataRaw = MyApplication.getReferrerDataRaw(getApplicationContext());
    
       // Toast.makeText(this, "raw : " + postTest, Toast.LENGTH_SHORT).show();
        String[] split  = referrerDataRaw.split("=");
        String end = split[split.length - 1];
    
        Toast.makeText(this,  AppConstant.lin + end, Toast.LENGTH_SHORT).show();
    
        StringRequest strReq = new StringRequest(Request.Method.POST,
                AppConstant.lin + end, new Response.Listener<String>() {
    
            @Override
            public void onResponse(String response) {
                Toast.makeText(getBaseContext(),"postback sent",Toast.LENGTH_SHORT).show();
    
            }
        }, new Response.ErrorListener() {
    
            @Override
            public void onErrorResponse(VolleyError error) {
    
            }
        });
    
        // Adding request to request queue
        MyApplication.getInstance().addToRequestQueue(strReq, tag_string_req);
    }
    

    Got most of the help from this kind soul on github https://github.com/SimonMarquis/Android-InstallReferrer

    0 讨论(0)
提交回复
热议问题