AppsFlyer GoogleTagManager Integration - different number of events - ios

In our app, we use Google Tag Manager to send in-app events to both Firebase and AppsFlyer.
When we test it locally it works correctly in logs I can see that GTM saves Tag
GoogleTagManager info: Saved tag for URL https://api2.appsflyer.com/inappevent/idxxxxxxxx
then after a while, GTM sends it
GoogleTagManager info: Sent hit https://api2.appsflyer.com/inappevent/idxxxxxxxx
I check with Charles how the request looks like and everything looks good the payload is built correctly and I get 200 OK.
{
"appsflyer_id": "XXXXX",
"eventName": "af_initiated_checkout",
"af_events_api": "true",
"eventValue": "{\"af_price\":500,\"af_content_id\":\"x1\",\"af_content_type\":\"xxx\",\"af_currency\":\"EUR\",\"af_quantity\":8}",
"idfa": "XXXX-XXXX-XXXX",
"bundle_id": "com.superapp.superapp"
}
After a few minutes, I can see the effect on the AppsFlyer dashboard.
but when we sent the app to the production (the same bundle id) we spotted that count of events is quite different between Firebase and AppsFlyer even 10 times more events in Firebase in some cases.
What can be the cause of that? How I can debug this problem?

Here is Luc from AppsFlyer Support,
From your description, my guess is the following:
AppsFlyer dashboard is based on install date and shows life-time data, meaning that if you look at "last week", you see the data of user who installed your app last week. The number of events that GTM sent to AppsFlyer last week is likely much higher than events generated by installs of last week, since most of them correspond to older installs.
The only page of our dashboard which follows a different logic is the "Activity" page, which is based on event date. Could you compare the event number in GTM with the number of events in the Activity Page?
If that doesn't solve the problem, simply shoot an email to support#appsflyer.com with more details and the app_id, I'll have a look.
thanks and best,
Luc

Related

In iOS Tracking, does Firebase receive data about a first_open event if an iPhone users chose "Do Not Track"?

Non-technical here, just learning Google Analytics and recently dwelling with app analytics for a client, where their developers didn't seem very skilled in Firebase and can't help me understand this issue - can you help?
I'm trying to understand how many raw downloads in Play Console and App Store Connect are actually users that launch the app, by looking at the first_open event. However, I'm aware that iOS users get a pop-up asking if they allow tracking (or maybe another pop-up similar?).
---> Question: If they do not allow tracking on this pop-up, would our Firebase still get data about these users launching the app? What about other events that were set-up with Firebase, such as initiating a booking?
PS: Also, now that you're here: App Store Connect is displaying 23 Total downloads (counting re-installs) for a given month in Country A, but Firebase is displaying 49 first_open events for the same country in the exact same month! How's this even possible, if a first_open only fires at least once per install, or doesn't even fire if the user never opens?

Send mail from Firebase Analytics after iOS logs an event

Is this possible to send out mail from Firebase when a particular event is logged on firebase dashboard?
In an iOS app, when particular API is failed, an event is logged in Firebase. I want to send out mail for this event from Firebase (like Firebase Crashlytics - firebase sends out mail when crash occur).
There is currently no option built into Firebase console to send an email when a specific event occurred. It is an interesting idea though, so I'd recommend filing a feature request.
It might be possible to do this through the Google Analytics dashboard, which you can also open for the analytics data that is gathered through Firebase. A quick search shows some help center pages, although I'm not completely certain.
If neither of those works, you can build it yourself. Here I see two options:
You can use Cloud Functions that are triggered on conversion events to run any code you want. From this Node.js code you'd then check the conditions on the event, and send the email if necessary.
By exporting the analytics data to BigQuery, you can run any custom queries on it you want, at any interval, and take whatever actions you deem necessary. It's admittedly not ideal, but depending on how important this feature is for you might be worth it.

Facebook Analytics SDK for iOS app: how to disable value tracking for non-valuable events like App Install or Start Trial?

