Firebase Audiences Not Working Properly? - firebase

We are using Firebase Analytics on our Android App. We've created an audience called Uninstallers(who sends app_remove event more than 0 times) to make it possible to run remarketing campaigns for users who uninstalled our app. But we have realized that the Uninstallers audience does not include every user who sent app_remove event. What is wrong with Firebase Analytics?

Audience definitions are fetched from the server and evaluated on the device. There are multiple reasons: Audience results may not correspond to the number of events. The audience number depends on multiple factors (mostly number of devices). If you install and uninstall the app, it may not be the same with different users due to other factors. So you may see 33 events, but some might come from the same devices. Another reason may be at the time the event is uploaded, the newer audience definition has not been fetched so the audience result is not evaluated and sent to the server.

Related

Firebase Limitation overcome in GA

In Firebase, It consists of several ​events ​which are sent along with additional ​key parameters​, some of those events contain around 30 key parameters and even more.
For Google Analytics this is not an issue since an event can be set up to be sent with 200 custom dimensions, nevertheless we are now required and forced by Google to use ​Firebase for apps, Firebase has a limitation of 25 parameters per event.
How do we proceed in case we only care about Google Analytics data.
Based on the solution of the above, what would happen in Firebase events?
Is there a way to have the events sent to Google analytics as well as Firebase ​without
causing any changes in Google Analytics? ​If so, how!?
Some of the events are reaching Firebase but not Google Analytics,
what could possibly be the reason, how should someone start an investigation?

Firebase Cloud Messages with Analytics and user properties

I'm using Firebase Analytics and User Properties in my app to collect some data and to see how the users are using the app etc.
My app has both Free Version and Pro version. Before hire the Pro version, the user can use the Pro Version as a Trial of 1 month. When the user starts the Free Trial, I'm creating a event named "started_free_trial" and with this event I'm sending a "created_at" event attribute equal to System.currentTimeInMillis().
Now I want to send the cloud notifications from the Firebase console to the users who are using the trial period of Pro version at intervals of 15 days, 25 days and 30 days from the free trial start.
So here are the points what i want to do exactly
Create a Audience of users who started the Trial 15, 25 and 30 days ago. Can I do that? As Firebase provides an option to create audiences but I don't know how to create such type of audience to filter according to my requirement.
I want to send notification to that above created audiences.
I need your help to complete/perform above 2 points.
Looking for positive response.
Thanks
You can't really create an audience based on time the user started using your app, since the audiences are sticky, once a user is in the audience she will remain there forever.
However, instead of targeting to an audience, you can use user property directly to target your notification to users that registered after certain time or before certain time.
Just make you app to store the first start time to user property and the use that as the condition. You can also create other relatewd conditions and combine them.

Firebase RemoteConfig and conditions with audience

In Firebase I am trying to set up some RemoteConfig parameters that should have different values based on the audience membership of the user that is logged in to an Android app we are developing.
The problem is that I am not allowed to set up a RemoteConfig condition based on audience. The option is greyed out.
Also, if I attempt to view events filtered by my Audience in Firebase
Analytics, no events appear.
My audience configuration in Firebase looks like this:
I understand that I my audience needs to be "reasonably well
developed" for them to be targetted by RemoteConfig
(https://support.google.com/firebase/answer/6317509?hl=en)
So I have followed this procedure to populate the audience:
Install app
app triggers "login" event with custom user property "chain_id" set.
uninstall app
reset advertising ID (as noted here https://stackoverflow.com/a/39183589/930653)
I have repeated this about 20 times and waited 48 hours.
The audience ("Minibuss") now lists 23 members:
But still, I can not use the audience as a condition in RemoteConfig,
or filter events in Firebase Analytics based on this audience.
I have tried looking at DebugView in the Firebase console, and I can see the user has the correct porperty "chain_id" set to 524, and so the event should match the audience.
Am I missing something?
This rule requires an App ID rule to select an app associated with
your Firebase project.
from https://firebase.google.com/docs/remote-config/parameters
You need to set Applies if "App" and choose your app, and then User audience option will be available.

The API gives me identical resource-id for two different channels

I am using Google Calendar API and push notifications to add channels and watch those channels for new events that come in. However while tracking weird behavior with mixing calendar accounts and events I found out that the resource ID that the calendar API responded with is the same across two accounts.
I am not sure if this is the culprit yet but this is the definition of resource-ID from docs
X-Goog-Resource-ID - An opaque value that identifies the watched
resource. This ID is stable across API versions.
In my mind this means it should be unique. Resource-ID and channel-ID are a requirement for stopping channels after all.
Examples of identical resource-ID from google for two different accounts
Account 1
X-Goog-Resource-State: exists
X-Goog-Channel-Token: 56cab177e67348d9a17c7502a4bad513
X-Goog-Resource-ID: 8KXz6YKChAJDYMTUo0SoKqV8_7E
X-Goog-Channel-ID: ++7mlvx6pEIsTNeMpMwNLw==
Account 2
X-Goog-Resource-State: exists
X-Goog-Channel-Token: 4535832bc5cf47f7ae3403c404023bfd
X-Goog-Resource-ID: 8KXz6YKChAJDYMTUo0SoKqV8_7E
X-Goog-Channel-ID: mL+HzrG8/EYc7zRZdQ+6yw==
My question is, is this normal behaviour?
The push notifications channel does not provide updates on individual events. It only tells you when the calendar (collection of events) changed.
To find changes to events, you want to look up syncing.
With syncing, you send in a token you got from the last time you synced to the List API endpoint. Instead of listing all events, it will list only the ones that changed since your last since request, represented by the sync token.
You can POST to the List API any time you want to get changes to events, but the push notifications you described help tell you when there would be a meaningful change to call the sync.

Firebase audience not being populated after several days

I'm attempting to build a Firebase audience for my Android app based on users who live in the United States. From what I've gathered, users' countries are a property that's gathered out of the box simply by integrating with the Firebase SDK. I built an audience in the analytics dashboard (criteria is user property -> country -> exactly matches 'US'), but I still haven't seen any users populated in the audience. It's been over 3 days since I created the audience, as I've read from several other questions that the audience is not populated retroactively.
I also tried creating a separate audience for users that are on the latest version of my app, and that audience hasn't gathered any users either since it was created.
Here's a screenshot of my audience configurations
Is there anything I could be missing here, or is this a potential bug in Firebase?
To become audience member a user needs to trigger an event and match all the conditions in the audience. Using country as the only condition will not automatically make all users that are in US members as there is nothing to trigger the audience evaluation.
Also audiences are sticky so your audience is users who are in US or have been in US at any time in the past since you defined the audience.
You have two options to make this work:
You don't need to define audience for location. Every event has the current location already and you can use location to target push notifications or change remote config values. Its redundant to define location as audience.
Add common event as audience trigger to your audience. You can use something like session_start. This will make audience evaluated every time "session_start" event is triggered. Once the user location matches and the user starts a session he/she will become a member. The membership is sticky so your audience is users who have started session while in the US not users who are in the US now. If you want users in the US now use option 1.

Resources