Google tag gateway, GA4, Google Ads ve GTM etiketlerini
googletagmanager.com yerine sizin alan adınızdan servis eder. Tarayıcı
artık üçüncü taraf bir alan adına değil, kendi sitenize istek atar.
Google erken testlerde ortalama %11 sinyal artışı bildiriyor. Bu Google'ın kendi rakamı, sizin kurulumunuzda ne çıkacağını ölçmeden bilemezsiniz.
Bu yazı beş sağlayıcının adımlarını ve kurulumun sağlıklı görünüp yine de hiçbir işe yaramadığı durumu anlatıyor.
Bu bir server-side container değil
Karıştırılıyor, ayıralım.
Server-side GTM'de ayrı bir sunucu çalıştırırsınız: tagging server, genelde Cloud Run üzerinde, aylık maliyeti ve bakımı olan bir servis. Etiketler orada işlenir, oradan Google'a gider.
Tag gateway'de böyle bir sunucu yok. CDN'iniz belirli bir yol önekine gelen istekleri Google'ın uç noktasına aktarır. Kendi altyapınızda çalışan bir kod yok, işlenen bir veri yok. Yalnızca bir yönlendirme.
Bu ayrım fiyatlandırmada da önemli: tag gateway'in ek bir sunucu maliyeti yoktur, CDN'inizin zaten yaptığı işi kullanır.
Bütün sağlayıcılarda aynı beş şey
Arayüzler farklı, iş aynı. Hangi CDN olursa olsun beş şeyi kurarsınız.
- Yol eşleştirme/olcum/* isteklerini yakala
- Origin / backendG-XXXXX.fps.goog adresine gönder
- Host başlığıOrigin adıyla değiştir
- Coğrafya başlıklarıÜlke, bölge ve konum ilet
- ÖnbellekKapat, ölçüm isteği önbelleğe alınmaz
- alan eşleşti
- alan boş veya tanımlanmamış
G-XXXXX GA4 ölçüm kimliğinizdir. Yol önekini siz seçersiniz ama iki
kuralı var: kök yol (/) kullanılamaz ve sitenizde o yol boşta
olmalı. Zaten var olan bir yolu seçerseniz o sayfa erişilemez hale gelir.
Sağlayıcı adımları
Cloudflare
En kısa olan burası. İki kayıt, bir ayar.
- CNAME kaydı:
fps→G-XXXXX.fps.goog - Origin Rule, eşleşme ifadesi:
(http.host eq "example.com" and starts_with(http.request.uri.path, "/olcum"))
Kuralda Host başlığını G-XXXXX.fps.goog olarak yeniden yazın.
- Ayarlardan Add visitor location headers açılır. Bu adım atlanırsa coğrafya doğrulaması başarısız olur.
Google Cloud
External Application Load Balancer üzerinden gider.
- Internet network endpoint group oluşturun, FQDN
G-XXXXX.fps.goog, kapsam global - Backend service, adı
measurement-be-svc, tip Internet network endpoint group, protokol HTTPS - İstek başlıkları:
Host: G-XXXXX.fps.goog
X-Forwarded-CountryRegion: {client_region_subdivision}
X-Forwarded-Geolocation: latlong={client_city_lat_long};city={client_city}
- Yönlendirme kuralı: host
*, yol/olcum/*, backendmeasurement-be-svc
Amazon CloudFront
Bir origin, bir behavior. Ayarların çoğu varsayılandan farklı, hepsi önemli.
Origin: Origin domain G-XXXXX.fps.goog, Protocol HTTPS Only.
Behavior:
| Ayar | Değer |
|---|---|
| Path pattern | /olcum/* |
| Origin and origin groups | G-XXXXX.fps.goog |
| Compress objects automatically | No |
| Viewer protocol policy | HTTPS only |
| Allowed HTTP Methods | GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE |
| Cache policy | CachingDisabled |
| Origin request policy | AllViewerExceptHostHeader |
CachingDisabled ve tüm HTTP metotları zorunlu. Varsayılan behavior
yalnız GET ve HEAD geçirir, POST ile giden ölçüm istekleri düşer.
Akamai
Property yapılandırmasına yeni bir sürüm açıp iki şey eklersiniz.
Kural adı Route measurement, eşleşme Path = /olcum/*, Origin
Server Hostname G-XXXXX.fps.goog, Forward Host Header ayarı
Origin Hostname olur.
Coğrafya için Content Targeting (EdgeScape) davranışı eklenir ve
Enable değeri true yapılır.
Fastly
Tek elle kod yazılan sağlayıcı burası.
Condition: tip Request, ad Google Tag Gateway Path, koşul:
req.url.path ~ "^/olcum"
Host: fps.goog, Override host aynı değere ayarlanır.
Sonra iki VCL parçası eklenir, ikisi de aynı kodu içerir: biri vcl_miss
biri vcl_pass içine.
set bereq.http.X-Gtg-Tag-Id = "G-XXXXX";
set bereq.http.X-Forwarded-Country = client.geo.country_code;
set bereq.http.X-Forwarded-Region = client.geo.region;
set bereq.http.X-Forwarded-Geolocation =
"latlong=" + client.geo.latitude + "," + client.geo.longitude +
";city=" + client.geo.city;
İki parçanın da eklenmesi gerekiyor. Yalnız vcl_miss eklenirse
önbelleği atlayan istekler başlıksız gider.
Doğrulama: iki uç
Kurulum bitince Google'ın iki doğrulama ucu vardır. İkisi de düz metin
ok döner.
https://example.com/olcum/healthy
https://example.com/olcum/?validate_geo=healthy
İkincisi coğrafya başlıklarını sınar. Birincisi ok verip ikincisi
vermiyorsa yönlendirme çalışıyor ama konum başlıkları iletilmiyor
demektir: Cloudflare'de "Add visitor location headers", Akamai'de
EdgeScape, Fastly'de VCL parçaları eksiktir.
Asıl tuzak: kurulu, sağlıklı, ve kullanılmıyor
Bu kurulumun en sık takıldığı yer burasıdır ve doğrulama ekranında görünmez.
Geçit CDN tarafında kurulur. İki doğrulama ucu da ok döner. Ölçüm yolu
konteynerin tamamını servis eder. Her şey doğru görünür.
Ama sitenin GTM yükleyicisi hâlâ şunu çağırıyor olabilir:
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
Bu durumda geçit kuruludur ve kimse onu kullanmıyordur. Konteyner Google'dan yüklenir, ölçüm istekleri de doğal olarak Google'a gider. Kurulum raporu yeşil, kazanç sıfır.
Düzeltmesi tek satır. Yükleyicideki adres kendi yolunuza döner:
j.src = '/olcum/gtm.js?id=' + i + dl;
Yerel geliştirmede o yol olmadığı için değeri ortam değişkeninden
okuyun ve boşken googletagmanager.com adresine düşürün. Yoksa
localhost üzerinde konteyner hiç yüklenmez.
Ağ sekmesinde ne görmelisiniz
Tarayıcıda Inspect, Network sekmesi, sayfayı yenileyin. Kurulumdan önce ve sonra host listesi değişir.
- googletagmanager.com/gtm.jskonteyner
- region1.analytics.google.com/g/collectGA4 hit
- www.google.com/ccm/collectAds dönüşüm
- example.com/olcum/gtm.jskonteyner
- googletagmanager.com/gtm.js?gtg_health=1sağlık yoklaması
- region1.analytics.google.com/g/collectGA4 hit
İkinci satırdaki gtg_health=1 isteği normaldir, silinmez: etiket
geçidin ayakta olup olmadığını oradan öğrenir.
Üçüncü satır ise hâlâ kırmızı. Konteyner birinci taraftan geliyor ama içindeki etiketler eski adrese göndermeye devam ediyor. Yol bunu taşıyabiliyor, altyapıda eksik yok:
- /olcum/healthy200 · ok
- /olcum/?validate_geo=healthy200 · ok
- /olcum/g/collect204
- /olcum/gtag/js200 · konteyner
Yani sıra CDN'de değil, GTM tarafında: konteyneri yeniden yayımlamak ve Google etiketi ayarlarını kontrol etmek gerekiyor. Altyapıyı kurup konteyneri yayımlamayı unutmak, bu kurulumun en sık takıldığı yer.
Beş maddelik doğrulama
Kurulumun bittiğini rapor ekranı söylemez. Bu beş maddeyi tek tek geçirin; hepsi doğruysa geçit gerçekten veri taşıyor.
- Nerede
- Tarayıcıda /olcum/healthy adresini açın.
- Doğru cevap
- Ekranda düz metin olarak ok yazar, başka hiçbir şey görünmez.
- Yanlışsa
- 404 veya sitenizin kendi sayfası dönüyorsa CDN kuralı isteği yakalamıyor: yol öneki yanlış yazılmış ya da kural pasif.
- Nerede
- /olcum/?validate_geo=healthy adresini açın.
- Doğru cevap
- Yine ok döner.
- Yanlışsa
- Birinci madde geçip bu geçmiyorsa konum başlıkları eksik: Cloudflare'de Add visitor location headers kapalı, Akamai'de EdgeScape eklenmemiş, Fastly'de VCL parçaları yok ya da yalnız biri var.
- Nerede
- Inspect, Network sekmesi, sayfayı yenileyin ve gtm.js aratın.
- Doğru cevap
- İstek kendi alan adınıza gider. googletagmanager.com satırı yalnızca gtg_health=1 parametresiyle görünür, o sağlık yoklamasıdır.
- Yanlışsa
- gtm.js hâlâ googletagmanager.com üzerinden geliyorsa yükleyicideki adres değişmemiş. Geçit kurulu ama devrede değil.
- Nerede
- Tag Manager, sağ üstteki Submit ve sürüm geçmişi.
- Doğru cevap
- Yükleyici değişikliğinden sonra alınmış bir sürüm var.
- Yanlışsa
- Son sürüm kurulumdan eskiyse etiketler eski yapılandırmayla çalışır: konteyner birinci taraftan gelir ama içindeki etiketler ölçümü yine Google adresine gönderir.
- Nerede
- GA4, Raporlar, Gerçek zamanlı. Başka bir cihazdan siteyi açın.
- Doğru cevap
- Kendi ziyaretiniz otuz saniye içinde listede belirir.
- Yanlışsa
- Ağ sekmesinde istek 200 dönüp GA4'te hiçbir şey görünmüyorsa sorun geçitte değil, ölçüm kimliğinde veya rıza durumundadır.
Beşinci madde neden sonda: ilk dördü altyapıyı sınar, beşincisi sonucu. Altyapı doğruyken beşinci madde düşüyorsa geçidi kurcalamayın, ölçüm tarafına bakın.
Neyi çözmez
| Çözer | Çözmez | |
|---|---|---|
| İstek engelleme | Üçüncü taraf alan adına göre engelleme azalır | Yol adına göre engelleme yapan listeler yine engeller |
| Çerez ömrü | Çerez birinci taraf bağlamında yazılır | Safari ITP birinci taraf çerezlerini de sınırlar |
| Rıza | Kurulumdan bağımsız çalışır | Consent Mode yerine geçmez, izinsiz ölçüm yapmaz |
| Veri kalitesi | Ulaşan sinyal sayısı artabilir | Yanlış kurulmuş bir dönüşümü düzeltmez |
Son satır en önemlisi. Geçit, ölçtüğünüz şey yanlışsa yanlış veriyi daha güvenilir biçimde taşır. Dönüşümünüz gerçek satışla uyuşmuyorsa önce orayı düzeltin.
Bir de belgelenmiş bir sınır var: <noscript> parçası desteklenmiyor.
GTM'in <noscript> iframe'i www.googletagmanager.com adresinde kalır,
geçit yoluna çevrilmez.
Sıra
- Yol önekini seçin, sitede boşta olduğundan emin olun
- CDN'de yönlendirmeyi ve coğrafya başlıklarını kurun
- İki doğrulama ucunu çağırın, ikisi de
okdönmeli - Yükleyicideki adresi kendi yolunuza çevirin
- Ağ sekmesinde host listesini kontrol edin
- GTM konteynerini yeniden yayımlayın
- GA4'te gerçek zamanlı raporda olayların geldiğini görün
Dördüncü adımı atlarsanız birinciden üçüncüye kadar yaptığınız her şey raporda yeşil görünür ve hiçbir işe yaramaz.