Google Analytics track user email and current time - google-analytics

I need to track userid and currentTime using Google Analytics.
Google Analytics does not offers user PII data.So I am doing following steps-
Step1-
In Order to do that I created 2 new dimention by the google analytics admin panel in under the property section for hits.
Admin->Property->CustumDefinetion->CustomDimention->AddNew
Step2- Than I changed my script by ajax call and added this data in GoogleAnalytics Script in the page which I am tracking
ga('create', 'UA-57411451-1',{'userId':customUserId });
ga('set', 'dimension1', customUserId);
ga('set', 'dimension2', entryTime);
Step3- Now I am sending GET request to GoogleAnalytics using ga-dev-tool.
Result- This is not giving me any data.May be there are very less user on the current page.
Questions-
Am I missing any thing or Is there any better approach for same.
How much delay GoogleAnalytics causes in reflecting data.
Below is the screenshot of google analytics ga-dev-tool result.

Related

Google Analytics - measurement protocol events not linking to other events

Problem: I need to see where users who download the app from the website, came from. We have google analytics(GA) and this part works well and we can see our traffic sources. However, I need to link users who install the app with those web visitors, so I can see from which channel, I get my "good users". The ones who ultimately install the app and set it up.
Solution Implemented: I have turned on the userID functionality and have session unification turned on. I am generating userIDs from the internal apis and publishing them to google analytics, the standard way. It is a PHP website and on session init, I make a call to the apis to get a new visitor id
$site_visitor_id = key_exists(static::USER_ID, $_SESSION) ? $_SESSION[static::USER_ID] : '';
$response = API::logWebVisitor(static::SITE_ID, $site_visitor_id, static::getClientIP());
if (!is_null($response)
&& key_exists('data', $response)
&& key_exists('visitor_id', $response['data'])) {
$_SESSION[static::USER_ID] = $response['data']['visitor_id'];
} else {
$_SESSION[static::USER_ID] = '';
}
which is pushed to google analytics.
ga('create', 'UA-XXXXXX-Y', 'auto');
ga('require', 'XXXXXX');
ga('set', 'userId', '<?php echo $_SESSION[Session::USER_ID] ?>');
ga('send', 'pageview');
This works as I have all the users I would expect in the userID view in GA. One a user installs the app a user is created in our internal apis and the ip address is recorded. Every 10 minutes I try to link the generated userIDs ( which also have an ip address associated with it), with the users, based on the ip address. When I find a link, I push an install event to GA.
cid=<randstring>
&ea=Install
&ec=<category>
&el=InstallID
&ev=<install_id>
&t=event&
&tid=UA-XXXXXXX-Y
&uid=<mygenerated_user_id>
I can see the GA events perfectly fine and that works. One caveat though, is that the measurement protocol requires the cid, even though it says if the uid is passed this is not needed(fake news). So I just generate a random id to pass in and it works.
Issue: When I look in the reporting views of GA, GA is not linking these events to the web visitors that have the same user_id associated with it. Now, I can't see any of the user_ids to filter down and verify this as GA does not provide me with access to this information.
Expectations: I would expect that when I send an install event to GA with the user_id that GA sees that there are two client_ids with the same user_id and links those together, so I can see what channel lead me to getting that user. However, it's as if GA has no clue who that user_id is and never links them together. I am struggling to figure out what I need to look into to figure out why.
Any information around GA would be helpful as I don't know much about it and it's my first time using it.

How to I correctly attribute channels from the Google Analytics Measurement Protocol?

We are trying to attribute user actions that happen after a user has signed in to the marketing channel they originated from. To do this, we use the standard Google Analytics JS library as well as the Measurement Protocol. Events get tracked in Google Analytics and they are visible in the events view. However, they do not get attributed to the correct campaign and only show up under the Direct channel.
Our process is as follows:
The user gets tracked with front end Google Analytics JS on our site:
ga('create', ‘UA-XXXXX-Y’, 'auto');
ga('send', 'pageview');
A userId gets assigned to the user in Google Analytics as soon as they sign up:
ga('create', ‘UA-XXXXX-Y’, 'auto');
ga('set', 'userId', 'fe8220b3');
ga('send', 'pageview');
Once a certain action we would like to track happens, we send a GET request to the Measurement Protocol with the following params:
v: 1,
t: 'event',
tid: ‘UA-XXXXX-Y’,
cid: ‘555’,
uid: ‘fe8220b3’,
ec: ‘backend_action’,
ea: ‘action’
This correctly tracks the event, but does not associate it with the user. As far as I understand, since we have provided the same UserId in our params that we did when identifying the user, the attribution should happen automatically in Google Analytics. Am I misunderstanding how this works?

Can I track Adwords banner click from the other website?