I'm running Facebook Ads campaigns for my iOS app and quite naturally I have Facebook Analytics SDK integrated inside my app to track App Installs and Start Trial events to measure the "quality" of the traffic my campaigns bring.
At the Analytics settings page inside Facebook developer dashboard.
https://developers.facebook.com/apps/XXX_APP_ID_XXX/analytics/settings/?business_id=XXX_BUSINESS_ID_XXX
I have the option Log In-App Events Automatically (Recommended) set to "Yes", which I presume enables the tracking of App Install and Start Trial events. There's also a Shared App Secret field filled in with the value from iTunesConnect.
Indeed, the App Install and Start Trial events have started to appear inside Analytics dashboard
https://www.facebook.com/analytics/XXX_APP_ID_XXX/AppEvents?__aref_src=landing_page&__aref_id=entity_name&force_desktop=1&user_id=XXX_USER_ID_XXX
However I noticed when viewing the stats for just App Installs there's a quite considerable value in USD attributed to these events. I decided to take a closer look into these events using Event Debugging
https://www.facebook.com/analytics/XXX_APP_ID_XXX/most_recent?since=1577923200000&until=1580256000000&__aref_src=landing_page&__aref_id=entity_name&force_desktop=1&user_id=XXX_USER_ID_XXX
and selecting "App Install" in the events filter.
There I saw that some (only some and as if randomly) App Installs have a value associated with them. To me this is an unexpected behavior since I can't imagine revenue being made by just receiving an install.
Same goes for Start Trial event, which always has the value associated to it (equal to the sale price of a subscription period) and once again this makes no sense to me because started trials themselves bring no value to me. They may be canceled or may end up in Billing Retry when the user has no money on the bank card attached to their iTunes account, etc. I track the conversions from Start Trial to Purchase on my backend separately with great precision and only these conversions as well as subsequent renewals would bring real value to my business.
I can and will track these Purchases manually and post them to Facebook (server-to-server style) and I will supply the corresponding value to these events myself, which will help to understand the overall performance and ROI but I need to clean my stats from these "false" automatically and erroneously attributed values to App Install and Start Trial events first.
I've already reported this issue to Facebook few days ago, however they seem to be slow in handling such requests so I've decided to ask here if anybody ran into similar issue.
Add this to your plist file to disable Auto Event Logging
<key>FacebookAutoLogAppEventsEnabled</key>
<false/>
Thanks to Lena Bru for giving enough food to find a solution.
The Facebook documentation is scarce on the raised questions and the support answer literally headed me towards the documentation. To recap things, there were 2 main issues (the second one I've mentioned in the comments to Lena's reply):
Facebook was tracking value for the events, which brought no value to my business
Some of the events I've sent from backend didn't appear in the campaign reports
To solve both of these problems, I:
Turned off the value tracking option in the Facebook app settings
On the client side I've started setting up User ID (which the client receives from backend) according to Facebook documentation
I've started to send all of the events, which I wanted to view inside Facebook business cabinet, under custom names from backend. I've supplemented them with app_user_id parameter (see Advanced Matching for App Events in Facebook documentation) so that they could match the App Installs reported from client.
There's still a smaller issue left (it feels like Facebook reports include 20% less installs than actually happening) but the current setup is already something to begin with.

Google Home no longer broadcasting messages from the SDK (10/17/2019)

Until yesterday, I was able to broadcast messages across my several google home speakers in my house. I've been using either the assistant-relay project (https://github.com/greghesp/assistant-relay) or the google-assistant-webserver project (https://github.com/AndBobsYourUncle/hassio-addons). Either project worked perfectly for the last year.
Has something changed in the last day/week?
Yesterday, I noticed I could send a command such as "What time is it?", or "What is the weather?", and it would return the appropriate weather or time. However, if I issued a "broadcast" command of text, or even using one of their precanned recorded messages (bed time, movie time, etc), the message was never broadcasted. Additionally, the MyActivity section of google shows that "You asked the Assistant to broadcast a message" and from the SDK.
Has something changed? Are we no longer able todo broadcasting programmatically?

Is there a way to get reported User ID from Flurry API?

I have an iOS game using Flurry, so I'm sending to Flurry unique IDs for each player trough [Flurry setUserID:#"USER_ID"] and after some hours I'm getting this ID's from "Flurry Page >Events > Event Logs > Download CSV" to tie a user in my internal systems (as Flurry User ID is it evil? indicate); but this is a manual process and take a lot of time.
Is there a way to get this Event Logs from Flurry API? I'm currently using:
http://api.flurry.com/eventMetrics/Event?apiAccessCode=APIACCESSCODE&apiKey=APIKEY&startDate=STARTDATE&endDate=ENDDATE&eventName=EVENTNAME&versionName=VERSIONNAME
as Flurry indicates (http://support.flurry.com/index.php?title=API/Code/EventMetrics) but this gives only a summary.
Thanks
I contacted the Technical support, take a look at their answer
Thank you for contacting Flurry Technical Support. I will be happy to
answer your questions.
I'm afraid the raw data API is no longer available as it is being
phased out. Apologies for any inconvenience.
However, as an alternative to the raw data API we have introduced a
feature where you can download 100,000 rows of raw event logs from
under "Events-->Event Logs" on the left navigation. Just download
often so you don't miss anything.
The user ID on Flurry is available under the Events Logs section,
provided you've set it to be collected.
The user ID is set using this code: FlurryAgent.setUserID(String);
The Flurry userID can be used to tie a user back to your internal
systems. The userID will travel along with the user through out the
event logs. It is up to you to ensure that the userID is unique for
each individual user. It is highly recommended to seek user permission
before collecting any data for analytics.
Please let me know if I can assist further.

Resources