I have an android game, which I integrated with Google Analytics. I "think" my phone doesn't have google services installed, but documentation says that it should work.
I have this in my manifesto
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
<!-- Optionally, register AnalyticsReceiver and AnalyticsService to support background
dispatching on non-Google Play devices -->
<receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
</intent-filter>
</receiver>
<service android:name="com.google.android.gms.analytics.AnalyticsService"
android:enabled="true"
android:exported="false">
</service>
<!-- Optionally, register CampaignTrackingReceiver and CampaignTrackingService to enable
installation campaign reporting -->
<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>
<service android:name="com.google.android.gms.analytics.CampaignTrackingService" />
but I get the log message complaining that :
AnalyticsService not registered in the app manifest. Hits might not be delivered reliably. See http://goo.gl/8Rd3yj for instructions.
And I don't get any hits on the console of google analytics.
Please help!
Related
Proceedings:
I am using push notifications to send message
Device is getting registered in Web-Engage
When I send a push notification to a device, Status on the console is
seen as 'ENDED'
Finally push notification is not received on device
Error on Console:
APP_ID_MISMATCH
Manifest web-engage code:
<receiver
android:name="com.webengage.sdk.android.WebEngagePushReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE"/>
<category android:name="${applicationId}"/>
</intent-filter>
</receiver>
<service android:name="com.bakmi.app.service.MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<meta-data
android:name="com.webengage.sdk.android.project_number"
android:value="$102353245239034"/>
<meta-data
android:name="com.webengage.sdk.android.key"
android:value="#string/ACCOUNT_ID"/>
<meta-data
android:name="com.webengage.sdk.android.auto_gcm_registration"
android:value="true"/>
<meta-data
android:name="com.webengage.sdk.android.location_tracking"
android:value="false"/>
<meta-data
android:name="com.webengage.sdk.android.debug"
android:value="true"/>
<service android:name="com.webengage.sdk.android.ExecutorService"/>
<service android:name="com.webengage.sdk.android.EventLogService"/>
<receiver
android:name="com.webengage.sdk.android.WebEngageReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE"/>
<action android:name="com.webengage.sdk.android.intent.ACTION"/>
<category android:name="com.bakmi.loyalty"/>
</intent-filter>
</receiver>
<receiver
android:name="com.webengage.sdk.android.InstallTracker"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER"/>
</intent-filter>
</receiver>
APP_ID_MISMATCH is fired in one of the two cases:
1. If the package name of the receiving app is not the one to which the push was sent from our server, i.e. your app's package-name is different from the package-name entered in WebEngage dashboard.
2. If the GCM/FCM token to which the push was sent is not tied to the server key i.e. sever key entered in WebEngage dashboard is not from the GCM/FCM project which is integrated in the App.
Apart from this, your FCM push integration seems to be mixed up with GCM push integration.
It is recommended to use FCM for push notifications and remove the following GCM related tags from your AndroidManifest.xml file.
<!-- remove these tags
<receiver
android:name="com.webengage.sdk.android.WebEngagePushReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE"/>
<category android:name="${applicationId}"/>
</intent-filter>
</receiver>
<meta-data
android:name="com.webengage.sdk.android.project_number"
android:value="$102353245239034"/>
<meta-data
android:name="com.webengage.sdk.android.auto_gcm_registration"
android:value="true"/>
-->
I have follow google official link :-
https://developers.google.com/analytics/solutions/testing-play-campaigns
My manifest look like :
<service
android:name="com.google.android.gms.analytics.AnalyticsService"
android:enabled="true"
android:exported="false" />
<receiver
android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<service
android:name="com.google.android.gms.analytics.CampaignTrackingService"
android:enabled="true" />
I also received the following message in logcat.
but when i released the application to playstore after integration, i am not able to track the downloads on google analytics.
I have used this link to download the application, created with Google Play URL Builder
https://play.google.com/store/apps/details?id=com.audecibel&referrer=utm_source%3Demail
Please Help if anybody used Campaign tracking in their applications.
Thanks in advance!!
I'm planning to add the notification functionality to my android app, I added GCM through Google Developer Console and I got the API key and I used this key at the server side to send notifications to devices, however my GCM receiver is not working I don't know why, moreover, GCM is not present in my google-services.json.Apart from this, I also sent my device token to the server and it's sent successfully.
I cannot find a clue why I'm not receiving my notifications.
Here's my manifest code:
<permission
android:name="com.example.android.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission
android:name="com.example.android.permission.C2D_MESSAGE" />
<!--Services-->
<!--Service for retrieving device token and sending it to the server side-->
<service
android:name=".utils.RegistrationIntentService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<!--Service for checking updated device token-->
<service
android:name=".utils.GCMInstanceIDListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID" />
</intent-filter>
</service>
<!--Service to catch notifications sent from the server-->
<service
android:name=".utils.GcmMessageHandler"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<!--Receivers-->
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.example.android.utils" />
</intent-filter>
</receiver>
I have been getting two errors in my log once a notification is received
EnhancedIntentService: Service took too long to process intent: com.google.android.c2dm.intent.RECEIVE App may get closed
EnhancedIntentService: binding to the service failed
There is NOTHING on Google of either of these messages or even EnhancedIntentService.
Relevant code:
<service
android:name="---.GcmMCIntentService"
android:exported="false" >
<intent-filter android:priority="10">
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service
android:name="---.GCMInstanceIDListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID" />
</intent-filter>
</service>
<service android:name="---.GCMRegIntentService"
android:exported="false" >
<intent-filter android:priority="5">
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
This is on a 8.0 emulator. Play Services 11.4.2
Let me know if I can show any other code. I just find it curious there is nothing on these error messages at all on S.O. or Google.
I did as the example
Hello World Android app
in my manifest
<?xml version="1.0"?>
<!-- Google Analytics required permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Optional permission for reliable local dispatching on non-Google Play devices -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:theme="#style/Theme.AppCompat"
android:name=".MyApp">
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version"/>
<activity
android:name=".MainActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Enable background dispatching to improve delivery on non-Google Play devices -->
<receiver
android:name="com.google.android.gms.analytics.AnalyticsReceiver"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH"/>
</intent-filter>
</receiver>
<service
android:name="com.google.android.gms.analytics.AnalyticsService"
android:enabled="true"
android:exported="false"/>
<!-- Enable Google Play Store Campaign reports -->
<receiver
android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
android:exported="true"
android:enabled="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER"/>
</intent-filter>
</receiver>
<service
android:name="com.google.android.gms.analytics.CampaignTrackingService"
android:enabled="true"/>
</application>
and I have the MyApp as normal but every time I run the app these messages appear and I cant see and thing in analytics/web/
07-22 17:19:47.506 20695-20695/? W/GAv4﹕ AnalyticsReceiver is not registered or is disabled. Register the receiver for reliable dispatching on non-Google Play devices. See [google link] for instructions.
07-22 17:19:47.546 20695-20695/? W/GAv4﹕ CampaignTrackingReceiver is not registered, not exported or is disabled. Installation campaign tracking is not possible. See [google link] for instructions.
07-22 17:19:47.546 20695-20722/? W/GAv4﹕ AnalyticsService not registered in the app manifest. Hits might not be delivered reliably. See [google link] for instructions.
FIXED
I dont know what happened I just took a rest and all things were fine