Guia completo sobre eventos e parâmetros no ga4
O que você irá aprender?
Hoje o Google Analytics 4 (Vulgo GA4), já não pode ser considerado novidade e precisamos ficar atentos as mudanças que temos em relação a sua versão anterior para não cometer nenhum tipo de deslize no processo de configuração dos nossos eventos, uma das suas principais mudanças inclusive é sua propria estrutura, você lembra como era no Universal Analytics? kkk
O que são eventos?
Antes de começar vamos fazer um parentese para gente ir bem didáticamente para galera que está começando, quero desmitificar o que é e qual a necessidade de um evento dentro do processo de jornada de um usuário. Primeiro, evento é a interação do usuário dentro do seu site, clique em links, envio de formulários, scroll na página, play em um vídeo, são exemplos de eventos que podem ser disparados em um navegador.
Um evento serve para gente medir comportamentos importantes do usuário dentro do nosso site ou app, para que com esses dados quantitativos consigamos gerar insights sobre o nosso usuários para tomada de decisão.
Como funcionava a coleta de eventos no Universal Analytics
Dentro do Google Analytics um evento tinha uma estrutura padrão aninhada, Categoria, Ação, Rótulo, Valor e suas configurações. Essas informações tinham uma grande flexibilidade na hora de definir sua nomenclatura o que acabava gerando uma certa confusão e um legado ruim quando você não documenta o processo de criação desses eventos.
Então uma coisa que não muda é o processo de planejamento de toda as interações do seu usuário ou como eu gosto de chamar o plano de mensuração do seu negócio, onde você vai definir todo as informações e comportamentos personalizados para serem enviados para suas plataformas de mensuração, onde você vai definir todas as tags que serão implementadas de todos os seus parceiros vigentes.
Em breve você vai ver mais alguns posts falando sobre isso, prometo passar nesse post atualizando ele com o link, caso eu esqueça me manda mensagem la no instagram que vai me ajudar a lembrar de fazer mais conteúdos para vocês.
Mudança no escopo da informação do Google Analytics 4
No Google Analytics 4 (Vulgo GA4), a primeira grande mudança no processo de mensurar o comportamento do usuário veio da sua nova estutruta de dados, no Universal Analytics o nome da requisição que levava as informações para basse de dados do Google Analytics era chamada de hit, e cada escopo levava a cruzavasse com um grupo informações e preenchiam relatórios especifico.
Dentro do GA4 tudo é evento, ou seja, não existe diferença de escopo, uma vez que tudo é tratado da mesma forma e se você for parar para analisar isso é algo bom. A partir de agora todos dados se cruzam de maneira mais fluida uma vez que não existe escopos diferentes no processo de coleta desses dados.
Estrutura de evento no GA4
É como eu disse anteriormente nada muda do GTM para frente, o processo do usuário interargir com o site e a gente medir esse comportamento continua o mesmo. O que muda é o tipo de tag e o escopo do dado que agora por padrão segue o seguinte schema:
- Nome do evento
- Propriedades
Tipos de eventos do GA4
Dentro dessa nova estrutura viabilizada pela gtag e afins inclusive temos uma série de eventos que são coletados de maneira automática, por padrão os eventos do GA4 se dividem em:
- Eventos coletados automáticamente;
- Eventos pré-definidos;
- Eventos personalizados.
Eventos coletados automáticamente
Esses eventos são acionados por interações padrões do seu usuário com seu site ou app, quando você utiliza o modelo de implementação do GA4, seja via gtag, seja via Google Tag Manager não é necessário coletar os seguintes eventos:
Eventos que disparam automáticamente no app e um overview sobre os parâmetros
Abaixo a gente vai ver uma lista de eventos que são coletados automaticamente pelo SDK do firebase, para esses eventos não precisamos fazer absolutamente nada, ele coleta de maneira automática tantos os eventos quantos os parâmetros. Fato importante de observar é que nem todo evento é possivel ser exportado para o Big Query :(
Nome do Evento | Dispara automaticamente quando... | Pode ser exportado para o Big Query | Parâmetros |
ad_click | O usuário clica em um anúncio | Não | ad_event_id |
ad_exposure | Quando pelo menos um anúncio veiculado em exposição na tela | Não | firebase_screen, firebase_screen_id, firebase_screen_class, exposure_time |
ad_impression | Quando usuário vê uma impressão de anúncio | Não | ad_event_id |
ad_query | Quando uma solicitação de anúncio é realizada | Não | ad_event_id |
ad_reward | Quando uma recompensa é concedida por um anúncio | Sim | ad_unit_code, reward_type, reward_value |
adunit_exposure | Quando um bloco de anúncios está sendo exibido na tela | Não | firebase_screen, firebase_screen_id, firebase_screen_class, exposure_time |
app_clear_data | Quando o usuário limpa os dados do app e remove todas as informações de configuração e login | Não possui parâmetros vinculados | |
app_exception | Quando o app falha ou gera uma exceção | fatal, timestamp, engagement_time_msec | |
app_remove | Quando um pacote de aplicativos é removido de um dispositivo Android | Não possui parâmetros vinculados | |
app_store_refund | Quando uma compra é reembolsada pelo Google Play | Não | product_id, value, currency, quantity |
app_store_subscription_cancel | Quando uma assinatura paga é cancelada no Google Play | Não | product_id, price, value, currency, cancellation_reason |
app_store_subscription_convert | Quando um periodo de teste gratuito é convertido em uma assinatura | Não | product_id, price, value, currency, quantity |
app_store_subscription_renew | Quando uma assinatura paga é renovada | Não | product_id, price, value, currency, quantity, renewal_count |
app_update | Quando o app é atualiza para uma nova versão e reiniciado | previous_app_version | |
dynamic_link_app_open | Quando um usuário abre novamente o app utilizando um link dinâmico | source, medium, campaign, link_id, accept_time | |
dynamic_link_app_update | Quando o app é atualizado para uma nova versão e aberto com o uso de um link dinâmico | source, medium, campaign, link_id, accept_time | |
dynamic_link_first_open | QUando um usuário abre o app pela primeira vez usando um link dinâmico | source, medium, campaign, link_id, accept_time | |
error | É registrado em vez de um evento invalido que não pode ser coletado | Não | firebase_error, firebase_error_value |
firebase_campaign | Quando o app é iniciado com parâmetro de campanha | Não | source, medium, campaign, term, content, gclid, aclid, cp1, anid, click_timestamp, campaign_info_source |
firebase_in_app_message_action | Quando um usuário realiza uma ação em uma mensagem no app Firebase. | message_name, message_device_time, message_id | |
firebase_in_app_message_dismiss | quando um usuário dispensa uma mensagem no app Firebase | message_name, message_device_time, message_id | |
firebase_in_app_message_impression | quando um usuário vê uma mensagem no app Firebase | product_id, price, value, currency, cancellation_reason | |
first_open | na primeira vez que um usuário inicia um app após a instalação ou reinstalação | previous_gmp_app_id, updated_with_analytics, previous_first_open_count, system_app, system_app_update, deferred_analytics_collection, reset_analytics_cause, engagement_time_msec | |
first_visit | na primeira vez que um usuário visita um site ou inicia um Instant App Android com o Google Analytics ativado | Não possui parâmetros vinculados | |
in_app_purchase | quando um usuário conclui uma compra no app, incluindo uma assinatura inicial, que é processada pela App Store no iTunes ou pelo Google Play | product_id, price, value, currency, quantity, subscription, free_trial, introductory_price | |
notification_dismiss | quando um usuário dispensa uma notificação enviada pelo Firebase Cloud Messaging (FCM) | message_name, message_time, message_device_time, message_id, topic, label, message_channel | |
notification_foreground | quando uma notificação enviada pelo FCM é recebida enquanto o app está em primeiro plano | message_name, message_time, message_device_time, message_id, topic, label, message_channel, message_type | |
notification_open | quando um usuário abre uma notificação enviada pelo FCM | message_name, message_time, message_device_time, message_id, topic, label, message_channel | |
notification_receive | quando uma notificação enviada pelo FCM é recebida por um dispositivo com o app em segundo plano | message_name, message_time, message_device_time, message_id, topic, label, message_channel, message_type | |
notification_send | quando uma notificação é enviada pelo FCM. | message_name, message_time, message_device_time, message_id, topic, label, message_channel | |
os_update | quando o sistema operacional do dispositivo é atualizado para uma nova versão | previous_os_version | |
screen_view | quando ocorre uma transição de tela | firebase_screen, firebase_screen_class, firebase_screen_id, firebase_previous_screen, firebase_previous_class, firebase_previous_id, engagement_time_msec | |
session_start | Quando um usuário interage com o app ou site | Não possui parâmetros vinculados | |
user_engagement | quando o app está em primeiro plano ou a página da Web está em foco por pelo menos 10 segundos | engagement_time_msec |
Eventos disparados apenas no Android
Como nem tudo são flores, nem todo evento que é coletado automáticamente é coletado em todas as plataformas, veja abaixo a listas de eventos coletados automáticamente que só é possivel medir no android:
- app_clear_data
- app_remove
- app_store_refund
- dynamic_link_app_update
- notification_receive
- notification_send
- notification_dismiss
Eventos que disparam automáticamente no web
Nome do Evento | Dispara automaticamente quando... | Pode ser exportado para o Big Query | Parâmetros |
click | Sempre que um usuário clica em um link que não for do domínio atual | - | Não possui parâmetros vinculados |
file_download | quando um usuário clica em um link que leva a um arquivo | - | file_extension, file_name link_classes, link_domain, link_id, link_text, link_url |
first_visit | na primeira vez que um usuário visita um site | - | Não possui parâmetros vinculados |
page_view | cada vez que a página é carregada ou o estado do histórico de navegação é alterado pelo site ativo | - | page_location (URL da página), page_referrer (URL da página anterior), engagement_time_msec |
scroll | na primeira vez que um usuário chega ao fim de cada página | - | engagement_time_msec |
session_start | Quando um usuário interage com o app ou site | - | Não possui parâmetros vinculados |
video_complete | Quando o vídeo terminar | - | video_current_time, video_duration, video_percent, video_provider, video_title, video_url, visible (booleano) |
video_progress | quando o vídeo passa dos 10%, 25%, 50% e 75% de duração | - | video_current_time, video_duration, video_percent, video_provider, video_title, video_url, visible (booleano) |
video_start | quando o vídeo começa a ser reproduzido | - | video_current_time, video_duration, video_percent, video_provider, video_title, video_url, visible (booleano) |
view_search_results | cada vez que um usuário realiza uma pesquisa no site, indicada pela presença de um parâmetro de consulta de URL. | - | search_term |
Eventos recomendados
Diferente do Universal Analytics, o Google Analytics 4 passou a definir alguns dos eventos que ajudam a medir o comportamento do seu usuário. Esse eventos não são coletados automáticamente e necessita de implementação deles dentro do seu GTM, o GA4 os categoriza inclusive por tipo de negócios. Eles ficam divididos em:
- Eventos para todas e qualquer propriedade;
- Vendas online;
- Jogos.
Eventos para todas e qualquer propriedade
Trata-se se uma lista de eventos genéricos que se aplicam a qualquer negócio e você os implementa de acordo com a sua necessidade de mensuração, são eles:
Nome do Evento | Disparar quando | Parâmetros |
ad_impression | Um usuário vê uma impressão de anúncio (somente para apps) | AD_PLATFORM, AD_SOURCE, AD_FORMAT, AD_UNIT_NAME, CURRENCY, VALUE |
ad_impression | Um usuário vê uma impressão de anúncio (somente para apps) | virtual_currency_name, value |
join_group | Um usuário entra em um grupo para medir a popularidade de cada grupo | group_id |
login | Um usuário faz login | method |
purchase | Um usuário conclui uma compra | currency, transaction_id, value, affiliation, coupon, shipping, tax, items |
refund | Um usuário recebe um reembolso | currency, transaction_id, value, affiliation, coupon, shipping, tax, items |
search | Um usuário pesquisa seu conteúdo | search_term |
select_content | Um usuário seleciona conteúdo | item_id, content_type |
share | Um usuário compartilha conteúdo | method, content_type, item_id |
sign_up | Um usuário se inscreve para medir a popularidade de cada método de inscrição | sign_up |
spend_virtual_currency | Um usuário gasta moeda virtual | value, virtual_currency_name, item_name |
tutorial_begin | Um usuário inicia um tutorial | Não coleta parâmetros |
tutorial_complete | Um usuário conclui um tutorial | Não coleta parâmetros |
Eventos para e-commerce
A implementação dos eventos de e-commerce para o GA4 é basicamente o que tinhamos para o Enhanced Commerce dentro do Universal Analytics. Mensurar a jornada do usuário dentro do processo de compra, a diferença que temos é justamente a adaptação que teve que ser feita devido ao GA4 ser baseado em eventos.
Antes você tinha uma implementação que separavam dados de impressão de produto, das interações do usuário, justamente pela diferença que temos de paradigma de sair para pageview based e ir para um modelo event based.
Tendo em vista esse ponto vamos aos eventos do GA4 para e-commerces:
Nome do Evento | Disparar quando | Parâmetros |
add_payment_info | Um usuário envia informações de pagamento | currency, value, coupon, payment_type, items |
add_shipping_info | Um usuário envia informações de frete | currency, value, coupon, shipping_tier, items |
add_to_cart | Um usuário adiciona itens ao carrinho | currency, value, items |
begin_checkout | Um usuário inicia o processo de finalização da compra | currency, value, items |
generate_lead | Um usuário envia um formulário ou pede informações | currency, value |
purchase | Um usuário conclui uma compra | currency, transaction_id, value, affiliation, coupon, shipping, tax, items |
refund | Um reembolso é emitido | currency, transaction_id, value, affiliation, coupon, shipping, tax, items |
remove_from_cart | Um usuário remove itens do carrinho | currency, items, value |
select_item | Um usuário seleciona o item de uma lista | item_list_id, item_list_name, items |
select_promotion | Um usuário seleciona uma promoção | creative_name, creative_slot,location_id, promotion_id, promotion_name, items |
view_cart | Um usuário visualiza o carrinho | currency, value, items |
view_item | Um usuário visualiza um item | currency, value, items |
view_item_list | Um usuário vê uma lista de itens/ofertas | item_list_id, item_list_name, items |
view_promotion | Uma promoção é exibida para o usuário | creative_name, creative_slot,location_id, promotion_id, promotion_name, items |
Eventos para jogos
Novidade no GA4, coletar informações em jogos pode ser uma boa não só para jogos, mas para gameficação se a sua plataforma utiliza esse recurso de uma olhada nesses eventos:
Nome do Evento | Disparar quando | Parâmetros |
earn_virtual_currency | Um usuário ganha moeda virtual (moedas, pedras preciosas, tokens etc.) | virtual_currency_name, value |
join_group | Um usuário entra em um grupo para medir a popularidade de cada grupo | group_id |
level_end | Um usuário conclui uma fase no jogo | level_name, success |
level_start | Um usuário inicia uma nova fase no jogo | level_name |
level_up | Um usuário sobe de nível no jogo | level_name, character |
post_score | Um usuário publica uma pontuação | score, level, character |
select_content | Um usuário seleciona conteúdo | content_type, item_id |
spend_virtual_currency | Um usuário gasta moeda virtual (moedas, pedras preciosas, tokens etc.) | virtual_currency_name, value |
tutorial_begin | Um usuário inicia um tutorial | Não coleta parâmetros |
tutorial_complete | Um usuário conclui um tutorial | Não coleta parâmetros |
unlock_achievement | Um usuário desbloqueia uma conquista | achievement_id |
Eventos personalizados
Os eventos personalizados são todos os eventos que não estão dentro dessas listas acima, dentro do GA4 temos a possibilidade de não só implementar eventos pré-definidos mais criar comportamentos customizados e de acordo com a jornada do nosso usuário. Tente ao máximo utilizar dos eventos pré-definidos, principalmente se a gente estiver falando de eventos para e-commerce, não tente reinventar a roda pois, essa nomenclatura é fundamental para preencher os relatórios de monetização.
Outro ponto importante sobre eventos personalizados, é que o GA4 é case sensitive, então cuidado na hora de criar eventos com capitalização diferentes, exemplo:
add_to_cart é diferente de Add_to_cart
Logo, padronizar os eventos é importante, hoje o padrão utilizado pelo GA4 é o snake case. O snake case é um padrão de escrita utilizados por programadores que substitui o espaço das palavras por underline, e a primeira letra de cada palavra é em minuscula. Sinceramente é o melhor padrão possivel para se adotar uma vez que os parâmetros UTMS também utilizam essa base, então fica a dica!
Conclusão
Na minha opinião o GA4 mudou e mudou para melhor no quesito eventos, dentro do Universal Analytics a liberdade que tinhamos em relação a criação de eventos acabava gerando um Frankenstein ao longo do tempo. Padronizar os eventos, não só coloca todo mundo na mesma página, mas define o básico a se mensurar em cada uma das plataformas.
Quer saber mais sobre eventos e parâmetros no GA4? Confira o vídeo completo abaixo:
Dê o play no nosso podcast de dicas