Geliştiriciler

Tek satır kod, sıfır bakım.

Ölçüm kodu asenkron yüklenir, sıkıştırılmış ~6 KB'tır ve sayfanızın hiçbir öğesini değiştirmez. Mevcut GA4 kurulumunuzdan siparişi okur; isterseniz sunucudan imzalı webhook gönderirsiniz.

1 · ölçüm kodu<head>
<script async
  src="https://cdn.bannivo.com/bt.js"
  data-site="SITE_ANAHTARINIZ"></script>

<!-- sayfa tipi (isteğe bağlı) -->
<body data-bt-page="home">
2 · banner alanıHTML ya da panelden seçici
<div data-bt-slot="home-hero">
  <a href="/kampanya/kis">
    <img src="/hero-kis.webp" alt="Kış indirimi">
  </a>
</div>
<!-- banner görseli, linki ve adı kendiliğinden okunur -->
3a · sipariş: GA4 dataLayerek kod yok
// sitenizde zaten varsa Bannivo okur
dataLayer.push({
  event: 'purchase',
  ecommerce: {
    transaction_id: '100045',
    value: 1899.90, currency: 'TRY',
    items: [{ item_id: 'P100', quantity: 1 }]
  }
});
3b · sipariş: sunucu webhook'uHMAC-SHA256
BODY='{"order_id":"100045","value":1899.9,
      "visitor_id":"…","items":[…]}'
SIG=$(printf '%s' "$BODY" | openssl dgst -sha256 \
      -hmac "$WEBHOOK_SIRRI" | cut -d' ' -f2)

curl -X POST \
  https://cdn.bannivo.com/v1/webhooks/orders/SITE_ANAHTARINIZ \
  -H "X-BT-Signature: $SIG" -d "$BODY"
Ayrıntılar

Bilmeniz gerekenler

Ne ölçülür

Sayfa görüntüleme, banner keşfi (görsel, link, konum), görünür gösterim, tıklama, sepete ekleme ve sipariş. Tıklamalar sayfa değişmeden sendBeacon ile gönderilir.

Çerez onayı

Google Consent Mode varsa analytics_storage sinyali kendiliğinden izlenir. Kendi onay banner'ınız için data-consent="false" ile yükleyip onayda bt.consent(true) çağırın.

JS API

bt.getVisitorId() webhook'a ziyaretçi kimliği eklemek için, bt.track() elle olay için, bt.refresh() tek sayfa uygulamalarda yeni içerik için.

REST API

Panelin tüm raporları API anahtarıyla JSON olarak alınabilir: genel bakış, bannerlar, alanlar, banner detayı. Büyüme ve üstü paketlerde.

Veri kalitesi

Botlar ve otomatik trafik ayıklanır, veri yalnız izin verdiğiniz alan adlarından kabul edilir, aynı IP'den aşırı istek sınırlanır.

Performans

Kod sayfa açılışını beklemez; gözlem IntersectionObserver ile yapılır, ana iş parçacığını meşgul etmez.