7

Я внедрил Измерение кампании Google Analytics в соответствии с this guide. Затем я хочу проверить, все ли работает хорошо, следуя this guide.Android - Использование Google Analytics v4 Измерение кампании

Я добавил их на AndroidManifest.xml:

<meta-data android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 
<meta-data android:name="com.google.android.gms.analytics.globalConfigResource" 
     android:resource="@xml/global_tracker" /> 

<!-- Used for Google Play Store Campaign Measurement-->; 
<service android:name="com.google.android.gms.analytics.CampaignTrackingService" /> 
<receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver" 
    android:exported="true"> 
    <intent-filter> 
     <action android:name="com.android.vending.INSTALL_REFERRER" /> 
    </intent-filter> 
</receiver> 

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

И положить их на MainActivity.java:

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); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    GoogleAnalytics.getInstance(this).getLogger().setLogLevel(Logger.LogLevel.VERBOSE); 

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

    // Set screen name. 
    t.setScreenName("Test Track"); 

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

Когда я запускаю ниже команды:

adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n com.example.gatestapp/com.google.android.gms.analytics.CampaignTrackingReceiver --es "referrer" "utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign" 

Я получил этот ответ :

Broadcast completed: result=0 

и это на мой LogCat:

I/GAV4﹕ Thread[GAThread,5,main]: Campaign found: utm_source=testSource 

Но я не имею ни малейшего представления, как собрать utm_source в строку, так Я могу получить значение «testSource».

Итак, я попытался с помощью настраиваемого приемника:

public class CustomReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     handleIntent(context, intent); 
     Log.d("YES", "IT WORKS!!"); 
     new CampaignTrackingReceiver().onReceive(context, intent); 
    } 

    // Handle the intent data 
    public void handleIntent(Context context, Intent intent) { 
     String referrer = intent.getStringExtra("referrer"); 
     Log.d("YEES", "IT WORKS!!!"); 
    } 
} 

изменил мою метку приемника на AndroidManifest.xml к этому:

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

и изменить ADB команды оболочки с этим:

adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n com.example.gatestapp/.app.service.CustomReceiver --es "referrer" "utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign" 

Передача была успешной, но моя CustomReceiver ничего не ловит! Ничего из «YES» или «YEES» в Logcat. Также в моей Google Analytics не обнаружено никакого хита. Что-то не так с моим методом? Как мне собрать referrer Дополнительные услуги?

EDIT:

Я успешно собрать ссылающейся статистов с помощью SharedPreferences. Однако, когда я публикую свое приложение в Play Маркете, referrer добавляет, кажется, отсутствует. Я уверен, что все сделал правильно, поскольку использовал URL Builder. Кроме того, я попытался продемонстрировать некоторые приложения, например, в this tutorial, но он не работает. Мое устройство не получает никаких дополнительных услуг.

Я делаю неправильный подход? Или я что-то пропустил?

ответ

3

Во-первых, ваше имя пакета было «com.example.gatestapp»? потому что это то, что вы написали в команде adb. Во-вторых, вы разместили свой «app.service.CustomReceiver» перед «CampaignTrackingReceiver» в манифесте?возможно, намерение является перехватом CampaignTrackingReceiver, а не вашим получателем.

Я secceeded получить refferels в обычае транслируемые:

Bundle extras = intent.getExtras(); 
String referrerString = extras.getString("referrer"); 
1

я найти вас вопрос очень полезным для репликации этой функции.

Проблема заключается в том, чтобы быть на имя пакета, я выполнил точно такую ​​же процедуру.

android_manifest.xml

<receiver 
     android:name="co.tpaga.poc.referer.poc_installreferer.CustomInstallRefererReceiver" 
     android:enabled="true" 
     android:exported="true"> 
     <intent-filter> 
      <action android:name="com.android.vending.INSTALL_REFERRER" /> 
     </intent-filter> 
    </receiver> 

АБР команда:

echo 'am broadcast \ 
-a com.android.vending.INSTALL_REFERRER \ 
-n "co.tpaga.poc.referer.poc_installreferer/co.tpaga.poc.referer.poc_installreferer.CustomInstallRefererReceiver" \ 
--es "referrer" \ 
    "utm_source=test_source&utm_medium=test_medium&utm_term=test_term&utm_content=test_content&utm_campaign=test_name&tappsi_uuid=04442-123123-213213-2323"; \          
exit' | ./adb shell 

А выход LogCat является:

03-22 21:58:04.469 22340-22340/co.tpaga.poc.referer.poc_installreferer D/YEES: IT WORKS!!!utm_source=test_source&utm_medium=test_medium&utm_term=test_term&utm_content=test_content&utm_campaign=test_name 
03-22 21:58:04.469 22340-22340/co.tpaga.poc.referer.poc_installreferer D/YES: IT WORKS!! 
03-22 21:58:04.477 22340-22394/co.tpaga.poc.referer.poc_installreferer D/GAv4: Received installation campaign: content=test_content, keyword=test_term, medium=test_medium, name=test_name, source=test_source 
Смежные вопросы