Firebase audience not being populated after several days - firebase

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.

Related

Firebase Remote-Config crash free users

I'm trying to display a "Rate Me" popup to most active users that haven't received crashes recently.
I can easily track how active an user is by using analytics and conditions, and setting a remote-config flag to true.
Is there a way to create an audience or a condition to select users without crashes?
Yes, you can do this by creating an exclusion group in your Analytics audience that excludes users who have logged an app_exception event within a specific timeframe.
The best way to do this, assuming you're already creating an audience for the active users you want to target, is to add on the exclusion group to that audience as well to remove users who have experienced a crash recently.
See attached screenshot for an example from the Firebase console.

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.

Firebase Audiences Not Working Properly?

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.

Hierarchy of Google Analytics for Multiple Builds of Same App

I am setting up Google Analytics Accounts for a Product which have multiple builds as frontend for same user base.
So we have one Product called X and have:
Web Build
Mobile Web
Android App 1
iOS App 1
Android App 2
iOS App 2 6.
The main point is identical APIs and User base is used in all platforms and apps. So if we have a user John Doe he can login in any of the web or apps.
We want to extract following information from Google Analytics.
Under User ID feature want, sessions aggregations of that user around all build and apps, but identifiable. So I can know that user John login to web yesterday and used mobile app today.
Each user belong to a customer (company) in our system. So want to segregate all information based on companies.
I already have achieved point 2 by creating a custom dimension in Google Analytics and believe that's the best way to do it.
Now need suggestions from Gurus on how to acheive point 1 using Google Analytics.
Either use single account and single property for all builds and apps
If yes, then how to identify those apps and builds in sessions
If I use multiple properties/apps in GA account then how to aggregate user sessions among all?
Looking forward to hear how guys around hand or should have handled this scenario. Cheers!
This question is extremely broad, IMO any answer your going to get is going to be primarily opinion based. So here is my opinion and a little extra info to boot.
The first issue you are going to have is that there is a difference between Mobile google analytics accounts and web analytics accounts. The two do not mix. Mobile analytics accounts insert screen views with a screen name. While web accounts insert PageViews with a document location.
There is no way to analyze between two different Google analytics web properties. Unless you intend your android and ios apps to run as websites and send it like its a webpage its not going to work. You could potentially download the data into your own system or big query and analyze it there. Comparing your custom dimension to see what the users have done differently. I would wonder at the quality of the analysis you will get as there will be no real way for you to compare the data and match it up beyond using your custom dimensions user id and possibly date.
I am adding this because I am not sure what your saving in your custom dimension.
The second issue you are going to have is tracking. Google analytics TOS does not allow you to send any identifiable information to Google.
The Analytics terms of service, which all Analytics customers must adhere to, prohibits sending personally identifiable information (PII) to Analytics (such as names, social security numbers, email addresses, or any similar data), or data that permanently identifies a particular device (such as a mobile phone’s unique device identifier if such an identifier cannot be reset).
You could for example send your companies customer id for John as a user_id but user_id is an internal valuable used for internal processing this is not something you can extract out via the api.
The User ID enables the association of one or more sessions (and any
activity within those sessions) with a unique and persistent ID that
you send to Analytics.
To implement the User ID, you must be able to generate your own unique
IDs, consistently assign IDs to users, and include these IDs wherever
you send data to Analytics.
For example, you could send the unique IDs generated by your own
authentication system to Analytics as values for the User ID. Any
engagement, like link clicks and page or screen navigation, that
happen while a unique ID is assigned can be sent and connected in
Analytics via the User ID.
The best you could do would be to create a custom dimension and send that with every hit username=johnscustomerId. Which you appear to have already done. This is what I have done in the past and it works perfectly well.

Resources