Utiliser le protocole de mesure avec Python

Bonjour à tous. @best_not_best.

En utilisant le protocole de mesure Google Analytics, vous pouvez envoyer des données brutes directement au serveur Google Analytics dans une requête HTTP. Cela vous permet de connecter le comportement en ligne et hors ligne et de l'analyser sur Google Analytics.

À propos du protocole de mesure

Documentation officielle

https://developers.google.com/analytics/devguides/collection/protocol/

Différence par rapport à l'importation de données

Google Analytics propose une fonctionnalité similaire appelée Importation de données (https://support.google.com/analytics/answer/3191589), mais les différences sont (en gros):

Measurement Protocol Importation de données
Comment envoyer des données Requête HTTP Principalement le téléchargement de fichiers
Utilisateur à envoyer Il est également possible d'envoyer des données d'utilisateurs (nouveaux utilisateurs) qui n'existent pas dans Google Analytics Seuls les utilisateurs (utilisateurs existants) existant dans Google Analytics
Temps de réflexion Presque temps réel Cela peut prendre jusqu'à 24 heures
Documentation officielle avec des exemples d'utilisation en Python Aucun Oui (Management API

Exemple d'utilisation

Édition gratuite de Google Analytics

Obtenez un identifiant de membre sur Dimension personnalisée. Après la combinaison avec les données système, envoyez les données avec le protocole de mesure. Les données envoyées à Google Analytics peuvent également être utilisées pour la distribution de publicités.

スクリーンショット 2019-12-08 22.47.26.png

Google Analytics Paid Edition + Google Cloud Platform

Vous pouvez utiliser BigQuery Export de données Google Analytics, donc après avoir combiné avec des données système sur BigQuery, des données de Dataflow ou Cloud Composer avec un protocole de mesure Je pense qu'il vaut mieux envoyer.

スクリーンショット 2019-12-08 22.47.38.png

Bien que l'introduction ait été allongée, voici un exemple d'utilisation du protocole de mesure.

environnement

Machine / OS

$ cat /etc/os-release

PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Python

programme

mp.py


#!/usr/bin/env python
# -*- coding: UTF-8 -*-

"""send Google Analytics data using MeasurementProtocol."""

import sys
import urllib.parse
import urllib.request
from urllib.request import urlopen

if __name__ == '__main__':
    mp_url = 'https://www.google-analytics.com/collect'
    tid = 'UA-XXXXX-X'
    ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:71.0) Gecko/20100101 Firefox/71.0'
    t = 'event'
    ec = 'sample_event_category'
    ea = 'sample_event_action'
    el = 'sample_event_labe'
    v = '1'
    ni = 1

    # url params
    url_params = [
        {
            'v': v,
            'tid': tid,
            'ua': ua,
            't': t,
            'ec': ec,
            'ea': ea,
            'el': el,
            'ni': '1',
            'cid': '11111.11111',
        },
        {
            'v': v,
            'tid': tid,
            'ua': ua,
            't': t,
            'ec': ec,
            'ea': ea,
            'el': el,
            'ni': '1',
            'cid': '22222.22222',
        },
        {
            'v': v,
            'tid': tid,
            'ua': ua,
            't': t,
            'ec': ec,
            'ea': ea,
            'el': el,
            'ni': '1',
            'cid': '33333.33333',
        },
    ]

    try:
        for url_param in url_params:
            # url encode
            data = urllib.parse.urlencode(url_param).encode('utf-8')
            request = urllib.request.Request(mp_url, data)
            response = urlopen(request)
    except Exception as e:
        print(e)
        sys.exit(1)

    sys.exit(0)

Pour tid, spécifiez l'ID de suivi de la destination Google Analytics et pour ʻua, spécifiez un agent utilisateur approprié. ʻUrl_params est un paramètre d'API. Veuillez définir chaque ID client Google Analytics dans cid. Voir ci-dessous pour les paramètres disponibles. https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters

Méthode d'exécution

$ python mp.py

Résultat d'exécution

Si vous regardez les événements en temps réel dans Google Analytics, vous pouvez voir que les événements que vous définissez sont suivis.

スクリーンショット 2019-12-09 0.41.01.png

Autres histoires non pertinentes

Après avoir mis à jour pyenv sur mon Mac, openssl n'a pas fonctionné, je l'exécute donc dans un environnement cloud ... (C'est pourquoi la version Python est 3.5.) Je suis désolé de le réparer ...

Recommended Posts

Utiliser le protocole de mesure avec Python
Utilisez config.ini avec Python
Utiliser des dates en Python
Utiliser Valgrind avec Python
Utiliser le profileur en Python
Voyons comment utiliser def en python
Utiliser l'expression let en Python
Utiliser la fonction de rappel en Python
Utiliser le magasin de paramètres en Python
Utiliser le cache HTTP en Python
Utilisez l'ODM de MongoDB avec Python
Utiliser un dict clé de liste en Python
Utiliser Random Forest avec Python
Utilisez Spyder de Python IDE
Lire les données des tampons de protocole avec Python3
Utilisez le tissu tel quel en python (fabric3)
Comment utiliser SQLite en Python
Désactiver le protocole python2.6 ssl3 sur centos6
Utiliser rospy avec virtualenv dans Python3
Comment utiliser Mysql avec python
Utiliser Python mis en pyenv avec NeoVim
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
Utiliser OpenCV avec Python 3 dans Window
Quadtree en Python --2
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Utiliser l'impression dans l'expression lambda Python2
Méta-analyse en Python
Unittest en Python
Utilisez facilement vos propres fonctions en Python
Époque en Python
Discord en Python
mesure du temps python
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Un moyen simple d'utiliser Wikipedia avec Python
Plink en Python
Constante en Python
N'utilisez pas \ d dans les expressions régulières Python 3!
FizzBuzz en Python
Comment utiliser __slots__ dans la classe Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
Utilisez pathlib dans Maya (Python2.7) en préparation du prochain Python3.7