Ana içeriğe atla

Web Sitelerinde Kullanıcı Rızası ve Google Analytics Entegrasyonu: Neden ve Nasıl?

 Dijital dünyada kullanıcı gizliliği artık bir tercih değil, yasal bir zorunluluktur. Eğer bir web siteniz varsa ve ziyaretçi trafiğini analiz etmek için Google Analytics kullanıyorsanız, kullanıcılarınızdan izin almadan veri toplamanın ciddi sonuçları olabilir.

Bu yazımızda, kullanıcı rızasının önemini inceleyecek ve PHP kullanarak basit ama etkili bir rıza yönetim mekanizmasını nasıl kurabileceğinizi öğreneceğiz.

1. Kullanıcı Rızası (Consent) Neden Önemli?

Web sitenize giren bir kullanıcının davranışlarını takip etmek, aslında onun kişisel verilerine dokunmak demektir. İşte rıza almanız için 3 temel sebep:

  • Yasal Uyumluluk (KVKK & GDPR): Türkiye’de KVKK, Avrupa’da ise GDPR yasaları, kullanıcıların çerezler (cookies) aracılığıyla takip edilmeden önce bilgilendirilmesini ve onayının alınmasını şart koşar.

  • Dijital Etik ve Güven: Ziyaretçilerinize verilerini nasıl kullandığınızı sormak, markanızın şeffaflığını ve profesyonelliğini gösterir.

  • Veri Kalitesi: Google’ın yeni Consent Mode v2 standartları, rıza durumuna göre veri toplama modelini optimize eder. İzinli veri, reklam ve analiz süreçlerinde çok daha sağlıklı sonuçlar verir.

2. PHP ile Rıza Yönetimi Nasıl Yapılır?

Birçok hazır kütüphane olsa da, mantığı anlamak adına PHP ile kendi sistemimizi kurabiliriz. Temel mantık şudur: Kullanıcı "Kabul Et" butonuna basana kadar Google Analytics kodunu sayfaya dahil etmemek.

Adım 1: Rıza Banner'ı ve Çerez Oluşturma

Kullanıcıya seçimini soran ve bu seçimi tarayıcıya bir çerez (cookie) olarak kaydeden yapıyı kuralım:

<?php
// Kullanıcı onay butonuna bastığında çalışacak kısım. <html> Etiketi başlamadan önce koyun.
if (isset($_POST['cerez_onay'])) {
    // 30 gün geçerli bir 'rizasiz_asla' çerezi oluşturuyoruz
    setcookie("kullanici_rizasi", "onaylandi", time() + (86400 * 30), "/");
    header("Refresh:0"); 
    exit;
}
?>

<!--Body içerisine konulacak kısım.-->
<?php if (!isset($_COOKIE['kullanici_rizasi'])): ?>
    <div style="position: fixed; bottom: 0; left: 0; width: 100%; background: #2c3e50; color: white; padding: 15px; text-align: center; z-index: 9999;">
        <span>Sitemizdeki deneyiminizi geliştirmek için analiz çerezlerini kullanıyoruz.</span>
        <form method="post" style="display: inline-block; margin-left: 15px;">
            <button type="submit" name="cerez_onay" style="background: #27ae60; color: white; border: none; padding: 8px 15px; cursor: pointer; border-radius: 4px;">Kabul Ediyorum</button>
        </form>
    </div>
<?php endif; ?>

2. Adım: Google Analytics Kodunu Şartlı Ekleme

Şimdi, Google Analytics (gtag.js) kodunu sadece user_consent çerezi mevcutsa sayfaya basalım.

<head>
    <?php if (isset($_COOKIE['user_consent']) && $_COOKIE['user_consent'] === 'accepted'): ?>
        <script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
        <script>
          window.dataLayer = window.dataLayer || [];
          function gtag(){dataLayer.push(arguments);}
          gtag('js', new Date());
          gtag('config', 'G-XXXXXXXXXX');
        </script>
    <?php endif; ?>
</head>

Dikkat Etmeniz Gerekenler

  • Google Consent Mode v2: Google artık daha gelişmiş bir rıza yönetimi (Consent Mode v2) istiyor. Sadece kodu gizlemek yerine, gtag fonksiyonu içinde ad_storage: 'denied' veya 'granted' gibi parametreler göndermek daha profesyonel bir yaklaşımdır.

  • Aydınlatma Metni: "Kabul Et" butonunun yanına mutlaka bir "Gizlilik Politikası" linki ekleyerek hangi verileri topladığınızı açıklayın.

  • JavaScript Alternatifi: PHP ile yapmak güvenlidir ancak sayfa yenilenmeden kodun aktifleşmesi için genellikle JavaScript ve Google Tag Manager kombinasyonu tercih edilir.

