Une fois le service d'agrégation déployé, vous pouvez utiliser les points de terminaison createJob
et getJob
pour interagir avec le service. Le diagramme suivant fournit une représentation visuelle de l'architecture de déploiement de ces deux points de terminaison:

Pour en savoir plus sur les points de terminaison createJob
et getJob
, consultez la documentation de l'API Aggregation Service.
Créer une tâche
Pour créer un job, envoyez une requête POST au point de terminaison createJob
.
bash
POST https://<api-gateway>/stage/v1alpha/createJob
-+
Exemple de corps de requête pour createJob
:
{
"job_request_id": "<job_request_id>",
"input_data_blob_prefix": "<report_folder>/<report_name>.avro",
"input_data_bucket_name": "<input_bucket_name>",
"output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
"output_data_bucket_name": "<output_bucket_name>",
"job_parameters": {
"output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
"output_domain_bucket_name": "<output_domain_bucket_name>",
"attribution_report_to": "<reporting origin of report>",
"reporting_site": "<host name of reporting origin>"
}
}
Si la tâche a bien été créée, le code d'état HTTP 202 s'affiche.
Notez que reporting_site
et attribution_report_to
s'excluent mutuellement et qu'un seul est obligatoire.
Vous pouvez également demander un travail de débogage en ajoutant debug_run
dans job_parameters
.
Pour en savoir plus sur le mode débogage, consultez la documentation sur l'exécution de débogage d'agrégation.
{
"job_request_id": "<job_request_id>",
"input_data_blob_prefix": "<report_folder>/<report_name>.avro",
"input_data_bucket_name": "<input_bucket_name>",
"output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
"output_data_bucket_name": "<output_bucket_name>",
"job_parameters": {
"output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
"output_domain_bucket_name": "<output_domain_bucket_name>",
"attribution_report_to": "<reporting origin of report>"
"debug_run": "true"
}
}
Champs des demandes
Paramètre | Type | Description |
---|---|---|
job_request_id |
Chaîne |
Il s'agit d'un identifiant unique généré par la technologie publicitaire. Il doit être composé de lettres ASCII et ne pas comporter plus de 128 caractères. Cela identifie la requête de tâche par lot et récupère tous les rapports AVRO agrégables spécifiés dans "input_data_blob_prefix" à partir du bucket d'entrée spécifié dans "input_data_bucket_name", qui est hébergé dans l'espace de stockage cloud de la technologie publicitaire.
Caractères: `a-z, A-Z, 0-9, !"#$%&'()*+,-./:;<=>?@[\]^_`{}~
|
input_data_blob_prefix |
Chaîne |
Il s'agit du chemin d'accès au bucket. Pour les fichiers individuels, vous pouvez utiliser le chemin d'accès. Pour plusieurs fichiers, vous pouvez utiliser le préfixe dans le chemin d'accès.
Exemple: Le dossier/fichier collecte tous les rapports de folder/file1.avro, folder/file/file1.avro et folder/file1/test/file2.avro. |
input_data_bucket_name |
Chaîne | Il s'agit du bucket de stockage des données d'entrée ou des rapports agrégables. Il s'agit du stockage cloud de la technologie publicitaire. |
output_data_blob_prefix |
Chaîne | Il s'agit du chemin d'accès de sortie dans le bucket. Un seul fichier de sortie est accepté. |
output_data_bucket_name |
Chaîne |
Il s'agit du bucket de stockage dans lequel l'output_data est envoyé. Il se trouve dans l'espace de stockage cloud de la technologie publicitaire.
|
job_parameters |
Dictionnaire |
Champ obligatoire. Ce champ contient les différents champs, par exemple :
|
job_parameters.output_domain_blob_prefix |
Chaîne |
Comme pour input_data_blob_prefix , il s'agit du chemin d'accès dans output_domain_bucket_name où se trouve votre domaine de sortie AVRO. Pour plusieurs fichiers, vous pouvez utiliser le préfixe dans le chemin d'accès. Une fois que le service d'agrégation a terminé le lot, le rapport récapitulatif est créé et placé dans le bucket de sortie output_data_bucket_name avec le nom output_data_blob_prefix .
|
job_parameters.output_domain_bucket_name |
Chaîne | Il s'agit du bucket de stockage de votre fichier AVRO de domaine de sortie. Il s'agit du stockage cloud de la technologie publicitaire. |
job_parameters.attribution_report_to |
Chaîne | Cette valeur est mutuellement exclusive de "reporting_site". Il s'agit de l'URL ou de l'origine du rapport où le rapport a été reçu. L'origine du site est enregistrée lors de l'intégration du service d'agrégation. |
job_parameters.reporting_site |
Chaîne |
S'exclut mutuellement avec attribution_report_to . Il s'agit du nom d'hôte de l'URL de création de rapports ou de l'origine de création de rapports où le rapport a été reçu. L'origine du site est enregistrée lors de l'intégration du service d'agrégation.
Remarque: Vous pouvez envoyer plusieurs rapports avec des origines différentes dans une même requête, à condition que toutes les origines appartiennent au même site de création de rapports spécifié dans ce paramètre.
|
job_parameters.debug_privacy_epsilon |
Virgule flottante, double | Champ facultatif. Si aucune valeur n'est transmise, la valeur par défaut est 10. Vous pouvez utiliser une valeur comprise entre 0 et 64. |
job_parameters.report_error_threshold_percentage |
Double | Champ facultatif. Il s'agit du pourcentage maximal de rapports ayant échoué autorisé avant l'échec de la tâche. Si vous ne spécifiez pas de valeur, la valeur par défaut est 10%. |
job_parameters.input_report_count |
valeur longue |
Champ facultatif. Nombre total de rapports fournis en tant que données d'entrée pour la tâche. Cette valeur, associée à report_error_threshold_percentage , permet d'arrêter la tâche plus tôt lorsque des rapports sont exclus en raison d'erreurs.
|
job_parameters.filtering_ids |
Chaîne |
Champ facultatif. Liste d'ID de filtrage non signés séparés par une virgule. Toutes les contributions autres que l'ID de filtrage correspondant sont filtrées. (par exemple, "filtering_ids": "12345,34455,12" ). La valeur par défaut est 0.
|
job_parameters.debug_run |
Booléen |
Champ facultatif. Lorsque vous exécutez une analyse de débogage, des rapports et des annotations de débogage avec et sans bruit sont ajoutés pour indiquer quelles clés sont présentes dans l'entrée de domaine et/ou les rapports. De plus, les doublons entre les lots ne sont pas non plus appliqués. Notez que l'exécution de débogage ne prend en compte que les rapports associés à l'indicateur "debug_mode": "enabled" . Depuis la version 2.10.0, les exécutions de débogage ne consomment pas de budget de confidentialité.
|
Obtenir une tâche
Lorsqu'une technologie publicitaire souhaite connaître l'état d'un lot demandé, elle peut appeler le point de terminaison getJob
. Le point de terminaison getJob
est appelé à l'aide d'une requête GET HTTPS avec le paramètre job_request_id
.
GET https://<api-gateway>/stage/v1alpha/getJob?job_request_id=<job_request_id>
Vous devriez obtenir une réponse qui renvoie l'état de la tâche, ainsi que d'éventuels messages d'erreur:
{
"job_status": "FINISHED",
"request_received_at": "2023-07-17T19:15:13.926530Z",
"request_updated_at": "2023-07-17T19:15:28.614942839Z",
"job_request_id": "PSD_0003",
"input_data_blob_prefix": "reports/output_reports_2023-07-17T19:11:27.315Z.avro",
"input_data_bucket_name": "ags-report-bucket",
"output_data_blob_prefix": "summary/summary.avro",
"output_data_bucket_name": "ags-report-bucket",
"postback_URL": "",
"result_info": {
"return_code": "SUCCESS",
"return_message": "Aggregation job successfully processed",
"error_summary": {
"error_counts": [],
"error_messages": []
},
"finished_at": "2023-07-17T19:15:28.607802354Z"
},
"job_parameters": {
"debug_run": "true",
"output_domain_bucket_name": "ags-report-bucket",
"output_domain_blob_prefix": "output_domain/output_domain.avro",
"attribution_report_to": "https://privacy-sandcastle-dev-dsp.web.app"
},
"request_processing_started_at": "2023-07-17T19:15:21.583759622Z"
}
Champs de réponse
Paramètre | Type | Description |
---|---|---|
job_request_id |
Chaîne |
Il s'agit de l'ID de tâche/lot unique spécifié dans la requête createJob .
|
job_status |
Chaîne | Il s'agit de l'état de la requête de tâche. |
request_received_at |
Chaîne | Heure à laquelle la requête a été reçue. |
request_updated_at |
Chaîne | Heure de la dernière mise à jour de la tâche. |
input_data_blob_prefix |
Chaîne |
Il s'agit du préfixe des données d'entrée défini sur createJob .
|
input_data_bucket_name |
Chaîne |
Il s'agit du bucket de données d'entrée de la technologie publicitaire dans lequel les rapports agrégables sont stockés. Ce champ est défini sur createJob .
|
output_data_blob_prefix |
Chaîne |
Il s'agit du préfixe de données de sortie défini sur createJob .
|
output_data_bucket_name |
Chaîne |
Il s'agit du bucket de données de sortie de la technologie publicitaire dans lequel les rapports récapitulatifs générés sont stockés. Ce champ est défini sur createJob .
|
request_processing_started_at |
Chaîne |
Heure de début de la dernière tentative de traitement. Cela exclut le temps d'attente dans la file d'attente des tâches.
(Durée de traitement totale = request_updated_at - request_processing_started_at )
|
result_info |
Dictionnaire |
Il s'agit du résultat de la requête createJob et comprend toutes les informations disponibles.
Les valeurs return_code , return_message , finished_at et error_summary s'affichent.
|
result_info.return_code |
Chaîne | Code de retour du résultat de la tâche. Ces informations sont nécessaires pour résoudre les problèmes liés au service d'agrégation. |
result_info.return_message |
Chaîne | Message de réussite ou d'échec renvoyé à la suite de la tâche. Ces informations sont également nécessaires pour résoudre les problèmes liés au service d'agrégation. |
result_info.error_summary |
Dictionnaire | Les erreurs renvoyées par la tâche. Il contient le nombre de rapports ainsi que le type d'erreurs rencontrées. |
result_info.finished_at |
Horodatage | Code temporel indiquant la fin de la tâche. |
result_info.error_summary.error_counts |
Liste |
Cette commande renvoie une liste des messages d'erreur, ainsi que le nombre de rapports ayant échoué avec le même message d'erreur. Chaque compte d'erreur contient une catégorie, error_count et description .
|
result_info.error_summary.error_messages |
Liste | Cette commande renvoie la liste des messages d'erreur des rapports dont le traitement a échoué. |
job_parameters |
Dictionnaire |
Il contient les paramètres de tâche fournis dans la requête createJob . Propriétés pertinentes telles que "output_domain_blob_prefix" et "output_domain_bucket_name".
|
job_parameters.attribution_report_to |
Chaîne |
S'exclut mutuellement avec reporting_site . Il s'agit de l'URL de création du rapport ou de l'origine du rapport. L'origine fait partie du site enregistré dans l'intégration du service d'agrégation. Cette information est spécifiée dans la requête createJob .
|
job_parameters.reporting_site |
Chaîne |
S'exclut mutuellement avec attribution_report_to . Il s'agit du nom d'hôte de l'URL de création de rapports ou de l'origine du rapport. L'origine fait partie du site enregistré dans l'intégration du service d'agrégation. Notez que vous pouvez envoyer des rapports avec plusieurs origines de création de rapports dans la même requête, à condition que toutes les origines de création de rapports appartiennent au même site mentionné dans ce paramètre. Cette information est spécifiée dans la requête createJob . Assurez-vous également que le bucket ne contient que les rapports que vous souhaitez agréger au moment de la création de la tâche. Tous les rapports ajoutés au bucket de données d'entrée dont les origines correspondent au site de création de rapports spécifié dans le paramètre de tâche sont traités.
Le service d'agrégation ne prend en compte que les rapports du bucket de données qui correspondent à l'origine de création des rapports enregistrée pour la tâche. Par exemple, si l'origine enregistrée est https://exampleabc.com, seuls les rapports provenant de https://exampleabc.com sont inclus, même si le bucket contient des rapports provenant de sous-domaines (https://1.exampleabc.com , etc.) ou de domaines entièrement différents (https://3.examplexyz.com ).
|
job_parameters.debug_privacy_epsilon |
Virgule flottante, double |
Champ facultatif. Si aucune valeur n'est transmise, la valeur par défaut de 10 est utilisée. Les valeurs peuvent être comprises entre 0 et 64. Cette valeur est spécifiée dans la requête createJob .
|
job_parameters.report_error_threshold_percentage |
Double |
Champ facultatif. Il s'agit du pourcentage de seuil de rapports pouvant échouer avant l'échec de la tâche. Si aucune valeur n'est attribuée, la valeur par défaut de 10% est utilisée. Cette information est spécifiée dans la requête createJob .
|
job_parameters.input_report_count |
Valeur longue | Champ facultatif. Nombre total de rapports fournis en tant que données d'entrée pour cette tâche. Combiné à cette valeur, le paramètre "report_error_threshold_percentage" déclenche l'échec prématuré de la tâche si un nombre important de rapports sont exclus en raison d'erreurs. Ce paramètre est spécifié dans la requête "createJob". |
job_parameters.filtering_ids |
Chaîne |
Champ facultatif. Liste d'ID de filtrage non signés séparés par une virgule. Toutes les contributions autres que l'ID de filtrage correspondant sont filtrées. Cette information est spécifiée dans la requête createJob .
(par exemple, "filtering_ids":"12345,34455,12" ) La valeur par défaut est "0".)
|