Recursos do Tracking
Nesta seção, você encontrará uma visão detalhada de cada recurso disponível.
Para cada domínio, apresentamos:
- O objetivo do recurso
- O que ele retorna
- Um exemplo de uso prático
- Produto:
view_itemno GA4 ePageView+ViewContentno Facebook - Categoria e marca:
view_item_listno GA4 ePageViewno Facebook - Demais páginas:
PageViewno Facebook
🧩 Padrão de uso
Todos os recursos seguem o mesmo padrão de consumo:
1import { Tracking } from '@uappi/public-sdk';23// Exemplo genérico4const response = await Tracking.<dominio>.<metodo>(params);
Para mais informações sobre cada endpoint, consulte:
API Pública: Árvore de Categoria
Facebook Pixel
Além do GA4, vários recursos disparam eventos no Facebook Pixel. Cada evento é registrado antes no servidor (API de Conversões) e o eventID retornado é repassado ao fbq, para que o Facebook deduplique os dois envios.
Os eventos do Facebook só são disparados quando o window.fbq existe na página. O SDK não carrega o Pixel.
| Recurso | GA4 | |
|---|---|---|
view.* | view_home, view_shipping, view_payment, view_other, view_not_found | PageView |
product.getUrl | view_item (produto) / view_item_list (categoria e marca) | PageView + ViewContent (produto) |
product.getSearch | view_item_list | PageView + Search |
cart.addProduct | add_to_cart | AddToCart |
cart.upsertProduct | add_to_cart / remove_from_cart | AddToCart (apenas em adições) |
cart.beginCheckout | begin_checkout | InitiateCheckout |
cart.addPaymentInfo | add_payment_info | AddPaymentInfo |
cart.buy | purchase | — |
Componente PaymentHosted | purchase | Purchase |
View
Responsável por emitir eventos referente a visualização de página, como: view_home, view_not_found, e mais. Todos os métodos deste domínio também disparam o PageView do Facebook.
viewHome
Emite o evento view_home usado para mensurar acesso a home da loja.
1await Tracking.view.viewHome();viewShipping
Emite o evento view_shipping usado para mensurar acesso a página de frete.
1await Tracking.view.viewShipping();viewPayment
Emite o evento view_payment usado para mensurar acesso a página de pagamento.
1await Tracking.view.viewPayment();viewOther
Emite o evento view_other usado para mensurar acesso a páginas genéricas, como: institucionais.
1await Tracking.view.viewOther();viewNotFound
Emite o evento view_not_found usado para mensurar acesso a páginas de erro 404.
1await Tracking.view.viewNotFound();🎨 Customization
Responsável pelos eventos relacionados à exibição de conteúdo dinâmico, como banners e vitrines.
listBanners
Emite o evento view_promotion e retorna grupos de banner.
O método baixo possui um Genérico opcional em sua assinatura.
Caso o banner esteja configurado para trabalhar com parametros adicionais no painel, você deve tipar o Genérico "AdditionalParameters"
Ex: interface AdditionalParameters { title: string; description: string; }
1// Retorna uma lista de grupos de banners2await Tracking.customization.listBanners<AdditionalParameters>(codes: Array<string>): Array<Banners<AdditionalParameters>>;34// Retorna apenas um grupo de banner em especifico5await Tracking.customization.listBanners<AdditionalParameters>(code: string): Banners<AdditionalParameters>;listShowcase
Emite o evento view_item_list e retorna vitrines de produtos.
1// Retorna uma lista de vitrine2await Tracking.customization.listShowcase(codes: Array<string>): Array<Showcase>;34// Retorna apenas uma vitrine em especifico5await Tracking.customization.listShowcase(code: string): Showcase;selectPromotion
Emite o evento select_promotion. Usado para mensurar cliques do cliente em banners.
O método baixo possui um Genérico opcional em sua assinatura.
Caso o banner esteja configurado para trabalhar com parametros adicionais no painel, você deve tipar o Genérico "AdditionalParameters"
Ex: interface AdditionalParameters { title: string; description: string; }
1await Tracking.customization.selectPromotion<AdditionalParameters>(2 banner: Banner<AdditionalParameters>, // item de Banners.banners, retornado por listBanners3 index: number, // posição do banner no grupo4): void;👤 Customer
Responsável pelos eventos relacionados ao cliente.
addNewsletter
Emite o evento generate_lead e inscreve o cliente na newsletter da loja.
1await Tracking.customer.addNewsletter({2 email: string;3 name: string;4 phone: string;5});detail
Emite o evento customer_profile e retorna os detalhes do cliente logado
1await Tracking.customer.detail(2 options?: Pick<3 ApiParams<TrackingCustomerFields, CustomerSortFields, CustomerConditionFields>,4 'condition' | 'fields' | 'order'5 >,6);signinByDocument
Emite o evento login e realiza o login por documento
1await Tracking.customer.signinByDocument({2 document: string;3 password: string;4});signinByEmail
Emite o evento login e realiza o login por e-mail
1await Tracking.customer.signinByEmail({2 email: string;3 password: string;4});signup
Emite o evento sign_up e realiza o cadastro de novo cliente
1await Tracking.customer.signup({2 email: string;3 nameCorporateName: string;4 isCorporate: boolean;5 gender: 'male' | 'female' | 'undefined';6 birthdate: string;7 phone: string;8 nationality: string;9 origin: 'frontend' | 'api' | 'admin';10 password: string;11 documents?: Array<{12 type: 'cpf' | 'rg' | 'cnpj' | 'ie' | 'document1' | 'document2' | 'document3';13 document: string;14 }>;15});🛍️ Product
Responsável pelos eventos de interação com produtos.
search
Emite o evento search.
1await Tracking.product.search(term: string);selectItem
Emite o evento select_item. Usado para mensurar cliques do cliente em links.
1await Tracking.product.selectItem(2 page: UrlBrand | UrlListing | Showcase | Search,3 productIndex: number,4): void;getUrl
Realiza a request com dados da página (categoria, detalhe de produto, institucional, marca, etc) e emite os eventos conforme o tipo da página:
Os campos price, brand, variation e mainCategory são adicionados automaticamente a fields, pois são necessários para montar os eventos. Por isso não podem ser informados em options.fields.
O método baixo possui um Genérico obrigatório em sua assinatura.
Genérico usado para definir o tipo de página que será retornado
tipos de páginas UrlProduct | UrlPage | UrlBrand | UrlListing
1await Tracking.product.getUrl<UrlType>(2 path: string,3 options?: Pick<4 ApiParams<TrackingProductFields, ProductSortFields, ProductConditionFields>,5 'condition' | 'fields' | 'limit' | 'offset' | 'meta' | 'order'6 >7): Promise<UrlType>;getSearch
Emite o evento view_item_list no GA4, PageView e Search no Facebook, e retorna uma listagem de produtos com base no termo de pesquisa. Pode ser usado para criar uma sugestão no header do site e também para criar uma listagem paginada de busca de produto
1await Tracking.product.getSearch(2 term: string,3 options?: Pick<4 ApiParams<TrackingProductFields, ProductSortFields, ProductConditionFields>,5 'condition' | 'fields' | 'limit' | 'meta' | 'offset' | 'order'6 >7): Search;listShipmentQuoteProduct
Emite o evento item_view_shipping_calculation e realiza cotação de frete no contexto do produto informado na requisição. Não considera produtos persistidos no carrinho, apenas o frete considerando um produto em específico.
1await Tracking.product.listShipmentQuoteProduct(2 payload: Pick<ApiParams, 'targetCountryCode' | 'targetZipCode' | 'items'>,3): ShipmentQuoteProductResponse;🛒 Cart
Responsável pelos eventos relacionados ao carrinho.
addProduct
Emite o evento add_to_cart no GA4 e AddToCart no Facebook, e adiciona um ou mais produtos ao carrinho
1await Tracking.cart.addProduct({2 items: Array<{3 productId: number;4 quantity: number;5 code?: string | null;6 upsellId?: number | null;7 productPairOfferId?: number | null;8 }>;9}): CartResponse;deleteProduct
Emite o evento remove_from_cart e remove um ou varios produtos do carrinho.
O segundo parâmetro é o carrinho antes da remoção. Ele é usado para montar o evento com os dados dos itens removidos, que não estão mais na resposta.
1await Tracking.cart.deleteProduct(2 payload: {3 items: Array<{ productId: number; upsellId?: number | null }>;4 },5 oldCartResponse: CartResponse,6): CartResponse;listDetail
Retorna todos os detalhes de um carrinho: produtos, descontos, frete selecionado, e mais
1await Tracking.cart.listDetail(): CartResponse;shipmentQuote
Emite o evento item_view_shipping_calculation e retorna opções de frete no contexto do carrinho
1await Tracking.cart.shipmentQuote({2 targetCountryCode: CountryAlpha3;3 targetZipCode: string;4}): CartResponse;upsertProduct
Emite eventos conforme a ação do cliente: remove_from_cart para remoções e add_to_cart para adições, atualizando a quantidade do produto no carrinho de acordo com a operação realizada. Nas adições, também emite AddToCart no Facebook.
Informe oldQuantity com a quantidade atual do item: o SDK compara com quantity para decidir se é adição ou remoção.
1await Tracking.cart.upsertProduct({2 items: Array<{3 productId: number;4 quantity?: number;5 oldQuantity?: number;6 code?: string | null;7 upsellId?: number | null;8 productPairOfferId?: number | null;9 }>;10}): CartResponse;selectShipment
Emite o evento add_shipping_info e seleciona uma opção de frete no contexto do carrinho.
1await Tracking.cart.selectShipment({2 orders: Array<{3 cartOrderId: number;4 shippingTableId: number;5 shippingPickupPointId?: number;6 }>;7}): CartResponse;buy
Emite o evento purchase e faz o processo de finalização de uma compra. O código do pedido criado é enviado como transaction_id.
O carrinho precisa ser informado porque, após a compra, ele já foi consumido e não reflete mais os itens comprados.
1await Tracking.cart.buy(2 payload: {3 payments: Array<{4 paymentOptionId: number;5 value?: number;6 selectedInstallment?: number;7 card?: {8 token?: string;9 number: string;10 cvv: string;11 month: number;12 year: number;13 name: string;14 };15 }>;16 },17 paymentMethod: string, // código do tipo de pagamento, enviado como payment_type18 cartResponse: CartResponse, // carrinho antes da compra19);
Ao usar o componente PaymentHosted, o purchase (GA4) e o Purchase (Facebook) são disparados pelo próprio componente. Não chame Tracking.cart.buy nesse fluxo.
beginCheckout
Emite o evento begin_checkout no GA4 e InitiateCheckout no Facebook. Recebe o carrinho atual, retornado por listDetail.
1await Tracking.cart.beginCheckout(cartPayload: CartResponse): void;addPaymentInfo
Emite o evento add_payment_info no GA4 e AddPaymentInfo no Facebook.
1await Tracking.cart.addPaymentInfo(2 paymentMethod: string,3 cartPayload: CartResponse4): void;publicApiTracking
install
Instala o Google Tag Manager em ambiente de desenvolvimento, para testar os eventos localmente. Busca o ID do GTM configurado no app google-tag-manager da loja, via listTemplateSettings(import.meta.env.VITE_BASE).
Em produção (import.meta.env.PROD) não faz nada.
1import { Tracking } from '@uappi/public-sdk';23await Tracking.publicApiTracking.install();🏁 Próximo passo
Agora que você conhece tudo sobre Tracking do public-sdk, veja também:
Para o desenvolvimento de interfaces, veja:
Store Theme: introdução Área Restrita: introdução Checkout: introdução