[PYTHON] Obtenez le nombre de visites sur chaque page avec ReportingAPI + Cloud Functions

Objectif

Décrit comment obtenir le nombre de visites sur chaque page à l'aide de ReportingAPI + Cloud Functions. L'API Reporting v4 (google-api-python-client) est utilisée pour récupérer les données Google Analytics.

environnement

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

couler

    1. Paramètres de la console API Google
  1. Paramètres de Google Analytics
    1. Données d'analyse de sortie

1. 1. Paramètres de la console API Google

Activez l'API Reporting v4 depuis la Console API Google . À ce stade, téléchargez la clé privée et notez l'adresse e-mail du compte de service.

[email protected]

2. Paramètres de Google Analytics

Ajoutez l'adresse e-mail de Google Analytics sous [Administration]> [Afficher la gestion des utilisateurs]> [Ajouter un utilisateur]. Faire.

3. 3. Données d'analyse de sortie

Créez une fonction à partir des fonctions cloud de GCP et collez la source suivante pour terminer

main.py


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

SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
KEY_FILE_LOCATION = 'Chemin du fichier Json'
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

Impressions

J'étais nouveau dans Python, GCP et Analytics, donc j'ai beaucoup appris. Cette fois, je voulais une fonction de classement pour le blog, alors je l'ai fait, mais en quoi le prix diffère-t-il du comptage du nombre d'accès au Fire Store? Il semble préférable d'acquérir des connaissances en Analytics avant de faire l'API Reporting (rires)

Recommended Posts

Obtenez le nombre de visites sur chaque page avec ReportingAPI + Cloud Functions
Récupérez la source de la page à charger indéfiniment avec python.
Essayez d'obtenir le contenu de Word avec Golang
Obtenez le nombre de chiffres
Comment compter le nombre d'occurrences de chaque élément de la liste en Python avec poids
Obtenez le nombre d'occurrences pour chaque élément de la liste
Obtenez le nombre de vues de Qiita
Obtenez le nombre d'abonnés Youtube
Obtenez le nombre de PV d'articles Qiita que vous avez publiés avec l'API
Comment obtenir l'ID de Type2Tag NXP NTAG213 avec nfcpy
PhytoMine-I a essayé d'obtenir les informations génétiques de la plante avec Python
Compter le nombre de caractères avec écho
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
Convertissez la feuille de calcul en CSV et importez-la dans Cloud Storage avec Cloud Functions
Obtenez des visites d'articles et des likes avec l'API Qiita + Python
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
Le moyen le plus simple de démarrer avec Django
Convertissez les données avec la forme (nombre de données, 1) en (nombre de données,) avec numpy.
Calculez le nombre total de combinaisons avec python
Obtenez le nombre de tweets liés à un certain mot-clé à l'aide de l'API Twitter
Remarque: Comment obtenir le dernier jour du mois avec python (ajouté le premier jour du mois)
[Vérification] Essayez d'aligner le groupe de points avec la fonction d'optimisation de pytorch Partie 1
Je voulais connaître le nombre de lignes dans plusieurs fichiers et j'ai essayé de l'obtenir avec une commande
Comment obtenir une liste de fichiers dans le même répertoire avec python
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
Obtenez des informations équivalentes à l'onglet Réseau des outils de développement Chrome avec Python + Selenium
Un moyen simple de remplir le début de 0 en fonction du nombre de chiffres dans le nombre [Python]
Comment démarrer avec Visual Studio Online ~ La fin de l'ère de la construction d'environnement ~
[Pour les débutants] Web scraping avec Python "Accédez à l'URL de la page pour obtenir le contenu"
Comment connaître le numéro de port du service xinetd
Ajoutez des informations au bas de la figure avec Matplotlib
Essayez d'estimer le nombre de likes sur Twitter
Prédire le nombre de personnes infectées par COVID-19 avec Prophet
Obtenir la taille (nombre d'éléments) de Union Find en Python
Gérez le numéro de version du package de requirements.txt avec pip-tools
Attribuer une date au nom du PDF décomposé pour chaque page
Obtenez l'état de fonctionnement de JR West avec Python
Script pour obtenir la date d'expiration du certificat SSL
[Python] Obtenez le nombre de vues de tous les articles publiés
Résumé de la façon de partager l'état avec plusieurs fonctions
J'ai essayé d'afficher les données du groupe de points DB de la préfecture de Shizuoka avec Vue + Leaflet
[Introduction au modèle SIR] Prédire l'heure de fin de chaque pays avec l'ajustement des données COVID-19 ♬
[Introduction au graphique logarithmique] Prédire l'heure de fin de chaque pays à partir du graphique logarithmique des données sur le nombre d'infections ♬
[OCI] Script Python pour obtenir l'adresse IP d'une instance de calcul dans Cloud Shell
Comment connaître le nombre de GPU de python ~ Remarques sur l'utilisation du multitraitement avec pytorch ~
Comment obtenir les informations des organisations, Cost Explorer d'un autre compte AWS avec Lambda (python)
[Python] Modifier le contrôle du cache des objets téléchargés sur Cloud Storage
Comment trouver le nombre optimal de clusters pour les k-moyennes
Essayez d'obtenir la liste des fonctions du paquet Python> os
J'ai essayé d'obtenir les informations de localisation du bus Odakyu
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
Cloud Functions pour redimensionner les images à l'aide d'OpenCV avec le déclencheur Cloud Storage
Connaissances minimales pour démarrer avec le module de journalisation Python
Obtenez la version du package pour vous inscrire à PyPI à partir de Git
Obtenez le nombre d'éléments spécifiques dans la liste python