Claudia Kosny Web Analytics specialist & Web developer
https://www.google-analytics.com/collect
Base url
Hit type t=pageview|event|timing|...
https://www.google-analytics.com/collect
Base url
Parameters
Hit type t=pageview|event|timing|...
Document location dl=http...
https://www.google-analytics.com/collect
Base url
Parameters
Hit type t=pageview|event|timing|...
Document location dl=http...
Document title dt=...
https://www.google-analytics.com/collect
Base url
Parameters
Base url List of all parameters
Measurement protocol
Base url List of all parameters
Measurement protocol
analytics.js, SDKs PHP, ASP.NET, C#,…
Google Analytics
Online data via analytics.js
Google Analytics
Offline transactions via measurement protocol
Online data via analytics.js
Add data to existing hits
Add new hits
Step 1: Build tracking url
Base url: https://www.google-analytics.com/collect?v=1&tid=UA-XXXXX-Y
Step 1: Build tracking url
Base url: https://www.google-analytics.com/collect?v=1&tid=UA-XXXXX-Y GA client ID: &cid=123456789.987654321 GA user ID: &uid=user-ab1234
Step 1: Build tracking url
Base url: https://www.google-analytics.com/collect?v=1&tid=UA-XXXXX-Y GA client ID: &cid=123456789.987654321 GA user ID: &uid=user-ab1234 Traffic source data Source: &cs=promo-newsletter Medium: &cm=email Campaign name: &cn=back-to-school-201508-BEFR
Step 1: Build tracking url
Base url: https://www.google-analytics.com/collect?v=1&tid=UA-XXXXX-Y GA client ID: &cid=123456789.987654321 GA user ID: &uid=user-ab1234 Traffic source data Source: &cs=promo-newsletter Medium: &cm=email Campaign name: &cn=back-to-school-201508-BEFR Hit data Hit type: &t=event Event category: &ec=email Event action: &ea=open Event label: &el=back-to-school-201508-BEFR Page path: &dp=/virtual/newsletter/back-to-school-201508-BEFR
Step 1: Build tracking url
Base url: https://www.google-analytics.com/collect?v=1&tid=UA-XXXXX-Y GA client ID: &cid=123456789.987654321 GA user ID: &uid=user-ab1234 Traffic source data Source: &cs=promo-newsletter Medium: &cm=email Campaign name: &cn=back-to-school-201508-BEFR Hit data Hit type: &t=event Event category: &ec=email Event action: &ea=open Event label: &el=back-to-school-201508-BEFR Page path: &dp=/virtual/newsletter/back-to-school-201508-BEFR
Step 1: Build tracking url
Base url: https://www.google-analytics.com/collect?v=1&tid=UA-XXXXX-Y GA client ID: &cid=123456789.987654321 GA user ID: &uid=user-ab1234 Traffic source data Source: &cs=promo-newsletter Medium: &cm=email Campaign name: &cn=back-to-school-201508-BEFR Hit data Hit type: &t=event Event category: &ec=email Event action: &ea=open Event label: &el=back-to-school-201508-BEFR Page path: &dp=/virtual/newsletter/back-to-school-201508-BEFR
Full url: https://www.google-analytics.com/collect?v=1&t=event&tid=UA-8401811-8&cid=123456789.987654321&uid=user-ab1234&cs=promo-newsletter&cm=email&cn=back-to-school-201508-BEFR&ec=email&ea=open&el=back-to-school-201508-BEFR&dp=%2Fvirtual%2Fnewsletter%2Fback-to-school-201508-BEFR
Full url: https://www.google-analytics.com/collect?v=1&t=event&tid=UA-8401811-8&cid=123456789.987654321&uid=user-ab1234&cs=promo-newsletter&cm=email&cn=back-to-school-201508-BEFR&ec=email&ea=open&el=back-to-school-201508-BEFR&dp=%2Fvirtual%2Fnewsletter%2Fback-to-school-201508-BEFR
Step 2: Add image with full tracking url to HTML code of email <img src="https://www.google-analytics.com/collect?v=1&..." alt=""/>
Full url: https://www.google-analytics.com/collect?v=1&t=event&tid=UA-8401811-8&cid=123456789.987654321&uid=user-ab1234&cs=promo-newsletter&cm=email&cn=back-to-school-201508-BEFR&ec=email&ea=open&el=back-to-school-201508-BEFR&dp=%2Fvirtual%2Fnewsletter%2Fback-to-school-201508-BEFR
Step 2: Add image with full tracking url to HTML code of email <img src="https://www.google-analytics.com/collect?v=1&..." alt=""/>
✓
GA client ID
GA user ID GA client ID
GA client ID
✓
?
PDF file requested
Redirect internally to tracking builder
Read GA cookie or create new client ID
Build tracking url and send tracking url to GA
Send requested file to browser
PDF file requested
Redirect internally to tracking builder
Read GA cookie or create new client ID
Build tracking url and send tracking url to GA
Send requested file to browser
✓
Some are filtered by GA
Some are filtered by GA
Not filtered by GA
To do
To do
1. Set parameter for data source to ‘server’
2. Compare hits from data source ‘web’ with ‘server’
3. Filter remaining user agents in tracking script
Returning visitors Read existing cookie and extract ID
Returning visitors Read existing cookie and extract ID
New visitors UUID: 15082013-2148-480b-a3c5-8ad11797c8d1
Use for tracking, then set as cookie for next visit
Redirect to payment website Click on "Pay now" Process payment
Show confirmation message
Redirect to payment website
Redirect back to merchant website
Click on "Pay now" Process payment
Show confirmation message
Confirmation page
Page sends transaction data to GA
Redirect to payment website
Redirect back to merchant website
Click on "Pay now" Process payment
Show confirmation message
Confirmation page
Page sends transaction data to GA
1-8% data loss
Redirect to payment website
Redirect back to merchant website
Click on "Pay now" Process payment
Show confirmation message
Confirmation page
Merchant website backend Backend sends data to GA via
Measurement protocol
Payment confirmation
Example: Prestashop urls
Get GA client ID for visitor via JavaScript
Store in database, connect with order ID
When starting checkout
Get GA client ID for visitor via JavaScript
Store in database, connect with order ID
Fetch stored GA client ID Get order ID from confirmation data
Send data to GA using Measurement protocol
Build tracking url
When starting checkout
When receiving payment confirmation
Fetch details for order
CRM provides lead generation form
Website integrates form
CRM provides lead generation form
Website integrates form
Visitor fills in form
GA client ID is added
Data is stored in CRM
CRM provides lead generation form
Website integrates form
Visitor fills in form
GA client ID is added
Data is stored in CRM
Lead status is changed in CRM
CRM sends data to GA with stored GA client ID
and lead status
Screenshots made using Zoho CRM : https://www.zoho.com/crm/
✓
?
CRM provides lead generation form ✓
Lead status is changed in CRM
CRM sends data to GA with stored GA client ID
and lead status
…arrgh…
versus
No consent yet? Create and remember
GA client ID server-side Report pageview to GA via
measurement protocol
No consent yet? Create and remember
GA client ID server-side Report pageview to GA via
measurement protocol
Next pageview: Tell GA to use created GA client ID
Exclude bots: Same as with tracking of downloads Consistency: Use same configuration for server-side and client-side tracking Distinguish server and client-side tracking: Use 'server' as data source Some data not available: - Size of viewport and screen - browser language - Java & Flash
IP always anonymized: automatically done when using Measurement Protocol
Server-side tracking extra load on server Offline tracking no live internet connection
Server-side tracking extra load on server Offline tracking no live internet connection Use asynchronous tracking:
Store details in database / log file, including exact time of hit
Build tracking url, add queue time
Report pageview to GA via measurement protocol
Up to 4 hours later
You will either get consent from your end users, or provide them with the opportunity to opt-out from the implementations and features you use. Source: Measurement protocol policy
Problem: No way to detect GA opt-out plugin server-side Situation unclear Possible work-around: Check do-not-track header (DNT) for any server-side tracking and mention this in in your privacy statement opportunity to opt out
• JavaScript tracking not possible everywhere
• Server-side tracking + browser-side tracking = better data
• Anything that happens on your server can be tracked
• Google Analytics is more flexible then you think