Referral Tracking
Points de terminaison de l'API
Points de terminaison de suivi des parrainages côté serveur
Points de terminaison de l'API de parrainage
Si vous préférez le suivi des parrainages côté serveur (ou en avez besoin pour des intégrations backend uniquement), vous pouvez appeler ces points de terminaison directement au lieu d'utiliser le script de suivi JavaScript.
Tous les points de terminaison de parrainage prennent en charge CORS et ne nécessitent pas d'authentification par clé API.
Campagnes de parrainage vs campagnes d'affiliation : Les campagnes de parrainage attribuent des points lors des inscriptions et des achats. Les campagnes d'affiliation attribuent une commission en dollars sur les achats référés en utilisant une structure de paiement exclusive — soit un pourcentage de la vente, soit un tarif fixe par vente (pas les deux). Le suivi des inscriptions ne paie pas de commission sur les campagnes d'affiliation (uniquement sur les achats). Les réponses aux achats incluent pointsAwarded pour le mode parrainage et commissionAwarded pour le mode affiliation.
Valider un code de parrainage
/api/referral/validate-codeVérifiez si un code de parrainage est valide et récupérez des informations sur le parrain.
Paramètres de requête
codestring required Le code de parrainage à valider
contestIdstring required L'identifiant du concours
Requête
curl -X GET "https://blitzrocket.com/api/referral/validate-code?code=REF-XYZ789&contestId=clx1abc123"
Réponse
{
"valid": true,
"referrerEmail": "jane@example.com",
"referrerName": "Jane Doe",
"contestId": "clx1abc123"
}
Suivre une visite
/api/referral/track-visitEnregistrez qu'une personne a visité votre site via un lien de parrainage.
Corps de la requête
referralCodestring required Le code de parrainage provenant de l'URL
contestIdstring required L'identifiant du concours
urlstringL'URL de la page visitée (optionnel)
Requête
curl -X POST https://blitzrocket.com/api/referral/track-visit \
-H "Content-Type: application/json" \
-d '{
"referralCode": "REF-XYZ789",
"contestId": "clx1abc123",
"url": "https://yoursite.com/landing-page"
}'
Réponse
{
"success": true
}
Suivre une inscription
/api/referral/track-signupEnregistrez qu'un visiteur parrainé s'est inscrit.
Corps de la requête
emailstring required Adresse e-mail du nouvel inscrit
contestIdstring required L'identifiant du concours
referralCodestringLe code de parrainage de la personne qui l'a parrainé (optionnel pour les inscriptions directes)
externalSiteUrlstring required URL de la page où l'inscription a eu lieu
namestringNom du nouvel inscrit (optionnel)
Requête
curl -X POST https://blitzrocket.com/api/referral/track-signup \
-H "Content-Type: application/json" \
-d '{
"email": "newuser@example.com",
"campaignId": "clx1abc123",
"referralCode": "REF-XYZ789",
"externalSiteUrl": "https://yoursite.com/signup"
}'
Réponse
{
"success": true,
"data": {
"entryId": "entry_new789",
"isReferred": true,
"pointsAwarded": {
"advocate": 10,
"friend": 5
}
}
}
Suivre un achat
/api/referral/track-purchaseEnregistrer qu’un utilisateur référé a effectué un achat. Utilisé par RocketTracker.trackPurchase() dans blitzrocket.js.
Corps de la requête
campaignIdstring required L’identifiant du concours (identique à contestId)
referralCodestring required Le code de parrainage de l’ambassadeur
orderIdstring required Identifiant unique de la commande
amountnumber required Montant de l’achat
externalSiteUrlstring required URL de la page où l’achat a eu lieu
emailstringAdresse email de l’acheteur (optionnel)
phonestringTéléphone de l’acheteur (optionnel)
currencystringCode de la devise (par défaut : 'USD')
Requête
curl -X POST https://blitzrocket.com/api/referral/track-purchase \
-H "Content-Type: application/json" \
-d '{
"campaignId": "clx1abc123",
"referralCode": "REF-XYZ789",
"orderId": "order-12345",
"amount": 99.99,
"currency": "USD",
"externalSiteUrl": "https://yoursite.com/checkout/success",
"email": "buyer@example.com"
}'
Réponse
Campagne de parrainage (points) :
{
"success": true,
"message": "Achat enregistré avec succès",
"referrerEntryId": "entry_abc123",
"pointsAwarded": { "advocate": 50, "friend": 10 },
"commissionAwarded": { "advocate": 0 }
}
Campagne d’affiliation (commission en dollars) :
{
"success": true,
"message": "Achat enregistré avec succès",
"referrerEntryId": "entry_abc123",
"pointsAwarded": { "advocate": 0, "friend": 0 },
"commissionAwarded": { "advocate": 24.99 }
}
Pour le suivi d’achat uniquement par email (sans code de parrainage dans la requête), utilisez plutôt POST /api/contest/track-purchase.
Exemple complet côté serveur
Voici un exemple complet d'implémentation du suivi des parrainages sur votre serveur :
const express = require("express");
const app = express();
const BLITZROCKET_BASE = "https://blitzrocket.com/api/referral";
const CONTEST_ID = process.env.CONTEST_ID;
app.post("/api/signup", async (req, res) => {
const { email, name, referralCode } = req.body;
// 1. Créer un utilisateur dans votre système
const user = await createUser({ email, name });
// 2. Suivre l'inscription parrainée dans Blitz Rocket
if (referralCode) {
await fetch(`${BLITZROCKET_BASE}/track-signup`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
email,
name,
contestId: CONTEST_ID,
referralCode,
}),
});
}
res.json({ success: true, user });
});
app.post("/api/purchase", async (req, res) => {
const { email, orderId, amount, currency } = req.body;
// 1. Traiter l'achat dans votre système
const order = await processOrder({ email, orderId, amount });
// 2. Suivre l'achat dans Blitz Rocket
await fetch(`${BLITZROCKET_BASE}/track-purchase`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
email,
contestId: CONTEST_ID,
orderId,
amount,
currency,
}),
});
res.json({ success: true, order });
});