I have an Adwords campaign, it sends users to Website-1.
And there is Website-2 and I want to track whether users that came to Website-2 have ever clicked on Adwords banner leading to Website-1 or not.
I could have set third-party cookies on Website-1 corresponding user is from Adwords and then get this info on Website-2. The problem is I don't have access to Website-1.
Is there any way to gain this info? I do have access to Adwords campaign, it's Google Account, Google Analytics on Website-2, it's Google Account and Website-2 itself. In other words, I have access to everything except Website-1
You might use third-party redirect/counter, for example different ad-serving tool like AdForm, where you should be able to generate unique redirect URL in bulk for your campaign.
Disadvantages:
you loose gclid information on AdWords tracking (because of redirect) and you need to use manual UTM tagging
You need to pay ad-serving fee (few bucks for thousands of visitors) and someone to set it up
You would only know if that someone clicked AdWords Ad, not really visited (beacuse you would count before that someone landed)
In conclusion: don't do it if you don't have direct access to GA of website-1
Yes you can do this in a pretty simple way, just set up Cross Domain tracking as described here:
https://support.google.com/analytics/answer/1034342?hl=en
This will save original source information (including AdWords) wen user goes from Website-1 to Website-2. On Website-1 you need to edit Analytics code (on all pages) and add so called autoLink:
ga('create', 'UA-XXXXXXX-Y', 'auto', {'allowLinker': true});
ga('require', 'linker');
ga('linker:autoLink', ['example-2.com'] );
Make sure that on both websites youre using newest version of Google Analytics: Universal Analytics, because this will not work in older version

How many pageview requests it would send to GA metrics?

Whether this code is fine to implement for UA to track hashchange Urls:
ga ('send', 'pageview', {
'page': location.pathname+location.search+location.hash,
'title': location.pathname+location.search+location.hash});
How many pageview requests it would record in GA everytime the event fire?
Every time that line of code executes, one Google Analytics Pageview will fire. See here for more details on Pageview tracking.
Also, this Chrome extension might be helpful. It prints info on any Google Analytics hits sent to the JS console.

Google Analytics Cross-Domain Conversion Tracking and Attribution to AdWords Campaign

Background
We have a number of websites that we maintain and we have Google AdWords Campaigns running to drive traffic to these sites.
For Example:
www.example1.co.uk
www.example2.co.uk
www.example3.co.uk
After browsing these sites, a customer will be redirected to our E-Commerce platform if they decide to make a purchase (this is where the conversion happens):
www.example-checkout.com
Current Google Analytics Setup
Our current Google Analytics Setup looks like this:
www.example1.co.uk, www.example2.co.uk, www.example3.co.uk
ga('create', 'UA-12345678-1', 'auto', {'name': 'globalTracker'});
ga('globalTracker.send', 'pageview');
ga('globalTracker.require', 'linker');
ga('globalTracker.linker:autoLink', ['example-checkout.com'], true);
www.example-checkout.com
All Pages
ga('create', 'UA-12345678-1', 'auto', {'allowLinker': true, 'name' : 'globalTracker'});
ga('globalTracker.send', 'pageview');
Checkout Page Only
The checkout/confirmation/thank you page contains additional calls to load the Google Analytics E-Commerce plugin and post the details of the transaction that has occurred.
ga('create', 'UA-12345678-1', 'auto', {'allowLinker': true, 'name' : 'globalTracker'});
ga('globalTracker.send', 'pageview');
ga('globalTracker.require', 'ecommerce', 'ecommerce.js');
ga('globalTracker.ecommerce:addTransaction', {
'id': '${transactionID}',
'affiliation': '${affiliation}',
'revenue': '${revenue}',
'shipping': '${shipping}',
'tax': '${tax}'
});
ga('globalTracker.ecommerce:send');
What Works
The E-Commerce tracking code appears to work and conversions are recorded. In Google Analytics we can see that we received traffic/clicks from our AdWords campaigns which suggests that the _ga cookie is being correctly passed cross-domain from www.example1.co.uk to www.example-checkout.com (in fact I have verified this using the Chrome Developer Tools / Google Analytics Debugger Plugin).
Problem
The problem is that the conversions are never attributed to the AdWords Campaign & AdGroup. The source of the conversion is always a referral (E.g. from www.example1.co.uk).
What am I missing? I want to see the conversions attributed to the AdWords campaign. I.e. in the "Acquisition -> Campaigns" section of Google Analytics.
Any pointers are greatly appreciated.
You do not mention that you use any decorator functions (i.e. functions that add the ga parameter to outgoing links, forms etc.) and allowLinker does not do this automatically. So it should be not possible that cross domain tracking works at all (i.e. both domains will be tracked but on changing the domain the user will start a new tracking session). (UPDATE: Sorry, I did not see the autolinker plugin in the code, so ignore this paragraph).
Plus you need to add both domains to the referrer exclusion list in the property settings (this will remove the referrer no matter what, so make sure that the client id is passed on before you do that).
Unless you have used decorators without saying so in the question this is most likely your problem. Look into the outgoing urls if the ga parameter is appended when switching domains and make sure that the ga code on the other domain does actually receive the parameter (i.e. if there are redirects make sure they retain the parameter).

Resources