Track count of events unique by user rather than session - google-analytics

We have a way to fetch the number sessions unique per device and the number of The New Feature uses, this can be done with a public API and requires implementation of two events to be sent by mobile applications to Google Analytics server. It will give us a statistics of the sessions when The New Feature was used, although it doesn't directly reflect individual users activity.
Ex: the app was opened 1000 times among all unique users (devices), The New Feature has been opened 200 times, the resulting value is 200/1000 or 20%. The drawback is that at this particular case we have no way to tell that is wasn't one user who has opened The New Feature 199 times and another one who has opened it just once, the real retention rate is low to none.
The secondary statistics that we are aiming to be able to calculate is the percentage of unique users who have used The New Feature at least N times during the given period. This statistics should be a closer representation of the real The New Feature retention as it will both show the share of users who were using the feature and the dynamics of frequency. For that we are not clear of which events are needed to be set up.
Ex: the app was opened 1000 times: user A used The New Feature 10 times, user B 5 times, user C 4 times, most of the other users who used The New Feature opened it 2 times - The New Feature was opened 200 times in total. The resulting percentage of users: 10% have opened The New Feature at least once, 8% used it at least 2 times, ..., 1% used it at least 10 times.
The numbers from the second example are giving us more useful information about how often the new feature is being used, but it isn't clear how we can set it up. We would need a kind of the event that shows a number of uses of The New Feature unique by the users (not just sessions) and I think the event values might be used to distinguish the users, will it be possible to get the number of unique users who has triggered the event at least N times this way ? Any other suggestion is welcome.

Related

Google Analytics 4: Get number of users based on a specific event count

