API de requête
Aperçu
L'API de requête Rokt est une API complète et flexible pour interroger les données de compte, les campagnes et les transactions. Consultez notre documentation interactive ici.
Authentification
L'API de requête Rokt utilise l'approche OAuth 2.0 pour l'intégration client. Voir le flux d'identifiants OAuth 2.0 pour plus de détails. Vous devez utiliser votre Rokt App ID et App Secret pour accéder à l'API de requête.
Génération d'un Rokt App ID et App Secret
- Connectez-vous à One Platform sur my.rokt.com
- Accédez à Paramètres du profil sous l'icône de votre compte en bas à gauche
- Faites défiler jusqu'à la section Générer des identifiants API personnels
- Entrez le nom de votre application et cliquez sur Générer
- Stockez l'App ID et l'App Secret de manière sécurisée - vous n'aurez plus accès à l'App Secret
Génération d'un jeton d'accès
Rokt utilise OAuth 2.0 pour l'authentification sécurisée à nos API publiques. Cela garantit que seuls les utilisateurs autorisés peuvent accéder à leurs données.
Pour générer un jeton d'accès, effectuez la requête POST suivante.
curl -X POST https://api.rokt.com/auth/oauth2/token \
--header "Authorization: Basic $ENCODED_TOKEN" \
--header "Content-Type: application/x-www-form-urlencoded" \
--data "grant_type=client_credentials"
Le jeton d'accès expire après une heure et doit être inclus en tant que jeton Bearer dans toutes les requêtes API.
Exemple étape par étape
Voici un exemple complet utilisant des commandes shell :
# Étape 1 : Définissez vos variables d'environnement. Ne les stockez pas dans le contrôle de version
export ROKT_APP_ID="your_app_id"
export ROKT_APP_SECRET="your_secret"
# Étape 2 : Encodez vos identifiants pour générer un jeton d'authentification
export ENCODED_TOKEN=$(printf '%s' "${ROKT_APP_ID}:${ROKT_APP_SECRET}" | openssl base64 | tr -d '\n')
# Step 3: Demander un token OAuth2/Bearer en utilisant Basic Auth avec le token encodé
BEARER_TOKEN=$(curl -s -X POST https://api.rokt.com/auth/oauth2/token \
-H "Authorization: Basic $ENCODED_TOKEN" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" | jq -r '.access_token')
# Étape 4 : Utiliser le token Bearer dans les requêtes de l'API Query
curl -X GET "https://api.rokt.com/v1/query/accounts" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $BEARER_TOKEN"
Notes Importantes
- Utilisez toujours des variables d'environnement pour les identifiants afin d'éviter de les exposer dans les scripts ou le contrôle de version
- La commande
printfavecopenssl base64assure un encodage correct sans caractères de nouvelle ligne - Stockez le token d'accès de manière sécurisée car il fournit un accès complet à l'API jusqu'à expiration
Limitation de Taux
Les requêtes API sont soumises à une limitation de taux pour garantir une utilisation équitable et la stabilité du système.
Gestion des Erreurs
L'API renvoie des réponses d'erreur standardisées avec des codes d'état HTTP appropriés.
APIs de Compte
Obtenir les Comptes Utilisateur
Récupérer tous les comptes associés à l'utilisateur authentifié.
Description
Ce point de terminaison (endpoint) retourne une liste de tous les comptes auxquels l'utilisateur authentifié a accès. La réponse inclut les détails du compte tels que l'ID du compte, le nom, le pays, la devise, et les informations de fuseau horaire.
Requête
Chemin
GET /v1/query/accounts
Authentification
Nécessite un jeton Bearer valide à partir d'un JWT Rokt de l'utilisateur ou un jeton OAuth2 encodé. Pour plus d'informations sur l'authentification avec notre API, consultez la documentation d'Authentification.
Réponse
Retourne une liste d'objets de compte avec la structure suivante :
accountId: Identifiant unique pour le compteaccountName: Nom d'affichage du comptecountryCode: Code pays ISO pour le compteaccountOwner: Adresse e-mail du propriétaire du compte (optionnel)accountCurrencyCode: Code de la devise pour le compteaccountTimezone: Nom du fuseau horaire pour le compteaccountTimezoneOffset: Décalage du fuseau horaire en minutes
Réponses d'erreur
401 Unauthorized: Échec de l'authentification. Jeton invalide.404 Not Found: L'utilisateur n'a aucun compte500 Internal Server Error: Erreur du serveur lors de la récupération des comptes
Exemple de réponse
[
{
"accountId": "acc_123456789",
"accountName": "Example Account 1",
"countryCode": "US",
"accountOwner": "user@example.com",
"accountCurrencyCode": "USD",
"accountTimezone": "America/New_York",
"accountTimezoneOffset": -300
},
{
"accountId": "acc_123456790",
"accountName": "Example Account 2",
"countryCode": "AU",
"accountOwner": "user@example.com",
"accountCurrencyCode": "AUD",
"accountTimezone": "Australia/Sydney",
"accountTimezoneOffset": 600
}
]
Obtenir un compte
Récupérer des informations détaillées pour un compte spécifique.
Description
Ce point de terminaison (endpoint) renvoie des informations détaillées sur un compte spécifique identifié par le paramètre account_id. L'utilisateur doit avoir des autorisations d'accès au compte spécifié.
Requête
Chemin
GET /v1/query/accounts/{account_id}
Paramètres
accountId(chemin) : L'identifiant unique du compte à récupérer
Authentification
Nécessite un jeton Bearer valide provenant d'un JWT Rokt de l'utilisateur ou d'un jeton OAuth2 encodé. Pour plus d'informations sur l'authentification avec notre API, consultez la documentation sur l'authentification. L'utilisateur doit avoir des permissions d'accès aux données du compte et de la campagne spécifiés.
Réponse
Renvoie un objet compte unique avec la structure suivante :
accountId: Identifiant unique pour le compteaccountName: Nom d'affichage du comptecountryCode: Code pays ISO pour le compteaccountOwner: Adresse e-mail du propriétaire du compte (optionnel)accountCurrencyCode: Code de devise pour le compteaccountTimezone: Nom du fuseau horaire pour le compteaccountTimezoneOffset: Décalage du fuseau horaire en minutes
Réponses d'erreur
401 Unauthorized: Échec de l'authentification. Jeton invalide.403 Forbidden: L'utilisateur n'a pas accès au compte spécifié404 Not Found: Le compte avec l'ID spécifié n'existe pas500 Internal Server Error: Erreur du serveur lors de la récupération du compte
Exemple de réponse
{
"accountId": "1234567891011",
"accountName": "Example Account 1",
"countryCode": "US",
"accountOwner": "user@example.com",
"accountCurrencyCode": "USD",
"accountTimezone": "America/New_York",
"accountTimezoneOffset": -300
}
APIs d'annonceur
Obtenir le rapport de l'annonceur
Générez un rapport de campagne complet pour le compte spécifié.
Description
Ce point de terminaison vous permet d'interroger les données de performance des campagnes avec un filtrage flexible, une sélection de métriques et une spécification de plage de dates. La réponse inclut des données de campagne agrégées basées sur vos critères spécifiés.
Requête
Chemin
POST /v1/query/accounts/{account_id}/campaigns/
Paramètres
account_id(chemin) : L'identifiant unique du compte pour lequel générer le rapport
Corps de la requête
Le corps de la requête doit contenir un objet ReportingRequestExternal
avec les champs suivants :
| Paramètre | Type | Requis | Description | Défaut |
|---|---|---|---|---|
timezoneVariation | string | optionnel | Fuseau horaire pour les données du rapport | "America/New_York" |
currencyCode | string | optionnel | Code de devise pour les données du rapport | "USD" |
interval | string | optionnel | Intervalle de temps pour les données du rapport. Options : "day", "week", "month", "year" | |
startDate | string | requis | Date de début pour la période du rapport au format ISO (inclus). Accepte YYYY-MM-DD ou YYYY-MM-DD HH:MM:SS | |
endDate | string | requis | Date de fin pour la période du rapport au format ISO (exclus). Accepte YYYY-MM-DD ou YYYY-MM-DD HH:MM:SS | |
dimensionFilters | object | optionnel | Filtres à appliquer à des dimensions spécifiques | |
metrics | array | requis | Liste des métriques à inclure dans le rapport. Utilisez les slugs du point de terminaison get_help | |
dimensions | array | optionnel | Dimensions pour regrouper les données. Utilisez les slugs du point de terminaison get_help | |
orderBys | array | optionnel | Critères de tri pour les résultats. Accepte les clés "column" et "direction" | |
limit | integer | optionnel | Nombre maximum de résultats à retourner |
Exemple de Requête
{
"timezoneVariation": "America/New_York",
"currencyCode": "USD",
"interval": "day",
"startDate": "2025-03-04",
"endDate": "2025-03-05",
"dimensionFilters": {
"campaign_id": ["3427232771076128951"]
},
"metrics": ["impressions", "referrals", "gross_cost"],
"dimensions": ["campaign_id", "creative_id", "age_group"],
"orderBys": [
{
"column": "referrals",
"direction": "desc"
}
]
}
Authentification
Nécessite soit un jeton JWT Bearer valide, soit un jeton Cognito dans les en-têtes de la requête. Pour plus d'informations sur l'authentification avec notre API, consultez la documentation sur l'authentification. L'utilisateur doit avoir des autorisations d'accès aux données du compte et de la campagne spécifiés.
Réponse
Renvoie un objet ReportingResponseExternal contenant :
data: Tableau des métriques et dimensions de campagne demandées. Si un intervalle est fourni, chaque objet contiendra un champdatetimeindiquant le début de l'intervalle fourni.accountId: L'ID du compte pour lequel le rapport a été généréqueryTimeMs: Temps d'exécution de la requête en millisecondes
Réponses d'erreur
400 Bad Request: Paramètres ou filtres de requête invalides401 Unauthorized: Échec de l'authentification. Jeton invalide.403 Forbidden: L'utilisateur n'a pas accès au compte spécifié404 Not Found: La ressource demandée est introuvable. Veuillez vérifier que votre requête est correcte et réessayez.500 Internal Server Error: Erreur du serveur lors de la génération du rapport
Exemple de réponse
{
"data": [
{
"datetime": "2025-03-04T00:00:00Z",
"impressions": 1501.0,
"referrals": 205.0,
"gross_cost": 410.05,
"campaign_id": "3427232771076128951",
"creative_id": "3427232968644886703",
"age_group": "26-35"
},
{
"datetime": "2025-03-04T00:00:00Z",
"impressions": 1220.0,
"referrals": 180.0,
"gross_cost": 300.00,
"campaign_id": "3401676908203081730",
"creative_id": "3404563830614458492",
"age_group": "36-45"
}
],
"accountId": "3286272607917027328",
"queryTimeMs": 206
}
Obtenir de l'aide
Récupérer les métriques et dimensions disponibles pour le reporting de campagne.
Description
Ce point de terminaison (endpoint) renvoie des métadonnées sur les options de reporting disponibles, y compris quelles métriques et dimensions peuvent être utilisées ensemble, leurs noms d'affichage, et toutes les options de configuration supplémentaires.
Requête
Chemin
GET /v1/query/accounts/{account_id}/campaigns/help
Paramètres
account_id(chemin) : L'identifiant unique du compte (utilisé pour la validation d'accès)
Authentification
Nécessite un jeton Bearer valide provenant d'un JWT Rokt de l'utilisateur ou un jeton OAuth2 encodé. Pour plus d'informations sur l'authentification avec notre API, consultez la documentation Authentification. L'utilisateur doit avoir des permissions d'accès aux données du compte et de la campagne spécifiés.
Réponse
Renvoie un objet ReportingMetadataExternal contenant :
dimensions: Liste des dimensions avec leurs slugs et descriptionsmetrics: Liste des métriques avec leurs slugs et descriptions
Réponses d'erreur
401 Unauthorized: Échec de l'authentification. Jeton invalide.403 Forbidden: L'utilisateur n'a pas accès au compte spécifié404 Not Found: La ressource demandée est introuvable. Veuillez vérifier que votre demande est correcte et réessayer.500 Internal Server Error: Erreur du serveur lors de la récupération des métadonnées
Exemple de réponse
{
"dimensions": [
{
"slug": "age_range",
"description": "La tranche d'âge de l'utilisateur"
},
{
"slug": "campaign_id",
"description": "L'ID de la campagne"
},
{
"slug": "creative_id",
"description": "L'ID de la création"
},
{
"slug": "device",
"description": "L'appareil de l'utilisateur"
},
],
"metrics": [
{
"slug": "impressions",
"description": "Le nombre d'impressions publicitaires"
},
{
"slug": "referrals",
"description": "Le nombre d'engagements positifs avec la publicité"
},
{
"slug": "clickthru_acquisitions",
"description": "Le nombre d'acquisitions par clic pour la publicité. Une acquisition représente la première conversion suivant un événement d'engagement."
},
{
"slug": "cpa",
"description": "Le Coût par Acquisition pour la publicité"
},
{
"slug": "gross_cost",
"description": "Le coût brut (dépense) pour la publicité"
},
]
}
APIs Partenaires
Obtenir le Rapport Partenaire
Générez un rapport de transaction complet pour le compte spécifié.
Description
Ce point de terminaison vous permet d'interroger les données de transaction avec un filtrage flexible, une sélection de métriques et une spécification de plage de dates. La réponse inclut des données de transaction agrégées basées sur vos critères spécifiés.
Requête
Chemin
POST /v1/query/accounts/{account_id}/transactions
Paramètres
account_id(chemin) : L'identifiant unique du compte pour lequel générer le rapport
Corps de la Requête
Le corps de la requête doit contenir un objet ReportingRequestExternal
avec les champs suivants :
| Paramètre | Type | Requis | Description | Défaut |
|---|---|---|---|---|
timezoneVariation | string | optionnel | Fuseau horaire pour les données du rapport | "America/New_York" |
currencyCode | string | optionnel | Code de devise pour les données du rapport | "USD" |
interval | string | optionnel | Intervalle de temps pour les données du rapport. Options : "day", "week", "month", "year" | |
startDate | string | requis | Date de début pour la période du rapport au format ISO (inclusif). Accepte YYYY-MM-DD ou YYYY-MM-DD HH:MM:SS | |
endDate | string | requis | Date de fin pour la période du rapport au format ISO (exclusif). Accepte YYYY-MM-DD ou YYYY-MM-DD HH:MM:SS | |
dimensionFilters | object | optionnel | Filtres à appliquer à des dimensions spécifiques | |
metrics | array | requis | Liste des métriques à inclure dans le rapport. Utilisez les slugs du point de terminaison get_help | |
dimensions | array | optionnel | Dimensions pour regrouper les données. Utilisez les slugs du point de terminaison get_help | |
orderBys | array | optionnel | Critères de tri pour les résultats. Accepte les clés "column" et "direction" | |
limit | integer | facultatif | Nombre maximum de résultats à retourner |
Exemple de Requête
{
"timezoneVariation": "America/New_York",
"currencyCode": "USD",
"interval": "day",
"startDate": "2025-03-04",
"endDate": "2025-03-05",
"dimensionFilters": {
"page_type": ["confirmation"]
},
"metrics": ["impressions", "referrals", "total_page_transactions"],
"dimensions": ["display_type", "page_type", "age_range"],
"orderBys": [
{
"column": "referrals",
"direction": "desc"
}
]
}
Authentification
Nécessite soit un jeton JWT Bearer valide, soit un jeton Cognito dans les en-têtes de la requête. Pour plus d'informations sur l'authentification avec notre API, consultez la Authentification documentation. L'utilisateur doit avoir les autorisations d'accès au compte et aux données de transaction spécifiés.
Réponse
Renvoie un objet ReportingResponseExternal contenant :
data: Tableau des métriques et dimensions de transaction demandées. Si un intervalle est fourni, chaque objet contiendra un champdatetimeindiquant le début de l'intervalle fourni.accountId: L'ID du compte pour lequel le rapport a été généréqueryTimeMs: Temps d'exécution de la requête en millisecondes
Réponses d'erreur
400 Bad Request: Paramètres de requête ou filtres invalides401 Unauthorized: Échec de l'authentification. Jeton invalide.403 Forbidden: L'utilisateur n'a pas accès au compte spécifié404 Not Found: La ressource demandée n'a pas été trouvée. Veuillez valider que votre requête est correcte et réessayez.500 Internal Server Error: Erreur du serveur lors de la génération du rapport
Exemple de réponse
{
"data": [
{
"datetime": "2025-03-04T00:00:00Z",
"impressions": 1501.0,
"referrals": 205.0,
"total_page_transactions": 1600.0,
"display_type": "desktop",
"page_type": "confirmation",
"age_range": "26-35"
},
{
"datetime": "2025-03-04T00:00:00Z",
"impressions": 1220.0,
"referrals": 180.0,
"total_page_transactions": 1400.0,
"display_type": "mobile",
"page_type": "confirmation",
"age_range": "36-45"
}
],
"accountId": "3286272607917027328",
"queryTimeMs": 206
}
Obtenir de l'aide
Récupérer les métriques et dimensions disponibles pour le reporting des transactions.
Description
Ce point de terminaison (endpoint) renvoie des métadonnées sur les options de reporting disponibles, y compris quelles métriques et dimensions peuvent être utilisées ensemble, leurs noms d'affichage, et toutes options de configuration supplémentaires.
Requête
Chemin
GET /v1/query/accounts/{account_id}/transactions/help
Paramètres
account_id(chemin) : L'identifiant unique du compte (utilisé pour la validation d'accès)
Authentification
Nécessite un jeton Bearer valide à partir d'un JWT Rokt d'un utilisateur ou d'un jeton OAuth2 encodé. Pour plus d'informations sur l'authentification avec notre API, voir la documentation Authentification. L'utilisateur doit avoir des permissions d'accès au compte spécifié et aux données de transaction.
Réponse
Renvoie un objet ReportingMetadataExternal contenant :
dimensions: Liste des dimensions avec leurs slugs et définitionsmetrics: Liste des métriques avec leurs slugs et définitions
Réponses d'erreur
401 Unauthorized: Échec de l'authentification. Jeton invalide.403 Forbidden: L'utilisateur n'a pas accès au compte spécifié404 Not Found: La ressource demandée est introuvable. Veuillez vérifier que votre demande est correcte et réessayez.500 Internal Server Error: Erreur du serveur lors de la récupération des métadonnées
Exemple de réponse
{
"dimensions": [
{
"slug": "age_range",
"description": "La tranche d'âge de l'utilisateur"
},
{
"slug": "display_type",
"description": "Le type d'affichage sur lequel l'annonce a été montrée"
},
{
"slug": "page_type",
"description": "Le type de page sur laquelle l'utilisateur se trouvait"
},
{
"slug": "device",
"description": "L'appareil de l'utilisateur"
},
],
"metrics": [
{
"slug": "transactions",
"description": "Nombre total de transactions"
},
{
"slug": "rokt_transactions_per_transaction",
"description": "Nombre total de transactions traitées par Rokt par transaction"
},
{
"slug": "impressions",
"description": "Nombre total d'impressions publicitaires"
},
{
"slug": "page_transactions",
"description": "Nombre total de transactions traitées par page"
},
{
"slug": "layout_impressions",
"description": "Nombre total d'impressions publicitaires traitées par mise en page"
},
]
}