Google Analytics (GA4) Entegrasyonu

Laravel ile Google Analytics (GA4) Entegrasyonu: DB Cache ve Scheduler ile Dashboard Performansı Artırma

Meta Description:

Laravel projelerinde Google Analytics (GA4) verisini güvenli şekilde bağlamak, veriyi veritabanında cache’lemek ve Linux sunucuda scheduler ile otomatik güncellemek için adım adım rehber.

Anahtar Kelimeler:

Laravel Google Analytics, GA4 Laravel entegrasyonu, Laravel scheduler, Laravel analytics dashboard, GA4 API Laravel, Laravel analytics cache

Laravel ile Google Analytics (GA4) Entegrasyonu

Modern web panellerinde kullanıcı davranışlarını analiz etmek için Google Analytics 4 (GA4) verileri oldukça önemlidir. Ancak birçok projede GA verisi doğrudan API üzerinden çekildiği için dashboard performansı düşebilir.

Bu yazıda:

  1. Laravel ile Google Analytics GA4 bağlantısı kurma
  2. API verisini veritabanında cache'leme
  3. Dashboard performansını artırma
  4. Laravel Scheduler ile otomatik veri güncelleme
  5. Linux sunucuda cron kurulumu

adımlarını anlatacağız.

Bu rehberde kullanılan yapı FerhatGolge panel mimarisi üzerinden anlatılmıştır ancak aynı yöntem tüm Laravel projelerinde uygulanabilir.

1. Google Analytics (GA4) Bağlantısını Kurma

GA4 Servis Hesabı Oluşturma

Laravel uygulamasının GA4 API'ye erişebilmesi için bir Service Account oluşturmak gerekir.

Adımlar:

  1. Google Cloud Console açın
  2. IAM & Admin → Service Accounts bölümüne gidin
  3. Yeni servis hesabı oluşturun
  4. JSON Key oluşturup indirin
  5. GA4 panelinde
Admin → Access Management

bölümüne giderek servis hesabını Viewer olarak ekleyin.

2. JSON Anahtarını Laravel Projesine Eklemek

Güvenlik açısından JSON anahtar dosyası public klasörüne koyulmamalıdır.

Önerilen klasör:

storage/app/analytics/ferhatgolge-ga.json

Laravel uygulaması bu dosyayı doğrudan okuyabilir.

3. GA4 Property ID Tanımlama

Google Analytics panelinde bulunan Property ID değeri uygulamanın ayarlar bölümünde saklanmalıdır.

Örnek:

PropertyId = 123456789

Bu değer API sorgularında kullanılacaktır.

4. JSON Path Ayarı

Sistem JSON dosyasının yolunu ayarlar üzerinden okumalıdır.

Örnek ayar:

analytics/ferhatgolge-ga.json

Önemli güvenlik notu:

JSON dosyası public veya uploads klasörü altında olmamalıdır.

5. Bağlantıyı Test Etme

GA4 bağlantısının doğru çalıştığını test etmek için aşağıdaki artisan komutu kullanılabilir.


php artisan ga:fetch-dashboard-stats --days=30

Bu komut GA verisini çekerek sistemin bağlantısını doğrular.

6. GA Verisini DB Cache ile Saklama

Dashboard sayfası her açıldığında API çağrısı yapmak yerine veriyi veritabanında saklamak performansı ciddi şekilde artırır.

Avantajları:

  1. API limitleri azalır
  2. Dashboard daha hızlı açılır
  3. API hataları kullanıcıyı etkilemez

Migration Oluşturma


php artisan make:migration create_ga_dashboard_stats_table

Örnek tablo yapısı:

kolonaçıklama
date_range_daysveri aralığı (7,30 vb.)
summarygenel istatistikler
countriesülke verileri
devicescihaz verileri
pagessayfa performansı
fetched_atveri çekilme zamanı

Model Oluşturma


php artisan make:model GaDashboardStats

Model içinde JSON alanlarını cast etmek gerekir.


protected $casts = [
'summary' => 'array',
'countries' => 'array',
'devices' => 'array',
'pages' => 'array',
'fetched_at' => 'datetime',
];

7. GA Verisini Çeken Artisan Komutu

Laravel'de bir Artisan Command oluşturarak GA verisini çekip DB'ye yazabiliriz.

Komut oluşturma:


php artisan make:command FetchGaDashboardStats

Örnek veri payload:


$payload = [
'summary' => $analyticsService->getAnalyticsSummary($days),
'countries' => $analyticsService->getTopCountries($days, 5),
'devices' => $analyticsService->getTopDevices($days),
'pages' => $analyticsService->getTopPages($days, 5),
'fetched_at' => now(),
];

GaDashboardStats::updateOrCreate(
['date_range_days' => $days],
$payload
);

8. Laravel Scheduler Kurulumu

GA verisinin düzenli güncellenmesi için Laravel Scheduler kullanılabilir.


Schedule::command(FetchGaDashboardStats::class)->hourly();

Bu komut her saat otomatik olarak çalışacaktır.

9. Dashboard Tarafında Veriyi Okuma

Dashboard artık doğrudan API yerine DB cache üzerinden veri okuyacaktır.


$gaStats = GaDashboardStats::where('date_range_days', 30)->first();

$analytics['data'] = $gaStats->summary ?? [];
$analytics['countries'] = $gaStats->countries ?? [];
$analytics['devices'] = $gaStats->devices ?? [];
$analytics['pages'] = $gaStats->pages ?? [];
$analytics['fetched_at'] = optional($gaStats->fetched_at)->format('d.m.Y H:i');

Bu yöntem dashboard performansını ciddi şekilde artırır.

10. Ubuntu / Linux Sunucuda Otomatik Çalıştırma

Deploy Komutları


composer install --no-dev
php artisan migrate --force
php artisan config:cache
php artisan route:cache
php artisan view:cache

Cron Job Tanımlama

Laravel scheduler'ın çalışması için cron eklenmelidir.


* * * * * cd /var/www/ferhatgolge && php artisan schedule:run >> /dev/null 2>&1

Sunucuda eklemek için:


crontab -e

Dosya İzinleri


chown -R www-data:www-data storage bootstrap/cache
chmod -R 775 storage bootstrap/cache

Sorun Giderme

GA verisi boş geliyor

  1. Property ID doğru mu?
  2. Servis hesabı GA4 içinde yetkili mi?

JSON dosyası okunamıyor

  1. Dosya storage içinde mi?
  2. Dosya izinleri doğru mu?

API erişim hatası

Google Cloud içinde Analytics Data API aktif mi?

Zaman farkı problemi

Sunucu saatinin doğru olduğundan emin olun.

Sonuç

Laravel ile Google Analytics verisini doğrudan API'den çekmek yerine DB cache kullanmak, dashboard performansını önemli ölçüde artırır.

Bu mimari sayesinde:

  1. GA API çağrıları azalır
  2. Dashboard daha hızlı yüklenir
  3. Veriler düzenli olarak güncellenir
  4. Sistem daha stabil çalışır


Yorumlar

Log in or sign up to write a comment
Giriş
Sign Up