Salt la conținut
Pandus
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/false sau 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_view sau purchase, 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.