When creating Segments in GA I can choose to filter Traffic Sources on User level and on Session level.
Is the User level Traffic Source determined the first time user visits the website and never changes again?
Does the Session level Traffic Source gets updated each time the user visits the website?
Does the same user can have a single Traffic Source (first time visit) on User level and multiple Traffic Sources on Session level?
Thanks for taking the time to read this and hopefully answer!
A contrary view:
No. There is no such thing as a User-level Traffic Source. Each session has a source. Users can have multiple sessions. Therefore Users can have multiple sources.
Simple proof: create user segment with medium = referral. View standard Traffic Source report, note multiple mediums are reported. This is because returning users can have sessions with different sources, and all of those sessions are included in your segment.
Yes, with a caveat. Each sessions has its own source. It comes from the HTTP referrer sent by the user's browser, which is optional and can be spoofed. However, if the source is Direct (empty), GA will look to see if that user had a previous non-direct source and it will change it to that. This is GA's "last non-direct attribution model". You can look it up.
No. The User has multiple sessions, and each sessions has its own source.
1) In theory, yes (practically this is tied to the client id in the cookie; a new user is created when somebody swipes his cookies, even if it is the same person).
2) Not quite. The Traffic Source changes when the marketing channel changes (direct type-in/bookmarks are not a marketing channel, so if somebody clicks e.g. an adwords ad and return via direct he is still an adwords user. Well, unless you look at the multichannel reports which will count direct channels as marketing channel). Look at the attribution flow visualization, you will see that GA checks for existing campaign information before it attributes to a direct type-in.
3) Yes, obviously - there is one source for the first visit and every subquent visit may have its own traffic source.
Yes
Yes
Yes
Your example is actually a pretty good explanation of the difference between user and session-level segments.
Here's a feature overview for more info:
https://support.google.com/analytics/answer/3123951
Related
I've been looking into offline tracking of google analytics goals. I want to implement this in a similar way to how call tracking companies do and I'm guessing the GCLID is the answer.
If I store the GCLID of every visitor that comes to our website in the database alongside some info about their session and then identify their session at a later date as one that produced an offline goal, can I then generate a goal from that?
My thinking is that if I had a button in our CRM system that when I click it opens up an invisible iframe that links to mysite.com/goalurl.html?gclid=xxx then analytics on that page would track a goal on that page but attribute it to the original click that the other user made on our PPC advert. Theoretically I could do this 10 times in a row for 10 different sessions and they would all be tracked as if the 10 original owners of those GCLIDs has visited the goal page, right?
Am i missing something here? Would this not work because Google would spot that they all came from the same IP address, or because I would have the same GA cookie on my machine? Or does Gogole not care about any of that?
Any help would really be appreciated.
I am not sure if it works with the gclid but would also be interested in the answer.
Besides that, a possible solution is to store the Analytics client ID in your own database and, whenever there is a conversion, sending that conversion data (referencing the recorded client ID) directly from your server to Analytics by using the Measurement Protocol.
Exactly this topic is a case study in the book "Google Analytics Breakthrough: From Zero to Business Impact".
On a website with affiliate links, where there is no programmatic access to the conversion logs, I treat it as offline conversions.
My Setup
Online
A user visit my website, see the affiliated ad and a promotion view hit is being sent.
When the user clicks the ad, a promotion click hit is being sent and the user is redirected to another page on my site.
On the "redirection page", an product view hit is being sent, and the user is being redirected to the affiliation link, passing his Google Analytics clientId.
Offline
Once a week I download the stats from the affiliate program, which looks something like:
clientId visits conversions revenue
4444444444.3333333333 1 0 $0
1234567890.1234567890 1 1 $16.40
Then I use the Measurement Protocol to send offline events:
For each line of visit, I send a product click hit.
For each line of conversion, I send a product purchase hit.
My Problem
The conversion shows up on the eCommerce report:
Because the offline hits are being sent after the original session is already closed, a new session is opened which doesn't contain the info about the user.
So I can't see the conversion on the demographic report, for example:
Optional Solution?
I'm thinking of using the user-id feature of Google Analytics.
Even though the users are not identified, I can identify them by their clientId.
Sure, this is not what Google intended when they introduced that feature, but I believe it will solve my issue. I'm just not sure about the negatives.
My Questions
Any feedback on my setup?
Why is it even necessary to pass the clientId after the session is closed? what kind of information is being shared between the real session and the offline hit?
Is it a bad idea to pass the clientId as a userId to Google Analytics? Why?
Relevant Articles
A Comprehensive Guide to Tracking Offline Interactions in Google Analytics using the Measurement Protocol
Google Universal Analytics isn’t Linking Offline and Online User Properly
We were able to link offline action through as you did with measurement protocol but the problem is that those sessions are not included in demographic and age report.
Rather looking those report I used them to do segmented analysis E.g. pages they have look at, sources they used to come also I used it with attribution model to understand best channels to drive more conversions.
Yes you can use CID as a user ID but I haven't tried it with offline tracking. Share the result with us.
I have a booking site that refers customers to other companies websites to confirm and pay for bookings. I only make money off of conversions, not clickthroughs. These sites are owned by other corporations and I do not have access to their website code, just to clarify.
I know that I can use GA to track clickthroughs from my site, but how do I track the actual conversions?
You cannot track conversions on another site unless they agree to send some data back to you. That's actually the answer, but I included a bit more info below.
Your business model is that of an affiliate. Affiliate tracking usually works by appending an parameter to the link that goes from your website to the partner website. The partner website has to take care that your parameter is persisted throughout the booking process. Finally on the confirmation page, if your id is present, they send a beacon that informs you a booking has actually happened.
That beacon is usually an image pixel on your server; if the pixel is called it writes a line to a logfile that contains information passed via the image source (e.g. the total price if your renumeration depends on revenue). If you want you can also use Google Analytics; it is unlikely that any partner site agrees to implement fully fledged GA implementation with cross domain tracking, but you could use the measurement protocol to construct a web beacon that is implemented as an image pixel that sends data back to your GA account. If you submit not only your affiliate id, but also the client id for the visit you referred to the partner site you could even attribute the conversion to the original traffic source.
But for conversion tracking you have to rely on the cooperation (and honesty) of your parters. There is no way to record transactions on their sites without some sort of tracking code.
When viewing the RealTime Overview section, I notice that when a new user comes online the previous user immediately disappears and is no longer shown in realTime. The next day analytics only shows history data for one visiting user, I know for a fact that this is incorrect, there should be data for multiple users.
I send up analytics data with a simple https request(shown below) . This works for all my other applications. The only difference is that I send up the uid for this app , could this be causing the issue that I am seeing ?
Views
https://www.google-analytics.com/collect
?v=1
&z=14807
&tid=<OUR-UA-ID>
&cid=2535285330542042
&dp=message_6
&dt=message_6
&cd=message_6
&an=freemium_3
&av=3
&uid=123456789
&t=screenview
Events
https://www.google-analytics.com/collect
?v=1
&z=52130
&tid=<OUR-UA-ID>
&cid=2535285331158735
&dp=authentication
&dt=authentication
&cd=authentication
&an=freemium_3
&av=3
&uid=123456789
&ec=authentication
&ea=get_user_info
&t=event
The "cid" in your http call is the client id, where client refers to the device or program that makes the request. It is usually stored in a cookie (on the web) or generated by an SDK (in an app) and is used to unify subsequent requests from the same device into sessions. Since it is set by the client it differs from device to device (and browser to browser), so it can not be used to identify a person across multiple devices.
After it became the rule that any given person might have two or more devices Google came up with the uid, the user id (which by their own TOS might not identify the user, so this is a bit of a misnomer; think "cross device tracking id" and the concept becomes clearer). The uid is set by serverside code, i.e. after the user logs in. Not only this allows to unify visits from multiple devices into distinct users, it also alleviates privacy concerns (since it is supposed to be only created after a users action; there are separate TOS which you have to accept if you create a user id view in the GA interface, and they stipulate that you have to secure the users agreement to use to user id feature).
So if you set the same user id in your code the sessions will be attributed to the same user, even when the cid differs; this is by design and is indeed the point of the uid.
Can you set up alerts in Google Analytics to flag potential PII/NPI such as name, email address, billing address, billing details etc.? If so, how?
First I have do say I do not understand the downvote(s). For example I have seen applications with user logins where a full name was part of the page title - combined with time based dimensions that gave profile that say which user looked at what page at what time, and that would be clearly illegal. Even worse I have seen a case where security tokens were transmitted to GA that allowed access to secured resources. So clearly accidental transmission of PII to Google Analytics is a real thing.
Unfortunately there is not much you can do about it. You can either do a custom report with relevant dimensions and have it sent to you for a manual audit, or pull them via the API and have them programmatically examined via regular expressions that look for patterns like e-mail addresses etc. But by the time you can do that it is already to late, the data will already be permanently recorded in the GA property.
You have to stop this before the data is collected - if at all possible already in the website (via form validation etc), or use Google Tag Manager with custom javascript variables with validation rules, or filters in the analytics view (the latter being cumbersome and not very promising for this purpose).
The good news is that GA will not suddendly start to track PII on it's own. So you only need to check if your GA account tracks PII when you set up the account. Collect a few days data, validate that everything is okay, make changes as necessary and after all flaws are straightened out copy the view to start data collection from scratch and drop the old view if it contains PII.