Google Analytics¶
The Google Analytics provider sends data to Google using the Measurement Protocol.
Tracking pageviews¶
import analytical
from analytical.providers.googleanalytics import generate_client_id
ga = analytical.Provider('googleanalytics', 'UA-XXXXXX-Y')
ga.pageview({
"ua": "user-agent", # User agent
"uip": "12.34.56.78", # User IP address
"dl": "https://example.com", # URL of the pageview (required)
"dt": "page title", # Title of the page
})
For the complete list of parameters, see the reference.
Tracking events¶
import analytical
ga = analytical.Provider('googleanalytics', 'UA-XXXXXX-Y')
ga.event({
"ua": "user-agent",
"uip": "12.34.56.78",
"ec": "event-category", # Event category (required)
"ea": "event-action", # Event action (required)
"el": "event-label", # Event label (optional)
"ev": 0, # Event value (optional, integer)
})
See the event parameter reference for more details.
Utility functions¶
-
analytical.providers.googleanalytics.
generate_client_id
(user_secret=None)¶ Generate a Google Analytics client ID (the
cid
parameter)GA treats users with the same client ID as the same user for analytics purposes. This function helps generate a client ID that can be used to track new vs. returning visitors without cookies.
# Use the User Agent and IP Address # The downside to this is if the IP or UA changes, it's considered a new user # The upside is it doesn't require anything from a database, cookies or elsewhere secret = '{}${}${}'.format('my-secret', ip_address, user_agent) client_id = generate_client_id(secret) # Use a user ID value from a database or elsewhere secret = '{}${}'.format('my-secret', user.id) client_id = generate_client_id(secret)
Parameters: user_secret (str) – a secret that shouldn’t change for a given user. If None
, treat all pageviews and events as new/unique.Returns str: a client ID suitable for using with Google Analytics