Zaawansowane przypadki użycia

W tym dokumencie opisujemy kilka zaawansowanych funkcji interfejsu Google Analytics Data API w wersji 1. Szczegółowe informacje o interfejsie API znajdziesz w dokumentacji API.

Wyświetlanie listy definicji niestandardowych i tworzenie raportów

Interfejs Data API może tworzyć raporty dotyczące zarejestrowanych wymiarów niestandardowychrodzajów danych niestandardowych. Metoda Metadata API umożliwia wyświetlanie nazw interfejsów API zarejestrowanych definicji niestandardowych usługi. Nazwy tych interfejsów API można używać w żądaniach raportów, np. w metodzie runReport.

W sekcjach poniżej znajdziesz przykłady każdego typu definicji niestandardowej. W tych przykładach zastąp GA_PROPERTY_ID identyfikatorem usługi.

Wymiary niestandardowe ograniczone do zdarzenia

Krok 1. Wyślij zapytanie do metody interfejsu Metadata API z identyfikatorem usługi.

GET https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID/metadata

Krok 2. W odpowiedzi znajdź wymiar niestandardowy ograniczony do zdarzenia, na podstawie którego chcesz tworzyć raporty. Jeśli wymiar nie jest obecny, musisz go zarejestrować.

"dimensions": [
...
    {
      "apiName": "customEvent:achievement_id",
      "uiName": "Achievement ID",
      "description": "An event scoped custom dimension for your Analytics property."
    },
...
],

Krok 3. Dołącz wymiar niestandardowy do prośby o raport. Poniżej znajdziesz przykładowe żądanie do metody runReport.

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "dateRanges": [{ "startDate": "2020-09-01", "endDate": "2020-09-15" }],
  "dimensions": [{ "name": "customEvent:achievement_id" }],
  "metrics": [{ "name": "eventCount" }]
}

Wymiary niestandardowe ograniczone do użytkownika

Krok 1. Wyślij zapytanie do metody interfejsu Metadata API z identyfikatorem usługi.

GET https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID/metadata

Krok 2. W odpowiedzi znajdź wymiar niestandardowy ograniczony do użytkownika, na podstawie którego chcesz tworzyć raporty. Jeśli wymiar nie jest obecny, musisz go zarejestrować.

"dimensions": [
...
    {
      "apiName": "customUser:last_level",
      "uiName": "Last level",
      "description": "A user property for your Analytics property."
    },
...
],

Krok 3. Dołącz wymiar niestandardowy do prośby o raport. Poniżej znajdziesz przykładowe żądanie do metody runReport.

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "entity": { "propertyId": "GA_PROPERTY_ID" },
  "dateRanges": [{ "startDate": "7daysAgo", "endDate": "yesterday" }],
  "dimensions": [{ "name": "customUser:last_level" }],
  "metrics": [{ "name": "activeUsers" }]
}

Dane niestandardowe ograniczone do zdarzenia

Krok 1. Wyślij zapytanie do metody interfejsu Metadata API z identyfikatorem usługi.

GET https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID/metadata

Krok 2. W odpowiedzi znajdź dane niestandardowe ograniczone do zdarzenia, na podstawie których chcesz tworzyć raporty. Jeśli danych nie ma, musisz je zarejestrować.

"metrics": [
...
    {
      "apiName": "customEvent:credits_spent",
      "uiName": "Credits Spent",
      "description": "An event scoped custom metric for your Analytics property.",
      "type": "TYPE_STANDARD"
    },
...
],

Krok 3. Uwzględnij dane niestandardowe w prośbie o raport. Poniżej znajdziesz przykładowe żądanie do metody runReport.

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "dateRanges": [{ "startDate": "30daysAgo", "endDate": "yesterday" }],
  "dimensions": [{ "name": "eventName" }],
  "metrics": [{ "name": "customEvent:credits_spent" }]
}

Dane o współczynniku kluczowych zdarzeń dla jednego kluczowego zdarzenia

Krok 1. Wyślij zapytanie do interfejsu Metadata API Method, podając identyfikator usługi.

GET https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID/metadata

Krok 2. W odpowiedzi znajdź dane o współczynniku kluczowych zdarzeń dla jednego kluczowego zdarzenia, w przypadku którego chcesz tworzyć raporty. Jeśli kluczowe zdarzenie nie jest obecne, musisz skonfigurować kluczowe zdarzenie.

"metrics": [
...
    {
      "apiName": "sessionKeyEventRate:add_to_cart",
      "uiName": "Session key event rate for add_to_cart",
      "description": "The percentage of sessions in which a specific key event was triggered",
    },
...
],

Krok 3. Uwzględnij w prośbie o raport dane o współczynniku kluczowych zdarzeń. Poniżej znajdziesz przykładowe żądanie do metody runReport.

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "dateRanges": [{ "startDate": "30daysAgo", "endDate": "yesterday" }],
  "dimensions": [{ "name": "eventName" }],
  "metrics": [{ "name": "sessionKeyEventRate:add_to_cart" }]
}

Średnie wartości danych niestandardowych ograniczonych do zdarzenia

Krok 1. Wyślij zapytanie do metody interfejsu Metadata API z identyfikatorem usługi.

GET https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID/metadata

Krok 2. W odpowiedzi znajdź średnią wartość danych niestandardowych ograniczonych do zdarzenia, na podstawie której chcesz utworzyć raport. Jeśli danych nie ma, musisz je zarejestrować.

"metrics": [
...
    {
      "apiName": "averageCustomEvent:credits_spent",
      "uiName": "Average Credits Spent",
      "description": "The average of an event scoped custom metric for your Analytics property.",
      "type": "TYPE_STANDARD"
    },
...
],

Krok 3. Uwzględnij średnią danych niestandardowych w żądaniu raportu. Poniżej znajdziesz przykładowe żądanie do metody runReport.

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "dateRanges": [{ "startDate": "2020-11-01", "endDate": "2020-11-10" }],
  "dimensions": [{ "name": "eventName" }],
  "metrics": [{ "name": "averageCustomEvent:credits_spent" }]
}

Przykłady raportów dotyczących kohorty

Raporty kohortowe tworzą szereg czasowy utrzymania użytkowników w kohorcie. Szczegółową dokumentację każdego pola interfejsu API znajdziesz w dokumentacji referencyjnej REST dla obiektu CohortSpec.

Tworzenie raportu kohortowego

Oto przykładowy raport kohorty, w którym:

  • Kohorta to użytkownicy z wartością firstSessionDate równą 2020-12-01. Jest ona konfigurowana przez obiekt cohorts. Wymiary i dane w odpowiedzi raportu będą oparte tylko na użytkownikach kohorty.
  • Raport kohortowy będzie zawierać 3 kolumny. Jest to konfigurowane przez obiekty wymiarów i danych.
    • Wymiar cohort to nazwa kohorty.
    • Wymiar cohortNthDay to liczba dni od 2020-12-01.
    • Wartość cohortActiveUsers to liczba nadal aktywnych użytkowników.
  • Obiekt cohortsRange określa, że raport powinien zawierać dane o zdarzeniach od 2020-12-01 do 2020-12-06 w przypadku tej kohorty.
    • Jeśli używana jest szczegółowość DAILY, dla zachowania spójności zalecany jest wymiar cohortNthDay.

Prośba o raport dotyczący kohorty:

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "dimensions": [{ "name": "cohort" }, { "name": "cohortNthDay" }],
  "metrics": [{ "name": "cohortActiveUsers" }],
  "cohortSpec": {
    "cohorts": [
      {
        "dimension": "firstSessionDate",
        "dateRange": { "startDate": "2020-12-01", "endDate": "2020-12-01" }
      }
    ],
    "cohortsRange": {
      "endOffset": 5,
      "granularity": "DAILY"
    }
  },
}

Przykładowa odpowiedź na to żądanie:

