Диагностика

Вот рекомендуемый алгоритм действий для проверки корректности загруженных данных о мероприятиях и аудитории, а также для выявления проблем с данными.

  1. Отправляйте запросы на отправку мероприятий , а также на добавление или удаление участников из числа зрителей .

  2. Проверьте общий статус каждого запроса. Успешный запрос имеет Status с code , равным 0 (значение перечисления OK , HTTP-ответ 200 OK ), и возвращает объект IngestEventsResponse , IngestAudienceMembersResponse или RemoveAudienceMembersResponse .

    Если запрос не удался, измените его, устранив ошибку, и отправьте запрос снова.

    Если запрос выполнен успешно, сохраните request_id ответа, чтобы использовать его для получения диагностической информации на следующем шаге.

  3. Для каждого успешного request_id с определенным идентификатором отправляйте запрос RetrieveRequestStatus .

  4. Проверьте каждый RetrieveRequestStatusResponse чтобы убедиться в корректной работе загрузки данных и выявить любые проблемы с ними.

  5. Исправьте ошибки в данных.

  6. Вернитесь к шагу 1 и повторяйте действия, пока не устраните все проблемы с загрузкой файлов.

Создание запросов

Объект RetrieveRequestStatusRequest имеет одно поле request_id . Отправляйте один запрос для каждого успешного запроса с указанным идентификатором при отправке запросов на прием данных.

Отзывы

В объекте RetrieveRequestStatusResponse параметр request_status_per_destination содержит отдельную запись для каждого пункта назначения в соответствующем запросе на прием данных.

Например, если ваш IngestAudienceMembersRequest содержал 3 записи в списке destinations для отправки данных 3 разным аудиториям, то ответ со статусом будет содержать 3 записи в request_status_per_destination (по одной записи на каждую аудиторию).

Проверьте общий статус пункта назначения.

В качестве первого шага проверьте поле request_status , чтобы определить, завершил ли API Data Manager обработку данных для destination RequestStatusPerDestination . Вот возможные значения request_status :

  • PROCESSING : Данные для пункта назначения все еще обрабатываются.
  • SUCCESS : Обработка запроса для пункта назначения завершена без ошибок.
  • FAILURE : Все записи для целевого объекта не были обработаны из-за ошибок.
  • PARTIAL_SUCCESS : Часть записей для целевого объекта была успешно обработана, но другие не были обработаны из-за ошибок.

Проверьте статус мероприятия или аудитории для каждого пункта назначения.

Проверьте поле статуса, соответствующее типу запроса на прием данных. В каждом RequestStatusPerDestination установлено только одно из следующих полей:

статус приема событий

Поле events_ingestion_status заполняется, если запрос был типа IngestEventsRequest .

Проверьте значение record_count объекта IngestEventStatus , чтобы убедиться, что общее количество полученных записей соответствует вашим ожиданиям. record_count включает как успешные, так и неудачные записи.

Статус приема информации участниками аудитории

Поле audience_members_ingestion_status заполняется, если запрос был типа IngestAudienceMembersRequest . Вот поле IngestAudienceMembersStatus , которое нужно проверить для каждого типа данных об аудитории. Заполнено только одно из этих полей.

user_data_ingestion_status

Проверьте значение record_count объекта IngestUserDataStatus , чтобы убедиться, что общее количество полученных записей соответствует вашим ожиданиям. record_count включает как успешно полученные, так и неудачно полученные записи.

Проверьте значение user_identifier_count , чтобы убедиться, что количество полученных идентификаторов пользователей соответствует вашим ожиданиям.

Если запрос содержал достаточное количество записей, параметр upload_match_rate_range содержит диапазон коэффициентов совпадения для записей в запросе.

mobile_data_ingestion_status

Проверьте record_count объекта IngestMobileDataStatus , чтобы убедиться, что общее количество полученных записей соответствует вашим ожиданиям. record_count включает как успешно полученные, так и неудачно полученные записи.

Проверьте значение параметра mobile_id_count , чтобы убедиться, что количество полученных идентификаторов мобильных устройств соответствует вашим ожиданиям.

pair_data_ingestion_status

Проверьте значение record_count объекта IngestPairDataStatus , чтобы убедиться, что общее количество полученных записей соответствует вашим ожиданиям. record_count включает как успешно полученные, так и неудачно полученные записи.

Проверьте значение pair_id_count , чтобы убедиться, что количество полученных идентификаторов пар соответствует вашим ожиданиям.

ppid_data_ingestion_status

Проверьте record_count объекта IngestPpidDataStatus , чтобы убедиться, что общее количество полученных записей соответствует вашим ожиданиям. record_count включает как успешно полученные, так и неудачно полученные записи.

Проверьте значение ppid_count , чтобы убедиться, что количество полученных PPID соответствует вашим ожиданиям.

user_id_data_ingestion_status

Проверьте значение record_count объекта IngestUserIdDataStatus , чтобы убедиться, что общее количество полученных записей соответствует вашим ожиданиям. record_count включает как успешно полученные, так и неудачно полученные записи.

Проверьте значение user_id_count , чтобы убедиться, что количество полученных идентификаторов пользователей соответствует вашим ожиданиям.

Статус удаления участников аудитории

Поле audience_members_removal_status заполняется, если запрос был типа RemoveAudienceMembersRequest . Вот поле RemoveAudienceMembersStatus которое нужно проверить для каждого типа данных об аудитории. Заполнено только одно из этих полей.

user_data_removal_status
Статус удаления пользовательских данных .
mobile_data_removal_status
Статус отключения мобильной передачи данных .
pair_data_removal_status
Статус удаления данных PAIR .
ppid_data_removal_status
Статус удаления данных PPID .
user_id_data_removal_status
Статус удаления данных идентификатора пользователя

Проверьте значение record_count , чтобы убедиться, что общее количество полученных записей соответствует вашим ожиданиям. record_count включает как успешные, так и неудачные записи.

Кроме того, проверьте значения user_identifier_count , mobile_id_count или pair_id_count , чтобы подтвердить общее количество полученных идентификаторов пользователей, мобильных идентификаторов или идентификаторов пар.

Проверьте предупреждения и ошибки.

Помимо полей статуса для пункта назначения и типа запроса, RetrieveRequestStatusResponse содержит подробную информацию о предупреждениях и ошибках, связанных с запросом.

  • Ошибка указывает на то, что API полностью отклонил запись.
  • Предупреждение указывает на то, что API не отклонил запись, но был вынужден проигнорировать часть данных записи.

Например, если Event содержит зашифрованные данные UserIdentifier и AdIdentifiers , такие как gclid , и данные UserIdentifier не могут быть расшифрованы, API Data Manager все равно обработает запись, используя AdIdentifiers , но вернет предупреждение PROCESSING_WARNING_REASON_USER_IDENTIFIER_DECRYPTION_ERROR .

Однако, если Event не содержит AdIdentifiers , а данные UserIdentifier не могут быть расшифрованы, API Data Manager отклоняет всю запись и сообщает об ошибке PROCESSING_ERROR_REASON_USER_IDENTIFIER_DECRYPTION_ERROR поскольку допустимое Event должно содержать хотя бы один из параметров ad_identifiers или user_data .

Ниже представлены поля ответа, содержащие информацию о предупреждениях и ошибках.

warning_info
Список объектов WarningCount . Каждый record_count WarningCount содержит reason с указанием типа предупреждения и количество записей, в которых были обнаружены предупреждения данного типа.
error_info
Список объектов ErrorCount . Каждый объект ErrorCount содержит reason ошибки и её тип, а также record_count указывающий количество записей, обработка которых завершилась с ошибкой данного типа.