appengine/flexible/analytics/main.py (35 lines of code) (raw):

# Copyright 2015 Google LLC. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # [START gae_flex_analytics_track_event] import logging import os from flask import Flask import requests app = Flask(__name__) # Environment variables are defined in app.yaml. GA_TRACKING_ID = os.environ["GA_TRACKING_ID"] def track_event(category, action, label=None, value=0): data = { "v": "1", # API Version. "tid": GA_TRACKING_ID, # Tracking ID / Property ID. # Anonymous Client Identifier. Ideally, this should be a UUID that # is associated with particular user, device, or browser instance. "cid": "555", "t": "event", # Event hit type. "ec": category, # Event category. "ea": action, # Event action. "el": label, # Event label. "ev": value, # Event value, must be an integer "ua": "Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14", } response = requests.post("https://www.google-analytics.com/collect", data=data) # If the request fails, this will raise a RequestException. Depending # on your application's needs, this may be a non-error and can be caught # by the caller. response.raise_for_status() @app.route("/") def track_example(): track_event(category="Example", action="test action") return "Event tracked." @app.errorhandler(500) def server_error(e): logging.exception("An error occurred during a request.") return ( """ An internal error occurred: <pre>{}</pre> See logs for full stacktrace. """.format( e ), 500, ) if __name__ == "__main__": # This is used when running locally. Gunicorn is used to run the # application on Google App Engine. See entrypoint in app.yaml. app.run(host="127.0.0.1", port=8080, debug=True) # [END gae_flex_analytics_track_event]