Aller au contenu principal

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

Ce document décrit les points de terminaison (endpoints) 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 informations d'identification 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 (headers) appropriés et les formats de requête sont utilisés comme spécifié dans la documentation de l'API pour simuler efficacement des scénarios similaires à ceux de la production.

RequêteLien direct vers Requête

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

Clé de l'en-têteDescriptionTypeRemarque
rokt-pub-idContient l'identifiant public client fournistringCela sera fourni par Rokt.
rokt-secretContient le secret public client fourni qui doit correspondre à l'identifiant publicstringCela sera fourni par Rokt.

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

Clé de l'en-têteDescriptionTypeExemple
content-typeType de médiastring“application/json”
acceptType de média attendu de la réponsestring“application/json”
rokt-tag-idID de Tag Roktstring1234567890

Racine/CorpsLien direct vers Racine/Corps

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

PartnerEventLien direct vers PartnerEvent

Nom de la propriétéRequisType de donnéesDescription
eventTypeOuistringLe nom de l'événement publié. Correspond à un EventType dans la section Type d'événement.
eventTimeOuistringL'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
sessionIdOuistringL'ID de la session à laquelle l'événement est associé. Récupéré de la réponse /offers, voir Champs clés
parentGuidOuistringLe GUID de l'instance du parent lié. Voir Types d'événements - Source du GUID parent pour savoir où trouver ce champ.
clientUniqueIdOuistringUn identifiant pour lier la session Rokt avec la session du 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éRequisType de donnéesDescription
NameOuistringNom/Identifiant de la propriété fournie
ValueOuistringDonnées liées au Nom fourni
remarque
  • La création de instanceGuid de l'événement 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 ne permet de traiter qu'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 pour chaque événement doit être :
    • Pas datée dans le futur (5 minutes de marge)
    • 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 (placement), un slot ou une création (creative) est rendu et visible pour le client. S'il y a un délai d'apparition, cela se produit lors de l'affichage de la vue. 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 visible à >= 50% dans la fenêtre d'affichage pendant au moins une seconde.
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

Les slotGuid, creativeGuid, placementGuid et responseOptionGuid à utiliser dans le champ parentGuid peuvent être trouvés dans la réponse de l'API Offers.

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", // Cela devrait être un slotGuid, creativeGuid, ou 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", // Cela devrait être un 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", // Cela devrait être un 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
successbooleanIndique 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 tout de même de traiter les événements valides et renverra un statut de réponse mixte (HTTP 207), indiquant le nombre d'événements acceptés et fournissant les événements qui ne l'ont pas été.

{
"processedEventsCount": 5,
"unprocessedEvents": [
{
"errors": [
{
"code": "InvalidEventType",
"message": "Le type d'événement est invalide"
},
{
"code": "SessionIdMissing",
"message": "SessionId est manquant ou invalide"
},
{
"code": "ParentGuidIsMissing",
"message": "ParentGuid est nul ou vide"
},
{
"code": "EventTimeIsMissing",
"message": "EventTime est nul ou par défaut"
}
],
"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 videLien direct vers Requête d'événements vide

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

Requête avec Corps VideLien direct vers Requête avec Corps Vide

{
"title": "BadRequest",
"status": 400,
"success": false,
"errors": [
{
"code": "InvalidRequestPayload",
"message": "Le format du corps de la requête n'est pas valide"
}
]
}

ErreurLien direct vers Erreur

Nom de la PropriétéType de DonnéeDescription
codestringCode d'erreur correspondant
messagestringMessage décrivant l'erreur

Erreurs Serveur Internes (HTTP 5xx)Lien direct vers Erreurs Serveur Internes (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 standards. Dans le cas où cette réponse se produit, nous recommandons de réessayer la requête 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 ?