Aller au contenu principal

Spécification de l'API des événements de session (S2S)

Ce document décrit le point de terminaison nécessaire pour soumettre des Événements à Rokt en utilisant l'API de Session (v2).

Travaillez avec votre équipe de compte Rokt pour obtenir les identifiants nécessaires. Pour un guide d'intégration de bout en bout, voir Intégration de l'API de Session (S2S).

Point de terminaisonLien direct vers Point de terminaison

EnvironnementActionURL
ProductionPOSThttps://api.rokt.com/v2/sessions/events
remarque

Il n'y a pas d'URL de bac à sable séparée. Pour valider avant de passer en production, envoyez l'en-tête rokt-test-session: true sur le même point de terminaison. Les sessions de test sont étiquetées et filtrées hors des métriques de production. L'en-tête marque uniquement le rapport — il ne force pas une offre à être servie. Retirez l'en-tête pour passer en production.

RequêteLien direct vers Requête

En-têtes d'autorisationLien direct vers En-têtes d'autorisation

En-têteDescriptionTypeRemarque
AuthorizationIdentifiants d'authentification de basechaîneBasic base64(rpub:rsec) — la même paire de clés API publique/secrète utilisée pour l'appel des Offres.
rokt-account-idVotre ID de compte RoktchaîneRequis à chaque appel.

En-têtes requisLien direct vers En-têtes requis

En-têteDescriptionTypeExemple
Content-TypeType de médiachaîneapplication/json

Racine/CorpsLien direct vers Racine/Corps

PropriétéRequisTypeDescription
channelOuiobjetDoit contenir "type": "s2s".
single_sessionOuibooléenDéfini sur true. Lie chaque événement de la requête à la session identifiée par session_id de chaque événement.
eventsOuiEvent[]Collection d'événements à envoyer à Rokt.

ÉvénementLien direct vers Événement

PropriétéRequisTypeDescription
event_typeOuichaîneLe type d'événement. Voir Types d'événements.
instance_idOuichaîne (UUID)UUID généré par le client identifiant cet événement, utilisé pour la déduplication.
session_idOuichaîneLe session_id de niveau supérieur retourné par l'appel des offres.
timestampOuinombreMillisecondes de l'époque Unix auxquelles l'événement s'est produit.
dataOuiobjetVoir Données de l'événement.

Données d'événementLien direct vers Données d'événement

PropriétéRequisTypeDescription
parent_idOuichaîneLe instance_guid de l'élément auquel cet événement se rapporte, pris de la réponse des offres (par exemple, le instance_guid du créatif pour une impression ; le instance_guid d'une option de réponse pour une réponse). Construit l'arborescence de session. Répétez la valeur de la réponse des offres telle quelle — elle peut contenir un préfixe de type (par exemple, ad:<uuid>); envoyez-la exactement comme retournée.
page_instance_guidOuichaîneLe page_instance_guid de la réponse des offres.
tokenOuichaîneLe jeton d'événement pour cet élément de la réponse des offres.
capture_methodNonchaîneComment l'événement a été capturé (par exemple, ClientProvided).
remarque

Authentifiez-vous avec les mêmes identifiants Basic rpub:rsec que l'appel d'offres, et identifiez la session avec single_session: true plus un session_id par événement (le session_id de niveau supérieur de la réponse des offres).

Types d'événementsLien direct vers Types d'événements

Événementevent_typeDescription
ImpressionimpressionDéclenché lorsqu'un emplacement, un slot ou un créatif est rendu et visible pour le client. S'il y a un délai d'apparition, cela se produit lors du démasquage de la vue. Requis pour chaque élément qui se rend visible.
VuviewedDéclenché lorsqu'un emplacement est ≥50% visible dans la fenêtre d'affichage pendant au moins une seconde continue. Correspond à la définition de visibilité IAB et doit exclure le trafic de bots/invalides. Requis pour chaque créatif qui devient visible.
Réponsesignal_responseDéclenché lorsqu'un client interagit avec une option de réponse. Requis pour chaque interaction avec une option de réponse.
RejetdismissalDéclenché lorsqu'un client rejette une offre.
Conversionconversion_signalDéclenché lorsqu'une conversion se produit.
AchatpurchaseDéclenché lorsqu'un achat est complété.

