Vos actions.
Votre activité.
Un export terminé, un niveau gagné, un formulaire envoyé. Choisissez ce que votre projet raconte.
Créer une source
Dans votre espace, associez une source à votre projet. Le serveur utilise une clé privée ; le site web utilise un identifiant public et une origine autorisée.
Connecter une sourceEnvoyer votre premier test
Choisissez votre environnement. Installez le SDK JavaScript depuis npm : ses types TypeScript sont inclus, sans dépendance supplémentaire.
npm install @makerping/sdk-javascript@betaPremier test serveurimport {createMakerPing} from '@makerping/sdk-javascript'; const ping = createMakerPing({ token: process.env.MAKERPING_INGEST_TOKEN, environment: 'sandbox', }); const receipt = await ping.track( 'integration_checked', {runtime: 'node'} ); if (!receipt.accepted) { console.warn(receipt.reason); }Node.js 22.12 ou plus récent. Gardez votre clé dans les secrets du serveur. Ce test vérifie la connexion ; le SDK ne lit aucune donnée de votre compte.
app/api/makerping-test/route.tsimport 'server-only'; import {createMakerPing} from '@makerping/sdk-javascript'; export const runtime = 'nodejs'; export async function POST() { if (process.env.NODE_ENV === 'production') { return new Response(null, {status: 404}); } const token = process.env.MAKERPING_INGEST_TOKEN; if (!token) return Response.json({ error: 'Configurez MAKERPING_INGEST_TOKEN.', }, {status: 503}); const ping = createMakerPing({ token, environment: 'sandbox', }); const receipt = await ping.track( 'integration_checked', {runtime: 'nextjs'} ); return Response.json(receipt, { status: receipt.accepted ? 200 : 502, }); }Ajoutez la clé dans
.env.local, puis faites un POST à/api/makerping-testdepuis votre app locale. Cette route de test retourne 404 en production. La clé reste côté serveur.Test planifié avec Wranglerimport {createMakerPing} from '@makerping/sdk-javascript'; export default { async scheduled(_controller, env) { const ping = createMakerPing({ token: env.MAKERPING_INGEST_TOKEN, environment: 'sandbox', }); const receipt = await ping.track( 'integration_checked', {runtime: 'cloudflare'} ); if (!receipt.accepted) throw new Error(receipt.reason); }, };Ajoutez
global_fetch_strictly_publicdans les flags Wrangler et votre clé dans.dev.vars. Lancezwrangler dev --test-scheduled, puiscurl http://localhost:8787/__scheduled. Pour une livraison durable, utilisez votre file ou outbox.Identifiant public uniquementimport {createMakerPing} from '@makerping/sdk-javascript/browser'; const ping = createMakerPing({ collector: 'VOTRE_IDENTIFIANT_PUBLIC', environment: 'sandbox', }); // Après le consentement effectif, si requis : ping.consent(true); await ping.track('export_completed', {format: 'pdf'});Sans bundler, utilisez le script proposé dans votre source. Aucun cookie, stockage ou identifiant de visiteur ajouté. DNT, GPC et retrait du consentement empêchent les envois.
Corps JSON de l’événement{ "version": 1, "id": "ID_OPAQUE_DE_CETTE_ACTION", "name": "export_completed", "occurred_at": "DATE_ISO_8601_DE_L_ACTION", "environment": "sandbox", "properties": {"format": "pdf"} }Faites un POST JSON à l’URL de votre source. Serveurs et webhooks ajoutent
Authorization: Bearer VOTRE_CLE. Les apps utilisent l’accès public d’une source App. Votre outil doit émettre ce format ou transformer ses données.Vérifier, puis choisir le suivi
Le journal confirme l’envoi depuis votre source et montre ses propriétés. Donnez un libellé à l’événement, activez sa place dans le fil ou une alerte, puis passez en
Ouvrir le journal de réception ↗production. Le fil se met à jour automatiquement quand il est ouvert.
Un événement, même en cas de renvoi
Chaque occurrence a un ID unique. Les nouvelles tentatives réutilisent l’événement complet : même ID, date et propriétés. Un conflit 409 signale un contenu différent pour un ID déjà reçu.
Pour reprendre après une panne, persistez l’événement avec votre action métier dans une outbox, puis envoyez-le avec ping.send(event). Le SDK borne les attentes et les tentatives ; sa file en mémoire n’est pas persistante. Gardez la livraison hors du chemin critique d’un paiement ou d’une inscription.