Good afternoon!
We’ve faced the problem when we decided to use flurry and firebase for our Android app analytics. It works well in general, except push-notification analytics. We send push notifications via firebase. They are fully automated and sent from our backend. To make things clear, the event has happened and from the backend, it goes to firebase - the title, the text, the picture, FCM user’s token. Push comes and everything’s alright.
But in Events, these pushes are not being tracked. However, Firebase has original events: notification_dismiss notification_open notification_receive
It turned out that events worked only on those pushes that were sent from FCM and it’s unbelievable! In other words: you write text manually and get the statistic but Google says: “you don’t need 90% of statistic for automated pushes”.
So my question is: What shall we do? How can we track automated pushes that are being sent from the backend? Which analytics allows to track push notifications that are being sent from FCM API?
Shall we change analytics for push notifications?
The automatically collected notification events (notification_dismiss notification_open notification_receive) only populate in the Analytics console when the notifications are sent via Notification console.
Push notifications sent through server are not captured as part of the automatically collected notification events.
Related
The goal I want to achieve for the app owner is to send FCM push notifications via web interface to the customers (already achieved) and to give the customers a view in my app, on which they can read all or at least the last 10 sent push messages. Is there any (REST) api in FCM which can be used to receive the sent push notifications and its content so I can display them in my Android fragment?
Unfortunately, there is no available API as of the moment to retrieve your GCM/FCM logs. However, there's been a recent improvement in the Firebase Notifications console where stats for messages sent using the FCM API is included in the Firebase Notification console stats.
The more details can be found from this answer and the blogpost.
I am trying to send a push notification when user is going to uninstall my Android app. My idea is to use Firebase Cloud Messaging and Google Analytics for Firebase Triggers. In order to be able to use triggers I have been marked "app_remove" event as conversion in Firebase Console of my app. It is possible send notifications using Firebase Cloud Messaging triggered by a Firebase function as described in this question, but when my app is uninstalled It will not be able to show incoming message from FCM as a push notification. It is possible to setup the incoming message to be displayed as push notification even my app is uninstalled?
It is possible to setup the incoming message to be displayed as push notification even my app is uninstalled?
Not possible.
When your app is uninstalled, the corresponding registration token tied to that specific app instance is also invalidated.
The registration token is what FCM uses to send messages to the corresponding device, if invalidated, FCM will no longer have any way to send messages to that device.
Is possible to send push notifications with firebase without using the console,I mean can I send a push notifications when some user makes some action in the app?
Is possible to send push notifications with firebase without using the
console
Yes you can use Firebase API
I mean can I send a push notifications when some user makes some
action in the app?
You can subscribe to a topic when user makes some action in the app
FirebaseMessaging.getInstance().subscribeToTopic("news");
and send a notification from Firebase web console or use Firebase API to all topic subscribers.
You can send a message to a topic from the Firebase Cloud Messaging API.
But this requires the use of your FCM server key, which means it should only be done from an app server. You should never embed your server key in the client-side app. This means that direct device-to-device notifications are not possible at the moment, you will always need an app server for that.
For a tutorial explaining one possible scenario, see: https://firebase.googleblog.com/2016/08/sending-notifications-between-android.html
I've implemented Firebase Cloud Messaging in my android app.
Is it possible to turn notifications off from my application settings screen?
It was possible with old GCM as we have broadcast GcmReceiver and we could handle it ourselves.
Now we have only FirebaseInstanceIdService and could handle it only when app is in foreground.
How we can handle it when app is in background?
Is it possible only to disable Firebase Cloud Messaging only for some category of notification inside app or this should be done on the server side?
You can manage whether or not notifications are displayed by always sending data messages from your app server. The Firebase console always sends notification messages, which are the types of messages that generate notifications automatically when your app is in the background. So if you want full control of when notifications are displayed use data messages which are only available from your app server, not yet from the Firebase console. See more on message types here.
I came with the solution to send request to the server if I need to switch on/off some type of notifications. And if send request to switch off some notification server will no longer trigger FCM server to send notification to the device
In the startup I'm currently working, we have developed a push server that enables the user to receive push notification when new content uploaded in our database.
Our system currently stores how many push are send and through Google analytics we can see how many people interact with the push notification, yet we would like to know how many people in total receive the push notification.
How can we count how many devices recevie the push? Which method could we use? As an example users unistall the app but we still have them stored on our database, or users may opt-out from the push through system settings (both ios and android)
Thanks for the help!
You can achieve it using same analytics by which you are able to identify how many people interacted with push using analytics. you will have to call your analytics function for pushRecieved in broadCastReciever for your GCM implementation.