Search code examples
androidgoogle-analyticsanalyticsmixpanel

Google play campaign tracking without google analytics implementation android


How to implement Google campaign tracking system without using Google analytics ?

I am using mixpanel for tracking purpose


Solution

  • Got the answer and sharing for others Reference

    First have to create a broadcast receiver

    public class ReferalIntentReciever extends BroadcastReceiver {
        public static MixpanelAPI mixpanel;
    
        Context context;
    
        @Override
        public void onReceive(Context context, Intent intent) {
            mixpanel = MixpanelAPI.getInstance(context, "YOUR MIXPANEL TOKEN");
    
            // TODO Auto-generated method stub
    
            String referrerString = intent.getStringExtra("referrer");
           //sending to mixpanel
            try {
                JSONObject props = new JSONObject();
                props.put("utm_source", splitQuery(referrerString)
                        .get("utm_source"));
                props.put("utm_medium", splitQuery(referrerString)
                        .get("utm_medium"));
                if (splitQuery(referrerString).get("utm_campaign") != null) {
                    props.put("utm_campaign",
                            splitQuery(referrerString).get("utm_campaign"));
                }
                mixpanel.track("Referral Campaign", props);
                mixpanel.flush();
    
            } catch (Exception e) {
                e.printStackTrace();
            }
    
    
        }
    
        //getting each parameter 
    
        public static Map<String, String> splitQuery(String url)
                throws UnsupportedEncodingException {
            Map<String, String> query_pairs = new LinkedHashMap<String, String>();
            String[] pairs = url.split("&");
            for (String pair : pairs) {
                int idx = pair.indexOf("=");
                query_pairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"),
                        URLDecoder.decode(pair.substring(idx + 1), "UTF-8"));
            }
            return query_pairs;
        }
    }
    

    now have to set the receiver in manifest file

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

    Now the app is ready for receiving intents from play store after installation