In-app messaging and Targeting users by audience/User properties - firebase

I would like to run a new firebase in-app messaging compaign based on a new user propertie that I just set.
I would like to know, if targeting a specific dynamic audience based on this propertie, will include also users that will become part of it in the future depending on the running period of the compaign, or should I launch a new compaign each time to cover them.
thanks

Related

Updating user properties in Firebase takes too long

I am using firebase for my mobile Android and iOS app and I want to send push notifications based on specific user properties that I set (push notifications topics don't work for my use case).
So now when I set a user property in via the app it takes forever for that change to be propagated. For example, I do have a property club which was set to a value x. I can successfully send push notifications to those users. Now when I change the value to club = y and this change will take forever to go through. Which means that all notifications sent to club = x will still be received on those devices.
To set user properties I use the firebase_analytics plugin for flutter as follows:
FirebaseAnalytics analytics = FirebaseAnalytics();
analytics.setUserProperty(name: 'club', value: 'some value')
Since I am using the user properties to set notification settings this delay is not acceptable. Does anyone know how to make this work with firebase? Or are there any guarantees at least after which amount of time these user properties get updated?
I don't want to use other services such as OneSignal etc. but stay in the firebase ecosystem completely if possible.
Per the Analytics doc
Note: Once the property is registered, it can take several hours for data collected with the property to be included in reports. When the new data is available, the user property can be used as a report filter or audience definition.
Which is what I assume is the cause for your delay.
Topics would be the way to go, but since as you mentioned it is not viable, you could set custom claims for the user and filter it that way as mentioned here but performance might not be great since you have to retrieve all your users first.
You could create a club collection in Firestore and for each clubName document have a toNotify subcollection containing the userIds as document name. In this context users would remove themselves from the previous clubName and create a new doc in the newClubName.
Keep in mind this has the potential of causing quite a lot of read operation depending on the frequency you send notifications and the size of the your userbase.

Firebase Analytics | Possibility of choosing different configuration(JSON) based on selection of value from dropdown

I have worked with Firebase Analytics for quite an amount of time and had enough knowledge to integrate Single/Multiple Firebase projects based on the build type and target.
But now, I want to know, Is there any possibility of choosing the different configuration(JSON file) based on the selection of the value from a drop-down
For Instance, After the Application (development build type) is installed and on the login page, I have a drop-down to choose a specific country and based on my selection, Can I choose/configure firebase project ?
I have been trying in Google for few days but still, I haven't seen anything relative to my requirement.
Can Anyone please let me know,Is there any possibility of configuring the firebase project/set up based on drop down values once the Application is installed with specific build type/target ?
Thanks

User appearing in two mutually exclusive experiments in firebase a/b testing

In Firebase for iOS I’m running two tests (#2 and #3) with the same target action, 'do N'.
I have created an Audience "Fans" to use as a condition.
Fans = users who have done N at least once in the previous app version.
Test#2 targets 100% users in the audience "Fans".
Test#3 targets 100% users NOT in the audience "Fans".
From the docs we know that users are attached to audiences permanently
Specifically, users become permanent members of an audience after they are assigned to it.
So I would expect that users in the test#2 and test#3 do not intersect. However, bigquery shows that sometimes an event "do N" has corresponding user property as "firebase_exp_2" and "firebase_exp_3" at the same time – https://www.dropbox.com/s/2yyqcelbf8dryvc/Screenshot%202018-06-09%2017.49.33.png
How can this be possible?
Moreover, the remote config options are not the same for these experiments. How do I know, which variant a user actually has?
Thanks in advance
As far as I know, you should now use user audiences in a/b test as it takes a lot of time for a user to become a part of audience. Also in your case, a user can be in no audience (and be part of test2) and then become a member of your fans (and so be part of test1). You should use user properties for a/b tests, they work faster and also you can configure a property like "times_user_have_done_N" and target users who have done it > or < than x

Programmatically create Audience in Firebase

Is there the possibility to create an Audience in Firebase programmatically?
My users have a custom property with a value. I want to create an audience with user with a certain set of values (each value different for each user).
Via console, I could add a rule for each and every value, so I would like to do this programmatically, but I can't find the relevant documentation.
Is this possible? Don't know whether I should look more into firebase or more into google analytics...
Sorry, there's no API for manipulating the Firebase console with respect to Analytics.
However, feel free to file a feature request with your use case.

How to set Gender User Property manually in Firebase Analytics?

Firebase collects some user properties automatically but the question is, how does Firebase know what the user's gender is?
I tried to set them programmatically but it didn't help because there's no data about genders on the Firebase Console. In other word, setting predefined user properties programmatically could not be collected by Firebase.
mFirebaseAnalytics.setUserId(Long.toString(user.id));
mFirebaseAnalytics.setUserProperty("Gender", user.sex);
mFirebaseAnalytics.setUserProperty("Age", Integer.toString(age.getYears()));
Note: I'm using free plan and I waited for +24 hours to see the result.
Firebase collects some user properties automatically but the question is, how does Firebase know what the user's gender is?
From this help article:
Demographics and interests data comes from anonymous identifiers for mobile apps (i.e., Advertising ID for Android and IDFA for iOS).
You cannot set or override the built-in user properties yourself, however if you believe you have better data for each user you can create a custom user property and set that yourself to be used separately to the built-in value.
User properties created in code need to be registered in the Firebase console to view them there. The default user properties (Age, Gender etc) however cannot be registered in the console, since they already exist.

Resources