Este documento descreve vários recursos avançados da API Data v1 do Google Analytics. Para uma referência detalhada da API, consulte a Referência da API.
Listar definições personalizadas e criar relatórios
A API Data pode criar relatórios sobre as dimensões personalizadas e as métricas personalizadas registradas. O método da API Metadata pode ser usado para listar os nomes de API das definições personalizadas registradas da sua propriedade. Esses nomes de API podem ser usados em solicitações de relatório para o método runReport, por exemplo.
As seções a seguir mostram exemplos de cada tipo de definição personalizada. Nesses exemplos, substitua GA_PROPERTY_ID
pelo ID da propriedade.
Dimensões personalizadas no escopo do evento
Etapa 1:consulte o método da API Metadata com o ID da propriedade.
GET https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID/metadata
Etapa 2:encontre a dimensão personalizada no escopo do evento em que você quer gerar relatórios com base na resposta. Se a dimensão não estiver presente, você precisará registrá-la.
"dimensions": [
...
{
"apiName": "customEvent:achievement_id",
"uiName": "Achievement ID",
"description": "An event scoped custom dimension for your Analytics property."
},
...
],
Etapa 3:inclua a dimensão personalizada em uma solicitação de relatório. Confira a seguir um exemplo de solicitação para o método 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" }]
}
Dimensões personalizadas no escopo do usuário
Etapa 1:consulte o método da API Metadata com o ID da propriedade.
GET https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID/metadata
Etapa 2:encontre a dimensão personalizada no escopo do usuário em que você tem interesse para gerar relatórios com base na resposta. Se a dimensão não estiver presente, você precisará registrá-la.
"dimensions": [
...
{
"apiName": "customUser:last_level",
"uiName": "Last level",
"description": "A user property for your Analytics property."
},
...
],
Etapa 3:inclua a dimensão personalizada em uma solicitação de relatório. Confira a seguir um exemplo de solicitação para o método 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" }]
}
Métricas personalizadas no escopo no evento
Etapa 1:consulte o método da API Metadata com o ID da propriedade.
GET https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID/metadata
Etapa 2:encontre a métrica personalizada no escopo do evento que você quer usar para criar relatórios com base na resposta. Se a métrica não estiver presente, você precisará registrá-la.
"metrics": [
...
{
"apiName": "customEvent:credits_spent",
"uiName": "Credits Spent",
"description": "An event scoped custom metric for your Analytics property.",
"type": "TYPE_STANDARD"
},
...
],
Etapa 3:inclua a métrica personalizada em uma solicitação de relatório. Confira a seguir um exemplo de solicitação para o método 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" }]
}
Métricas da taxa de eventos principais para um evento principal
Etapa 1:consulte o método da API Metadata com seu ID de propriedade.
GET https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID/metadata
Etapa 2:encontre a métrica de taxa de eventos principais para um evento principal em que você tem interesse para criar relatórios com base na resposta. Se o evento principal não estiver presente, você precisa configurar o evento principal.
"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",
},
...
],
Etapa 3:inclua a métrica de taxa de eventos principais em uma solicitação de relatório. Confira a seguir um exemplo de solicitação para o método 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" }]
}
Médias de métricas personalizadas no escopo do evento
Etapa 1:consulte o método da API Metadata com o ID da propriedade.
GET https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID/metadata
Etapa 2:encontre a média da métrica personalizada no escopo do evento que você quer usar para criar relatórios com base na resposta. Se a métrica não estiver presente, você precisará registrá-la.
"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"
},
...
],
Etapa 3:inclua a média da métrica personalizada em uma solicitação de relatório. Confira a seguir um exemplo de solicitação para o método 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" }]
}
Exemplos de relatórios de coorte
Os relatórios de coorte criam uma série temporal de retenção de usuários para a coorte. Para documentação detalhada de cada campo da API, consulte a referência REST para CohortSpec.
Criar um relatório de coorte
Confira um exemplo de relatório de coorte em que:
- A coorte é de usuários com um
firstSessionDate
de2020-12-01
. Isso é configurado pelo objetocohorts
. As dimensões e métricas na resposta do relatório serão baseadas apenas nos usuários da coorte. - O relatório de coorte vai mostrar três colunas, que são configuradas pelos objetos de dimensões e métricas.
- A dimensão
cohort
é o nome da coorte. - A dimensão
cohortNthDay
é o número de dias desde2020-12-01
. - A métrica
cohortActiveUsers
é o número de usuários ainda ativos.
- A dimensão
- O objeto
cohortsRange
especifica que o relatório precisa conter dados de eventos de2020-12-01
a2020-12-06
para esse grupo.- Quando uma granularidade de
DAILY
é usada, a dimensãocohortNthDay
é recomendada para manter a consistência.
- Quando uma granularidade de
A solicitação de relatório para a coorte é:
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"
}
},
}
Para essa solicitação, um exemplo de resposta do relatório é:
{
"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
}
A resposta do relatório é seguida por um gráfico desse relatório de coorte. Um insight deste relatório é que a maior queda de usuários ativos para essa coorte é entre o primeiro e o segundo dia.
Várias coortes e fração de retenção de usuários
A aquisição e a retenção de usuários são maneiras de expandir seu site ou app. Os relatórios de coorte se concentram na retenção de usuários. Neste exemplo, o relatório mostra que essa propriedade melhorou a retenção de usuários de 4 dias em 10% ao longo de duas semanas.
Para criar esse relatório, especificamos três coortes: a primeira com um
firstSessionDate
de 2020-11-02
, a segunda com um firstSessionDate
de
2020-11-09
e a terceira com um firstSessionDate
de 2020-11-16
. Como o
número de usuários na sua propriedade vai ser diferente nesses três dias, comparamos
a métrica de fração de retenção de usuários da coorte de
cohortActiveUsers/cohortTotalUsers
em vez de usar a métrica
cohortActiveUsers
direta.
A solicitação de relatório para essas coortes é:
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"
}
},
}
Para essa solicitação, um exemplo de resposta do relatório é:
{
"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
}
A resposta do relatório é seguida por um gráfico desse relatório de coorte. Um insight
deste relatório é que a retenção de usuários em 4 dias aumentou 10% ao longo de
duas semanas. A coorte mais recente com firstSessionDate
de 2020-11-16
ultrapassa a retenção da coorte anterior com firstSessionDate
de 2020-11-02
.
Coortes semanais e uso de coortes com outros recursos da API
Para remover a variação diária no comportamento do usuário, use coortes semanais. Nos relatórios de coorte
semanais, todos os usuários com firstSessionDate
na mesma semana formam a
coorte. As semanas começam no domingo e terminam no sábado. Também neste relatório, estamos
recortando a coorte para comparar os usuários com atividade na Rússia com os usuários com
atividade no México. Esse corte usa a dimensão country
e um dimensionFilter
para considerar apenas os dois países.
A solicitação de relatório para essas coortes é:
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"
}
},
}
Para essa solicitação, um exemplo de resposta do relatório é:
{
"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
}
A partir dessa resposta, um gráfico do relatório de coorte é exibido. Com base neste relatório, essa propriedade está reduzindo a taxa de retenção de usuários com atividades no México em comparação com usuários com atividades na Rússia.
Comparações
Com as comparações, você pode avaliar subconjuntos dos seus dados lado a lado. É possível definir comparações especificando o campo comparisons
em uma definição de relatório. O recurso de comparações da API Data é semelhante às comparações no front-end do Google Analytics.
Para conferir a documentação detalhada de cada campo da API, consulte a referência REST para comparação.
Criar uma comparação
Você pode criar uma comparação separada para cada conjunto de dados que você quer comparar. Por exemplo, se quiser comparar dados do app e da Web, crie uma comparação para dados do Android e do iOS e outra para dados da Web.
Confira um exemplo de relatório que define duas comparações e retorna usuários ativos divididos por país.
A primeira comparação, chamada "Tráfego do app", usa inListFilter
para
corresponder à dimensão platform
com os valores "iOS" e "Android". A segunda comparação, chamada "Tráfego da Web", usa stringFilter
para corresponder à dimensão platform
com "Web".
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"
}
]
}
Para todas as solicitações que usam o recurso de comparações, o campo comparison
é adicionado automaticamente ao relatório gerado. Esse campo contém o nome
da comparação fornecida na solicitação.
Confira um exemplo de snippet de uma resposta com comparações:
{
"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"
}
]
},
...
],
...
}