Passer au contenu principal

Vue d’ensemble

Depuis le 20 février 2026, les enchères Topsort peuvent intégrer une demande tierce, permettant aux détaillants de transmettre des offres tierces dans l’enchère Topsort où elles se disputent directement la victoire face à la demande Topsort. L’offre la plus élevée l’emporte, quelle que soit sa source.

Qu’est-ce que la médiation de la demande ?

Auparavant, les enchères Topsort ne recevaient de la demande que de sources Topsort (soit de vendeurs au sein d’une marketplace, soit via Toppie). Avec la médiation de la demande, Topsort peut désormais récupérer de la demande auprès de sources tierces.
La première source de demande tierce intégrée est Criteo, une plateforme publicitaire de retail media de premier plan avec des budgets provenant des grandes marques du monde entier. Pour chaque emplacement de listing sponsorisé, un détaillant récupère les offres de Criteo et les transmet à Topsort. Topsort compare les offres Criteo avec ses propres offres et sélectionne les offres gagnantes parmi elles.
Topsort peut facilement accueillir d’autres sources de demande au-delà de Criteo, à condition que leurs offres puissent être envoyées via le paramètre demandSources de l’endpoint d’enchère.

Fonctionnement de la facturation

Avec la médiation de la demande utilisant Criteo :
  • Le détaillant est propriétaire du compte/de l’instance Criteo, pas Topsort
  • Les annonceurs paient Criteo directement
  • Criteo facture les annonceurs, prélève ses frais de plateforme et reverse au détaillant sa part de revenus
  • Topsort facture le détaillant séparément (structure de facturation à définir)

Avantages pour les marketplaces

Les détaillants peuvent générer des revenus publicitaires supplémentaires grâce à la médiation de la demande :
  • Combler les lacunes : Lorsqu’il n’y a pas de demande Topsort pour les requêtes publicitaires, la demande Criteo peut être disponible
  • Accroître la concurrence : Lorsque la demande Topsort existe, la demande Criteo peut enchérir plus haut, augmentant ainsi les revenus globaux

Quels clients devraient l’utiliser ?

Bien que n’importe quel client puisse ajouter la demande Criteo, cette intégration est particulièrement pertinente pour les clients susceptibles d’attirer des dépenses publicitaires Criteo significatives :
  • Grandes marketplaces américaines : De nombreuses grandes marques américaines enchérissent sur des publicités retail media via des outils comme Pacvue et Skai, qui enchérissent à leur tour sur l’inventaire Criteo. Cette configuration permet aux grandes marques d’éviter une intégration directe avec chaque détaillant sur lequel elles souhaitent faire de la publicité.
  • Grandes marketplaces LATAM : Criteo a une présence significative en Amérique latine, ce qui rend cette intégration précieuse pour les grandes marketplaces LATAM également.

Processus d’intégration

Pour intégrer une marketplace avec la médiation de la demande :
1

Configurer les emplacements dans Criteo

La marketplace doit configurer dans son compte Criteo tous les emplacements pour lesquels elle souhaite intégrer la demande Criteo.
2

Mettre à jour le code frontend

Au chargement de la page, la marketplace doit :
  1. Récupérer les offres de Criteo pour l’emplacement
  2. Envoyer ces offres à Topsort en tant que paramètre supplémentaire dans la requête d’enchère
3

Traiter la réponse de l'enchère

Topsort retourne les offres gagnantes, qui peuvent inclure aussi bien des gagnants Topsort que Criteo.
4

Signaler les événements

Si des gagnants Criteo sont présents, la marketplace doit signaler les événements à la fois à Topsort et à Criteo.

Implémentation API

L’endpoint d’enchères a été étendu pour prendre en charge les sources de demande externes. L’ajout d’une demande externe nécessite un nouveau champ d’entrée et deux nouveaux champs de réponse pour les gagnants de l’enchère.
Le nombre d’offres externes est limité à 100 par requête d’enchère.

Modifications de la requête

Un nouveau champ demandSources a été ajouté à l’objet d’enchères :
  • demandSources: Tableau d’objets demandSource
    • source: Enum identifiant la source de demande externe (ex. : "criteo")
    • bids: Tableau d’objets Bid, un pour chaque offre externe
Chaque objet Bid contient :
  • chargeType: Enum (seul "CPC" est pris en charge dans la première version)
  • entity: Objet avec les champs type et id identifiant le produit sponsorisé
  • bidAmount: Montant de l’offre dans la devise de la marketplace
  • metadata: Champ libre pour toutes les métadonnées nécessaires dans la réponse gagnante (ex. : URLs de balise)

Modifications de la réponse

L’objet Winner a été mis à jour avec :
  • demandSource: Chaîne identifiant la source de l’offre gagnante (ex. : "topsort" ou "criteo"). N’apparaît que lorsque des offres externes sont incluses dans la requête.
  • metadata: Pour les gagnants d’offres externes, transmet les métadonnées d’entrée de l’offre externe. Omis pour les offres internes/Topsort.
Pour les offres externes, le champ campaignId sera omis de l’objet gagnant.

Cas d’erreur

Nouveaux cas d’erreur spécifiques à la médiation de la demande :
  • La demande externe n’est pas autorisée pour la marketplace
  • Offres externes invalides (entités non-produit, type de charge incorrect ou montant d’offre négatif)
  • Trop d’offres externes (plus de 100)
  • Demande externe avec un type d’annonce autre que les listings
  • Source de demande externe invalide (seul Criteo est actuellement pris en charge)

Exemple de requête

{
  "auctions": [
    {
      "type": "listings",
      "slots": 2,
      "category": {
        "id": "paper"
      },
      "opaqueUserId": "user123",
      "demandSources": [
        {
          "source": "criteo",
          "bids": [
            {
              "chargeType": "CPC",
              "entity": {
                "type": "product",
                "id": "product123"
              },
              "bidAmount": 0.75,
              "metadata": {
                "beaconUrls": ["https://example.com/beacon"],
                "clickUrls": ["https://example.com/click"]
              }
            }
          ]
        }
      ]
    }
  ]
}

Exemple de réponse

{
  "results": [
    {
      "resultType": "listings",
      "winners": [
        {
          "demandSource": "criteo",
          "type": "product",
          "id": "product123",
          "resolvedBidId": "UkoVYQoQBpaVc2jmdMO0BA4QS9VdHRIQAZgtj1MxeFGT5HL2fhBhKRoQBlhiMAUTfKyPJHhKpsqrQCIKCgZzdWJ3YXkQATCmFUDTBEgBUMXa8pu8Mw",
          "rank": 1,
          "metadata": {
            "beaconUrls": ["https://example.com/beacon"],
            "clickUrls": ["https://example.com/click"]
          }
        },
        {
          "demandSource": "topsort",
          "campaignId": "01982d6e-8655-70e2-94e3-3e5e764b4753",
          "type": "product",
          "id": "product456",
          "resolvedBidId": "zOzJwgoQBpaVfNrgdmeSBLgWZwYYmhIQAZgtboZVcOKU4z5edktHUxoQBlhiMAUTfKyPJHhKpsqrQCIQCgxwYW5lcmEtYnJlYWQQATCmFUDTBEgBUKH3-5u8Mw",
          "rank": 2
        }
      ],
      "error": false
    }
  ]
}
Pour plus d’informations sur l’API d’enchères, consultez laréférence API Create Auctions.

Dernière mise à jour: