Send hits to Google Analytics through its Measurement Protocol API.
The architecture is inspired by Google Analytics' analytics.js library.
Install from git:
pip install -e git+https://github.com/yuhui/google-analytics-measurement-protocol.git#egg=google-analytics-measurement-protocol
from google.analytics.measurement_protocol import GoogleAnalytics
# create a tracker
ga = GoogleAnalytics('UA-12345-6')
# set common fields
ga.set(user_id='abc123')
# send data
ga.send_pageview('/page', 'domain.com')
ga.send_event('menu', 'click', 'about')
Use the set() method to set data that can be sent with all hits:
custom_dimensionscustom_metricsuser_idapp_nameapp_idapp_versionapp_installer_id
Send hit data with the appropriate methods:
send_pageview(page, hostname, title, content_groups)send_screenview(screen_name)send_event(event_category, event_action, event_label, event_value, non_interaction)send_social(social_network, social_action, social_target)send_exception(ex_description, ex_fatal)send_timing(timing_category, timing_var, timing_value, timing_label)
Not available:
transactionitem- Traffic Sources
- Enhanced Ecommerce
Note about Content Experiments
Support for Content Experiment tracking will never be available because Google Analytics has deprecated this feature.
Use debug=True when creating the tracker, e.g.
# create a debugger tracker
ga_debug = GoogleAnalytics('UA-12345-6', debug=True)
This prevents hits from being sent to your Analytics property. Instead, your hits are validated against the Measurement Protocol Validation Server.
A debug message is then shown with each hit. Debugging messages are tracked at the DEBUG level.
To log the debugging messages to your own logger, create your tracker with a logger, e.g.
# create a debugger tracker with your logger
import logging
logger = logging.getLogger('my_app')
...
...
ga_debug = GoogleAnalytics('UA-12345-6', debug=True, logger=logger)
Note: using a logger when debug=False has no effect. Since there are no debug messages, nothing gets logged.