Exemple de requêteLien direct vers Exemple de requête

POST https://api.rokt.com/v2/sessions/events
Authorization: Basic base64(rpub:rsec)
rokt-account-id: <your Rokt account ID>
Content-Type: application/json
{
"channel": { "type": "s2s" },
"single_session": true,
"events": [
{
"event_type": "impression",
"instance_id": "018f1234-5678-7abc-8def-0123456789ab",
"session_id": "018f2a1b-2222-7abc-8def-session00001",
"timestamp": 1751234567000,
"data": {
"parent_id": "018f2a1b-3333-7abc-8def-creative001",
"page_instance_guid": "018f2a1b-0000-7abc-8def-page00000001",
"token": "<event-token>",
"capture_method": "ClientProvided"
}
},
{
"event_type": "viewed",
"instance_id": "018f1234-5678-7abc-8def-0123456789ac",
"session_id": "018f2a1b-2222-7abc-8def-session00001",
"timestamp": 1751234568000,
"data": {
"parent_id": "018f2a1b-3333-7abc-8def-creative001",
"page_instance_guid": "018f2a1b-0000-7abc-8def-page00000001",
"token": "<event-token>"
}
},
{
"event_type": "signal_response",
"instance_id": "018f1234-5678-7abc-8def-0123456789ad",
"session_id": "018f2a1b-2222-7abc-8def-session00001",
"timestamp": 1751234572000,
"data": {
"parent_id": "018f2a1b-4444-7abc-8def-responseoption01",
"page_instance_guid": "018f2a1b-0000-7abc-8def-page00000001",
"token": "<event-token>"
}
}
]
}

RéponseLien direct vers Réponse

Réponse de succès (202 Accepté)Lien direct vers Réponse de succès (202 Accepté)

Un appel réussi retourne 202 Accepted avec un jeton de session rafraîchi à utiliser pour les appels suivants, plus les résultats par événement.

PropriétéTypeDescription
session_tokenobjetJeton de session rafraîchi (session_token.token) pour le prochain appel.
event_idschaîne[]IDs attribués aux événements acceptés, dans l'ordre de la requête.
errorsobjet[]Erreurs par événement, chacune contenant index, code, et message. Vide lorsque chaque événement est accepté.
warningsobjet[]Avertissements par événement, même forme index/code/message. Vide lorsqu'il n'y en a pas.

Lorsque chaque événement est accepté, errors et warnings sont vides et event_ids a une entrée par événement soumis :

{
"session_token": {
"token": "<session_token>"
},
"event_ids": [
"018f9c40-1a2b-7abc-8def-eventimpression",
"018f9c40-1a2b-7abc-8def-eventviewed0001",
"018f9c40-1a2b-7abc-8def-eventresponse01"
],
"errors": [],
"warnings": []
}

En cas d'échec partiel, l'appel retourne toujours 202; les événements acceptés apparaissent dans event_ids et chaque événement rejeté est signalé dans errors par son index dans le tableau de requête :

{
"session_token": {
"token": "<session_token>"
},
"event_ids": [
"018f9c40-1a2b-7abc-8def-eventimpression",
"018f9c40-1a2b-7abc-8def-eventviewed0001"
],
"errors": [
{
"index": 2,
"code": "invalid_token",
"message": "token does not match the element identified by parent_id"
}
],
"warnings": []
}

Réponses d'erreur (4xx / 5xx)Lien direct vers Réponses d'erreur (4xx / 5xx)

Les erreurs renvoient un statut HTTP sémantique avec un corps structuré :

{
"error": "<code>",
"message": "<detail>"
}

Codes d'erreur communsLien direct vers Codes d'erreur communs

Statut HTTPSignification
400Corps de la requête mal formé.
401En-tête Authorization manquant ou invalide.
422Validation de la requête échouée.
429Limitation de débit. Ne pas réessayer automatiquement — faites une pause et contactez votre représentant Rokt si les erreurs 429 persistent.
5xxErreur serveur inattendue. Réessayez après un court délai (1–2 secondes). Si le problème persiste, contactez support@rokt.com.
Cet article vous a-t-il été utile ?