Развертывание запросов и управление ими с помощью службы агрегирования.

После успешного развертывания службы агрегации вы можете использовать конечные точки createJob и getJob для взаимодействия со службой. На следующей диаграмме представлено визуальное отображение архитектуры развертывания для этих двух конечных точек:

Обзор API сервиса агрегации
Рисунок 1. Обзор API сервиса агрегации.

Более подробную информацию о конечных точках createJob и getJob можно найти в документации по API сервиса агрегации .

Создать вакансию

Для создания задания отправьте POST-запрос на конечную точку createJob . Пример тела запроса для createJob : bash POST https://<api-gateway>/stage/v1alpha/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>"
  }
}

Успешное создание задания приводит к получению HTTP-кода состояния 202.

Обратите внимание, что reporting_site и attribution_report_to являются взаимоисключающими , и требуется только один из них.

Вы также можете запросить задание отладки, добавив debug_run в job_parameters . Для получения дополнительной информации о режиме отладки ознакомьтесь с нашей документацией по запуску отладки агрегации .

{
  "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"
  }
}

Поля запроса

Параметр Тип Описание
job_request_id Нить Это уникальный идентификатор, сгенерированный рекламным технологическим сервисом, который должен состоять из символов ASCII длиной не более 128 символов. Он идентифицирует запрос пакетного задания и извлекает все агрегируемые отчеты AVRO, указанные в `input_data_blob_prefix`, из входного хранилища, указанного в `input_data_bucket_name`, размещенного в облачном хранилище рекламного технологического сервиса.
Символы: `az, AZ, 0-9, !"#$%&'()*+,-./:;<=>?@[\]^_`{}~
input_data_blob_prefix Нить Это путь к хранилищу. Для отдельных файлов можно использовать этот путь. Для файлов, содержащих несколько файлов, можно использовать префикс в пути.
Пример: Папка/файл собирает все отчеты из папок/файл1.avro,/файл/файл1.avro и/файл/файл1/test/файл2.avro.
input_data_bucket_name Нить Это хранилище для входных данных или сводных отчетов. Оно находится в облачном хранилище рекламной компании.
output_data_blob_prefix Нить Это путь к выходному файлу в хранилище. Поддерживается отправка только одного выходного файла.
output_data_bucket_name Нить Это хранилище, куда отправляются output_data . Оно находится в облачном хранилище рекламной компании.
job_parameters Словарь Обязательное поле. Это поле содержит различные поля, такие как:
  • output_domain_blob_prefix
  • output_domain_bucket_name
  • attribution_report_to
  • reporting_site
  • debug_privacy_epsilon
  • report_error_threshold_percentage
job_parameters.output_domain_blob_prefix Нить Аналогично input_data_blob_prefix , это путь в output_domain_bucket_name , где находится ваш выходной домен AVRO. Для нескольких файлов можно использовать префикс в пути. После завершения обработки пакета службой агрегации создается сводный отчет, который помещается в выходной сегмент output_data_bucket_name с именем output_data_blob_prefix .
job_parameters.output_domain_bucket_name Нить Это хранилище для вашего AVRO-файла выходного домена. Оно находится в облачном хранилище рекламной компании.
job_parameters.attribution_report_to Нить Это значение исключает значение `reporting_site`. Это URL-адрес или источник отчета, откуда был получен отчет. Источник сайта регистрируется в процессе подключения к службе агрегации.
job_parameters.reporting_site Нить Параметр attribution_report_to взаимоисключающий. Это имя хоста URL-адреса или источника отчета, откуда был получен отчет. Источник регистрации сайта указан в процессе подключения к службе агрегации. Примечание: Вы можете отправить несколько отчетов с разными источниками в рамках одного запроса при условии, что все источники принадлежат одному и тому же сайту, указанному в этом параметре.
job_parameters.debug_privacy_epsilon Число с плавающей запятой, Double Необязательное поле. Если значение не указано, используется значение по умолчанию 10. Можно использовать значение от 0 до 64.
job_parameters.report_error_threshold_percentage Двойной Необязательное поле. Это максимальный процент неудачно составленных отчетов, допустимый до завершения задания. Если оставить поле пустым, значение по умолчанию составит 10%.
job_parameters.input_report_count долгосрочная стоимость Необязательное поле. Общее количество отчетов, предоставленных в качестве входных данных для задания. Это значение в сочетании с report_error_threshold_percentage позволяет досрочно завершать выполнение задания, если отчеты исключаются из-за ошибок.
job_parameters.filtering_ids Нить Необязательное поле. Список беззнаковых идентификаторов фильтрации, разделенных запятой. Все элементы, кроме соответствующего идентификатора фильтрации, отфильтровываются (например, "filtering_ids": "12345,34455,12" ). Значение по умолчанию — 0.
job_parameters.debug_run Логический Необязательное поле. При выполнении отладочного запуска добавляются шумовые и нешумовые сводные отчеты и аннотации, указывающие на наличие ключей во входных данных домена и/или отчетах. Кроме того, дубликаты между пакетами также не учитываются. Обратите внимание, что отладочный запуск учитывает только отчеты, имеющие флаг "debug_mode": "enabled" . Начиная с версии 2.10.0, отладочные запуски не расходуют бюджет конфиденциальности.

