[PYTHON] Mit ReportingAPI + Cloud-Funktionen können Sie die Anzahl der Besuche auf jeder Seite ermitteln

Zweck

Beschreibt, wie die Anzahl der Besuche auf jeder Seite mithilfe von ReportingAPI + Cloud-Funktionen ermittelt wird. Die Berichts-API v4 (google-api-python-client) wird zum Abrufen von Google Analytics-Daten verwendet.

Umgebung

google-api-python-client: 1.12.2 oauth2client: 4.1.3

fließen

    1. Einstellungen der Google API-Konsole
  1. Google Analytics-Einstellungen
    1. Analytics-Daten ausgeben

1. 1. Einstellungen der Google API-Konsole

Aktivieren Sie die Berichts-API v4 über Google API Console . Laden Sie zu diesem Zeitpunkt den privaten Schlüssel herunter und notieren Sie sich die E-Mail-Adresse des Dienstkontos.

[email protected]

2. Google Analytics-Einstellungen

Fügen Sie die E-Mail-Adresse von Google Analytics unter [Administration]> [Benutzerverwaltung anzeigen]> [Benutzer hinzufügen] hinzu. Machen.

3. 3. Analytics-Daten ausgeben

Erstellen Sie eine Funktion aus den Cloud-Funktionen von GCP und fügen Sie die folgende Quelle ein, um den Vorgang abzuschließen

main.py


from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials

SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
KEY_FILE_LOCATION = 'Json-Dateipfad'
VIEW_ID = 'VIEW_ID'

def initialize_analyticsreporting():
    credentials = ServiceAccountCredentials.from_json_keyfile_name(
        KEY_FILE_LOCATION, SCOPES)
    analytics = build('analyticsreporting', 'v4', credentials=credentials)
    return analytics

def get_report(analytics):
    return analytics.reports().batchGet(
        body={
            'reportRequests': [
                {
                    'viewId': VIEW_ID,
                    'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
                    'metrics': [{'expression': 'ga:uniquePageviews'}],
                    'dimensions': [{'name': 'ga:pagePath'}]
                }]
        }
    ).execute()

def print_response(response):
    for report in response.get('reports', []):
        columnHeader = report.get('columnHeader', {})
        dimensionHeaders = columnHeader.get('dimensions', [])
        metricHeaders = columnHeader.get(
            'metricHeader', {}).get('metricHeaderEntries', [])

        for row in report.get('data', {}).get('rows', []):
            dimensions = row.get('dimensions', [])
            dateRangeValues = row.get('metrics', [])

            for i, values in enumerate(dateRangeValues):
                for dimension, value in zip(dimensions, values.get('values')):
                    print(dimension + ':' + value)


def main(event, context):
    analytics = initialize_analyticsreporting()
    response = get_report(analytics)
    print_response(response)

requirements.txt


google-api-python-client==1.12.2
oauth2client==4.1.3

Impressionen

Ich war neu in Python, GCP und Analytics und habe viel gelernt. Dieses Mal wollte ich eine Ranking-Funktion für das Blog, also habe ich es gemacht, aber wie stark unterscheidet sich der Preis von der Anzahl der Zugriffe auf den Fire Store?: Denken: Es scheint besser, sich vor der Berichterstellung API-Kenntnisse anzueignen (lacht)

Recommended Posts

