# DW Ads Reporter — Faz 3

Bu paket Faz 1 + Faz 2 üzerine uygulanacak snapshot/veri toplama altyapısıdır.

## Eklenenler

- Google Ads snapshot tabloları
  - Kampanya
  - Anahtar kelime
  - Arama terimi
- Meta Ads snapshot tabloları
  - Kampanya
  - Reklam seti
  - Reklam
- Search Console snapshot tabloları
  - Sorgular
  - Sayfalar
- GA4 snapshot tablosu
  - Kanal bazlı trafik
- Platform bazlı sync servisleri
- Queue job: `SyncPlatformConnectionJob`
- Artisan command: `dw:sync-platform`
- Admin menüsünde Veri Senkronizasyonu ekranı
- Admin menüsünde Performans ekranı
- Bağlantı detayına manuel “Snapshot Çek” formu

## Kurulum

Faz 1 ve Faz 2 uygulanmış Vora Laravel `package` klasörünün üzerine kopyalayın.

```bash
composer dump-autoload
php artisan optimize:clear
php artisan migrate
```

Queue kullanacaksanız:

```bash
php artisan queue:work
```

## Manuel sync komutları

Tek bağlantı:

```bash
php artisan dw:sync-platform 1 --from=2026-05-18 --to=2026-05-18
```

Tüm aktif/draft/error bağlantılar:

```bash
php artisan dw:sync-platform --from=2026-05-18 --to=2026-05-18
```

Sadece Meta:

```bash
php artisan dw:sync-platform --platform=meta_ads --from=2026-05-18 --to=2026-05-18
```

Queue ile:

```bash
php artisan dw:sync-platform --queue --from=2026-05-18 --to=2026-05-18
```

## Cron

`app/Console/Kernel.php` içine günlük otomatik snapshot schedule eklendi:

```php
$schedule->command('dw:sync-platform --queue')->dailyAt('03:15')->withoutOverlapping();
```

Sunucuda cron örneği:

```bash
* * * * * cd /path/to/project && php artisan schedule:run >> /dev/null 2>&1
```

## Notlar

- Google Ads için `customer_id`, `developer_token`, OAuth refresh token gerekir.
- Meta için `access_token` ve reklam hesabı ID gerekir.
- Search Console için `site_url` ve OAuth refresh token gerekir.
- GA4 için `property_id` ve OAuth refresh token gerekir.
- Bu faz rapor üretmez; raporların besleneceği gerçek veri tabanını oluşturur.