Устроиться на работу

Когда специалисту по рекламным технологиям необходимо узнать статус запрошенной партии, он может вызвать конечную точку getJob . Вызов конечной точки getJob осуществляется с помощью HTTPS GET-запроса с параметром job_request_id .

  GET https://<api-gateway>/stage/v1alpha/getJob?job_request_id=<job_request_id>

В ответ вы должны получить информацию о статусе задания, а также сообщения об ошибках:

{
    "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"
}

Поля ответа

Параметр Тип Описание
job_request_id Нить Это уникальный идентификатор задания/пакета, указанный в запросе createJob .
job_status Нить Таков статус запроса на выполнение задания.
request_received_at Нить Время получения запроса.
request_updated_at Нить Время последнего обновления информации о задании.
input_data_blob_prefix Нить Это префикс входных данных, заданный при createJob .
input_data_bucket_name Нить Это хранилище входных данных рекламного технологического подразделения, где хранятся сводные отчеты. Это поле задается при createJob .
output_data_blob_prefix Нить Это префикс выходных данных, заданный при createJob .
output_data_bucket_name Нить Это хранилище выходных данных рекламного технологического подразделения, где хранятся сгенерированные сводные отчеты. Это поле задается при createJob .
request_processing_started_at Нить Время начала последней попытки обработки. Время ожидания в очереди заданий не учитывается. (Общее время обработки = request_updated_at - request_processing_started_at )
result_info Словарь Это результат запроса createJob , содержащий всю доступную информацию. Здесь отображаются значения return_code , return_message , finished_at и error_summary .
result_info.return_code Нить Код возврата результата выполнения задания. Эта информация необходима для устранения неполадок в случае возникновения проблем в службе агрегации.
result_info.return_message Нить В результате выполнения задания было получено либо сообщение об успехе, либо сообщение о неудаче. Эта информация также необходима для устранения неполадок в работе службы агрегации.
result_info.error_summary Словарь Ошибки, возвращаемые заданием. Здесь указывается количество сообщений об ошибках, а также тип обнаруженных ошибок.
result_info.finished_at Отметка времени Отметка времени, указывающая на завершение задания.
result_info.error_summary.error_counts Список Эта функция возвращает список сообщений об ошибках, а также количество отчетов, завершившихся с той же ошибкой. Каждое сообщение об ошибке содержит категорию, error_count и description .
result_info.error_summary.error_messages Список Эта функция возвращает список сообщений об ошибках из отчетов, обработка которых не удалась.
job_parameters Словарь Здесь содержатся параметры задания, предоставленные в запросе createJob . К ним относятся такие свойства, как `output_domain_blob_prefix` и `output_domain_bucket_name`.
job_parameters.attribution_report_to Нить Исключительно для reporting_site . Это URL-адрес для отправки отчета или источник, откуда был получен отчет. Источник — это часть сайта, зарегистрированного в процессе подключения к сервису агрегации. Это указывается в запросе createJob .
job_parameters.reporting_site Нить Параметр attribution_report_to взаимоисключающий. Это имя хоста URL-адреса отчета или источник, откуда был получен отчет. Источник является частью сайта, зарегистрированного в процессе подключения к службе агрегации. Обратите внимание, что вы можете отправлять отчеты с несколькими источниками в одном запросе, если все источники принадлежат одному и тому же сайту, указанному в этом параметре. Это указывается в запросе createJob . Кроме того, убедитесь, что в корзине содержатся только те отчеты, которые вы хотите агрегировать на момент создания задания. Любые отчеты, добавленные во входную корзину данных с источниками, соответствующими сайту, указанному в параметре задания, будут обработаны. Служба агрегации учитывает только те отчеты в корзине данных, которые соответствуют зарегистрированному источнику для задания. Например, если зарегистрированный источник — https://exampleabc.com, то включаются только отчеты с https://exampleabc.com, даже если в хранилище содержатся отчеты с поддоменов ( https://1.exampleabc.com и т. д.) или совершенно других доменов ( https://3.examplexyz.com ).
job_parameters.debug_privacy_epsilon Число с плавающей запятой, Double Необязательное поле. Если значение не указано, используется значение по умолчанию 10. Значения могут быть от 0 до 64. Это значение указывается в запросе createJob .
job_parameters.report_error_threshold_percentage Двойной Необязательное поле. Это пороговый процент отчетов, которые могут завершиться с ошибкой до сбоя задания. Если значение не указано, используется значение по умолчанию 10%. Это значение указывается в запросе createJob .
job_parameters.input_report_count Долгосрочная стоимость Необязательное поле. Общее количество отчетов, предоставленных в качестве входных данных для этого задания. Параметр `report_error_threshold_percentage` в сочетании с этим значением приводит к досрочному завершению задания, если значительное количество отчетов исключается из-за ошибок. Этот параметр указывается в запросе `createJob`.
job_parameters.filtering_ids Нить Необязательное поле. Список беззнаковых идентификаторов фильтрации, разделенных запятой. Все вклады, кроме соответствующего идентификатора фильтрации, будут отфильтрованы. Это указывается в запросе createJob (например, "filtering_ids":"12345,34455,12" . Значение по умолчанию — "0".)