Multi-Channel-Trichter-API für Berichte – Referenzleitfaden

Dieses Dokument enthält die Referenz für die Abfrage und die Antwort der Multi-Channel Trichter Reporting API.

Einführung

Mit der Multi-Channel-Trichter-Berichterstellungs-API können Sie Google Analytics-Berichtsdaten zu Multi-Channel-Trichtern anfordern. Jeder Bericht besteht aus Statistiken, die aus den Daten bestehen, die vom Tracking-Code als Dimensionen und Messwerte an Analytics zurückgesendet werden. Wenn Sie Ihre eigenen Kombinationen von Dimensionen und Messwerten auswählen, können Sie mit der Reporting API benutzerdefinierte Berichte erstellen, die auf Ihre eigenen Spezifikationen zugeschnitten sind.

Die API enthält eine einzelne Methode, mit der Berichtsdaten angefordert werden: report.get. Bei dieser Methode geben Sie die Tabellen-ID an, die der Ansicht (Profil) entspricht, für die Sie Daten abrufen möchten. Außerdem geben Sie Folgendes an:

  • Eine Kombination aus Dimensionen und Messwerten.
  • Datumsbereiche.
  • Eine Reihe von Optionsparametern, die steuern, welche Daten zurückgegeben werden

Die API stellt die report.get-Methode an einem REST-Endpunkt bereit: https://www.googleapis.com/analytics/v3/data/mcf. Im folgenden Abschnitt sehen Sie eine Beispielanfrage und eine Beschreibung der einzelnen Parameter.

Anfragen

Die API bietet eine einzelne Methode, Daten anzufordern:

analytics.data.mcf.get()

Die API kann auch als REST-Endpunkt abgefragt werden:

Authorization: Bearer {oauth2-token}

GET https://www.googleapis.com/analytics/v3/data/mcf
  ?ids=ga:12345
  &metrics=mcf:totalConversions,mcf:totalConversionValue
  &start-date=2011-10-01
  &end-date=2011-10-31

Jeder URL-Suchparameter gibt einen API-Abfrageparameter an, der URL-codiert sein muss.

Alle Anfragen an die Multi-Channel Trichter Reporting API müssen autorisiert werden, vorzugsweise über OAuth 2.0.

Zusammenfassung der Suchparameter

In der folgenden Tabelle sind alle Abfrageparameter zusammengefasst, die von der Multi-Channel Trichter Reporting API akzeptiert werden. Klicken Sie auf die einzelnen Parameternamen, um eine ausführliche Beschreibung aufzurufen.

