Kendi sitenizdeki davranışı izleyin.
Herhangi bir pazarlama veya e-ticaret sitesine bir adet birinci taraf işaretçisi bırakın ve sayfa görüntülemeleri, e-posta, sadakat portalı ve uygulamanızla aynı üye davranış zaman çizelgesine akar. Anahtar yok, bağımlılık yok — halka açık bir uç noktaya gönderilen birkaç satır saf JS kodu. Flash cihaz, coğrafi konum ve bot algılamayı sunucu tarafında ayrıştırır.
Tek bir barındırılan satır veya bağımsız bir kod parçası
Barındırılan izleyiciyi tek bir komut dosyası etiketiyle ekleyin veya harici bir bağımlılık istemiyorsanız kendi kendine yeten kod parçasını yapıştırın; her iki durumda da tanımlayıcılar oluşturulur, gizlilik sinyallerine saygı gösterilir ve POSTBir uç noktaya yapılan sayfa görüntülemesi:
İstemci bitlerini gönderirsiniz
URL, başlık, yönlendiren, kimlikler, ekran, dil, saat dilimi, UTM — hepsi bu.
Flash sunucu tarafını zenginleştirir
Cihaz, işletim sistemi ve tarayıcı Kullanıcı Aracısından ayrıştırılır; IP'den ülke; botlar algılanır ve işaretlenir. Bunlar için müşteriye asla güvenmek gerekmez.
Her zaman 204 döndürür
Bot, GPC, hatalı biçimlendirilmiş veya kabul edilmiş - uç nokta sessizce yanıt verir. İzleme asla sayfanıza bir hata göndermez.
Kendi alan adınızda, davranış anonimdir. Sitenizde Flash oturum çerezi bulunmadığından, sayfa görüntülemeleri bilinen bir üyeye değil, sizin oluşturduğunuz anonymous_id'a bağlıdır. Üye ataması, oturumun üyeyi çözdüğü Flash'ye ait yüzeylerde (sadakat portalı ve uygulama içi üye merkezi) gerçekleşir. Ziyaretçinin site içi davranışının en azından kendi oturumları arasında birleştirilmesi için tutarlı bir anonymous_id kullanın.
İki giriş yolu. YOUR_TEAM_ID'ı ayarlayın ve yayındasınız.
Seçenek A · Barındırılan — tek satır
</body>'dan önce bir komut dosyası etiketi bırakın. Tek sayfalık uygulama rota değişikliklerini otomatik olarak izler ve window.flashTrack()'i ortaya çıkarır; bağlanacak başka hiçbir şey yoktur.
<!-- SocialHub web tracking — one line, before </body> -->
<script src="https://flash.socialhub.ai/sdk/flash-tracker.js"
data-team-id="YOUR_TEAM_ID" defer></script>Seçenek B · Satır içi — harici komut dosyası yok
Sıfır harici istek mi istiyorsunuz (katı CSP veya kendi paketinizin içindeki kod)? Bunun yerine bu bağımsız pasajı yapıştırın. window.shTrack()'ı ortaya çıkarır - tek sayfalı bir uygulamadaki her rota değişikliğinden sonra onu çağırın:
<!-- SocialHub web tracking — paste before </body> on every page -->
<script>
(function () {
var TEAM_ID = "YOUR_TEAM_ID"; // Settings → API
var ENDPOINT = "https://flash.socialhub.ai/api/v1/tracking/pageview";
// Honor Global Privacy Control / Do Not Track — no signal sent.
if (navigator.globalPrivacyControl === true || navigator.doNotTrack === "1") return;
function uid() {
return (window.crypto && crypto.randomUUID)
? crypto.randomUUID()
: (Date.now() + "-" + Math.random().toString(16).slice(2));
}
function persist(store, key) {
try { var v = store.getItem(key); if (!v) { v = uid(); store.setItem(key, v); } return v; }
catch (e) { return uid(); }
}
function utm() {
var p = new URLSearchParams(location.search), o = {};
["source", "medium", "campaign", "term", "content"].forEach(function (n) {
var val = p.get("utm_" + n); if (val) o[n] = val;
});
return Object.keys(o).length ? o : undefined;
}
function track() {
var body = JSON.stringify({
v: 1,
page_url: location.href,
page_title: document.title,
referrer: document.referrer || undefined,
anonymous_id: persist(localStorage, "sh_anon"), // stable per browser
session_id: persist(sessionStorage, "sh_session"), // resets per tab session
team_id: TEAM_ID,
utm: utm(),
screen: screen.width + "x" + screen.height,
language: navigator.language,
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
timestamp: Date.now()
});
try {
if (navigator.sendBeacon) navigator.sendBeacon(ENDPOINT, body);
else fetch(ENDPOINT, { method: "POST", body: body, keepalive: true }).catch(function () {});
} catch (e) { /* never break the page */ }
}
window.shTrack = track; // for SPAs: call window.shTrack() after each route change
track(); // initial page view
})();
</script>// Single-page apps: after each client-side route change
router.afterEach(function () { window.shTrack && window.shTrack(); });İşaret gövdesi
application/json gönderin (veya sendBeacon aracılığıyla düz bir string). 4 KB'den büyük veya doğrulama başarısız olan her şey sessizce atılır.
| Alan | Tür | Notlar |
|---|---|---|
v | number | Şema sürümü. Her zaman 1. |
page_url | string | Sayfanın tam URL'si (≤ 2048). Gerekli. |
page_title | string? | Belge başlığı (≤ 500). |
referrer | string? | belge.yönlendiren (≤ 2048). |
anonymous_id | string | Oluşturduğunuz tarayıcı başına sabit kimlik (≤ 36). Gerekli. |
session_id | string | Oturum başına oluşturduğunuz kimlik (≤ 36). Gerekli. |
team_id | string | SocialHub ekip kimliğiniz (≤ 36) — markayı tanımlar. Gerekli. |
utm | object? | { kaynak, ortam, kampanya, terim, içerik } string sorgusundan ayrıştırıldı. |
screen | string? | "1920x1080". |
language | string? | gezgin.dil. |
timezone | string? | IANA tz, örneğin America/Los_Angeles. |
timestamp | number | İstemci dönemi ms. Gerekli. |
Sahte trafiğe karşı dayanıklı olacak şekilde tasarlandı
team_id'ınız sayfa kaynağınızda yer alır; herhangi bir analiz kimliği gibi herkese açıktır. Bu nedenle uç nokta, sunucu tarafında sessizce kendini savunur (her zaman 204'e yanıt verir, bu nedenle bir saldırganın yoklayabileceği bir geri bildirim olmaz):
Temel oran sınırlaması · her zaman açık
Her ekip varsayılan olarak, herhangi bir kurulum gerektirmeden korunur: uç nokta, bir kaynağın gönderebileceği işaretçi sayısını sınırlar, böylece kazınmış bir team_id, analizlerinizi boğamaz veya zehirleyemez. Arıza durumunda bile açık kalır — geçici bir kesinti gerçek trafiğinizi asla düşürmez.
Menşe izin listesi · isteğe bağlı
Ayarlar → İzleme Koruması bölümünde, kabul edilen işaretçileri kendi alan adlarınızla sınırlandırabilir ve uygulamadan önce false pozitiflerini kontrol etmek için bir İzleme önizlemesi yapabilirsiniz. Bu, tarayıcınızda SDK kullanan diğer siteleri engeller.
Sınırlar konusunda dürüst
Oran sınırlaması ve izin verilenler listesi çıtayı yükseltir ve hasarı sınırlar, ancak hiçbir anahtarsız istemci, kararlı bir komut dosyasının istekleri taklit etmesini tamamen durduramaz. Yüksek hassasiyetli veri alımı için, kimlik doğrulaması yapılmış API üzerinden sunucudan sunucuya gönderim yapın.
Aşağı akışta temiz rakamlar
Kötüye kullanım önleme, herhangi bir şey depolanmadan önce çalışır, bu nedenle filtrelenmiş trafik asla üye zaman çizelgenize, segmentlerinize veya gösterge panellerinize ulaşmaz ve İzleme Koruması sayfası ne kadarının dışarıda tutulduğunu gösterir.
Ziyaretçiye yapı gereği saygı gösterin
GPC ve İzlemeyi Engelle
Bu kod parçası navigator.globalPrivacyControl ve navigator.doNotTrack'i kontrol eder ve bunlardan biri ayarlanmışsa hiçbir şey göndermez. Bu önlemi koruyun.
Ham kişisel bilgi yok
Yalnızca tanımlayıcıları ve sayfa içeriğini gönderin; işaretçide hiçbir zaman ad, e-posta veya form içeriği göndermeyin. Üye kimliği sitenizde değil Flash yüzeylerinde çözümlenir.
Önce onay banner'ınız
Siteniz bir izin yöneticisi kullanıyorsa, pasajı rızanın arkasına geçirin; izleyiciyi yalnızca ziyaretçi analitiği kabul ettikten sonra arayın.
Bot filtreli
Sunucu tarafı bot tespiti, insan dışı trafiği işaretler, böylece üye zaman çizelgenizi veya istatistiklerinizi kirletmez.
Yolculuğun geri kalanını yakalayın
Web, dört yüzeyden biridir. E-posta, sadakat portalı ve uygulamanızın aynı üye zaman çizelgesini nasıl beslediğini görün.