fix(analytics): gtag shim kanonik arguments push — tüm conversion takibi kırıktı
Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled
Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled
initGoogleAds gtag shim'i array push ediyordu ((...args) => dataLayer.push(args));
gtag.js komut olarak sadece `arguments` nesnesini işler, array'i inert dataLayer
verisi sayar → config/event HİÇ çalışmıyordu → _gcl_aw linker cookie'si set
olmuyor, conversion ping'i Google'a gitmiyor, panelde 14 günde 0 dönüşüm (email
kayıtları dahil — sadece OAuth değil). Google'ın kanonik snippet formuna
(function gtag(){dataLayer.push(arguments)}) döndürüldü. OAuth post-auth fix'iyle
(685c6af) birlikte email+OAuth tüm kayıtlar artık ateşler + doğru atfeder.
Doğrulama: headless test gtag'i teyit edemez (Google bot-baskılaması); kesin
kanıt gerçek tarayıcıda kaydın panele düşmesi.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -39,9 +39,15 @@ export function initGoogleAds(): void {
|
||||
_adsId = id;
|
||||
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
const gtag: (...args: GtagArgs) => void = (...args) => {
|
||||
window.dataLayer?.push(args);
|
||||
};
|
||||
// gtag.js executes only queue entries that are the `arguments` object; pushing a
|
||||
// plain array (rest params → `args`) is stored as inert dataLayer data and the
|
||||
// command (config/event) NEVER runs. That silently disabled ALL conversion
|
||||
// tracking — no _gcl_aw linker cookie, no conversion pings, 0 conversions in the
|
||||
// panel. Use Google's canonical snippet form that pushes `arguments`.
|
||||
function gtag() {
|
||||
// biome-ignore lint/style/noArguments: gtag.js only processes the raw arguments object
|
||||
window.dataLayer?.push(arguments as unknown as GtagArgs);
|
||||
}
|
||||
if (!window.gtag) window.gtag = gtag;
|
||||
|
||||
const script = document.createElement("script");
|
||||
|
||||
Reference in New Issue
Block a user