Campaign data not found. Using Google Analytics v4

I get this error "I / GAV4 (7915): Thread [GAThread, 5, main]: No campaign data found . Does anyone have an idea how I am wrong?

  • I am using Android 20 API level.
  • Google Analytics v4
  • Android device 4.2.2
  • Constants.TRACKER_MainActivity = "MainActivity"

Note. I masked a few elements below in the code.

here is my code. manifesto

<application android:name="com.xxx.yyy.utility.Trackers" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <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" /> <activity android:name="com.xxx.yyy.MainActivity" android:label="@string/app_name" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> 

init tracker

 <?xml version="1.0" encoding="utf-8"?> <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="TypographyDashes"> <integer name="ga_sessionTimeout">300</integer> <!-- Enable automatic Activity measurement --> <bool name="ga_autoActivityTracking">true</bool> <!-- The screen names that will appear in reports --> <screenName name="com.xxx.yyy.MainActivity">MainActivity</screenName> <!-- The following value should be replaced with correct property id. --> <string name="ga_trackingId">UA-YYYYYYY-X</string> </resources> 

Code in action - onCreate // Manage trackers for the application

 t = ((Trackers) getApplication()).getTracker(Trackers.TrackerName.GLOBAL_TRACKER); 

onResume // Submit your resume to analytics

 t.setScreenName(Constants.TRACKER_MainActivity); t.send(new HitBuilders.AppViewBuilder().build()); 

Tracker Application Class

 public class Trackers extends Application { 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>(); public synchronized Tracker getTracker(TrackerName trackerId) { if (!mTrackers.containsKey(trackerId)) { GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); if( trackerId == TrackerName.GLOBAL_TRACKER ) { mTrackers.put(trackerId, analytics.newTracker(R.xml.global_tracker)); } } return mTrackers.get(trackerId); } } 
+4
android google-analytics google-analytics-v4
source share
2 answers

OK this thing works fine. I was looking at an overview of apps in Google Analytics. Reports are not generated there in real time. Google Analytics has a separate tab for real-time reporting. Here we must see.

+1
source share

To do this, create a CustomReceiver and submit the google CampaignTrackingReceiver intent to GoogleAnalyticsv4.

With this you get CampaignFound in the logs

 public class CustomCampaignTrackingReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { new CampaignTrackingReceiver().onReceive(context, intent); } } 
0
source share

All Articles