Files
kolaytercih/src/features/odeme/components/paket-gorunum-olayi.tsx
bilalgursen cf19903e19 feat(analitik): huni olayları
Huninin kör noktalarına altı olay (adlar kalıcı sözleşme):
- cta_form_goruntulendi: programatik sayfalardaki CTA kartı, yalnız
  profilsiz dalda (görünüm hook'u; sayfa ayrımı Rybbit pathname'inden)
- sira_form_hata {kaynak: hero|cta|kapi|duzenle}: facet isteği hatası;
  geçersiz sayı doğrulaması sayılmaz
- sonuc_goruntulendi {girisli, sira_kovasi}: /sonuc pathname'i maskeli,
  huni adımı bu olayla kurulur; oturum başına girişli/anonim birer kez
- paket_goruntulendi {kaynak: kilit|kredi_bitti|nav|diger}: sayfaya
  dokunmadan yeni paket/layout.tsx + client bileşenle; /paket linklerine
  ?kaynak= eklendi (listem kilit kartları, kredi-yetersiz, nav kredi pill'i)
- liste_uretim_hata {kod: HATA|ISTISNA}: AUTH/KREDI/PAKET dalları atmaz
- giris_hata {yontem: eposta|google, status}

Ham sıra ve e-posta hiçbir olaya girmez; sıra yalnız siraKovasi() ile.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-21 04:49:09 +03:00

26 lines
969 B
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"use client";
// /paket görüntülenmesini ve ziyaretçiyi oraya getiren yüzeyi ölçer.
//
// Neden ayrı bileşen + layout: /paket sayfası sunucu bileşeni ve statik
// kalmalı. `useSearchParams` kullanılmaz — cacheComponents açıkken Suspense
// sınırı/CSR bailout gerektirir; parametre yalnızca ölçüm için lazım, mount
// sonrası window.location'dan okumak yeter.
import { useEffect } from "react";
import { olayBirKez } from "@/lib/analitik";
// Serbest metin analitiğe sızmasın: bilinmeyen değerler "diger"e düşer.
const KAYNAKLAR = ["kilit", "kredi_bitti", "nav"] as const;
export function PaketGorunumOlayi() {
useEffect(() => {
const ham = new URLSearchParams(window.location.search).get("kaynak");
const kaynak = KAYNAKLAR.find((k) => k === ham) ?? "diger";
// Oturum başına kaynak başına 1 kez: yenileme sayıyı şişirmesin
olayBirKez("paket_goruntulendi", { kaynak }, kaynak);
}, []);
return null;
}