Google Analytics Behaviour Flow - android

I have an ionic app that is exported to both platforms [iOS and Android]
I was checking the behaviour flow in Google Analytics and got this view :
as we can see only signin /up pages are tracked, however the app has many other screens as shown in the below screenshot:
I am using GoogleAnalytics.trackView("Screen Name") viewDidEnter() function, which is similar to viewDidAppear in iOS.
Can someone help me pointing out why I am not getting the correct flows?
Thank you

My best guess is that it's to do with the way you're reporting your views. I'm not hugely familiar with app reporting, but that Behavior Flows report requires your data to be structured into Sessions.
If, as I suspect is the case, you're accidentally telling Google Analytics that each page is the first page of a Session, then that report will not work at all.
The way to check if this is the case is to look at the Screens per Session value; if it's only fractionally over 1, then this is the issue.
The way to fix it is to look at your Screen View reporting, and make sure that you're not invoking a new Session each time.

Related

Map adClick --> appInstallation using Firebase

I'm new to Firebase. I've been using Analytics in the past and AdWords as well (on web projects) but never managed to put my hands on Firebase yet.
A customer is asking me to map how many users will be installing his forthcoming app coming from each separate ad he published online, in order to understand which ads are the most profitable ones.
This seems to me to be a fairly normal use case but, believe it or not, I wasn't able to retrieve a proper guide about this topic. In my mind I imagine some kind of console in which I can see for each ad URL or ID the number of clicks and PlayStore/AppStore views and - possibly - how many of those clicks converted to an app installation.
The app will be published on both Android and iOS.
Could anybody help me getting any information about this topic?
Thank you
Marco
You're looking for Firebase Attribution:
..a powerful form of app analytics that not only determines which
campaigns are bringing you users, but also which campaigns are
bringing you valuable users that you care most about.
Also related:
Attribution
It’s important to know which marketing efforts are most effective at
acquiring new users and keeping them engaged. The Attribution tab
shows how many conversion events were driven by each source and ad
network.
Follow this doc to solve your problem from this you can track user movement with page click tracking and event click tracking. Visit the following link to implement it
https://developers.google.com/analytics/devguides/collection/android/v4/

How to correctly use and track App-invites?

Background
Google allows to perform app-invites and also track how well they improve your app installations:
https://www.youtube.com/watch?v=UfdCNYXMC9M
The problem
I made a simple app invite, and it seems people do use it, using this code:
public static Intent getAppInviteIntent(Context context) {
return new AppInviteInvitation.IntentBuilder(title,appName).setCustomImage(imageUri).setMessage(message).setCallToActionText(download).build();
}
startActivityForResult(getAppInviteIntent(this), GOOGLE_APP_INVITES_REQUEST_CODE);
This works, but in the Analytics webpage, I can't find a way to show the statistics of the app-invite, and that's even though they say it's automatic (here). Sadly, even what I've found seem quite old and they use deprecated functions.
What I've tried
I thought that maybe it's not quite automatic (because the tutorial has some extra code for the receiver part too, here), and that we might need to add some code, as this docs say :
When the user accepts an invitation and installs the app, getInvitation(GoogleApiClient, Activity, boolean) will update the invitation state to installed and return the invitation data in an intent accessed from AppInviteInvitationResult using getInvitationIntent()
Looking at Google's sample (here), I've noticed they created 2 activities. One is the main activity, which does have a call to "getInvitation" , and another is called "DeepLinkActivity" , and handles deep links (which is probably for extra data, like coupons).
I've also found some stackOverflow questions about the tracking (like here), but all I see is that people didn't succeed tracking yet.
The questions
What is the minimal code needed in order to track the invitations and how well they work, as shown on the video? What should be configured in Analytics page itself? I don't use deep linking currently, so I don't want to use it.
It seems that Google moved the app-invites feature to "firebase" gradle repositories. Is it a must-have? What are the advantages? We currently use the previous ones ("com.google.android.gms:play-services-appinvite:..." ). The dashboard of FireBase doesn't seem to include as much UI for analytics as Google Analytics. Not to mention of app-invites.
If the answer to #1 is that I need to use "getInvitationIntent", does it have to be on the main activity of the app ? Does it have to be in an activity at all (maybe broadcastReceiver?) ?
It seems it's possible to also invite to IOS too ( as shown here and here, using "setOtherPlatformsTargetApplication"). Is this correct? How does it work? What happens when an IOS user clicks the link? What should be put into the parameter of "clientId" and where do I get it from ?
Does G+ have app-invites? If so, does it also have analytics?
Great questions. I'll do my best to answer everything. Please ask if you need clarification.
Analytics tracking requires a tracking Id that you'll need to set using setGoogleAnalyticsTrackingId(String trackingId), which I don't see in your example. This tracking Id is then handed to the downstream events that record analytics tracking events for you:
When invitations are send (both email and sms).
When the invited user accepts the invitation by clicking on the invitation link or button.
When the developer calls getInvitation()
When the developer calls convertInvitation()
So, to answer your specific questions, here goes:
Just add your tracking ID to the builder as described above, and all the tracking events will be reported. No need for a deeplink, that's optional on invites.
Yes, appinvites api is copied to firebase while retaining the original. For now they are exactly the same. Future improvements will be in firebase, so migrate when you have time.
getInvitationIntent() is called on the result returned in the callback from getInvitation(), so the callback should be within an activity. Also, since you'll only expect an invitation immediately after launch, you really only need to check in the main activity and any activity that would be launched from intent filters that trigger on the deeplink. Sounds like you don't use deeplinks, so only the main activity. Generally you should call getInvitation() from all activities that may be directly launched from an invitation, this is how you determine if your app is launched from an invitation.
Yes, invites can go cross-platform in both directions, iOS -> android, and android -> iOS. You need to define both apps in the same project in console.developers.google.com, which is necessary to associate them. If there is more than one iOS app in the project, that api call is necessary to disambiguate the iOS app that is paired with the android app. The ClientID parameter is generated in the console when you create the OAuth Client Id using the pulldown menu from credentials section.
There isn't any separate G+ invites.
Answers:
The Firebase Dynamic Links on Android documentation explains how to view the analytics data shown directly in the Firebase console. The critical step is to follow the Firebase setup instructions, most importantly:
// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'
The Firebase analytics integration has been streamlined from the legacy integration that required a tracking Id. Now with Firebase only setup and a call to getInvitation() are needed. No additional code or tracking ids required. Remember it takes up to 24 hours to see the results in the console. However, you can see the messages being sent immediately which is a great indication that it's working. Just enable verbose logging as described in Analytics Log Events documentation.
The Firebase and android developer documentation for appinvites are identical.
Yes, you must call getInvitation() to get analytics tracking, and do the setup as described above.
The iOS and Android equivalence apps should be in the same project. Just move them to a single project in the Firebase console. You can just remove one from it's existing project and add it to the other to make a combined project. The change should be reflected instantly.