Bu yapıyı kurarken Google Analytics ID'nizi (G-XXXXXXXXXX) güncellemeyi unutmayın.



Kodun tam hali aşağıdaki gibidir. 

<?php
// Eğer kullanıcı "Kabul Et" butonuna bastıysa çerez oluştur
if (isset($_POST['accept_cookies'])) {
    setcookie("user_consent", "accepted", time() + (86400 * 30), "/"); // 30 gün geçerli
    header("Refresh:0"); // Sayfayı yenileyerek değişikliği uygula
}
?>
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Kullanıcı Rızası Almak</title>
    <?php if (isset($_COOKIE['user_consent']) && $_COOKIE['user_consent'] === 'accepted'): ?>
        <script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
        <script>
          window.dataLayer = window.dataLayer || [];
          function gtag(){dataLayer.push(arguments);}
          gtag('js', new Date());
          gtag('config', 'G-XXXXXXXXXX');
        </script>
    <?php endif; ?>
</head>
<body>
<?php if (!isset($_COOKIE['user_consent'])): ?>
    <div style="background: #eee; padding: 20px; position: fixed; bottom: 0; width: 100%;">
        <p>Deneyiminizi geliştirmek için çerezleri kullanıyoruz.</p>
        <form method="post">
            <button type="submit" name="accept_cookies">Kabul Ediyorum</button>
        </form>
    </div>
<?php endif; ?>
</body>
</html>

Bu makale size faydalı oldu mu? Lütfen yorumunuzu yazarak kalitenin artmasına yardımcı olun.

Yorumlar

Bu blogdaki popüler yayınlar

Windows, Docker ve VSCode ile Kusursuz PHP Debug Ortamı Kurulumu

Windows üzerinde PHP geliştirirken performans sorunları ve "dosya yolunda çalışmama" gibi hatalardan sıkıldınız mı? Bu rehberde; Apache, MySQL ve Xdebug 3 kullanarak, VSCode ile tam senkronize çalışan, yüksek performanslı bir geliştirme ortamını nasıl kuracağınızı anlatıyorum. ⚠️ Gereksinimler Windows 10/11 (WSL 2 yüklü olması önerilir). Docker Desktop. VSCode. 1. Proje Yapısı Öncelikle projenizin ana dizininde ( C:\Users\user\htdocs_debug ) aşağıdaki klasör ve dosyaları oluşturun: /html (Kodlarınız burada olacak) /mysql_data (Veritabanı verileriniz burada saklanacak) docker-compose.yml Dockerfile 2. Docker Yapılandırması docker-compose.yml dosyanıza aşağıdaki içeriği ekleyin. Bu yapı, Apache'yi 8888 portunda, MySQL'i ise 3312 portunda çalıştıracaktır: YAML version: '3.8' services: web: build: . container_name: phpserver_debug ports: - "8888:80" volumes: - ./html:/var/www/html extra_hosts: -...

1960’lardan Bir "Shimmer" Hikayesi: Annemin Nakışı ve Yapay Zeka Tasarımı

Dijital dünyada her gün binlerce kez karşılaştığımız, "bir şeyler yükleniyor" ya da "yeni bir fikir doğuyor" anlamına gelen o parıltı (shimmer) ikonuyla, 1960’larda el emeğiyle işlenmiş bir kanaviçenin yan yana geleceğini kim düşünebilirdi? Geçtiğimiz günlerde annemin gençlik yıllarında, yaklaşık 60 yıl önce işlediği amatör bir nakış çalışmasına dikkatli bakınca önemli bir şey fark ettim. Üzerinde hepimizin aşina olduğu o kadim soru yazılıydı: "Bugün Allah için ne yaptın?" Ancak asıl şaşırtıcı olan, yazının hemen sağ alt köşesinde parıldayan o küçük yıldız simgesiydi. Tasarımın Zaman Yolculuğu: Nakıştan Piksel Sanatına Nakış, özü itibarıyla aslında tarihin ilk pixel art (piksel sanatı) örneğidir. Her bir iğne darbesi bir piksele tekabül eder. Annem, 1960'ların kısıtlı imkanlarıyla o dönemde belki de sadece estetik bir "boşluk doldurucu" olarak gördüğü o yıldızı oraya işlerken, farkında olmadan 21. yüzyılın en ileri teknoloji diliyle konuşuyo...