Aller au contenu principal

Spécification de l'API des événements serveur

Ce document décrit les points de terminaison pertinents nécessaires pour interagir avec les API de Rokt afin de soumettre des Événements à Rokt.

Veuillez travailler avec votre gestionnaire de compte pour obtenir les identifiants nécessaires pour interagir avec ce point de terminaison

Points de terminaisonLien direct vers Points de terminaison

EnvironnementActionURL
ProductionPOSThttps://server-api.rokt.com/v1/partner/events
TestPOSThttps://server-api-demo.rokt.com/v1/partner/events

Meilleures pratiques de testLien direct vers Meilleures pratiques de test

Le point de terminaison de test https://server-api-demo.rokt.com/v1/partner/events est spécifiquement conçu pour les tests et doit être utilisé pour valider l'intégration sans affecter les données ou les performances de production. Assurez-vous que les en-têtes appropriés et les formats de requête sont utilisés comme spécifié dans la documentation de l'API pour émuler efficacement des scénarios similaires à la production.

RequêteLien direct vers Requête

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

Clé d'en-têteDescriptionTypeRemarque
rokt-pub-idContient l'identifiant public client fournichaîneCeci sera fourni par Rokt.
rokt-secretContient le secret public client fourni qui doit correspondre à l'identifiant publicchaîneCeci sera fourni par Rokt.

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

Clé d'en-têteDescriptionTypeExemple
content-typeType de médiachaîne“application/json”
acceptType de média attendu de la réponsechaîne“application/json”
rokt-tag-idID de balise Roktchaîne1234567890

Racine/CorpsLien direct vers Racine/Corps

Nom de propriétéRequisType de donnéesDescription
eventsOuiPartnerEvent[]Une collection d'événements à envoyer à Rokt

PartnerEventLien direct vers PartnerEvent

Nom de propriétéRequisType de donnéesDescription
eventTypeOuichaîneLe nom de l'événement publié. Correspond à un EventType dans la section Type d'événement.
eventTimeOuichaîneL'heure à laquelle l'événement a été créé en tant que DateTimeOffset (chaîne ISO avec GMT+0)
par exemple : 2022-04-20T00:11:47.529Z
sessionIdOuichaîneL'ID de la session à laquelle l'événement est associé. Récupéré d'une réponse au point de terminaison /v1/partner/offers dans l'API des offres.
parentGuidOuichaîneLe GUID de l'instance du parent lié. Récupéré d'une réponse au point de terminaison /v1/partner/offers dans l'API des offres.
clientUniqueIdOuichaîneUn identifiant pour lier la session Rokt avec la session partenaire pour le dépannage :
<Transaction ID>
metadataOptionnelNameValuePair[]Collection de métadonnées supplémentaires liées à l'événement

NameValuePairLien direct vers NameValuePair

Nom de la propriétéObligatoireType de donnéesDescription
NomOuistringNom/Identifiant de la propriété fournie
ValeurOuistringDonnées relatives au Nom fourni
remarque
  • La création d'événements instanceGuid sera désormais gérée par les API Rokt
  • Les métadonnées communes seront ajoutées par les API Rokt
  • Le point de terminaison permet de traiter un maximum de 25 événements à la fois
  • Tous les événements appartenant à la même requête doivent partager le même identifiant de session : sessionId
  • L'heure de l'événement par événement doit être :
    • Pas datée dans le futur (marge de 5 minutes)
    • Pas plus de trois (3) jours dans le passé

Type d'événementLien direct vers Type d'événement

Type d'événementDescription
SignalImpressionDéclenché chaque fois qu'un emplacement, un slot ou une création est rendu et visible pour le client. S'il y a un délai d'apparition, cela se produit lors de l'affichage. Cela correspond à la métrique des impressions de placement dans le tableau de bord One Platform.
Requis pour chaque placementGuid/slotGuid/creativeGuid.
SignalViewedDéclenché lorsqu'un emplacement est >= 50% visible dans la fenêtre d'affichage pendant au moins une seconde continue. Cela correspond à la définition de visibilité définie par le Bureau de la publicité interactive (IAB) et doit également exclure le trafic non humain (bot), les impressions frauduleuses ou toute forme d'activité invalide.
Requis pour chaque creativeGuid.
SignalResponseDéclenché lorsqu'un consommateur interagit avec une option de réponse sur une création.
Requis pour chaque responseOptionGuid.
remarque

Le slotGuid, creativeGuid, placementGuid et responseOptionGuid à utiliser dans le champ parentGuid peuvent être trouvés dans la réponse API des Offres.

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

Corps/Payload de la requête JSON