{
  "dimensionHeaders": [
    { "name": "cohort" }, { "name": "cohortNthDay" }
  ],
  "metricHeaders": [
    { "name": "cohortActiveUsers", "type": "TYPE_INTEGER" }
  ],
  "rows": [
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0000" }],
      "metricValues": [{ "value": "293" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0001" }],
      "metricValues": [{ "value": "143" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0002" }],
      "metricValues": [{ "value": "123" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0003" }],
      "metricValues": [{ "value": "92" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0005" }],
      "metricValues": [{ "value": "86" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0004" }],
      "metricValues": [{ "value": "83" }]
    }
  ],
  "metadata": {},
  "rowCount": 6
}

Po tej odpowiedzi raportu następuje wykres tego raportu dotyczącego kohorty. Z tego raportu wynika, że największy spadek liczby aktywnych użytkowników w tej kohorcie następuje między pierwszym a drugim dniem.

Wizualizacja użytkowników z kohorty na przestrzeni czasu

Wiele kohort i odsetek utrzymania użytkowników

Pozyskiwanie i utrzymywanie użytkowników to sposoby na rozwój witryny lub aplikacji. Raporty kohortowe koncentrują się na utrzymywaniu użytkowników. W tym przykładzie raport pokazuje, że w ciągu 2 tygodni usługa zwiększyła 4-dniowy wskaźnik utrzymania użytkowników o 10%.

Aby utworzyć ten raport, określamy 3 kohorty: pierwszą z wartością firstSessionDate równą 2020-11-02, drugą z wartością firstSessionDate równą 2020-11-09 i trzecią z wartością firstSessionDate równą 2020-11-16. Liczba użytkowników w Twojej usłudze będzie się różnić w tych 3 dniach, dlatego porównujemy dane o odsetku utrzymania użytkowników w kohorcie, czyli cohortActiveUsers/cohortTotalUsers, zamiast używać bezpośrednich danych cohortActiveUsers.

Żądanie raportu dotyczące tych kohort to:

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "dimensions": [{ "name": "cohort" },{ "name": "cohortNthDay" }],
  "metrics": [
    {
      "name": "cohortRetentionFraction",
      "expression": "cohortActiveUsers/cohortTotalUsers"
    }
  ],
  "cohortSpec": {
    "cohorts": [
      {
        "dimension": "firstSessionDate",
        "dateRange": { "startDate": "2020-11-02", "endDate": "2020-11-02" }
      },
      {
        "dimension": "firstSessionDate",
        "dateRange": { "startDate": "2020-11-09", "endDate": "2020-11-09" }
      },
      {
        "dimension": "firstSessionDate",
        "dateRange": { "startDate": "2020-11-16", "endDate": "2020-11-16" }
      }
    ],
    "cohortsRange": {
      "endOffset": 4,
      "granularity": "DAILY"
    }
  },
}

Przykładowa odpowiedź na to żądanie:

{
  "dimensionHeaders": [{ "name": "cohort" },{ "name": "cohortNthDay" }],
  "metricHeaders": [{
      "name": "cohortRetentionFraction",
      "type": "TYPE_FLOAT"
    }
  ],
  "rows": [
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0000" }],
      "metricValues": [{ "value": "1" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0000" }],
      "metricValues": [{ "value": "1" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0000" }],
      "metricValues": [{ "value": "1" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0001" }],
      "metricValues": [{ "value": "0.308" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0001" }],
      "metricValues": [{ "value": "0.272" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0002" }],
      "metricValues": [{ "value": "0.257" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0001" }],
      "metricValues": [{ "value": "0.248" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0003" }],
      "metricValues": [{ "value": "0.235" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0004" }],
      "metricValues": [{ "value": "0.211" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0002" }],
      "metricValues": [{ "value": "0.198" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0002" }],
      "metricValues": [{ "value": "0.172" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0003" }],
      "metricValues": [{ "value": "0.167" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0004" }],
      "metricValues": [{ "value": "0.155" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0003" }],
      "metricValues": [{ "value": "0.141" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0004" }],
      "metricValues": [{ "value": "0.118" }]
    }
  ],
  "metadata": {},
  "rowCount": 15
}

Po tej odpowiedzi raportu następuje wykres tego raportu dotyczącego kohorty. Z tego raportu wynika, że wskaźnik utrzymania użytkowników przez 4 dni wzrósł o 10% w ciągu 2 tygodni. Późniejsza kohorta z wartością firstSessionDate wynoszącą 2020-11-16 ma wyższy wskaźnik utrzymania niż wcześniejsza kohorta z wartością firstSessionDate wynoszącą 2020-11-02.

Wykres przedstawiający utrzymanie uwagi w przypadku wielu kohort

Kohorty tygodniowe i używanie kohort z innymi funkcjami interfejsu API

Aby wyeliminować dzienne różnice w zachowaniu użytkowników, używaj kohort tygodniowych. W raportach o kohortach tygodniowych wszyscy użytkownicy z firstSessionDate w tym samym tygodniu tworzą kohortę. Tydzień zaczyna się w niedzielę, a kończy w sobotę. W tym raporcie dzielimy też kohortę, aby porównać użytkowników, którzy wykazują aktywność w Rosji, z użytkownikami, którzy wykazują aktywność w Meksyku. To dzielenie wykorzystuje wymiar countrydimensionFilter, aby uwzględniać tylko te 2 kraje.

Żądanie raportu dotyczące tych kohort to:

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "dimensions": [
    { "name": "cohort" },
    { "name": "cohortNthWeek" },
    { "name": "country" }
  ],
  "metrics": [{ "name": "cohortActiveUsers" }],
  "dimensionFilter": {
    "filter": {
      "fieldName": "country",
      "inListFilter": {
        "values": [ "Russia", "Mexico" ]
      }
    }
  },
  "cohortSpec": {
    "cohorts": [
      {
        "dimension": "firstSessionDate",
        "dateRange": {
          "startDate": "2020-10-04",
          "endDate": "2020-10-10"
        }
      }
    ],
    "cohortsRange": {
      "endOffset": 5,
      "granularity": "WEEKLY"
    }
  },
}

Przykładowa odpowiedź na to żądanie:

{
  "dimensionHeaders": [
    { "name": "cohort" },
    { "name": "cohortNthWeek" },
    { "name": "country" }
  ],
  "metricHeaders": [
    { "name": "cohortActiveUsers", "type": "TYPE_INTEGER" }
  ],
  "rows": [
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0000" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "105" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0000" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "98" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0001" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "35" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0002" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "24" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0001" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "23" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0004" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "17" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0003" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "15" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0005" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "15" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0002" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "3" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0003" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "1" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0004" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "1" }]
    }
  ],
  "metadata": {},
  "rowCount": 11
}

Poniżej znajduje się wykres tego raportu dotyczącego kohorty. Z tego raportu wynika, że w przypadku tej usługi lepiej utrzymują się użytkownicy z aktywnością w Meksyku niż użytkownicy z aktywnością w Rosji.

Wykres grup porównawczych krajów

Porównania

Dzięki porównaniom możesz analizować równolegle podzbiory danych. Porównania możesz zdefiniować, określając pole comparisons w definicji raportu. Funkcja Porównania w interfejsie Data API jest podobna do porównań w interfejsie Google Analytics.

Szczegółową dokumentację każdego pola interfejsu API znajdziesz w dokumentacji interfejsu REST dla porównania.

Tworzenie porównania

Możesz utworzyć osobne porównanie w przypadku każdego zbioru danych, który chcesz porównać. Jeśli chcesz np. porównać dane z witryny i aplikacji, możesz utworzyć jedno porównanie dotyczące danych z Androida i iOS oraz drugie porównanie obejmujące dane z sieci.

Oto przykładowy raport, który definiuje 2 porównania i zwraca liczbę aktywnych użytkowników podzieloną według kraju.

Pierwsze porównanie o nazwie „Ruch w aplikacji” używa operatora inListFilter, aby dopasować wymiar platform do wartości „iOS” i „Android”. Drugie porównanie o nazwie „Ruch w internecie” używa stringFilter, aby dopasować wymiar platform do wartości „internet”.

  POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
  {
    "comparisons": [
      {
        "name": "App traffic",
        "dimensionFilter": {
          "filter": {
            "fieldName": "platform",
            "inListFilter": {
              "values": [
                "iOS",
                "Android"
              ]
            }
          }
        }
      },
      {
        "name": "Web traffic",
        "dimensionFilter": {
          "filter": {
            "fieldName": "platform",
            "stringFilter": {
              "matchType": "EXACT",
              "value": "web"
            }
          }
        }
      }
    ],
    "dateRanges": [
      {
        "startDate": "2024-05-01",
        "endDate": "2024-05-15"
      }
    ],
    "dimensions": [
      {
        "name": "country"
      }
    ],
    "metrics": [
      {
        "name": "activeUsers"
      }
    ]
  }

W przypadku wszystkich żądań korzystających z funkcji porównań do wygenerowanego raportu automatycznie dodawane jest pole comparison. To pole zawiera nazwę porównania podaną w żądaniu.

Oto przykładowy fragment odpowiedzi zawierający porównania:

{
  "dimensionHeaders": [
    {
      "name": "comparison"
    },
    {
      "name": "country"
    }
  ],
  "metricHeaders": [
    {
      "name": "activeUsers",
      "type": "TYPE_INTEGER"
    }
  ],
  "rows": [
    {
      "dimensionValues": [
        {
          "value": "Web traffic"
        },
        {
          "value": "United States"
        }
      ],
      "metricValues": [
        {
          "value": "638572"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Web traffic"
        },
        {
          "value": "Japan"
        }
      ],
      "metricValues": [
        {
          "value": "376578"
        }
      ]
    },
  {
      "dimensionValues": [
        {
          "value": "App traffic"
        },
        {
          "value": "United States"
        }
      ],
      "metricValues": [
        {
          "value": "79527"
        }
      ]
    },

    ...

  ],

...

}