Crie um pixel
Nomeie-o por produto, site ou funil.
CAMADA DE SINAIS DE PIXORA ADS
Instale uma vez, mantenha visível o caminho desde o clique no anúncio até a conversão e torne fácil confiar em todos os sinais importantes.
Crie um Pixel, verifique seu domínio HTTPS, verifique eventos de teste e selecione-o durante a criação da campanha do site ou em suas configurações.
Nomeie-o por produto, site ou funil.
Publique o arquivo de token exato nesse host por HTTPS.
Abra o site diretamente e inspecione PageView, ViewContent e Lead.
Em Promover → Tráfego do site, escolha Pixel na etapa Público; as campanhas existentes têm a mesma configuração.
Para uma verificação de atribuição ao vivo, abra o site por meio de uma visita real de campanha no site. Essa transição cria px_click; um URL direto não. Veja o pouso de demonstração do LENTO.
Use o mesmo SDK leve em HTML, React, WordPress ou uma SPA e envie eventos a partir dos estados de sucesso da sua aplicação.
Adicione uma única vez no head ou no layout. Instalações novas aguardam consentimento explícito para análise: chame consent a partir da sua CMP, mesmo antes de o script assíncrono carregar.
<script>
window.PixorAdsPixel = window.PixorAdsPixel || { q: [] };
window.PixorAdsPixel.track = window.PixorAdsPixel.track || function (name, options) {
window.PixorAdsPixel.q.push([name, options]);
};
window.PixorAdsPixel.consent = window.PixorAdsPixel.consent || function (value) {
window.PixorAdsPixel.q.push(["consent", value]);
};
</script>
<script async data-consent="required" src="https://pixora-ads.com/sdk/pixorads-pixel.js?pixel_id=px_your_id"></script>Desconhecido é o padrão. Uma atualização negada interrompe a coleta e remove a atribuição armazenada. As instalações existentes mantêm seu comportamento até que você opte por usar data-consent=required.
// Ligue a partir do seu retorno de chamada de consentimento CMP real, nunca automaticamente:
function onAnalyticsConsentChanged(granted) {
window.PixorAdsPixel.consent(granted ? "granted" : "denied");
}Após o consentimento, o SDK envia o PageView uma vez e suporta px_click e px_tclick. Mantenha a chave do servidor fora desta página. As origens do navegador ativo devem corresponder a um host HTTPS verificado.
PageView, Lead, CompleteRegistration e Purchase compartilham uma forma, um eventId estável e um log de eventos legível.
Envie Lead somente depois que seu servidor aceitar a solicitação. Use o mesmo event_id estável no navegador e no postback.
// After the lead request succeeds:
window.PixorAdsPixel.track("Lead", {
eventId: acceptedLead.event_id,
});Os eventos do navegador descrevem a atividade; eles não confirmam uma conversão de servidor nem alteram o faturamento. Não envie Compra para uma solicitação de demonstração.
O pixel mostra o funil; um postback assinado com HMAC confirma as ações de objetivo para análise.
O servidor assina os bytes exatos do JSON original: timestamp + ponto + JSON original. Use o event_id do navegador e mantenha o mesmo valor nas novas tentativas.
// Node.js 22+, YOUR SERVER. Keep the signing key out of the browser.
import { createHmac } from "node:crypto";
async function sendPixelEvent(event) {
// Persist this event in your outbox after the real outcome, with its original
// event_id and px_click (or px_tclick). Reuse the same body on retries.
const raw = JSON.stringify(event);
const timestamp = String(Math.floor(Date.now() / 1000));
const signature = createHmac("sha256", process.env.PIXORADS_PIXEL_KEY)
.update(timestamp + "." + raw).digest("hex");
// Public px_... ID, not the internal UUID used in cabinet APIs.
const pixelId = process.env.PIXORADS_PUBLIC_PIXEL_ID;
const response = await fetch(
"https://pixora-ads.com/api/v1/pixels/" + encodeURIComponent(pixelId) + "/postback",
{
method: "POST",
redirect: "error",
headers: {"Content-Type": "application/json",
"X-PixorAds-Timestamp": timestamp,
"X-PixorAds-Pixel-Signature": signature},
body: raw,
signal: AbortSignal.timeout(8000)
}
);
if (!response.ok) throw new Error("Pixel postback HTTP " + response.status);
const result = await response.json();
// 2xx alone does not mean attribution: inspect status/mode/error_code.
return result;
}
// Example persisted lead payload (replace with values from your backend):
// {event_id: "lead:123", event_name: "Lead", px_click: "<original click token>"}
// For a Purchase, optional value_minor and currency must be supplied together.
// RUB and XTR use 1000 internal units per unit; USD is not accepted here.
// Retry only transport/5xx/429 failures with bounded backoff. Generate a fresh
// timestamp/signature on each delivery, keeping the event_id and body unchanged.Somente um postback de servidor assinado pode confirmar uma ação de meta para análise. Isso não altera o faturamento. Use o mesmo event_id para conectar os dois sinais e tente novamente com segurança.
Envie X-PixorAds-Timestamp e X-PixorAds-Pixel-Signature (HMAC-SHA256) do seu back-end. Mantenha a chave de assinatura no servidor.
Adicione conexões separadas nas configurações da campanha. A ponte do site lê identificadores de tags reais após o consentimento do visitante; os segredos ficam no servidor Pixora Ads.
Copie o snippet completo da sua conexão. Também funciona sem um Pixel. Várias conexões podem coexistir; nenhum token ou segredo API pertence a este código.
<script>
window.PixorAdsAnalytics = window.PixorAdsAnalytics || {
q: [],
consent: function (value) { this.q.push(["consent", value]); }
};
</script>
<script async src="https://pixora-ads.com/sdk/pixorads-analytics.js?connection_id=YOUR_PUBLIC_CONNECTION_ID"></script>
// Ligue apenas do seu CMP, nunca conceda automaticamente:
function onAnalyticsConsentChanged(granted) {
window.PixorAdsAnalytics.consent(granted ? "granted" : "denied");
}A ponte usa ym(counter, 'getClientID', callback) e gtag('get', MeasurementID, 'client_id'/'session_id', callback). Ele espera até oito segundos pelas tags existentes, ignora IDs indisponíveis e nunca cria visitantes substitutos. As atualizações de consentimento são compartilhadas com um Pixel controlado por consentimento.
Utilize a verificação de conexão no painel: contador encontrado → visitante vinculado → solicitação validada → teste enviado. A validação do GA4 é diferente da entrega e não garante visibilidade nos relatórios. Os valores de compra e IDs de pedidos estáveis devem vir do seu back-end. Métrica API · Etiqueta do Google API.
O diário mostra os últimos 40 eventos com event_id, fonte, modo, campanha e error_code. Leia esses campos antes de tentar novamente.
test é armazenado sem atribuição. recebido é aceito sem uma conversão analítica confirmada. atribuído correspondeu a um clique; uma linha do navegador ainda é um sinal de atividade, enquanto um postback de servidor assinado confirma uma conversão para análise sem alterar o faturamento. duplicado não criou outro resultado. incomparável precisa de um px_click válido e de uma campanha correspondente. rejeitado falhou em uma regra ou entrou em conflito com outro evento.
Se nenhuma linha aparecer, inspecione a resposta da rede: um domínio de navegador não verificado, um pixel pausado ou uma assinatura inválida podem ser recusados antes do login.
PRÓXIMO SINAL
Crie um pixel, execute o fluxo de teste e conecte-o a uma campanha quando o sinal estiver íntegro.