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

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

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

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

Создать работу

Чтобы создать задание, отправьте запрос POST на конечную точку createJob . bash POST https://<api-gateway>/stage/v1alpha/createJob -+ Пример тела запроса для 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 Нить Это путь к контейнеру. Для отдельных файлов можно использовать путь. Для нескольких файлов можно использовать префикс в пути.
Пример: папка/файл собирает все отчеты из folder/file1.avro, folder/file/file1.avro и folder/file1/test/file2.avro.
input_data_bucket_name Нить Это хранилище для входных данных или агрегируемых отчетов. Это находится в облачном хранилище ad tech.
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. Для нескольких файлов можно использовать префикс в пути. После того, как Aggregation Service завершит пакет, будет создан сводный отчет, который будет помещен в выходной контейнер output_data_bucket_name с именем output_data_blob_prefix .
job_parameters.output_domain_bucket_name Нить Это контейнер для хранения вашего выходного домена AVRO файла. Это в облачном хранилище ad tech.
job_parameters.attribution_report_to Нить Это значение является взаимоисключающим для `reporting_site`. Это URL-адрес отчета или источник отчета, где был получен отчет. Источник сайта зарегистрирован в Aggregation Service Onboarding.
job_parameters.reporting_site Нить Взаимоисключающее с attribution_report_to . Это имя хоста URL-адреса отчета или источника отчета, где был получен отчет. Источник сайта зарегистрирован в Aggregation Service Onboarding. Примечание: Вы можете отправить несколько отчетов с разными источниками в одном запросе, при условии, что все источники принадлежат одному и тому же сайту отчета, указанному в этом параметре.
job_parameters.debug_privacy_epsilon С плавающей точкой, Двойной Необязательное поле. Если значение не передано, значение по умолчанию — 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 Нить Это вставка входных данных рекламного tech, где хранятся агрегируемые отчеты. Это поле устанавливается в createJob .
output_data_blob_prefix Нить Это префикс выходных данных, который был установлен в createJob .
output_data_bucket_name Нить Это контейнер выходных данных рекламного tech, где хранятся сгенерированные сводные отчеты. Это поле задается в 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 Нить Сообщение об успешном или неудачном выполнении, возвращенное в результате задания. Эта информация также необходима для устранения неполадок Aggregation Service.
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-адрес отчета или источник, откуда был получен отчет. Источник — это часть сайта, зарегистрированная в Aggregation Service Onboarding. Это указано в запросе createJob .
job_parameters.reporting_site Нить Взаимоисключающее с attribution_report_to . Это имя хоста URL-адреса отчета или источник, откуда был получен отчет. Источник является частью сайта, зарегистрированного в Aggregation Service Onboarding. Обратите внимание, что вы можете отправлять отчеты с несколькими источниками отчетов в одном запросе, если все источники отчетов принадлежат одному и тому же сайту, указанному в этом параметре. Это указано в запросе createJob . Кроме того, проверьте, что контейнер содержит только те отчеты, которые вы хотите агрегировать во время создания задания. Обрабатываются любые отчеты, добавленные в контейнер входных данных с источниками отчетов, соответствующими сайту отчетов, указанному в параметре задания. Служба агрегации рассматривает только те отчеты в контейнере данных, которые соответствуют зарегистрированному источнику отчетов задания. Например, если зарегистрированным источником является https://exampleabc.com, будут включены только отчеты с https://exampleabc.com, даже если в контейнере содержатся отчеты с поддоменов ( https://1.exampleabc.com и т. д.) или совершенно других доменов ( https://3.examplexyz.com ).
job_parameters.debug_privacy_epsilon С плавающей точкой, Двойной Необязательное поле. Если значение не передано, используется значение по умолчанию 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".)