Name Wert Required Zusammenfassung
ids string ja Die eindeutige Tabellen-ID der Form „ga:XXXX“, wobei XXXX die ID der Analytics-Datenansicht (Profil) ist, für die durch die Abfrage die Daten abgerufen werden.
start-date string ja Startdatum für den Abruf von Analytics-Daten In Anfragen kann ein Startdatum im Format YYYY-MM-DD oder als relatives Datum angegeben werden (z.B. today, yesterday oder NdaysAgo, wobei N eine positive Ganzzahl ist).
end-date string ja Enddatum für den Abruf von Analytics-Daten In der Anfrage kann ein Enddatum im Format YYYY-MM-DD oder als relatives Datum angegeben werden (z.B. today, yesterday oder NdaysAgo, wobei N eine positive Ganzzahl ist.
metrics string ja Eine Liste mit durch Kommas getrennten Messwerten, z. B. mcf:totalConversions,mcf:totalConversionValue. Bei einer gültigen Abfrage muss mindestens ein Messwert angegeben werden.
dimensions string Nein Eine Liste von durch Kommas getrennten Dimensionen für den Bericht zu Multi-Channel-Trichtern, z. B. mcf:source,mcf:keyword.
sort string Nein Eine Liste von durch Kommas getrennten Dimensionen und Messwerten, die die Sortierreihenfolge und Sortierrichtung für die zurückgegebenen Daten angibt.
filters string Nein Dimensions- oder Messwertfilter, die die für Ihre Anfrage zurückgegebenen Daten einschränken
samplingLevel string Nein Die gewünschte Stichprobenmenge. Zulässige Werte:
  • DEFAULT: gibt die Antwort mit einer Beispielgröße zurück, die Geschwindigkeit und Genauigkeit ausgleicht.
  • FASTER: Gibt eine schnelle Antwort mit einer kleineren Stichprobengröße zurück.
  • HIGHER_PRECISION: Gibt mit einer großen Stichprobe eine genauere Antwort zurück, was jedoch dazu führen kann, dass die Antwort langsamer ist.
start-index integer Nein Die erste abzurufende Datenzeile, beginnend mit 1. Verwende diesen Parameter als Paginierungsmechanismus zusammen mit dem Parameter max-results.
max-results integer Nein Die maximale Anzahl von Zeilen, die in der Antwort enthalten sein sollen.

Details zum Abfrageparameter

ids

ids=ga:12345
Erforderlich.
Die eindeutige ID, die zum Abrufen der Multi-Channel-Trichterdaten verwendet wird. Diese ID ist die Verkettung des Namespace ga: mit der ID des Berichts (Profil). Die ID der Datenansicht (Profil) für den Bericht können Sie mit der Methode analytics.management.profiles.list abrufen. Diese Methode bietet die id-Ressource in der Datenansicht (Profil) in der Google Analytics Management API.

Zurück nach oben


Startdatum

start-date=2011-10-01
Erforderlich.
Für alle Datenanfragen zu Multi-Channel-Trichtern muss ein Zeitraum angegeben werden. Wenn Sie die Parameter start-date und end-date nicht in die Anfrage aufnehmen, gibt der Server einen Fehler zurück. Datumswerte können für ein bestimmtes Datum mit dem Muster YYYY-MM-DD oder relativ mit dem Muster today, yesterday oder NdaysAgo angegeben werden. Die Werte müssen mit [0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]+(daysAgo) übereinstimmen.
Der früheste gültige start-date ist 2011-01-01. Es gibt keine Obergrenze für start-date.
Die relativen Daten beziehen sich immer auf das aktuelle Datum zum Zeitpunkt der Abfrage und basieren auf der Zeitzone der Ansicht (Profil), die in der Abfrage angegeben ist.

Beispielzeitraum für die letzten 7 Tage (ab gestern) mit relativen Datumsangaben:

  &start-date=7daysAgo
  &end-date=yesterday

Zurück nach oben


Enddatum

end-date=2011-10-31
Erforderlich.
Für alle Datenanfragen zu Multi-Channel-Trichtern muss ein Zeitraum angegeben werden. Wenn Sie die Parameter start-date und end-date nicht in die Anfrage aufnehmen, gibt der Server einen Fehler zurück. Datumswerte können für ein bestimmtes Datum mit dem Muster YYYY-MM-DD oder relativ mit dem Muster today, yesterday oder NdaysAgo angegeben werden. Die Werte müssen mit [0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]+(daysAgo) übereinstimmen.
Der früheste gültige end-date ist 2005-01-01. Es gibt keine Obergrenze für end-date.
Die relativen Daten beziehen sich immer auf das aktuelle Datum zum Zeitpunkt der Abfrage und basieren auf der Zeitzone der Ansicht (Profil), die in der Abfrage angegeben ist.

Beispielzeitraum für die letzten 10 Tage (ab heute) mit relativen Datumsangaben:

  &start-date=9daysAgo
  &end-date=today

Zurück nach oben


Dimensionen

dimensions=mcf:source,mcf:keyword
Optional.

Mit dem Parameter „Dimensionen“ werden die primären Schlüssel für den Bericht „Multi-Channel-Trichter“ definiert, z. B. mcf:source oder mcf:medium. Mithilfe von Dimensionen können Sie Conversion-Messwerte segmentieren. Du kannst z. B. nach der Gesamtzahl der Conversions für deine Website fragen, es wäre aber trotzdem interessanter, nach der Anzahl der nach Medium segmentierten Conversions zu fragen. In diesem Fall sehen Sie die Anzahl der Conversions aus organischen, Verweisen, E-Mails usw.

Beachten Sie bei der Verwendung von dimensions in einer Datenanfrage die folgenden Einschränkungen:

  • Sie können in einer Abfrage maximal 7 Dimensionen angeben.
  • Sie können keine Abfrage senden, die sich nur aus Dimensionen zusammensetzt: Sie müssen alle angeforderten Dimensionen mit mindestens einem Messwert kombinieren.

Nicht verfügbare Werte

Wenn der Wert der Dimension nicht ermittelt werden kann, wird der spezielle String (nicht festgelegt) in Analytics verwendet.

Zurück nach oben


Messwerte

metrics=mcf:totalConversions,mcf:totalConversionValue
Erforderlich.

Die zusammengefassten Statistiken für die Nutzeraktivität auf Ihrer Website, z. B. die Gesamtzahl der Conversions oder der Conversion-Wert insgesamt Wenn eine Abfrage keinen dimensions-Parameter hat, enthalten die zurückgegebenen Messwerte zusammengefasste Werte für den angeforderten Zeitraum, z. B. den gesamten Conversion-Wert. Wenn jedoch Dimensionen angefordert werden, werden die Werte nach Dimensionswert segmentiert. Beispielsweise gibt mcf:totalConversions, die mit mcf:source angefordert wurde, die Gesamtzahl der Conversions pro Quelle zurück.

Beachten Sie bei der Anforderung von Messwerten Folgendes:

  • Jede Anfrage muss mindestens einen Messwert enthalten. Eine Anfrage darf nicht nur aus Dimensionen bestehen.
  • Sie können für jede Abfrage maximal zehn Messwerte angeben.

Zurück nach oben


sort

sort=mcf:source,mcf:medium
Optional.

Eine Liste von Messwerten und Dimensionen, die die Sortierreihenfolge und Sortierrichtung für die zurückgegebenen Daten angibt.

  • Die Reihenfolge wird in der Reihenfolge der aufgeführten Messwerte und Dimensionen von links nach rechts festgelegt.
  • Die Richtung wird standardmäßig aufsteigend sortiert und kann durch Verwendung eines Minuszeichens (-) im angeforderten Feld in absteigend geändert werden.

Wenn Sie die Ergebnisse einer Abfrage sortieren, können Sie verschiedene Fragen zu Ihren Daten stellen. Um beispielsweise die Frage „Was sind die wichtigsten Conversion-Quellen und über welche Medien?“ zu beantworten. können Sie eine Abfrage mit dem folgenden Parameter erstellen. Es wird zuerst in aufsteigender Reihenfolge nach mcf:source und dann nach mcf:medium sortiert:

sort=mcf:source,mcf:medium

Zur Beantwortung der Frage „Welche sind die wichtigsten Conversion-Medien und aus welchen Quellen?“ können Sie eine Abfrage mit dem folgenden Parameter stellen. Es wird zuerst in aufsteigender Reihenfolge nach mcf:medium und dann nach mcf:source sortiert:

sort=mcf:medium,mcf:source

Beachte bei der Verwendung des Parameters sort Folgendes:

  • Sortieren Sie nur nach Dimensionen oder Messwerten, die Sie in den Parametern dimensions oder metrics verwendet haben. Wenn die Anfrage nach einem Feld sortiert wird, das weder im Parameter „dimensions“ noch im Messwert angegeben ist, erhalten Sie eine Fehlermeldung.
  • Standardmäßig sind Strings in der Sprache en-US in aufsteigender alphabetischer Reihenfolge sortiert.
  • Zahlen werden standardmäßig in aufsteigender numerischer Reihenfolge sortiert.
  • Standardmäßig sind die Datumsangaben in aufsteigender Reihenfolge nach Datum sortiert.

Zurück nach oben


Filter

filters=mcf:medium%3D%3Dreferral
Optional.

Der Abfragestringparameter filters schränkt die von Ihrer Anfrage zurückgegebenen Daten ein. Wenn Sie den Parameter filters verwenden möchten, geben Sie eine Dimension oder einen Messwert für den Filter an, gefolgt vom Filterausdruck. Beispiel: Die folgende Abfrage fordert mcf:totalConversions und mcf:source für die Ansicht (Profil) 12134 an, wobei die Dimension mcf:medium der String referral ist:

https://www.googleapis.com/analytics/v3/data/mcf
?ids=mcf:12134
&dimensions=mcf:source
&metrics=mcf:totalConversions
&filters=mcf:medium%3D%3Dreferral
&start-date=2011-10-01
&end-date=2011-10-31

Weitere Informationen finden Sie in der Core Reporting API-Referenz.

Zurück nach oben


samplingLevel (Stichprobenlevel)

samplingLevel=DEFAULT
Optional.
Verwenden Sie diesen Parameter, um die Abtastebene (d.h. die Anzahl der Sitzungen, die zur Berechnung des Ergebnisses verwendet werden) für eine Berichtsabfrage festzulegen. Die zulässigen Werte entsprechen der Weboberfläche und umfassen Folgendes:
  • DEFAULT: gibt die Antwort mit einer Beispielgröße zurück, die Geschwindigkeit und Genauigkeit ausgleicht.
  • FASTER: Gibt eine schnelle Antwort mit einer kleineren Stichprobengröße zurück.
  • HIGHER_PRECISION: Gibt mit einer großen Stichprobe eine genauere Antwort zurück, was jedoch dazu führen kann, dass die Antwort langsamer ist.
Wenn nichts angegeben ist, wird die Stichprobenrate DEFAULT verwendet.
Im Abschnitt Stichproben finden Sie Informationen zum Berechnen des Prozentsatzes der Sitzungen, die für eine Abfrage verwendet wurden.

Zurück nach oben


Max. Ergebnisse

max-results=100
Optional.

Maximale Anzahl der Zeilen, die in dieser Antwort enthalten sein sollen. Sie können diese Option zusammen mit start-index verwenden, um eine Teilmenge von Elementen abzurufen. Sie können auch allein die Anzahl der zurückgegebenen Elemente einschränken. Beginnen Sie dabei mit dem ersten Element. Wenn max-results nicht angegeben ist, gibt die Abfrage die maximale Standardanzahl von 1.000 Zeilen zurück.

Die Multi-Channel Trichter Reporting API gibt maximal 10.000 Zeilen pro Anfrage zurück,unabhängig davon, wie viele Sie anfordern. Außerdem können weniger Zeilen zurückgegeben werden als angefordert, wenn nicht so viele Dimensionssegmente wie erwartet vorhanden sind. Beispielsweise gibt es weniger als 300 mögliche Werte für mcf:medium. Wenn Sie also nur nach Medium segmentieren, können Sie nicht mehr als 300 Zeilen erhalten, auch wenn Sie max-results auf einen höheren Wert festgelegt haben.

Zurück nach oben


Antwort

Bei Erfolg gibt die Anfrage einen Antworttext mit der unten definierten JSON-Struktur zurück.

Hinweis: Der Begriff „"results"“ bezieht sich auf die gesamte Gruppe von Zeilen, die mit der Abfrage übereinstimmen, und „"response"“ auf die Gruppe von Zeilen, die auf der aktuellen Ergebnisseite zurückgegeben werden. Sie können abweichen, wenn die Gesamtzahl der Ergebnisse die Seitengröße für die aktuelle Antwort überschreitet, wie unter itemsPerPage beschrieben.

Antwortformat

JSON
{
  "kind": "analytics#mcfData",
  "id": string,
  "query": {
    "start-date": string,
    "end-date": string,
    "ids": string,
    "dimensions": [
      string
    ],
    "metrics": [
      string
    ],
    "sort": [
      string
    ],
    "filters": string,
    "samplingLevel": string,
    "start-index": integer,
    "max-results": integer
  },
  "itemsPerPage": integer,
  "totalResults": integer,
  "selfLink": string,
  "previousLink": string,
  "nextLink": string,
  "profileInfo": {
    "profileId": string,
    "accountId": string,
    "webPropertyId": string,
    "internalWebPropertyId": string,
    "profileName": string,
    "tableId": string
  },
  "containsSampledData": boolean,
  "sampleSize": string,
  "sampleSpace": string,
  "columnHeaders": [
    {
      "name": string,
      "columnType": string,
      "dataType": string
    }
  ],
  "totalsForAllResults": [
    {
      metricName: string,
      ...
    }
  ]
  "rows": [
    [
      McfData.Rows
    ]
  ],
}

Zurück nach oben

Antwortfelder

Die Eigenschaften der Antworttextstruktur sind so definiert:

Eigenschaftsname Wert Beschreibung
kind string Ressourcentyp. Der Wert ist "analytics#mcfData".
id string Eine ID für diese Datenantwort.
query object Dieses Objekt enthält alle Werte, die als Parameter an die Abfrage übergeben werden. Die Bedeutung der einzelnen Felder wird in der Beschreibung des entsprechenden Abfrageparameters erläutert.
query.start-date string Anfangsdatum.
query.end-date string Enddatum.
query.ids string Eindeutige Tabellen-ID.
query.dimensions[] list Liste der Analysedimensionen.
query.metrics[] list Liste der Analysemesswerte.
query.sort[] list Liste der Messwerte oder Dimensionen, nach denen die Daten sortiert werden.
query.filters string Durch Kommas getrennte Liste von Messwert- oder Dimensionsfiltern.
query.samplingLevel string Requested sampling level.
query.start-index integer Der Anfangsindex von Zeilen. Der Standardwert ist 1.
query.max-results integer Maximale Anzahl von Ergebnissen pro Seite.
startIndex integer Der Startindex von Zeilen, die durch den Abfrageparameter start-index angegeben werden. Der Standardwert ist 1.
itemsPerPage integer Die maximale Anzahl der Zeilen, die die Antwort enthalten kann, unabhängig von der tatsächlichen Anzahl der zurückgegebenen Zeilen. Wenn der Abfrageparameter max-results angegeben ist, ist der Wert von itemsPerPage entweder max-results oder 10.000. Der Standardwert für itemsPerPage ist 1.000.
totalResults integer Die Gesamtzahl der Zeilen im Abfrageergebnis, unabhängig von der Anzahl der in der Antwort zurückgegebenen Zeilen. Bei Abfragen, die zu einer großen Anzahl von Zeilen führen, kann totalResults größer als itemsPerPage sein. Weitere Informationen zu totalResults und itemsPerPage für große Abfragen finden Sie unter Paging.
profileInfo object Informationen zur Ansicht (Profil), für die die Daten angefordert wurden. Datenansichtsdaten sind über die Google Analytics Management API verfügbar.
profileInfo.profileId string ID des Profils (z. B. 1174).
profileInfo.accountId string Die Konto-ID, zu der diese Ansicht (Profil) gehört, z. B. 30481.
profileInfo.webPropertyId string Web-Property-ID, zu der diese Datenansicht (Profil) gehört, z. B. UA-30481-1.
profileInfo.internalWebPropertyId string Interne ID für die Web-Property, zu der diese Datenansicht (Profil) gehört, z. B. UA-30481-1
profileInfo.profileName string Name der Datenansicht (Profil).
profileInfo.tableId string Tabellen-ID für Ansicht (Profil), bestehend aus "ga:", gefolgt von der Ansichts- (Profil-)ID.
containsSampledData boolean Dieser Wert ist „True“, wenn die Antwort Stichprobendaten enthält.
sampleSize string Die Anzahl der Stichproben, die zur Berechnung der Stichprobendaten verwendet werden.
sampleSpace string Die Gesamtgröße des Stichproberaums. Gibt die Gesamtgröße des verfügbaren Beispielbereichs an, aus dem die Stichproben ausgewählt wurden.
columnHeaders[] list Spaltenüberschriften, in denen Dimensionsnamen gefolgt von den Namen der Messwerte aufgeführt sind. Die Reihenfolge der Dimensionen und Messwerte ist die gleiche wie in der Anfrage über die Parameter metrics und dimensions. Die Anzahl der Header ist die Anzahl der Dimensionen + die Anzahl der Messwerte.
columnHeaders[].name string Name der Dimension oder des Messwerts.
columnHeaders[].columnType string Spaltentyp. Entweder „DIMENSION“ oder „&METRIC“.
columnHeaders[].dataType string Datentyp. Spaltenüberschriften in Dimensionen haben nur den Datentyp "STRING" oder "MCF_SEQUENCE". Spaltenüberschriften in Messwerten enthalten Datentypen für Messwerte wie "INTEGER", "DOUBLE", "CURRENCY" usw.
totalsForAllResults object Gesamtwerte der angeforderten Messwerte als Schlüssel/Wert-Paare von Messwertnamen und -werten. Die Reihenfolge der Gesamtsummen des Messwerts entspricht der in der Anfrage angegebenen Messwertreihenfolge.
rows[] list

Berichtsdatenzeilen, wobei jede Zeile eine Liste von Mcf.Rows-Objekten enthält. Diese innere Liste stellt Dimensionswerte dar, gefolgt von den Messwerten in derselben Reihenfolge wie in der Anfrage angegeben. Jede Zeile enthält eine Liste von N Feldern, wobei N = die Anzahl der Dimensionen + die Anzahl der Messwerte ist.

Ein Mcf.Rows-Objekt umschließt ein anderes Objekt vom Typ primitiveValue oder conversionPathValue. Dimensionswerte können einen der beiden Typen haben, während alle Messwerte vom Typ primitiveValue sind.

Ein primitiveValue ist einfach ein String, der in ein Objekt eingeschlossen ist. Beispiel:

{
  "primitiveValue": "2183"
}

Ein conversionPathValue ist ein Objekt, das von einem Array von Objekten umschlossen wird, wobei jedes Objekt einen nodeValue-String und einen optionalen interactionType-String enthält. Beispiel:

{
  "conversionPathValue": [
    {
      "interactionType" : "CLICK",
      "nodeValue" : "google"
    },
    {
      "interactionType" : "CLICK",
      "nodeValue" : "google"
    }
  ]
}

Zurück nach oben

Fehlercodes

Die Multi-Channel Trichter Reporting API gibt bei erfolgreicher Anfrage den HTTP-Statuscode 200 zurück. Wenn während der Verarbeitung einer Abfrage ein Fehler auftritt, gibt die API einen Fehlercode und eine Beschreibung zurück. Jede Anwendung, die die Analytics API verwendet, muss eine ordnungsgemäße Logik zur Fehlerbehandlung implementieren. Weitere Informationen zu den Fehlercodes und ihrer Handhabung finden Sie im Leitfaden zu Fehlerantworten.

Zurück nach oben

Testen!

Verwenden Sie den unten angegebenen APIs Explorer, um diese Methode für Livedaten aufzurufen und die Antwort einzusehen.

Zurück nach oben

Probenahme

Bestimmte Kombinationen aus Dimensionen und Messwerten werden in Google Analytics im laufenden Betrieb berechnet. Damit die Daten innerhalb eines angemessenen Zeitraums zurückgegeben werden können, darf Google Analytics nur eine Stichprobe der Daten verarbeiten.

Mit dem Parameter samplingLevel können Sie die Abtastebene angeben, die für eine Anfrage verwendet werden soll.

Wenn eine Antwort auf die MCF Reporting API Stichprobendaten enthält, hat das Antwortfeld containsSampledData den Wert true. Außerdem geben zwei Properties Informationen zur Stichprobenerhebung für die Abfrage an: sampleSize und sampleSpace. Mit diesen beiden Werten können Sie den Prozentsatz der Sitzungen berechnen, die für die Abfrage verwendet wurden. Wenn sampleSize beispielsweise 201,000 und sampleSpace 220,000 ist, basiert der Bericht auf (201.000 / 220.000) × 100 = 91,36% der Sitzungen.

Unter Stichproben finden Sie eine allgemeine Beschreibung der Stichprobenerhebung und deren Verwendung in Google Analytics.

Zurück nach oben

Umgang mit großen Datenergebnissen

Wenn Sie davon ausgehen, dass Ihre Abfrage eine große Ergebnismenge zurückgibt, verwenden Sie die folgenden Richtlinien, um die API-Abfrage zu optimieren, Fehler zu vermeiden und Kontingentüberschreitungen zu minimieren. Wir haben bei jeder API-Anfrage maximal 7 Dimensionen und 10 Messwerte festgelegt. Obwohl einige Abfragen, die eine große Anzahl von Messwerten und Dimensionen angeben, länger dauern können als andere, reicht die Begrenzung der Anzahl der angeforderten Messwerte möglicherweise nicht aus, um die Abfrageleistung zu verbessern. Stattdessen können Sie die folgenden Techniken verwenden, um die besten Ergebnisse zu erzielen.

Dimensionen pro Abfrage reduzieren

In einer Anfrage können über die API bis zu sieben Dimensionen angegeben werden. Oft muss das Ergebnis dieser komplexen Abfragen in Google Analytics spontan berechnet werden. Das kann besonders zeitaufwendig sein, wenn die Anzahl der resultierenden Zeilen hoch ist. Die Abfrage von Keywords nach Stadt oder Stunde kann beispielsweise zu Millionen von Datenzeilen passen. Sie können die Leistung verbessern, indem Sie die Anzahl der zu verarbeitenden Zeilen in Google Analytics reduzieren, indem Sie die Anzahl der Dimensionen in der Abfrage begrenzen.

Abfrage nach Zeitraum aufteilen

Anstatt die nach Datum geordneten Ergebnisse eines langen Zeitraums zu durchsuchen, können Sie separate Abfragen für jeweils eine Woche oder sogar einen Tag erstellen. Bei einem großen Dataset kann selbst eine Anfrage für die Daten eines einzelnen Tages mehr als max-results zurückgeben. In diesem Fall kann das Paging nicht vermieden werden. Wenn die Anzahl der übereinstimmenden Zeilen für Ihre Abfrage jedoch höher ist als max-results, kann das Aufteilen des Zeitraums die Gesamtdauer zum Abrufen der Ergebnisse verringern. Dieser Ansatz kann die Leistung sowohl bei Single-Thread- als auch bei parallelen Abfragen verbessern.

Paging

Das Durchblättern von Ergebnissen kann nützlich sein, um große Ergebnismengen in verwaltbare Blöcke zu unterteilen. Das Feld totalResults gibt an, wie viele übereinstimmende Zeilen vorhanden sind, und itemsPerPage gibt die maximale Anzahl von Zeilen an, die im Ergebnis zurückgegeben werden können. Bei einem hohen Verhältnis von totalResults zu itemsPerPage dauern die einzelnen Abfragen möglicherweise länger als nötig. Wenn Sie nur eine begrenzte Anzahl von Zeilen benötigen, z. B. zu Anzeigezwecken, können Sie mit dem Parameter max-results ein explizites Limit für die Antwortgröße festlegen. Wenn Ihre Anwendung jedoch eine große Anzahl von Ergebnissen in ihrer Gesamtheit verarbeiten muss, ist es eventuell effizienter, die maximal zulässigen Zeilen anzufordern.

gzip verwenden

Eine einfache und bequeme Möglichkeit, die für jede Anfrage erforderliche Bandbreite zu reduzieren, ist die Aktivierung der gzip-Komprimierung. Obwohl dies zum Dekomprimieren der Ergebnisse zusätzliche CPU-Zeit erfordert, macht sich der Kompromiss mit den Netzwerkkosten in der Regel sehr lohnenswert. Es sind zwei Schritte erforderlich, um eine mit gzip codierte Antwort zu erhalten: Legen Sie einen Accept-Encoding-Header fest und ändern Sie den User-Agent so, dass er den String gzip enthält. Hier ein Beispiel für korrekt formatierte HTTP-Header für die Aktivierung der gzip-Komprimierung:

Accept-Encoding: gzip
User-Agent: my program (gzip)