Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.mmmytics.com/llms.txt

Use this file to discover all available pages before exploring further.

Campaigns — Kampanya Organizasyonu

F4 feature — verilerinizi kampanyalara etiketleyebilirsiniz, kampanya bazlı analiz yapabilirsiniz.

Use Case

  • “Q1 lansman kampanyamızın ROI’si ne?”
  • “Black Friday vs. Yılbaşı kampanyaları karşılaştırma”
  • “Yeni ürün launch’umuz core business’a kaniballeşme yapıyor mu?”

Yapı

Brand
└── Kampanyalar (CRUD)
    ├── "Q1 2025 Lansman" (ID: abc-123)
    │   └── İlişkili veriler: 13 hafta CSV upload
    ├── "Yılbaşı 2024" (ID: def-456)
    │   └── İlişkili veriler: 4 hafta CSV upload
    └── "Sürekli Brand" (ID: ghi-789)
        └── İlişkili veriler: 52 hafta CSV upload (untagged baseline)

L1 Data Hub — Kampanyalar Sekmesi

/dashboard/data“Kampanyalar” sekmesi (4. tab).

CRUD Operasyonları

Create

”+ Yeni Kampanya” butonu:
  • İsim: “Q1 2025 EV Lansmanı”
  • Period: 2025-01-15 → 2025-04-15
  • Açıklama (opsiyonel)
  • Channels (opsiyonel — varsayılan tüm kanallar)

Read

BentoCard list — her kampanya bir card:
  • İsim + period + status badge (active/archived)
  • İlişkili dataset sayısı
  • Hızlı eylemler (edit/archive/delete)

Update

Edit dialog — isim, period, açıklama değiştirilebilir. İlişkili veri bağlantısı korunur.

Archive / Delete

Archive: kampanya gizlenir ama veriler korunur. Delete: D1-fu5 pattern (typed confirmation + 8-char code).

Upload Etiketleme

Yeni CSV upload sırasında dropdown:
Step 2 — Kampanya (Opsiyonel)
[ Kampanya seç... ▼ ]
  - Q1 2025 EV Lansmanı
  - Yılbaşı 2024
  - Sürekli Brand
  - + Yeni Kampanya Oluştur
URL parametresi ile de etiketlenebilir:
https://mmmytics.com/dashboard/data?campaign_id=<uuid>

L3 Engine — Campaign Filter

L3 Engine’da blueprint çalıştırılırken kampanya filter:
"Run Model" panel:
├── Blueprint: v3 — added Affiliate
├── Campaign filter: [Tümü ▼]
│                       ├─ Tümü (52 hafta)
│                       ├─ Q1 2025 EV Lansmanı (13 hafta)
│                       ├─ Yılbaşı 2024 (4 hafta)
│                       └─ Sürekli Brand (52 hafta)
└── [Run Model]
Kampanya filter sadece 2+ kampanya varsa görünür. Tek kampanya/etiketsiz veride filter UI gizlidir.

Hangi Filter Ne Yapar?

  • Tümü → tüm veri (default, normal MMM run)
  • Tek kampanya → sadece o kampanyaya ait veriler model’e dahil
  • Multi-select (gelecekte) → 2+ kampanya birleştirme — Faz E5+

Backend Implementation

ETL pipeline:
  CSV upload → ?campaign_id=<uuid> → weekly_data_points.campaign_id UPSERT
  
  RLS app-level: assert_brand_access(brand_id) — campaigns brand-scoped
  
  Engine query:
    SELECT * FROM weekly_data_points
    WHERE brand_id = $1
      AND ($2::uuid IS NULL OR campaign_id = $2)
Out of scope: Engine content-level kampanya filter (örn: backend MMM run sırasında dataset filter) F4 close’da implement edilmedi. Sonraki sprint adayı.

Kampanya Sürecinin Teknik Detayı

AşamaYapılan
Pre-launchKampanya kayıt + period + planlanan channels
LaunchVeri upload başlar (haftalık), campaign_id etiketli
Mid-campaignDQS check ara dönemde + L3 mini-run mümkün
Post-launchTüm veri toplanmış, full L3 run + L4 ROI per kampanya
ComparisonL5 Compare view ile kampanya 1 vs. kampanya 2

Kampanya Reporting

L7 Reports’ta kampanya özet:
  • Kampanya KPI delta (vs. baseline period)
  • Kampanya ROI (kampanya spend / kampanya gelir)
  • Cross-channel decomposition
  • Kaniballeşme analizi (kampanya organic baseline’ı arttırdı mı?)

Sınırlamalar

Mevcut sınırlar:
  • Bir CSV upload tek kampanyaya etiketlenir (multi-tag yok)
  • Kampanyalar archive’lendikten sonra restore butonu yok (manuel: data var, sadece UI’da görünmez)
  • Compare view ileride eklenecek (Faz E5+)

Sonraki Adım

Kampanyalarınızı oluşturduysunuz, L3 Engine’da kampanya bazlı run yapın: L3 Engine Campaign Filter →