Aller au contenu principal

Spécification de l'API des événements des partenaires V2

Ce document décrit le point de terminaison pertinent nécessaire pour interagir avec l'API de Rokt afin de soumettre des Événements à Rokt.

Points de terminaison

EnvironnementActionURL
ProductionPOSThttps://server-api.rokt.com/v2/partner/events
TestingPOSThttps://server-api-demo.rokt.com/v2/partner/events

Meilleures pratiques de test

Le point de terminaison de test https://server-api-demo.rokt.com/v2/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.

Demande

En-têtes d'autorisation

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

Clé de l'en-têteNécessaireDescriptionTypeRemarque
rokt-pub-idOuiContient l'identifiant public du client fournichaîneCela sera fourni par Rokt.
rokt-secretOuiContient le secret public du client fourni qui doit correspondre à l'identifiant publicchaîneCela sera fourni par Rokt.

En-têtes requis

Clé de l'en-têteNécessaireDescriptionTypeExemple
content-typeOuiType de médiachaîne“application/json”
acceptOuiType de média attendu de la réponsechaîne“application/json”
rokt-tag-idOuiID de tag Roktchaîne1234567890

Racine/Corps

Nom de la PropriétéRequisTypeDeDonnéeDescription
ÉvénementsOuiPartnerEvent[]Une collection d'événements à envoyer à Rokt
IntégrationOuiIntegrationDonnées relatives à l'intégration effectuant la demande. Cela peut être obtenu à partir des bibliothèques UXHelper disponibles pour Android, iOS et web

Intégration

Nom de la PropriétéRequisTypeDeDonnéeDescription
NomOuichaîneIndique le nom commun de l'intégration effectuant la demande
VersionOuichaîneVersion de l'intégration effectuant la demande
CadreOuichaînecadre d'intégration utilisé (par exemple, Flutter, React Native)
PlateformeOuichaîne/énumPlateforme partenaire demandant des offres (par exemple, Web, Mobile, iOS)
VersionSchémaMiseEnPageOuichaîneVersion de schéma compatible la plus élevée pour l'intégration
LocaleAppareilOuichaîneParamètre de langue du appareil de l'utilisateur
ModèleAppareilOuichaîneModèle de l'appareil pour iOS ou Modèle de Build pour Android
TypeAppareilOuichaîneType d'appareil/facteur de forme (par exemple, Téléphone, Tablette)
SystèmeD'exploitationOuichaîneSystème d'exploitation de l'appareil de l'utilisateur
VersionSystèmeD'exploitationOuichaîneVersion du système d'exploitation de l'appareil de l'utilisateur
NomPackageOuichaîneNom du pack ou identifiant de l'application hôte
PackageVersionOuistringVersion du package ou version du bundle de l'application hôte
MetadataNonMap<string, string>Données supplémentaires liées à l'intégration ou à l'appareil

PartenaireÉvénement

Nom de la propriétéRequisTypeDonnéesDescription
TypeÉvénementOuistringLe nom de l'événement publié. Correspond à un eventType dans la section Types d'Événements.
TempsÉvénementOuistringLe temps où l'événement a été créé sous DateTimeOffset (chaîne ISO avec GMT+0). Exemple : 2022-04-20T00:11:47.529Z
IdSessionOuistringL'ID de la session associée à l'événement. Récupéré à partir de la réponse /experiences, voir SuccessBody.
ParentGuidOuistringL'instance GUID du parent lié. Voir Types d'Événements - Source du Parent GUID pour l'approvisionnement de ce champ.
PageInstanceGuidOuistringIdentifiant unique de la page/vue pour laquelle des offres ont été récupérées. Récupéré à partir de la réponse /experiences, voir PageContext.
ClientUniqueIdNonstringUn identifiant pour lier la session Rokt avec la session partenaire pour le dépannage (par exemple, ID de session Uber).
DonnéesÉvénementNonstringDonnées supplémentaires requises pour l'événement.
MétadonnéesNonNameValuePair[]Collection de métadonnées supplémentaires liées à l'événement.

NameValuePair

Nom de la propriétéRequisType de donnéesDescription
NomOuistringNom/Identifiant de la propriété fournie
ValeurOuistringDonnées liées au Nom fourni
remarque
  • L'endpoint ne permet de traiter qu'un maximum de 25 événements à la fois
  • Tous les événements appartenant à la même demande doivent partager le même identifiant de session : sessionId
  • L'heure de l'événement par événement doit être :
    • Pas daté dans le futur (marge de 5m)
    • Pas plus de trois (3) jours dans le passé

Type d'événement