Missing ecommerce data and bad event tracking code

I have been using Google Admob and Google Analytics to track my apps so far with no any issue. I currently had notification on Analytics page as below:
Missing Ecommerce Data
Property Default view is configured for Ecommerce, but no data is flowing.
Bad Event Tracking Code
(not set) entry present in reports for property xxx | Android.
Note: Seems, app tracking also stopped for last 2 days. I have not made any changes in neither Analytics configurations nor within Android app.
How can i solve this issue? Thank you.
Same problem for us, suddenly stopped tracking eCommerce data for no reason, we haven't made any code changes so i'm not sure why. I heard that Google may be phasing out classic GA since UA is out of beta but i thought they would inform us rather than making changes and telling nobody.

Application-Integrated "Send Feedback"

I'm looking for an .jar or library project that will allow users of my application to easily send feedback from inside the application about their experience.
As asked in this question, I am looking for something similar to the crash reporting tool used in Google Plus, that allows the user to get in contact with me, besides leaving bad reviews.
Some not-quite there solutions that came up in answers to other questions:
ACRA : Application Crash Report for Android (functions as a crash reporting tool)
Hockey Kit: Helps distribute betas, nothing related to send feedback to developer.
Does a library like this exist? Is there an easy way to gather user feedback from within the application?
For a full-featured user support service, you can have a look to Capptain: http://www.capptain.com/
But with ACRA you can also trigger a report programmatically. You could call the method handleException(new UserRequestedException()) when the user selects an option in your preferences screen, for example.
You would then filter your ACRA reports spreadsheet for all stacktraces containing UserRequestedException.
UserRequestedException would be a custom Exception that you would implement.
The NOTIFICATION mode can be configured to display a form containing an e-mail field and comments field. The e-mail given by the user the first time is saved in the apps preferences.
A bit late to answer your question, but you might want check out this: http://www.android-feedback.com/ . Its an in app feedback / support system. Its not live yet, but the beta stage is going to start in a few weeks. (and beta testers get bumped to the premium/paid plan once live)
Edit: Disclaimer: its my project
i think you need to use a tool like instabug it provides you a way for collecting bug reports and feedbacks about user experience and also you can talk back to them
As of this date (27th April 2018), HockeyApp can handle this issue. It enables users to send In-app Feedback to developers, which then developers can access through a Dashboard.
Check out: www.hockeyapp.net
The problem I've had with implementing HockeyApp, is that, the feedback form requires the user to add unnecessary details like name, email, etc. I can't seem to find a way to add these detail programmatically.

Accessing Android crash reports

I was just using Sports Tracker when it crashed, and when I pressed "Report" button to report the crash, I'm given a simple input field asking for a comment regarding the crash.
However, pressing "preview" will give me insight of what data is being send with the crash log. The amount of data is actually immense, including date/time, device name/version, system log, stack trace etc. All kinds of usable data.
From logcat I can see that this is com.google.android.feedback activity.
The question is, is this something Sports Tracker developers implemented themselves, or is it the default crash report every android user has installed on their phones? In other words, do all my apps (=the ones I've written and posted to Play Store) already have this function, or is it something I could/should implement myself**?
I have received some crash reports via android's build in crash reporting service, but it doesn't really give me any useful data (besides stack trace). Or is it just that the crash reporting on developer's dashboard is still far from complete?
I don't know about this special feedback activity. I'm currently using the ACRA system that it's really easy to use and give me useful bug reports. Let's have a look on it for your bug report.
I am sure they must be using one of these.
ACRA is great as well as try ZUbhium, it comes with silent crash reporting & in app support desk. So whenever application crashes, it captures more meaningful data and does analysis onit .
You can either add Zubhium as backend to ACRA & view advanced crash reports or use ZubhiumSDK. Both do excellent job.
Actually TestPoke is a beta testing platform that allow you to see all crashes your android app fall in, even thought they notify you when such thing happens through it Android App.
http://www.testpoke.com

Categories

Resources