Proje: Okul Platform · Hub: Okul Platform — Architecture
Profiling GA event taxonomy
Profiling modülü (Eğitim Yaklaşımı Testi + Okul Bulma Formu + Sonuç sayfası)
için tanımlanan event ağacı. Tüm helper’lar konvansiyon
uyarınca resources/assets/scripts/gaEvents.js’te yaşar; profiling bundle
yalnızca CALL eder (resources/assets/scripts/profiling/events.js).
Page types
| pageType | Anlamı |
|---|---|
ProfilingTest | 11 soruluk Eğitim Yaklaşımı Testi wizard’ı |
ProfilingResult | Test sonuç sayfası (inline okul kartları + çoklu lead) |
ProfilingFinder | Okul Bulma Formu wizard’ı |
ProfilingFinderResult | Okul Bulma özet sayfası (mevcut listeleme’ye yönlendirme) |
Helper fonksiyonlar (gaEvents.js)
gaSendEventProfiling(pageType, action, age, primaryModels, supportingModels)
// action: Complete | ResultView | Reset | SchoolsFetched
gaSendEventProfilingFinder(pageType, action, schoolType, listingUrl)
// action: Complete | ResultView | GoToListing
gaSendEventProfilingLead(pageType, action, schoolCount, schoolIds, schoolNames)
// action: SchoolSelect | SchoolUnselect | FormOpen | FormClose
// | Submit | Success | ErrorVar olan generic helper’lar da çağrılır:
gaSendEventFormOpen/gaSendEventFormClose— wizard başlangıç/bitişgaSendEventSteps— adım geçişleri (ProfilingStep/FinderStep)gaSendEventSchools— okul kartı tıklaması (SchoolCard+ModelCta)gaSendEventNavigation— “Tüm Okullar”, “Eğitim Danışmanı” gibi CTA’lar
Event noktaları (call sites)
Test wizard
| Aksiyon | Fonksiyon |
|---|---|
| Sayfa açılır | gaSendEventFormOpen('ProfilingTest','open','ProfilingForm','Wizard','Start',...) |
| Adım değişir | gaSendEventSteps('Next','ProfilingStep', q.id) |
| Test tamamlanır | gaSendEventFormClose + gaSendEventProfiling('ProfilingTest','Complete', age, primary, supporting) |
Sonuç sayfası (inline okullar + çoklu lead)
| Aksiyon | Fonksiyon |
|---|---|
| Sonuç görüntülenir | gaSendEventProfiling('ProfilingResult','ResultView', age, primary, supporting) |
| Okul listesi çekildi | gaSendEventProfiling('ProfilingResult','SchoolsFetched', null, null, count) |
| Okul kartı “Profili gör” | gaSendEventSchools('ProfilingResult','Click','SchoolCard', id, name, city, null) |
| Okul seçildi/çıkarıldı | gaSendEventProfilingLead('ProfilingResult','SchoolSelect|SchoolUnselect', count, id, name) |
| Lead formu açıldı | gaSendEventProfilingLead('ProfilingResult','FormOpen', count, ids, names) |
| Lead formu kapatıldı | gaSendEventProfilingLead('ProfilingResult','FormClose', count, null, null) |
| Lead submit edildi | gaSendEventProfilingLead('ProfilingResult','Submit', count, ids, null) |
| Lead başarılı | gaSendEventProfilingLead('ProfilingResult','Success', createdCount, createdIds, names) |
| Lead hatalı | gaSendEventProfilingLead('ProfilingResult','Error', null, null, reason) |
| ”Tüm X Okullar” | gaSendEventNavigation('ProfilingResult','Click','Button','BrowseAll','…') |
| ”Eğitim Danışmanı” | gaSendEventNavigation('ProfilingResult','Click','Button','Consultant','…') |
| ”Testi Tekrar Çöz” | gaSendEventProfiling('ProfilingResult','Reset', null, null, null) |
Finder wizard
| Aksiyon | Fonksiyon |
|---|---|
| Sayfa açılır | gaSendEventFormOpen('ProfilingFinder','open','FinderForm','Wizard','Start',...) |
| Adım değişir | gaSendEventSteps('Next','FinderStep', q.id) |
| Form tamamlanır | gaSendEventFormClose + gaSendEventProfilingFinder('ProfilingFinder','Complete', schoolType, listingUrl) |
| Sonuç görüntülenir | gaSendEventProfilingFinder('ProfilingFinderResult','ResultView', schoolType, null) |
| ”Okulları Göster” | gaSendEventProfilingFinder('ProfilingFinderResult','GoToListing', null, url) |
Reason alan değerleri (lead Error)
leadError(reason) çağrılarında kullanılan sabit değerler:
client-validation— client-side validateClient() başarısızvalidation— BE 422 validationserver— diğer non-2xx HTTPnetwork— fetch error / timeout
Doğrulama
Dev console’da:
dataLayer.filter(e => e.customEventName?.includes('gaEventProfiling'))Beklenen akış (test → sonuç → lead):
gaEventFormOpen(ProfilingTest open)gaEventStepsx N (adım geçişleri)gaEventFormClose(ProfilingTest complete) +gaEventProfiling(Complete)gaEventProfiling(ResultView) +gaEventProfiling(SchoolsFetched)gaEventSchools(SchoolCard click) veyagaEventProfilingLead(SchoolSelect)gaEventProfilingLead(FormOpen → Submit → Success)
Related
- 2026-04-14-ga-event-flow-end-to-end — 5 katmanlı event pipeline
- 2026-04-14-ga-event-helper-location — gaEvents.js konvansiyonu
- 2026-04-15-banner-config-pattern — profiling banner toggle