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

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:
2026-08-01 10:09:28 +03:00
parent 685c6af3ed
commit 6c936d546b

View File

@@ -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");