[PYTHON] Exportez les données d'accès pour chaque utilisateur de Google Analytics.

objectif

Créez une instance sur Google Cloud Compute (GCE), utilisez un programme Python pour exporter des données Google Analytics (GA), importez-les dans MySQL et exportez les données formatées. Je viserai.

Environnement (GCP)

OS: Ubuntu 14.04 LTS Machine Type: g1-small (1 vCPU, 1.7 GB memory) Les autres paramètres sont les paramètres par défaut, mais à titre d'exception, accordez des autorisations pour utiliser l'API.

procédure

Préparation préalable

Obtenez l'adresse IP de l'utilisateur d'accès avec GA.

Le journal d'accès de chaque utilisateur est acquis par défaut dans la version gratuite. Mais il n'y a pas d'axe pour rendre l'utilisateur unique. Par conséquent, l'adresse IP de l'utilisateur d'accès est acquise comme axe de regroupement. Le flux est le suivant. ① Définissez une dimension personnalisée dans GA. ② Ajoutez le code pour acquérir l'adresse IP au JavaScript du site Web. ③ Confirmez que vous pouvez l'obtenir sur GA.

■ Explication détaillée ① Définissez une dimension personnalisée dans GA. Tout d'abord, définissez une dimension personnalisée. Les dimensions personnalisées sont utilisées lorsque vous souhaitez envoyer plus que les informations standard fournies par une page Web. image

Créez une nouvelle dimension personnalisée. (Créé dans la figure) image

Créez-le avec n'importe quel nom. image

Vérifiez le code pour obtenir la valeur de la dimension personnalisée que vous avez créée. Si vous pouvez coller ce code dans l'en-tête d'une page Web et définir une valeur pour la dimension personnalisée ajoutée, vous pouvez le voir sur Google Analytics. image

La spécification de trackCommonMethod.getIP () pour dimensionValue définit l'adresse IP de cette dimension personnalisée et l'envoie au GA. Ajoutez ce script à votre site. Assurez-vous de l'ajouter avant ga ('send', 'pageview');. Ce service semble avoir été créé par M. Kei, qui gère la page suivante. Merci beaucoup. http://lfll.blog73.fc2.com/blog-entry-258.html

Si vous êtes réticent à utiliser cela, il semble que vous puissiez le faire en écrivant votre propre script. Dans mon cas, je l'ai intégré dans le site de Jimdo, donc je ne pouvais pas écrire le script librement, alors je l'ai mis de côté.


<script type="text/javascript" src="//www.analyticsip.net/getIP/public_html/ra/script.php">

//Omission

</script>
  ga('set', 'dimension1', trackCommonMethod.getIP());
  ga('send', 'pageview');

Ensuite, lorsque les données GA sont mises à jour, l'adresse IP sera affichée en spécifiant la dimension personnalisée créée précédemment pour la dimension secondaire de chaque rapport.

image

Exportez les données d'accès depuis GA.

Maintenant que vous êtes prêt, consultez la page officielle et créez un compte de service. https://developers.google.com/analytics/

Créez le code Python suivant pour exporter les données GA au format CSV.

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import sys
import HelloAnalytics
from apiclient.errors import HttpError
from oauth2client.client import AccessTokenRefreshError
import csv
import codecs
import subprocess
import datetime
import os
 
# information for call API.
scope = ['https://www.googleapis.com/auth/analytics.readonly']
service_account_email = 'Adresse e-mail du compte de service que vous avez créé'
key_file_location = 'Chemin de placement du fichier de clé créé'
view_id = 'Identifiant de vue pouvant être obtenu sur l'écran de gestion GA'
 
# Authenticate and construct service.
#Les paramètres de connexion ici proviennent d'autres sources, veuillez donc les corriger.
service = HelloAnalytics.get_service('analytics', 'v3', scope, key_file_location, service_account_email)
args = sys.argv
exec_date = args[1]
   
print ""
print "exec_date:" + exec_date
 
#--------------------------------------------
#Collecte de données(Main)
#Obtenez des informations quotidiennes sur les pages vues
#--------------------------------------------
results = service.data().ga().get(
  ids='ga:' + view_id,
  start_date='7daysAgo',
  end_date='today',
  metrics='ga:pageviews',
  dimensions='ga:dimension1,ga:pagePath',
  max_results=20000
).execute()
rows = results.get('rows')
 
# Write Output File(CSV)
csvFileName = "GoogleAnalyticsData_" + exec_date + ".csv"
fout = codecs.open(csvFileName, 'w', 'utf-8')
filestr = "analysis_date" \
  + "," + "dimension1" \
  + "," + "pagepath" \
  + "," + "pageviews" + "\n"
fout.write(filestr);
 
count = 0;
for row in rows:
  dimension1 = row[0]
  pagepath = row[1];
  pageviews = row[2];
  filestr = exec_date \
    + "," + dimension1 \
    + "," + pagepath \
    + "," + pageviews + "\n" 

  fout.write(filestr)
  count = count+1;
 
print count;

Importez les données exportées dans MySQL et formatez-les.

Dans mon cas, je voulais exporter depuis GA, importer vers MySQL et formater en même temps, j'ai donc créé le shell suivant. Veuillez modifier le chemin du fichier, l'ID et le mot de passe selon le cas.

#!bin/bash
today=`date '+%F'`
lastWeek=`date --date '7days ago' +%F`
# Export CSY From GoogleAnalytics
#Le programme précédent
python exportData.py $today
mv GoogleAnalyticsData_$today.csv files/

# Import Data From CSV To MySql
mysql -u analytics -panalytics  -D analytics -e "LOAD DATA LOCAL INFILE '/usr/local/analytics/files/GoogleAnalyticsData_$today.csv' IGNORE INTO TABLE raw_data FIELDS TERMINATED BY ',' ENCLOSED BY '""' IGNORE 1 LINES;"
#Nous avons préparé un fichier SQL pour formater les données importées.
mysql -u analytics -panalytics  -D analytics < ImportData.sql

# Create CSV For TensorFlow
#Étant donné que MySQL ne pouvait pas afficher le nom de la colonne, j'ai eu l'impression de générer des données dans un fichier modèle avec uniquement le nom de la colonne.
mv /var/lib/mysql-files/ExportData.csv files/
if [ -f files/tfData_$today.csv ]; then
  rm files/tfData_$today.csv
fi
touch files/tfData_$today.csv
cat files/columns.csv  >> files/tfData_$today.csv
cat files/ExportData.csv  >> files/tfData_$today.csv

Impressions

Étant donné que GA a beaucoup d'informations sur Internet, j'ai pu atteindre mon objectif presque sans difficulté.

Recommended Posts

Exportez les données d'accès pour chaque utilisateur de Google Analytics.
Exportation régulière des données brutes Google Analytics vers BigQuery à l'aide des fonctions cloud
Obtenez des données de l'API d'analyse avec le client API Google pour python
Exporter la norme Google Analytics vers BigQuery
Limiter ssh avec iptables pour chaque utilisateur
Visualisez les données d'exportation du journal Piyo
Acquisition de données à partir de l'API d'analyse avec l'application Web Client API Google pour python Partie 2
Principes de base de Pandas pour les débutants ② Présentation des données de saisie
Quoi utiliser pour les piles et les files d'attente Python (comparaison de vitesse de chaque structure de données)