[GO] Verwenden Sie das Messprotokoll mit Python

Hallo zusammen. @best_not_best.

Mithilfe des Google Analytics-Messprotokolls können Sie Rohdaten in einer HTTP-Anforderung direkt an den Google Analytics-Server senden. Auf diese Weise können Sie Online- und Offline-Verhalten verbinden und in Google Analytics analysieren.

Informationen zum Messprotokoll

Offizielle Dokumentation

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

Unterschied zum Datenimport

Google Analytics verfügt über eine ähnliche Funktion namens Datenimport (https://support.google.com/analytics/answer/3191589). Die Unterschiede sind jedoch (ungefähr):

Measurement Protocol Datenimport
So senden Sie Daten HTTP-Anfrage Hauptsächlich Datei-Upload
Benutzer zu senden Es ist auch möglich, Daten von Nutzern (neuen Nutzern) zu senden, die in Google Analytics nicht vorhanden sind Nur in Google Analytics vorhandene Benutzer (vorhandene Benutzer)
Reflexionszeit Fast in Echtzeit Es kann bis zu 24 Stunden dauern
Offizielle Dokumentation mit Anwendungsbeispielen in Python Keiner Ja (Management API

Anwendungsbeispiel

Google Analytics Free Edition

Eine Mitglieds-ID erhalten Sie unter Benutzerdefinierte Dimension. Senden Sie nach dem Kombinieren mit Systemdaten Daten mit dem Messprotokoll. Die an Google Analytics gesendeten Daten können auch für die Verteilung von Werbung verwendet werden.

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

Google Analytics Paid Edition + Google Cloud-Plattform

Sie können BigQuery Export von Google Analytics-Daten verwenden. Nach dem Kombinieren mit Systemdaten in BigQuery können Sie also Daten aus Dataflow oder Cloud Composer mit Messprotokoll kombinieren Ich denke, es ist besser zu senden.

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

Obwohl die Einführung verlängert wurde, ist das Folgende ein Beispiel für die Verwendung des Messprotokolls.

Umgebung

Maschine / Betriebssystem

$ 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

Programm

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)

Geben Sie für "tid" die Tracking-ID des Ziels Google Analytics an und für "ua" einen geeigneten Benutzeragenten. url_params ist ein API-Parameter. Bitte setzen Sie jede Google Analytics-Client-ID auf "cid". Die verfügbaren Parameter finden Sie weiter unten. https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters

Ausführungsmethode

$ python mp.py

Ausführungsergebnis

Wenn Sie sich die Echtzeitereignisse in Google Analytics ansehen, können Sie sehen, dass die von Ihnen festgelegten Ereignisse verfolgt werden.

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

Andere irrelevante Geschichten

Nach dem Update von pyenv auf meinem Mac hat openssl nicht funktioniert, daher führe ich es in einer Cloud-Umgebung aus ... (Deshalb ist die Python-Version 3.5.) Es tut mir leid, das Problem zu beheben ...

Recommended Posts

Verwenden Sie das Messprotokoll mit Python
Verwenden Sie config.ini mit Python
Verwenden Sie Datumsangaben in Python
Verwenden Sie Valgrind mit Python
Verwenden Sie den Profiler in Python
Mal sehen, wie def in Python verwendet wird
Verwenden Sie den let-Ausdruck in Python
Verwenden Sie die Rückruffunktion in Python
Verwenden Sie den Parameterspeicher in Python
Verwenden Sie den HTTP-Cache in Python
Verwenden Sie in Python ein Diktat mit Listenschlüssel
Verwenden Sie Random Forest mit Python
Verwenden Sie Spyder von Python IDE
Lesen Sie die Protokollpufferdaten mit Python3
Verwenden Sie Stoff wie in Python (Stoff3)
Verwendung von SQLite in Python
Deaktivieren Sie das python2.6 ssl3-Protokoll in centos6
Verwenden Sie rospy mit virtualenv in Python3
Wie man MySQL mit Python benutzt
Verwenden Sie Python in pyenv mit NeoVim
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Verwenden Sie OpenCV mit Python 3 in Window
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Verwenden Sie print in Python2 lambda expression
Metaanalyse in Python
Unittest in Python
Verwenden Sie einfach Ihre eigenen Funktionen in Python
Epoche in Python
Zwietracht in Python
Python-Zeitmessung
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Einfache Möglichkeit, Wikipedia mit Python zu verwenden
Plink in Python
Konstante in Python
Verwenden Sie \ d nicht in regulären Python 3-Ausdrücken!
FizzBuzz in Python
Verwendung von __slots__ in der Python-Klasse
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
Verwenden Sie pathlib in Maya (Python2.7), um sich auf das kommende Python3.7 vorzubereiten