[PYTHON] Exportieren Sie Zugriffsdaten für jeden Nutzer von Google Analytics.

Tor

Erstellen Sie eine Instanz in Google Cloud Compute (GCE), exportieren Sie mit einem Python-Programm Google Analytics (GA) -Daten, importieren Sie sie in MySQL und exportieren Sie die formatierten Daten. Ich werde zielen.

Umwelt (GCP)

OS: Ubuntu 14.04 LTS Machine Type: g1-small (1 vCPU, 1.7 GB memory) Die anderen Einstellungen sind die Standardeinstellungen, erteilen jedoch ausnahmsweise Berechtigungen zur Verwendung der API.

Verfahren

Vorbereitungen

Holen Sie sich die IP des Zugriffsbenutzers mit GA.

Das Zugriffsprotokoll für jeden Benutzer wird standardmäßig in der kostenlosen Version erfasst. Es gibt jedoch keine Achse, die den Benutzer eindeutig macht. Daher wird die IP des Zugriffsbenutzers als Achse für die Gruppierung erfasst. Der Fluss ist wie folgt. ① Definieren Sie eine benutzerdefinierte Dimension in GA. ② Fügen Sie den Code zum Abrufen der IP zum JavaScript der Website hinzu. ③ Bestätigen Sie, dass Sie es auf GA erhalten können.

■ Detaillierte Erklärung ① Definieren Sie eine benutzerdefinierte Dimension in GA. Definieren Sie zunächst eine benutzerdefinierte Dimension. Benutzerdefinierte Abmessungen werden verwendet, wenn Sie mehr als die von einer Webseite bereitgestellten Standardinformationen senden möchten. image

Erstellen Sie eine neue benutzerdefinierte Dimension. (Erstellt in der Abbildung) image

Erstellen Sie es mit einem beliebigen Namen. image

Überprüfen Sie den Code, um den Wert der von Ihnen erstellten benutzerdefinierten Dimension zu ermitteln. Wenn Sie diesen Code in die Kopfzeile einer Webseite einfügen und einen Wert für die hinzugefügte benutzerdefinierte Dimension festlegen können, wird er in Google Analytics angezeigt. image

Wenn Sie trackCommonMethod.getIP () für dimensionValue angeben, wird die IP für diese benutzerdefinierte Dimension festgelegt und an die GA gesendet. Fügen Sie dieses Skript Ihrer Site hinzu. Stellen Sie sicher, dass Sie es vor ga hinzufügen ('send', 'pageview'); Dieser Service wurde anscheinend von Herrn Kei erstellt, der die folgende Seite betreibt. Vielen Dank. http://lfll.blog73.fc2.com/blog-entry-258.html

Wenn Sie dies nur ungern verwenden, können Sie dies anscheinend tun, indem Sie Ihr eigenes Skript schreiben. In meinem Fall habe ich es in Jimdos Site eingebettet, sodass ich das Skript nicht frei schreiben konnte, also habe ich es seitwärts gelegt.


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

//Unterlassung

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

Wenn die GA-Daten aktualisiert werden, wird die IP angezeigt, indem die zuvor für die sekundäre Dimension jedes Berichts erstellte benutzerdefinierte Dimension angegeben wird.

image

Exportieren Sie Zugriffsdaten aus GA.

Wenn Sie bereit sind, lesen Sie die offizielle Seite und erstellen Sie ein Dienstkonto. https://developers.google.com/analytics/

Erstellen Sie den folgenden Python-Code, um die GA-Daten in CSV zu exportieren.

#!/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 = 'E-Mail für das von Ihnen erstellte Dienstkonto'
key_file_location = 'Platzierungspfad der erstellten Schlüsseldatei'
view_id = 'ID anzeigen, die auf dem GA-Verwaltungsbildschirm abgerufen werden kann'
 
# Authenticate and construct service.
#Die Verbindungseinstellungen hier stammen aus anderen Quellen. Bitte korrigieren Sie sie.
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
 
#--------------------------------------------
#Datensammlung(Main)
#Erhalten Sie täglich Informationen zu Seitenaufrufen
#--------------------------------------------
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;

Importieren Sie die exportierten Daten in MySQL und formatieren Sie sie.

In meinem Fall wollte ich aus GA exportieren, nach MySQL importieren und gleichzeitig formatieren, also habe ich die folgende Shell erstellt. Bitte ändern Sie den Dateipfad, die ID und das Passwort entsprechend.

#!bin/bash
today=`date '+%F'`
lastWeek=`date --date '7days ago' +%F`
# Export CSY From GoogleAnalytics
#Das vorherige Programm
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;"
#Wir haben eine SQL-Datei vorbereitet, um die importierten Daten zu formatieren.
mysql -u analytics -panalytics  -D analytics < ImportData.sql

# Create CSV For TensorFlow
#Da MySQL den Spaltennamen nicht ausgeben konnte, hatte ich das Gefühl, Daten in eine Vorlagendatei nur mit dem Spaltennamen auszugeben.
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

Impressionen

Da GA viele Informationen im Internet hat, konnte ich mein Ziel fast ohne Schwierigkeiten erreichen.

Recommended Posts

Exportieren Sie Zugriffsdaten für jeden Nutzer von Google Analytics.
Regelmäßiger Export von Google Analytics-Rohdaten nach BigQuery mithilfe von Cloud-Funktionen
Abrufen von Daten aus der Analyse-API mit Google API Client für Python
Exportieren Sie Google Analytics Standard nach BigQuery
Begrenzen Sie ssh mit iptables für jeden Benutzer
Visualisieren Sie die Exportdaten des Piyo-Protokolls
Datenerfassung von der Analytics-API mit dem Google API-Client für die Python Part 2-Webanwendung
Pandas-Grundlagen für Anfänger ② Übersicht über die Daten
Verwendung für Python-Stapel und -Warteschlangen (Geschwindigkeitsvergleich jeder Datenstruktur)