Dokumentacja Pandus SDK
JavaScript API
Kolejka poleceń pandus(): własne zdarzenia, e-commerce GA4, zahaszowany identyfikator użytkownika, właściwości użytkownika i zgoda, z zasadami nazw i limitami.
Zaktualizowano:
Wszystkie wywołania przechodzą przez jedną funkcję, pandus(). Dodaj tę linię przed pierwszym wywołaniem, aby wywołania sprzed załadowania skryptu czekały w kolejce:
window.pandus = window.pandus || function () { (pandus.q = pandus.q || []).push(arguments); };
Poza consent żadne wywołanie nic nie robi, dopóki odwiedzający nie zgodzi się na analitykę.
Własne zdarzenia
pandus('event', 'signup', { plan: 'pro' });
pandus('event', 'newsletter_subscribe', { place: 'footer' });
- Nazwa:
snake_case, zaczyna się od litery, do 40 znaków (a-z,0-9,_). - Parametry: do 25; nazwy do 40 znaków; wartości to liczby,
true/falselub tekst do 300 znaków. - Tekst przypominający e-mail, telefon lub numer karty jest odrzucany w przeglądarce i ponownie na naszym serwerze. Nigdy nie umieszczaj danych osobowych w zdarzeniach.
- Nazwy, które SDK wysyła samo, np.
page_viewczypurchase, są w katalogu zdarzeń.
E-commerce
pandus('ecommerce', 'purchase', {
transaction_id: 'A-1042',
value: 89.9,
currency: 'EUR',
items: [{ item_id: 'kettle-1', item_name: 'Kettle', price: 89.9, quantity: 1 }],
});
ecommerce przyjmuje zdarzenia zalecane przez GA4; value i currency trafiają do własnych kolumn, żeby przychód się sumował. items zawiera do 50 produktów. Wszystkie zdarzenia i parametry są w sekcji E-commerce.
Identyfikator użytkownika
pandus('identify', 'customer-48151');
Identyfikator łączy wizyty jednego zalogowanego klienta na różnych urządzeniach. SDK haszuje go SHA-256 w przeglądarce, zanim opuści stronę; jeśli przekażesz już hasz SHA-256, zostanie użyty bez zmian. Adresy e-mail i wartości wyglądające na osobowe są odrzucane. Tylko za zgodą.
Właściwości użytkownika
pandus('set', 'user_properties', { tier: 'gold', plan: 'b2b' });
Do 10 właściwości na odwiedzającego, nazwy do 24 znaków, wartości tekstowe do 36 znaków. Opisują grupę, nigdy osobę: bez imion, e-maili i identyfikatorów.
Zgoda
pandus('consent', { analytics: true, recordings: false }); // wybór odwiedzającego
pandus('consent', 'open'); // otwórz baner Pandus
Kiedy tego używać, opisuje sekcja Zgoda.
Zdarzenia z Twojego serwera
Zamówienia i zwroty z backendu idą przez endpoint zdarzeń serwerowych, aby bloker w przeglądarce ich nie zgubił.
Pakiet npm
@pandus/sdk udostępnia te same polecenia jako typowane funkcje. Kod jest na licencji MIT na GitHubie; pakiet jest w npm.
| Funkcja | Co robi |
|---|---|
init({ site, host?, nonce?, debug? }) |
Dodaje loader raz; false na serwerze, przy złym tokenie lub gdy jest już na stronie |
consent({ analytics, recordings? }) |
Przekazuje wybór odwiedzającego z Twojego banera |
openConsent() |
Ponownie otwiera baner zgody Pandus |
track(name, params?) |
Własne zdarzenie |
ecommerce(name, params?) |
Zdarzenie e-commerce lub leada GA4 |
identify(userId) |
Twój identyfikator użytkownika, haszowany w przeglądarce |
setUserProperties(props) |
Do 10 właściwości użytkownika |
debug(on = true) |
Tryb debugowania dla tej karty |
isLoaded() |
Czy loader działa |
pandus(...args) |
Dowolne surowe polecenie SDK |
import { init, track, ecommerce } from '@pandus/sdk';
init({ site: 'YOUR_SITE_TOKEN' });
track('signup', { plan: 'pro' });
React i Next.js
// app/providers.tsx
'use client';
import { PandusProvider } from '@pandus/sdk/react';
export function Providers({ children }: { children: React.ReactNode }) {
return <PandusProvider site="YOUR_SITE_TOKEN">{children}</PandusProvider>;
}
import { usePandus } from '@pandus/sdk/react';
export function SignupButton() {
const { track } = usePandus();
return <button onClick={() => track('signup', { plan: 'pro' })}>Sign up</button>;
}
Vue i Nuxt
// main.ts (Vue) or plugins/pandus.client.ts (Nuxt)
import { PandusPlugin } from '@pandus/sdk/vue';
app.use(PandusPlugin, { site: 'YOUR_SITE_TOKEN' });
import { usePandus } from '@pandus/sdk/vue';
const { track } = usePandus();
track('signup', { plan: 'pro' });
Content Security Policy
Przy Content Security Policy z nonce przekaż go przez init({ site, nonce }); loader sam dodaje wtedy moduły, na co pozwala 'strict-dynamic'. W przeciwnym razie zezwól na:
script-src https://pandus.online
connect-src https://pandus.online https://e.pandus.online
Pandus SDK i skaner to kontrole automatyczne, nie pełny audyt i nie porada prawna. SDK niczego nie zmienia na stronie i nie ustala, którzy odwiedzający korzystają z technologii asystujących.