Configuração no Admin
-
GTM:
google.tagManager.ativoegoogle.tagManager.codigo -
GA4:
google.analytics.ativoegoogle.analytics.codigo -
Ads:
google.adWords(schema existe, sem implementação no frontend)
Guia para agência
Documentação completa de como o Google Tag Manager e o GA4 são
instalados na loja, como os eventos são enviados ao
dataLayere o que cada evento faz, com payload e gatilho
no código.
O rastreamento é multi-tenant: cada loja carrega seu próprio container
GTM e ID de Analytics a partir de storeSettings.google,
retornado pela API de configurações do tenant.
google.tagManager.ativoe
google.tagManager.codigo
google.analytics.ativoe
google.analytics.codigo
google.adWords(schema existe, sem
implementação no frontend)
gtm.js,
gtm.start), noscript iframe, id
lw-google-tagManager
gtag/js+ gtag('config'), id
lw-google-analytics
dataLayer
src/Gtm/index.ts— utilitários centrais
src/templates/*/GTM.ts— Header, PDP, Cart,
Checkout, Offers, ShowcaseFilters
src/components/*/GTM.ts— ProductCard, Banner
Todo evento customizado passa por eventDataLayer(). O
contrato para tags/variáveis no GTM é o namespace
marketplaceno payload.
Garante window.dataLayer, faz push de
{ marketplace: null }(limpa o namespace anterior) e em
seguida faz push do objeto datacom
event+ marketplace.
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ marketplace: null });
window.dataLayer.push(data);
Arquivo: src/Gtm/index.ts
Normaliza strings para o dataLayer: NFD, lowercase, barras e espaços viram hífen, remove acentos e caracteres especiais nas bordas. Usado em nomes de eventos, categorias, cupons e campos de texto.
{
event: "nome_do_evento",
marketplace: {
/* campos específicos */
}
}
Nomes como view_cart, add_to_cart,
remove_from_cart, begin_checkout,
add_shipping_info, add_payment_info,
purchasee add_to_wishlistseguem a
convenção recomendada do GA4, com dados em
marketplace.items[].
Eventos agrupados por área funcional. Quando o mesmo nome aparece em
contextos diferentes (ex.: add_to_cart), o gatilho e o
módulo definem a origem.
gtm.start(timestamp)
_app.tsx
search_term, is_seller_page,
is_seller_search_active
currency, value, items[]
(id, marca, nome, fabricante, categoria)
route, search_term,
linx_is_active, search_is_linx,
is_success, total_results
useEffectao receber resultados
brand_id, brand_name,
brand_permalink
category, categoryHref,
categoryParent
filter_name(switch_delivery|
button_delivery| button_pickup),
route, filter_status
field, value
old_order, new_order
currency, value,
geolocation_is_active, items[]rico (sku,
seller, categoria, ean, estoque, atributos, url, imagem, retenção)
useEffectno mount
currency, value, items[]com
quantidade
currency, value, items[]
currency, value, items[]
freight_zip_code, freight_success,
items[], freight_response[]
route
route
seller_id, seller_code,
seller_name, seller_permalink
id, price, category,
name, sku, url,
geolocation_is_active
currency, value, items[]
(campos específicos de oferta)
route
route
seller_id, seller_code,
seller_name, seller_permalink
permalink, items[]com opções de frete
por oferta
offers_length, freight_length,
offers_page_warn
currency, value, coupon,
coupon_discount, items[]com
index
useEffectquando carrinho não vazio
currency, value, items[]com
index
currency, value, coupon,
items[]
currency, value, items[]com
quantidade removida
coupon, coupon_success,
coupon_message(se falha)
coupon, coupon_success
seller_id, seller_code,
seller_name, seller_permalink
delivery_groups_minimum_value[]
currency, value,total_items
, value_without_shipping,coupon,
items[]
useEffectno mount
currency, value, coupon,
items[][]com delivery_group
payment_type, discount,
coupon, items[]
transaction_id, payment_status(
REGISTRADO), user_email,
shipping, payment_type,
installments, items[]
step(default| search|
register), status(opened|
closed), is_authenticated
old_step, next_step
step, address_success,
is_authenticated, error_message
is_authenticated
address_is_from(navigator|
google), is_authenticated
is_authenticated
route
header-entre_ou_cadastre,
header-popover-entrar; SideMenu:
side_menu-entre_ou_cadastre
banner_id, banner_type,
banner_order, banner_title,
banner_img_url, banner_location,
banner_permalink
triggerGTM=false, ex.: press)
currency, value, items[]
currency, value, items[]
Campos recorrentes no namespace marketplace. Use esta
referência ao configurar variáveis e triggers no GTM.
item_id, item_name,
item_sku
item_sku_seller, item_brand_id,
item_brand
item_seller_id, item_category,
item_category_id
price, discount, quantity
, index
item_image, item_url,
item_sob_encomenda
delivery_group,
delivery_group_value
seller_id, seller_code
seller_name, seller_permalink
click_seller_PDP,
click_seller_cart, click_seller_offers
coupon— código sanitizado
coupon_discount— valor do desconto
coupon_success, coupon_message—
apply/remove
geolocation_is_active— lat/long válidos
step, status,
is_authenticated
address_success, error_message
address_is_from: navigatorou
google
transaction_id, payment_status
payment_type, installments
value_without_shipping, shipping
user_email, total_items
Aplicado em termos de busca, nomes de produto/categoria, cupons, rotas, mensagens de erro e nomes dinâmicos de botões. Garante consistência para variáveis do GTM.
Mapa dos módulos GTM.tsexportados e onde são consumidos
no código.