Kwai Pixel
Kwai é uma plataforma de ads brasileira/asiática. O front tem integração SDK própria (não via GTM) em app/utils/metrics/kwai.ts.
Configuração por brand
Em overrides/<brand>/app/config/analytics/analytics.ts:
{
kwaiPixelId: "391184850252476579", // ← string ou null
}
Sem fallback API — se a brand quer Kwai, precisa setar explicitamente. null desativa.
| Brand | kwaiPixelId |
|---|---|
7k-bet-br | "391184850252476579" (igual em dev e prod) |
| Demais brands | null |
A 7k é a única brand com Kwai hoje.
Eventos enviados
| Evento Front | Evento Kwai |
|---|---|
page_view | contentView |
sign_up | completeRegistration |
first_deposit | purchase (com value) |
purchase | purchase (com value) |
:::note page_view é enviado
Esta página dizia que Kwai "não envia page_view". Envia: o adapter mapeia page_view → contentView, e a matriz declara page_view.kwai = { name: "contentView" }. Além disso, o initKwai dispara um pageVisit no próprio init.
:::
Não envia view_game_page, withdraw, login etc — esses têm kwai: null na matriz (paridade legado).
Como funciona
Kwai está na lane eager dos scripts de marketing (ver GTM → Estratégia de carregamento) — carrega no mount, não espera interação nem idle callback. A descrição anterior ("scheduler libera após primeira interação ou idle callback") descrevia o sistema de gating removido em 2026-06.
useAnalyticsBootstrapchamainitKwai(pixelId)na lane de marketing da brand.initKwai:- injeta
https://s.kwai.com/kwaiq/kwaiq.min.jsno head; - aguarda o SDK em
window.kwaiq; - inicia o pixel (
window.kwaiq.instance(pixelId)) e disparapageVisit.
- injeta
- Eventos disparados antes do SDK chegar ficam em
kwaiQueuee são replayados quando ele carrega.
Na brand em marketingScriptsStrategy: "engagement" (hoje a 7k — que é justamente a única com Kwai), o primeKwaiQueue cria a fila síncrona no mount e o download do kwaiq.min.js é adiado pra primeira interação real ou pro deadline. Nenhum evento é perdido — inclusive o contentView da landing, que é enfileirado.
Como debuggar
Console
window.kwaiq // SDK Kwai global
window.kwaiq.instance("PIXEL_ID") // instance da brand
Network
Filtra por s.kwai.com (loader) ou kwai em geral. Cada evento dispara um request pro endpoint Kwai.
Anti-patterns
- Setar
kwaiPixelIdem brand sem contrato Kwai ativo. Carrega script desnecessário. - Esperar evento custom (
view_game_pageetc). O dispatcher Kwai só lida compage_view/signup/deposit/purchase. Adicionar evento exige mudança nokwai.ts+ Kwai aceitar. - Concluir que o pixel não carregou porque
window.kwaiqestáundefinedno load. Na 7k a estratégia éengagement: o download só acontece na primeira interação ou no deadline. A fila já existe e os eventos estão guardados.