2014-12-15 18 views
11

Uygulamamın yükleme kaynağını bilmek için INSTALL_REFERRER kullanıyorum bir Android uygulamasında çalışıyorum. Bunun için ilk Google Analytics Install_Referrer niyet filtresini ve kendi özel ürünlerimden birini kullanıyorum.Tek bir Android uygulamasında iki kez INSTALL_REFERRER alabilir miyiz?

Niyet filtresi com.android.vending.INSTALL_REFERRER ile iki yayın alıcı girişine sahip olmak mümkün mü?

Google Analytics Alıcı

<receiver 
    android:name="com.google.analytics.tracking.android.CampaignTrackingReceiver" 
    android:exported="true" > 
    <intent-filter> 
     <action android:name="com.android.vending.INSTALL_REFERRER" /> 
    </intent-filter> 
</receiver> 

My Custom Yayın Alıcısı.

<receiver 
    android:name="com.xyz.broadcastreceiver.ReferrerCatcher" 
    android:exported="true" > 
    <intent-filter> 
     <action android:name="com.android.vending.INSTALL_REFERRER" /> 
    </intent-filter> 
</receiver> 
+0

https://mixpanel.com/help/questions/articles/how-can-i-use-multiple-install-trackers-with-the- android-library –

+0

Yukarıdaki makalede yalnızca 2 veya daha fazla özel alıcıya sahip olduğunuzda, örneğin Google Analytics yayınını yürütmek üzere, diğeri de diğer yayınları ele alacak şekilde çalışıyor. Ancak sizin durumunuzda, yalnızca Google Analytics’ten yayının işlenmesi gerekir. Yani, bir yayın alıcısı yeterlidir. – Harry

cevap

2

Hayır, iki Yükleme Yönlendiricisi yayın alıcımız yok. Bunun için Google Analytics Kaynak takibini ve kendi şeylerimi elde etmek için kendi özel yayın alıcımı oluşturdum. ReferrerCatcher yayın alıcısı olarak

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

public class ReferrerCatcher extends BroadcastReceiver { 
    public static final String TAG = InstallReceiver.class.getCanonicalName(); 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     // Google Analytics 
     new CampaignTrackingReceiver().onReceive(context, intent); 

     Log.d(TAG, intent.getExtras().getString("referrer"); 
     // my stuff here 
    } 
} 
+0

bir referrerString değerleri yazdırmak/kaydetmek için bir yol var mı? Ayrıca, app.Thanks bir geri gönderme gönderme hakkında herhangi bir bilgi verebilir misiniz – onexf

1

Ben benzer bir uygulamada çalışıyoruz ve bazı araştırma yaptıktan sonra ben sadece görevden alabileceğini bulundu Google Analytics Alıcı (o şey yapmaz gibi) ve bunun yerine kendi özel alıcısını kullanın.

public enum TrackerName { 
    APP_TRACKER, // Tracker used only in this app. 
    GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking. 
    ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company. 
} 

HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>(); 

synchronized Tracker getTracker(TrackerName trackerId) { 
    if (!mTrackers.containsKey(trackerId)) { 
     GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); 
     Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker("UA-xxxxxxxx-1") 
       : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker) 
       : analytics.newTracker("UA-xxxxxxxx-1"); 
     mTrackers.put(trackerId, t); 
    } return mTrackers.get(trackerId); 
} 

// Get tracker. 
Tracker t = getTracker(TrackerName.APP_TRACKER); 

// Set screen name. 
t.setScreenName("some string"); 

// Send a screen view. 
t.send(new HitBuilders.AppViewBuilder().build()); 

DÜZENLEME: Kodun altında

benim AndroidManifest.xml yayın alıcısını beyan gösterir:

Ve tabii uygulamanızı yine kodunun altına uygulayarak Google Analytics veri göndermek olabilir
<!-- Used for Google Play Store Campaign Measurement-->; 
<service android:name="com.google.android.gms.analytics.CampaignTrackingService" /> 
<receiver android:name=".app.service.CustomReceiver" 
    android:exported="true"> 
    <intent-filter> 
     <action android:name="com.android.vending.INSTALL_REFERRER" /> 
    </intent-filter> 
</receiver>