Documentation Index
Fetch the complete documentation index at: https://docs.topsort.com/llms.txt
Use this file to discover all available pages before exploring further.
Cet exemple démontre un flux complet utilisant les API de Topsort pour une campagne de produits sponsorisés avec ciblage de catégorie. Remplacez les clés API et les ID par vos identifiants et valeurs réels.
Étapes :
Synchroniser le catalogue
Synchronisez votre catalogue de produits avec Topsort
Créer une campagne
Configurez une campagne de produits sponsorisés
Envoyer des requêtes d'enchères
Demandez les gagnants d’enchères
Suivre les événements
Signalez les impressions, les clics et les achats
Obtenir le rapport
Récupérez les données de performance de la campagne
- Pour gérer les produits, les campagnes et les rapports, utilisez une clé API Advanced
(TSC_…). - Pour les enchères et les événements, utilisez une clé API Marketplace (TSE_…).
1. Synchroniser le catalogue
Un exemple de produit example-product-coca-cola, de la catégorie soft-drinks est utilisé dans cet exemple. N’oubliez pas d’utiliser votre clé API Advanced.
const apikey = "TSC_...";
const body = {
products: [
{
active: true,
categories: ["soft-drinks"],
id: "example-product-coca-cola",
imageURL:
"https://intl.cokestore.com/media/catalog/product/1/6/16181_squeeze-ko-can-maria-2.png",
name: "Canette de Coca Cola",
price: "9.99",
vendors: ["coca-cola"],
},
],
};
try {
const response = await fetch(
"https://api.topsort.com/public/v1/catalog-search-service/catalogs/products",
{
method: "PUT",
mode: "cors",
headers: {
Authorization: `Bearer ${apikey}`,
"Content-Type": "application/json; charset=utf-8",
},
body: JSON.stringify(body),
}
);
if (!response.ok) {
console.error("statut inattendu: " + response.status);
} else {
console.log("statut de succès: " + response.status);
}
} catch (error) {
console.error(error);
}
2. Créer une campagne
Dans cet exemple, une campagne est créée pour promouvoir le produit example-product-coca-cola, avec un déclencheur par mot-clé (soft drink). N’oubliez pas d’utiliser votre clé API Advanced.
const apikey = "TSC_...";
const body = {
bids: [
{
target: {
type: "product",
id: "example-product-coca-cola",
},
triggers: [
{
type: "keyword",
value: {
matchType: "exact",
words: ["soft drink"],
},
},
],
},
],
budget: {
type: "daily",
amount: 10000,
},
campaignType: "autobidding",
isActive: true,
status: "approved",
adFormat: "listing",
name: "Une campagne d'exemple",
};
try {
const response = await fetch(
"https://api.topsort.com/public/v1/campaign-service/campaigns?vendor_id=demo-vendor",
{
method: "POST",
mode: "cors",
headers: {
Authorization: `Bearer ${apikey}`,
"Content-Type": "application/json; charset=utf-8",
},
body: JSON.stringify(body),
}
);
if (!response.ok) {
console.error("statut inattendu: " + response.status);
} else {
console.log("statut de succès: " + response.status);
}
} catch (error) {
console.error(error);
}
3. Envoyer une requête d’enchères
Dans cet exemple, une requête d’enchères est créée pour retourner les gagnants déclenchés par le terme de recherche “soft drink”. N’oubliez pas d’utiliser votre clé API Marketplace.
const apikey = "TSE_...";
const body = {
auctions: [
{
searchQuery: "soft drink",
slots: 1,
type: "listings",
},
],
};
try {
const response = await fetch("https://api.topsort.com/v2/auctions", {
method: "POST",
mode: "cors",
headers: {
Authorization: `Bearer ${apikey}`,
"Content-Type": "application/json; charset=utf-8",
},
body: JSON.stringify(body),
});
if (!response.ok) {
console.error("statut inattendu: " + response.status);
} else {
console.log("statut de succès: " + response.status);
}
} catch (error) {
console.error(error);
}
4. Suivi des événements
Dans cet exemple, un clic sur un produit promu est suivi en utilisant notre API. Le resolvedBidId du gagnant renvoyé par l’appel d’enchères doit être envoyé dans le corps de la requête, pour garantir une attribution correcte des ventes. N’oubliez pas d’utiliser votre clé API Marketplace.
const apikey = "TSE_...";
const body = {
clicks: [
{
id: "d0cf3f56-a719-4e02-9c88-625f965ae6e7",
occurredAt: "2024-07-23T11:49:04+00:00",
opaqueUserId: "71303ce0-de89-496d-8270-6434589615e2",
resolvedBidId:
"ChAGafmNzX5wy4sEaDnXi4iWEhABjxq1RG513IkbvRgIVcd6GhABjmiyW3t2Ur066CLC3jWVIgoKBjExMjYzNRABMPuVDw",
},
],
};
try {
const response = await fetch("https://api.topsort.com/v2/events", {
method: "POST",
mode: "cors",
headers: {
Authorization: `Bearer ${apikey}`,
"Content-Type": "application/json; charset=utf-8",
},
body: JSON.stringify(body),
});
if (!response.ok) {
console.error("statut inattendu: " + response.status);
} else {
console.log("statut de succès: " + response.status);
}
} catch (error) {
console.error(error);
}