Documentația Pandus SDK
API JavaScript
Coada de comenzi pandus(): evenimente proprii, e-commerce GA4, un ID de utilizator hashat, proprietăți de utilizator și consimțământ, cu reguli pentru nume și limite.
Actualizat:
Toate apelurile trec printr-o singură funcție, pandus(). Adaugă această linie înainte de primul apel, ca apelurile făcute înainte de încărcarea scriptului să aștepte într-o coadă:
window.pandus = window.pandus || function () { (pandus.q = pandus.q || []).push(arguments); };
În afară de consent, niciun apel nu face nimic până când vizitatorul nu acceptă analiza.
Evenimente proprii
pandus('event', 'signup', { plan: 'pro' });
pandus('event', 'newsletter_subscribe', { place: 'footer' });
- Nume:
snake_case, începe cu o literă, până la 40 de caractere (a-z,0-9,_). - Parametri: până la 25; nume de până la 40 de caractere; valorile sunt numere,
true/falsesau text de până la 300 de caractere. - Textul care arată ca un e-mail, un telefon sau un număr de card este eliminat în browser și din nou pe serverul nostru. Nu pune niciodată date personale în evenimente.
- Numele pe care SDK-ul le trimite singur, precum
page_viewsaupurchase, sunt în referința evenimentelor.
E-commerce
pandus('ecommerce', 'purchase', {
transaction_id: 'A-1042',
value: 449,
currency: 'RON',
items: [{ item_id: 'kettle-1', item_name: 'Fierbător', price: 449, quantity: 1 }],
});
ecommerce acceptă evenimentele recomandate GA4; value și currency merg în coloane proprii, ca veniturile să se adune corect. items conține până la 50 de produse. Toate evenimentele și parametrii sunt la E-commerce.
Un ID de utilizator
pandus('identify', 'customer-48151');
ID-ul leagă vizitele unui client autentificat pe mai multe dispozitive. SDK-ul îl hashuiește cu SHA-256 în browser înainte să plece din pagină; dacă transmiți deja un hash SHA-256, este folosit ca atare. Adresele de e-mail și valorile care par personale sunt refuzate. Doar cu consimțământ.
Proprietăți de utilizator
pandus('set', 'user_properties', { tier: 'gold', plan: 'b2b' });
Până la 10 proprietăți per vizitator, nume de până la 24 de caractere, valori text de până la 36 de caractere. Descriu un grup, niciodată o persoană: fără nume, e-mailuri sau ID-uri.
Consimțământ
pandus('consent', { analytics: true, recordings: false }); // alegerea vizitatorului
pandus('consent', 'open'); // deschide bannerul Pandus
Când să-l folosești, vezi Consimțământ.
Evenimente de pe serverul tău
Comenzile și rambursările din backend trec prin endpointul de evenimente de server, ca un blocator din browser să nu le piardă.
Pachetul npm
@pandus/sdk oferă aceleași comenzi ca funcții tipizate. Codul este MIT pe GitHub; pachetul este pe npm.
| Funcție | Ce face |
|---|---|
init({ site, host?, nonce?, debug? }) |
Adaugă încărcătorul o dată; false pe server, pentru un token greșit sau dacă este deja pe pagină |
consent({ analytics, recordings? }) |
Transmite alegerea vizitatorului din bannerul tău |
openConsent() |
Redeschide bannerul de consimțământ Pandus |
track(name, params?) |
Un eveniment propriu |
ecommerce(name, params?) |
Un eveniment GA4 de e-commerce sau lead |
identify(userId) |
ID-ul tău de utilizator, hashat în browser |
setUserProperties(props) |
Până la 10 proprietăți de utilizator |
debug(on = true) |
Modul de depanare pentru această filă |
isLoaded() |
Dacă încărcătorul rulează |
pandus(...args) |
Orice comandă SDK brută |
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
Cu o Content Security Policy bazată pe nonce, transmite nonce-ul prin init({ site, nonce }); încărcătorul își adaugă apoi singur modulele, ceea ce 'strict-dynamic' permite. Altfel permite:
script-src https://pandus.online
connect-src https://pandus.online https://e.pandus.online
Pandus SDK și scanerul sunt verificări automate, nu un audit complet și nici consultanță juridică. SDK-ul nu schimbă nimic pe site și nu stabilește care vizitatori folosesc tehnologii asistive.