How to implement Google campaign tracking system without using Google analytics ?
I am using mixpanel for tracking purpose
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