Mit ReportingAPI + Cloud-Funktionen können Sie die Anzahl der Besuche auf jeder Seite ermitteln
Holen Sie sich die Quelle der Seite unbegrenzt mit Python zu laden.
Versuchen Sie, den Inhalt von Word mit Golang zu erhalten
Holen Sie sich die Anzahl der Ziffern
So zählen Sie die Anzahl der Vorkommen jedes Elements in der Liste in Python mit der Gewichtung
Ermitteln Sie die Anzahl der Vorkommen für jedes Element in der Liste
Holen Sie sich die Anzahl der Ansichten von Qiita
Holen Sie sich die Anzahl der Youtube-Abonnenten
Ermitteln Sie die Anzahl der PVs von Qiita-Artikeln, die Sie mit API veröffentlicht haben
So erhalten Sie die ID von Type2Tag NXP NTAG213 mit nfcpy
PhytoMine-I hat versucht, mit Python die genetischen Informationen der Pflanze zu erhalten
Zählen Sie die Anzahl der Zeichen mit Echo
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Konvertieren Sie eine Tabelle in CSV und laden Sie sie mit Cloud-Funktionen in den Cloud-Speicher hoch
Holen Sie sich Artikelbesuche und Likes mit Qiita API + Python
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Der einfachste Weg, um mit Django zu beginnen
Konvertieren Sie Daten mit Form (Anzahl der Daten, 1) in (Anzahl der Daten,) mit numpy.
Berechnen Sie die Gesamtzahl der Kombinationen mit Python
Ermitteln Sie mithilfe der Twitter-API die Anzahl der Tweets, die sich auf ein bestimmtes Keyword beziehen
Hinweis: So erhalten Sie den letzten Tag des Monats mit Python (hinzugefügt am ersten Tag des Monats)
[Überprüfung] Versuchen Sie, die Punktgruppe an der Optimierungsfunktion von Pytorch Part 1 auszurichten
Ich wollte die Anzahl der Zeilen in mehreren Dateien wissen und versuchte, sie mit einem Befehl abzurufen
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
Wie identifiziere ich das Element mit der geringsten Anzahl von Zeichen in einer Python-Liste?
Mit Python + Selenium erhalten Sie Informationen, die der Registerkarte "Netzwerk" der Chrome-Entwicklertools entsprechen
Einfache Möglichkeit, 0 abhängig von der Anzahl der Ziffern vorangestellt [Python]
Erste Schritte mit Visual Studio Online ~ Das Ende der Ära der Umgebungskonstruktion ~
[Für Anfänger] Web-Scraping mit Python "Greifen Sie auf die URL auf der Seite zu, um den Inhalt abzurufen."
Wie man die Portnummer des xinetd-Dienstes kennt
Fügen Sie mit Matplotlib Informationen am unteren Rand der Abbildung hinzu
Versuchen Sie, die Anzahl der Likes auf Twitter zu schätzen
Sagen Sie die Anzahl der mit COVID-19 infizierten Personen mit Prophet voraus
Ermitteln Sie die Größe (Anzahl der Elemente) von Union Find in Python
Verwalten Sie die Paketversionsnummer von require.txt mit pip-tools
Weisen Sie dem Namen der zerlegten PDF-Datei für jede Seite ein Datum zu
Holen Sie sich mit Python den Betriebsstatus von JR West
Skript zum Abrufen des Ablaufdatums des SSL-Zertifikats
[Python] Ermittelt die Anzahl der Aufrufe aller veröffentlichten Artikel
Zusammenfassung, wie der Status mit mehreren Funktionen geteilt wird
Ich habe versucht, die Punktgruppendaten-DB der Präfektur Shizuoka mit Vue + Leaflet anzuzeigen
[Einführung in das SIR-Modell] Prognostizieren Sie die Endzeit jedes Landes mit der COVID-19-Datenanpassung ♬
[Einführung in das logarithmische Diagramm] Prognostizieren Sie die Endzeit jedes Landes anhand des logarithmischen Diagramms der Infektionszahldaten ♬
[OCI] Python-Skript zum Abrufen der IP-Adresse einer Recheninstanz in Cloud Shell
Wie man die Anzahl der GPUs aus Python kennt ~ Hinweise zur Verwendung von Multiprocessing mit pytorch ~
So erhalten Sie Informationen von Organisationen, Cost Explorer eines anderen AWS-Kontos bei Lambda (Python)
[Python] Ändern Sie die Cache-Steuerung von Objekten, die in den Cloud-Speicher hochgeladen wurden
So finden Sie die optimale Anzahl von Clustern für k-means
Versuchen Sie, die Funktionsliste des Python> os-Pakets abzurufen
Ich habe versucht, die Standortinformationen des Odakyu-Busses zu erhalten
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
Cloud-Funktionen zum Ändern der Bildgröße mithilfe von OpenCV mit Cloud Storage-Trigger
Mindestkenntnisse, um mit dem Python-Protokollierungsmodul zu beginnen
Holen Sie sich die Paketversion, um sich bei PyPI von Git zu registrieren
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste