Dies ist der erste Beitrag des Qiita-Artikels. Ich denke, es gibt einige Punkte, die nicht erreicht werden können, einschließlich der ersten Verwendung der API, aber danke.
Mein Unternehmen verwendet Google Analytics (GA), um die Zahlen auf der Website zu messen. Es gab einige Mitarbeiter und ich hatte es seit mehr als ein paar Jahren benutzt, aber ich konnte den Betrieb und die Wartung nicht richtig handhaben. Verschiedene Konten und Immobilien sind überfüllt.
Auf dem GA-Verwaltungsbildschirm ist es möglich, die Liste der Konten und Eigenschaften während des Bildlaufs anzuzeigen. Ziel dieser Zeit ist es, die Ergebnisse für die Anzeige in Tabellenkalkulationen verfügbar zu machen.
Mithilfe der folgenden API können Sie die GA-Kontodaten des angemeldeten Chrome-Kontos im JSON-Format abrufen. Verwaltungs-API> Referenz> Konto: Liste
Selbst wenn Sie das Ausführungsergebnis formatieren, können Sie bis zu einem gewissen Grad das tun, was Sie möchten. JSON-Datei in Excel konvertieren Ich möchte eine JSON-Datei in eine CSV-Datei konvertieren
Die erste Methode konnte aufgrund der Excel-Version nicht ausgeführt werden, und als ich die zweite Methode tatsächlich ausprobierte, trat ein Problem auf.
Konto | Eigentum_1 | Aussicht_1_1 | Aussicht_1_2 | ・ ・ ・ | Eigentum_2 | ・ ・ ・ |
---|---|---|---|---|---|---|
A | Eigenschaft 1 in Verbindung mit A. | Ansicht 1, die der Eigenschaft 1 zugeordnet ist | Ansicht 2, die der Eigenschaft 1 zugeordnet ist | ・ ・ ・ | Eigenschaft 2 in Verbindung mit A. | ・ ・ ・ |
Was ich ursprünglich wollte, waren die folgenden vertikalen Daten.
Konto | Eigentum | Aussicht |
---|---|---|
A | Eigenschaft 1 in Verbindung mit A. | Ansicht 1, die der Eigenschaft 1 zugeordnet ist |
A | Eigenschaft 1 in Verbindung mit A. | Ansicht 2, die der Eigenschaft 1 zugeordnet ist |
A | ・ ・ ・ | ・ ・ ・ |
A | Eine zugehörige Eigenschaft 2 | Ansicht 1 in Verbindung mit Eigenschaft 2 |
A | ・ ・ ・ | ・ ・ ・ |
B | Eigenschaft 1 in Verbindung mit B. | Ansicht 1, die der Eigenschaft 1 zugeordnet ist |
Ich arbeite, nachdem ich das ausgestellte Dienstkonto dem GA-Konto hinzugefügt habe, das ich erwerben möchte. Ursprünglich wollte ich ein GA-Konto mit einem internen Administratorkonto verknüpfen, aber ich weiß nicht, wie ich damit umgehen soll. ..
Ich hatte viele Berichte und es war schwer, also arbeitete ich mit einer Hand beim Singen und überlebte. Lol
Unten finden Sie den Implementierungscode für das Hauptthema.
Der größte Teil des Implementierungscodes stammt von unten. Erste Analytics-API: Python-Schnellstart für Dienstkonten
Wir verwenden die API, um für jedes Konto, jede Eigenschaft und jede Ansicht eine df zu erstellen und eine leere df anhängen zu lassen. Verwaltungs-API> Referenz> Web-Eigenschaften: Liste Verwaltungs-API> Referenz> Ansicht (altes Profil): Liste
qiita.python
from googleapiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
import pandas as pd
import numpy as np
def get_service(api_name, api_version, scopes, key_file_location):
credentials = ServiceAccountCredentials.from_json_keyfile_name(
key_file_location, scopes=scopes)
service = build(api_name, api_version, credentials=credentials)
return service
def get_account_propaty_view_info(service):
accounts = service.management().accounts().list().execute()
#Speichern Sie die Liste der Konten in df
account_df = pd.DataFrame(columns=['account_name', 'account_id'])
for account in accounts.get('items', []):
account_array = np.array([[account.get('name'), account.get('id')]])
df_account = pd.DataFrame(data=account_array,columns=account_df.columns)
account_df = account_df.append(df_account, ignore_index=False)
#Speichern Sie eine Liste der Eigenschaften in df
property_df = pd.DataFrame(columns=['account_number','account_id', 'property_name', 'property_id'])
#Rufen Sie die Zieleigenschaftsliste aus der Datenbank des Kontos ab
for i in range(len(account_df)):
properties = service.management().webproperties().list(accountId=account_df['account_id'].iloc[i]).execute()
for property in properties.get('items', []):
property_array = np.array([[i, account_df['account_id'].iloc[i], property.get('name'), property.get('id')]])
df_property = pd.DataFrame(data=property_array,columns=property_df.columns)
property_df = property_df.append(df_property, ignore_index=False)
#Speichern Sie die Liste der Ansichten in df
view_df = pd.DataFrame(columns=['account_id', 'property_id', 'view_name', 'view_id'])
#Rufen Sie die Zielansichtsliste aus der Eigenschaft df ab
for i in range(len(property_df)):
views = service.management().profiles().list(accountId=property_df['account_id'].iloc[i],
webPropertyId=property_df['property_id'].iloc[i] ).execute()
for view in views.get('items', []):
view_array = np.array([[property_df['account_id'].iloc[i], property_df['property_id'].iloc[i], view.get('name'), view.get('id')]])
df_view = pd.DataFrame(data=view_array,columns=view_df.columns)
view_df = view_df.append(df_view, ignore_index=False)
#Versuchen Sie, die Liste der Konten, die Liste der Eigenschaften und die Liste der Ansichten in einem df zu kombinieren
#Konto aufgrund der Bequemlichkeit der Verarbeitung zum Zeitpunkt des Beitritts_Wenn Sie über die Position der Nummer besorgt sind, ändern Sie die Reihenfolge der Spalten.
ga_account_list = pd.merge(pd.merge(account_df, property_df, on='account_id', how='inner'), view_df, on=['account_id', 'property_id'], how='inner')
ga_account_list.to_csv('Name der zu erstellenden CSV-Datei', encoding='utf_8_sig')
def main():
scope = 'https://www.googleapis.com/auth/analytics.readonly'
key_file_location = 'JSON-Schlüsseldatei für das ausgestellte Dienstkonto'
service = get_service(
api_name='analytics',
api_version='v3',
scopes=[scope],
key_file_location=key_file_location)
get_account_propaty_view_info(service)
if __name__ == '__main__':
main()
Beispiel für die aktuelle Ausgabe Die IDs der Konten sind nicht ordentlich angeordnet, daher habe ich stattdessen eine Kontonummer.
account_name | account_id | account_number | property_name | property_id | view_name | view_id |
---|---|---|---|---|---|---|
A | 10 | 0 | property_1 | 100 | view_1 | 1000 |
A | 10 | 0 | property_1 | 100 | view_2 | 1001 |
A | ・ ・ ・ | ・ ・ ・ | ・ ・ ・ | ・ ・ ・ | ・ ・ ・ | ・ ・ ・ |
A | 10 | 0 | property_2 | 101 | view_1 | 1100 |
A | ・ ・ ・ | ・ ・ ・ | ・ ・ ・ | ・ ・ ・ | ・ ・ ・ | ・ ・ ・ |
B | 20 | 1 | property_1 | 200 | view_1 | 2000 |
Zunächst möchten wir dieses Ergebnis verwenden, um unnötige Konten und Eigenschaften zu sortieren.
Auf dieser Grundlage möchte ich für jede Abteilung im Unternehmen eine Gruppe erstellen. Derzeit wird die GA-Berechtigung Einzelpersonen erteilt, es ist jedoch möglich, die Berechtigung für jede Gruppe zu erteilen.
Herr A, der neu in das Unternehmen eintritt, ist in der XX-Abteilung, daher ist das Bild, dass er die Autorität von □□ erhöhen sollte. Ich möchte eine Zukunft anstreben, die per Knopfdruck automatisiert wird.
Ich hoffe, es wird für diejenigen hilfreich sein, die ähnliche Probleme haben.
Recommended Posts