Hydrogen e lojas headless
Faça o tracking de uma loja Hydrogen ou de outra loja Shopify headless com o módulo da ROASaurus.
Uma loja headless não tem tema do Shopify, por isso o theme embed da ROASaurus não é executado. Em vez disso, carrega no navegador um pequeno módulo ES da ROASaurus. Não precisa de nenhum pacote npm. O checkout continua no Shopify, onde o pixel de app da ROASaurus (instalado com a app) faz o tracking dos checkouts e das compras como antes, e as encomendas continuam a chegar pelos webhooks de encomendas do Shopify.
1. Carregue o módulo
A chave da sua loja está na página Setup › Shopify da loja na ROASaurus. Carregue o módulo apenas no navegador (não durante a renderização no servidor):
const {createRoasaurus} = await import('https://app.roasaurus.com/headless@1.js');
const roasaurus = createRoasaurus({
storeKey: 'YOUR_STORE_KEY',
market: 'eu', // optional: the Shopify Market handle of this storefront
country: 'NL', // optional: the shopper's country
});
O /headless@1.js acompanha todas as versões 1.x. Fixe uma versão exata com /headless@1.0.0.js ou use sempre a mais recente com /headless.js. Permita https://app.roasaurus.com na sua Content Security Policy para scripts e ligações (Hydrogen: scriptSrc e connectSrc em createContentSecurityPolicy).
2. Ligue o analytics do Hydrogen
Hydrogen 2026-04 e anteriores: renderize este componente dentro de <Analytics.Provider>.
import {useAnalytics} from '@shopify/hydrogen';
import {useEffect} from 'react';
export function RoasaurusAnalytics() {
const {subscribe, register} = useAnalytics();
const {ready} = register('ROASaurus');
useEffect(() => {
import(/* @vite-ignore */ 'https://app.roasaurus.com/headless@1.js').then(({createRoasaurus}) => {
const roasaurus = createRoasaurus({storeKey: 'YOUR_STORE_KEY'});
roasaurus.subscribeHydrogen(subscribe);
ready();
});
}, []);
return null;
}
Hydrogen 2026-10 e posteriores: adicione a ROASaurus como destino no barramento de analytics, uma vez por carregamento de página.
const roasaurus = createRoasaurus({storeKey: 'YOUR_STORE_KEY'});
roasaurus.addToBus(window.Shopify.analytics);
O módulo envia page_viewed como PageView, product_viewed como ViewContent, product_added_to_cart como AddToCart (a quantidade adicionada) e cart_viewed como visualização do carrinho. A ROASaurus reencaminha-os para as suas plataformas de anúncios com os mesmos IDs de evento dos pixels do navegador dessas plataformas.
3. Grave os atributos do carrinho
O ID do visitante no carrinho liga a encomenda do Shopify ao clique no anúncio. No Hydrogen, atualize os atributos do carrinho com roasaurus.cartAttributes() quando é adicionado um produto (por exemplo, um CartForm com CartForm.ACTIONS.AttributesUpdateInput, ou cart.updateAttributes() na action do carrinho). Mantenha os atributos que o carrinho já tem.
Outras lojas headless podem deixar o módulo gravá-los através da Storefront API com um token público:
const roasaurus = createRoasaurus({
storeKey: 'YOUR_STORE_KEY',
shopDomain: 'your-store.myshopify.com',
storefrontAccessToken: 'PUBLIC_STOREFRONT_TOKEN',
});
await roasaurus.beforeCheckout(cart); // before you send the shopper to cart.checkoutUrl
O módulo lê os atributos do carrinho, acrescenta _tl, os IDs de clique e o mercado, e guarda-os com cartAttributesUpdate. Um carrinho visto com consentimento fica também associado ao visitante, pelo que a encomenda é associada mesmo quando faltam os atributos.
Consentimento
O módulo segue a Customer Privacy API do Shopify (window.Shopify.customerPrivacy), que o Hydrogen carrega com as respetivas definições de consent. Enquanto não se souber a escolha de marketing do cliente, os eventos ficam em espera. Se o cliente recusar, não é guardado nenhum ID de visitante, ID de clique nem atributo do carrinho, e os eventos são enviados sem identificadores e não são reencaminhados para as plataformas de anúncios. Com o seu próprio banner, chame roasaurus.setConsent(true) ou setConsent(false).
Outras chamadas
roasaurus.track('Lead', {value: 50, currency: 'EUR'})envia qualquer evento.roasaurus.identify({email})associa um registo à visita (com consentimento).roasaurus.handle('product_viewed', payload)aceita payloads no formato do Hydrogen vindos de outros frameworks.
Continua com dificuldades? Envie-nos um email.