I am using Google Analytics 4 (formerly known as “App + Web) in my app. I am sending out an event called task_completed to GA whenever a user completes a mini task. Now in GA, how do I make a report or filter that can return the number of users that have performed the task_completed event once, twice, three times or more?
Basically I want to be able to get insights like these:
Users who have performed task_completed once = 40
Users who have performed task_completed twice = 50
Users who have performed task_completed three times = 25
Users who have performed task_completed more than three times = 15
Note that the event count for once, twice and three times should be absolute. Meaning someone who has performed task_completed 10 times should not be counted into once, twice and three times.
I am almost certain I can do this with a custom audience but the problem is custom audiences are not retroactive so I won't be able to use it on past data. And then it also feels a bit inelegant to create custom audiences for all the basic combinations like the above.
Anyone has any ideas?
You can do this using segments using the analysis hub (left-hand side nav under "analysis".

How can I view individual hits to pages within a GA custom report

I would like to compare some data between a 3rd party analytics tool and GA.
Now I would love to see the IP addresses that Ga is receiving however it seems that they do not reveal this information, fine, however, I cannot find a way to use the flat table in the GA custom report to show me the following if possible;
Full Date Time (Seems as though they don't want you to have this either)
Browser Version
Browser Width & Height
Page (from the hit)
And I would like this data not to be grouped by the metric, this way I can see that if the same user has hit a page 3 times it isn't grouped.
If anyone can help please let me know. If the question is poorly phrased please let me know.
Thanks,
Connor.
This requires some work, and it will allow the breakdown only for future hits, not for hits that are already collected.
To view individual hits you need to create a hit based dimension that is unique per hit. Unless your page has an amazing amount of traffic a timestamp in milliseconds (e.g. new Date().getTime()) will be sufficient (for your report you might want to format that in a nice way). So in the admin section of your GA property you go to custom definitions, create a hit scoped custom dimension, and then modify your pagecode to send the timestamp to that dimension. Hit scoped means it is attached to the pageview (or other interacton hit) it is sent with.
If you want to break down your report by user you need the clientid (clientid is how Google recognizes that hits belong to the same user). Again, send it as a custom dimension.
This does not tell you how many sessions the user had (there is no session identifier in GA). If you need to know that you can create a session scoped custom dimension and send a random number along ("session scope" means that GA only stores the last value in a session, so you don't need to maintain a session id over multiple pageviews, since the last value will be set for all hits within the session). The number of different sessions ids per client id then tells you the number of sessions per user.
The takeaway is that GA only shows aggregated data, and if you want to defeat this mechanism you need to throw data at it that cannot be aggregated further. You might run into other constraints (i.e. there is a limited number of rows per report).

Using Face API To Identify Users

I am trying to create the ability to take a picture of a person and locate their user account based on a picture of them. I have 1MM users and each will have a photo which is only of them and will be associate to their user account via the creation of a PersonFace which is added to a Person which is in a PersonGroup. So with 10K persons per Person Group I need about 100 person Groups for me 1MM users.
So once all this is setup I am not clear on how I detect a face given a supplied photo. That is, I know I pass the photo via 'Detect' call however what is returned is an array of Face[] each which include a FaceId and to get from FaceId to a person I must call 'Identify', however that call requires I pass a Person Group Id, but I have 100 of them.
So given this the only solution I can come up with is to call Identify via loop through all 100 group Ids?
Currently, yes, that is the only way to do it. Which obviously makes scanning 1 million persons a less than ideal scenario given the 10 transactions per second limit.
There are a couple upcoming features which will improve this scenario, but right now I don't have an ETA for them:
Significantly higher limits of Persons per PersonGroup
Additional tiers of the Face API which allow significantly higher transaction per second rate limits.

Unique Users in Google Analytics

I'm trying to get all unique visitors for a selected time period, but I want to filter them by date on the server. However, the sum of unique visitors for each day isn't the number of unique visitors for the time period.
For example:
Monday: 2 unique visitors
Tuesday: 3 unique visitors
The unique visitors for the two days period isn't necessarily 5.
Is there a way to get the results I want using the Google Analytics API (v3)?
You're right that Users aren't additive, so you can't simply add them day by day. There are several ways around this.
The fist and most obvious is that if you've implemented the User-ID you should be able to straight up pull and interrogate the data about which users saw your site on which days.
Another way I've implemented before is to dynamically pull the number of Users from the Google Analytics API whenever you need it. Obviously this only works if you're populating a live web dashboard or similar, but since it's just the one figure you're asking for, it wouldn't slow down the load time by much. Eg. if you're using a dashboarding tool such as Klipfolio, you may be able to define a dynamic data source, and query Google whenever you needthe figure (https://support.klipfolio.com/hc/en-us/articles/216183237-BETA-Working-with-dynamic-data-sources)
You could also limit the number of ways that the data can be interrogated, and calculate all of them. For example, if you only allow users to look at data month-by-month or day-by-day, then you only need those figures.
Finally, you can estimate the figure with reasonable accuracy by splitting it into two parts. New Users are equal to New Sessions (you're only new on your first Session), which is additive, so that figure can be separated out and combined as required.
Then, you could take a rough ratio of new to returning Users (% New Users) from, say, 1 year of data, and use that with the New Users figure to generate an average on any level.

How does collection sampling affect the "live" stats for Google Analytics?

We've noticed lately that as our site is growing, our data in Google Analytics is getting less reliable.
One of the places we've noticed this most strongly is on the "Realtime Dashboard".
When we were getting 30k users per day, it would show about 500-600 people on line at a time. Now that we are hitting 50k users per day, it's showing 200-300 people on line at a time.
(Other custom metrics from within our product show that the user behavior hasn't changed much; if anything, users are currently spending longer on the site than ever!)
The daily totals in analytics are still rising, so it's not like it's just missing the hits or something... Does anyone have any thoughts?
The only thing I can think of is that there is probably a difference in interpretation of what constitutes a user being on line.
How do you determine if the user is on line?
Unless there is an explicit login/logout tracking, is it possible that it assumes that a user has gone if there is no user generated event or a request from the browser within an interval of X seconds?
If that is the case then it may be worth while adding a hidden iframe with some Javascript code that keeps sending a request every t seconds.
You can't compare instant measures of unique, concurrent users to different time-slices of unique users.
For example, you could have a small number of concurrent unique users (say 10) and a much higher daily unique users number like 1000, because 1000 different people were there over the course of the day, but only 10 at any given time. The number of concurrent users isn't correlated to the total daily uniques, the distribution over the course of the day may be uneven and it's almost apples and oranges.
This is the same way that monthly unique and daily uniques can't be combined, but average daily uniques are a lower bound for monthly uniques.

Resources