Type d'événementDescription
SignalImpressionSoulevé chaque fois qu'une mise en page, un créneau ou un contenu est rendu et visible pour le client. S'il y a un délai d'apparition impliqué, cela se produit lors de la révélation de la vue. Cela correspond à la métrique des impressions de mise en page dans le tableau de bord One Platform.
SignalViewedSoulevé lorsqu'une mise en page est >= 50% visible dans le viewport pendant au moins une seconde.
SignalResponseSoulevé lorsqu'un consommateur interagit avec une option de réponse sur un contenu.
SignalGatedResponseSoulevé lorsqu'un consommateur interagit avec une option de réponse "Me rappeler plus tard" sur un contenu.
SignalInitializeÉlevé lorsque la bibliothèque tente d'afficher la mise en page
SignalDismissalDéclenché lorsque le client ferme ou rejette la mise en page.
SignalActivationDéclenché lorsque le client interagit avec une mise en page.
SignalSdkDiagnosticDéclenché lorsqu'une erreur se produit au sein de la mise en page Rokt ou durant le processus de rendu. Les partenaires peuvent écouter cet événement pour gérer les exceptions.

Exemple de Demande

Corps/Payload de la Demande JSON

Cliquez pour développer
{
"integration": { ... Payload d'intégration standard ... },
"events": [
{
"eventType": "SignalImpression",
"eventTime": "2022-06-28T07:11:01.710Z",
"parentGuid": "8ed27738-fec8-49e4-9436-d44faa6eaf0f",
"sessionId": "aec20024-8d23-46be-95f3-9be5d86292a9",
"clientUniqueId": "10f7d87b-e879-47b2-9638-a667e63beae2"
"pageInstanceGuid": "8ed27738-fec8-49e4-9436-d44faa6eaf0f"
},
{
"eventType": "SignalImpression",
"eventTime": "2022-06-28T07:11:01.711Z",
"parentGuid": "58bcbaa0-e13c-4a3d-84cd-2803ccc35394",
"sessionId": "aec20024-8d23-46be-95f3-9be5d86292a9",
"clientUniqueId": "10f7d87b-e879-47b2-9638-a667e63beae2",
"pageInstanceGuid": "8ed27738-fec8-49e4-9436-d44faa6eaf0f",
"metadata": [
{
"name": "AdditionalData",
"value": "ImpressionSlot"
}
]
},
{
"eventType": "SignalImpression",
"eventTime": "2022-06-28T07:11:01.711Z",
"parentGuid": "b3a1d523-5490-49f0-a379-7a67628a4cdd",
"sessionId": "aec20024-8d23-46be-95f3-9be5d86292a9",
"clientUniqueId": "10f7d87b-e879-47b2-9638-a667e63beae2",
"pageInstanceGuid": "8ed27738-fec8-49e4-9436-d44faa6eaf0f",
"metadata": [
{
"name": "AdditionalData",
"value": "ImpressionCreative"
}
]
},
{
"eventType": "SignalResponse",
"eventTime": "2022-06-28T07:11:01.711Z",
"parentGuid": "6bea8e29-b3cd-4717-bd82-59ccbca0d863",
"sessionId": "aec20024-8d23-46be-95f3-9be5d86292a9",
"clientUniqueId": "10f7d87b-e879-47b2-9638-a667e63beae2",
"pageInstanceGuid": "8ed27738-fec8-49e4-9436-d44faa6eaf0f",
"metadata": [
{
"name": "experienceId",
"value": "RedButton"
}
]
}
]
}

Réponse

Réponse de succès (200)

Racine/Corps

Nom de la propriétéType de donnéesDescription
succèsbooléenIndique si les événements ont été reçus avec succès par Rokt
processedEventsCountnombre/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 les descriptions des erreurs par événement

UnprocessedEvent

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

Exemple

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

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 de renvoyer une réponse mixte (HTTP 207), indiquant le nombre qui ont été acceptés et fournissant les événements qui ne l'étaient pas.

Cliquez pour développer
{
"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 demande (4XX)

Racine/CORPS

Nom de la propriétéType de donnéesDescription
titlechaîneRaison de l'échec au niveau supérieur
statusnombreCode de statut HTTP
successbooléenIndique si la demande a été réussie
errorsError[]Collection d'erreurs de validation survenues

Erreur de validation

{
"title": "Échec de la validation",
"status": 422,
"success": false,
"errors": [
{
"code": "TropDÉvénements",
"message": "Le nombre d'événements fournis dépasse la limite de 25"
},
{
"code": "IntégrationNonFournie",
"message": "L'intégration est requise"
}
]
}

Requête d'Événements Vides

{
"title": "Validation échouée",
"status": 422,
"success": false,
"errors": [
{
"code": "NoEventsProvided",
"message": "Les événements ne peuvent pas être nuls ou vides"
}
]
}

Requête Corps Vide

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

Erreur

Nom de PropriétéTypeDeDonnéesDescription
codestringCode d'erreur correspondant
messagestringMessage décrivant l'erreur

Erreurs Serveur Interne (HTTP 5xx)

Dans de rares circonstances, un système peut ne pas être en mesure de traiter une requête de manière inattendue. Dans ce cas, nous renverrons une requête sans corps avec un code d'état approprié qui respecte les codes de réponse HTTP standard. 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 cohérente, veuillez contacter le support (support@rokt.com) pour aider à identifier et corriger le problème.

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