{
"events": [
{
"eventType": "SignalImpression",
"eventTime": "2022-06-28T07:11:01.711Z",
"parentGuid": "58bcbaa0-e13c-4a3d-84cd-2803ccc35394", // This should be a slotGuid, creativeGuid, or placementGuid
"sessionId": "aec20024-8d23-46be-95f3-9be5d86292a9",
"clientUniqueId": "10f7d87b-e879-47b2-9638-a667e63beae2",
"metadata": [
{
"name": "AdditionalData",
"value": "ImpressionSlot"
}
]
},
{
"eventType": "SignalViewed",
"eventTime": "2022-06-28T07:11:01.711Z",
"parentGuid": "b3a1d523-5490-49f0-a379-7a67628a4cdd", // This should be a creativeGuid
"sessionId": "aec20024-8d23-46be-95f3-9be5d86292a9",
"clientUniqueId": "10f7d87b-e879-47b2-9638-a667e63beae2",
"metadata": [
{
"name": "AdditionalData",
"value": "ImpressionCreative"
}
]
},
{
"eventType": "SignalResponse",
"eventTime": "2022-06-28T07:11:01.711Z",
"parentGuid": "6bea8e29-b3cd-4717-bd82-59ccbca0d863", // This should be a responseOptionGuid
"sessionId": "aec20024-8d23-46be-95f3-9be5d86292a9",
"clientUniqueId": "10f7d87b-e879-47b2-9638-a667e63beae2",
"metadata": [
{
"name": "experienceId",
"value": "RedButton"
}
]
}
]
}'

RéponseLien direct vers Réponse

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

Racine/CorpsLien direct vers Racine/Corps

Nom de la propriétéType de donnéesDescription
succèsbooleanIndique si les événements ont été reçus avec succès par Rokt
processedEventsCountnumber/intIndique le nombre d'événements qui ont été acceptés avec succès par Rokt
unprocessedEventsUnprocessedEvent[]Collection d'événements qui n'ont pas été acceptés avec des descriptions d'erreurs par événement

UnprocessedEventLien direct vers UnprocessedEvent

Nom de la propriétéType de donnéesDescription
eventPartnerEventIndique si les événements ont été reçus avec succès par Rokt
errorsError[]Indique le nombre d'événements qui ont été acceptés avec succès par Rokt

ExempleLien direct vers Exemple

{ 
"processedEventsCount": 5,
"unprocessedEvents": [],
"success": true }

Réponse de succès partiel (207)Lien direct vers Réponse de succès partiel (207)

Dans le cas où des événements valides sont envoyés avec des événements invalides, Rokt tentera toujours de traiter les événements valides et renverra un statut de réponse mixte (HTTP 207), indiquant le nombre qui ont été acceptés et fournissant les événements qui ne l'ont pas été.

{
"processedEventsCount": 5,
"unprocessedEvents": [
{
"errors": [
{
"code": "InvalidEventType",
"message": "Event type is invalid"
},
{
"code": "SessionIdMissing",
"message": "SessionId is missing or invalid"
},
{
"code": "ParentGuidIsMissing",
"message": "ParentGuid is null or empty"
},
{
"code": "EventTimeIsMissing",
"message": "EventTime is null or default"
}
],
"event": {
"eventType": "Unknown",
"sessionId": "",
"eventTime": "0001-01-01T00:00:00+00:00",
"parentGuid": "",
"clientUniqueId": "265d3a90-4c84-4c17-99af-e09b862b925c"
}
}
],
"success": false
}

Réponse d'erreur de requête (4XX)Lien direct vers Réponse d'erreur de requête (4XX)

Racine/CorpsLien direct vers Racine/Corps

Nom de la propriétéType de donnéesDescription
titlestringRaison principale de l'échec
statusnumberCode de statut HTTP
successbooleanIndique si la requête a réussi
errorsError[]Collection d'erreurs de validation qui se sont produites

Erreur de validationLien direct vers Erreur de validation

{
"title": "Validation failed",
"status": 422,
"success": false,
"errors": [
{
"code": "TooManyEvents",
"message": "The number of events provided exceeds the limit 25"
}
]
}

Requête d'événements videsLien direct vers Requête d'événements vides

{
"title": "Validation failed",
"status": 422,
"success": false,
"errors": [
{
"code": "NoEventsProvided",
"message": "Events cannot be null or empty"
}
]
}

Requête de corps videLien direct vers Requête de corps vide

{
"title": "BadRequest",
"status": 400,
"success": false,
"errors": [
{
"code": "InvalidRequestPayload",
"message": "Request body format is not valid"
}
]
}

ErreurLien direct vers Erreur

Nom de la propriétéType de donnéesDescription
codestringCode d'erreur correspondant
messagestringMessage décrivant l'erreur

Erreurs internes du serveur (HTTP 5xx)Lien direct vers Erreurs internes du serveur (HTTP 5xx)

Dans de rares circonstances, un système peut ne pas être en mesure de compléter une requête de manière inattendue. Dans ce cas, nous retournerons une requête sans corps avec un code de statut approprié qui respecte les codes de réponse HTTP standard. Dans le cas où cette réponse se produit, nous recommandons que la requête soit réessayée après un court délai (1-2 secondes). Si le problème persiste ou se produit de manière constante, veuillez contacter le support (support@rokt.com) pour aider à identifier et corriger le problème.

Cet article vous a-t-il été utile ?