Множество факторов могут создать проблемы при работе со службой агрегирования, включая форматирование отчетов, проблемы с выходным доменом и проблемы с координатором. Чтобы точно диагностировать проблему, важно понимать источник ошибки и все метаданные, которые он содержит.
Темы руководства:
- Проверьте настройку API отслеживания клиентов.
- Устранение неполадок при настройке источника отчетов
- Устранение неполадок в сводных отчетах
- Проверьте версию развертывания
Проверьте настройку API отслеживания клиентов.
Убедившись, что ваш исходный сервер правильно зарегистрирован, выполните следующие шаги:
Проверьте, как вы запускаете отчеты. Убедитесь, что вы получаете правильный формат отчета в соответствии с используемым API:
- API отчетов по атрибуции
- Для API отчетов по атрибуции убедитесь, что вы успешно зарегистрировали источник ( событие и сводка ). Чтобы выполнить регистрацию триггера ( событие и сводку ), убедитесь, что JSON, переданный в
Attribution-Reporting-Register-Trigger
корректен, используя инструмент проверки заголовка . (Подробнее о сводных отчетах API отчетов по атрибуции )
- Для API отчетов по атрибуции убедитесь, что вы успешно зарегистрировали источник ( событие и сводка ). Чтобы выполнить регистрацию триггера ( событие и сводку ), убедитесь, что JSON, переданный в
- API частного агрегирования
- Отчетность в API частного агрегирования можно выполнить с помощью функции
contributeToHistogram
. Убедитесь, что вы передаете ключ и значение сегмента. Ключ сегмента должен быть в форматеBigInt
. (Подробнее читайте API частного агрегирования )
- Отчетность в API частного агрегирования можно выполнить с помощью функции
- API отчетов по атрибуции
Если вы запускаете отчеты, как рекомендовано, но проблема по-прежнему возникает, проверьте, наблюдаются ли ошибки в консоли разработчика Chrome на вкладках «Консоль» и «Сеть».
Если вам нужна дополнительная поддержка по устранению неполадок для этих клиентских API, перейдите к нашему руководству по отладке API отчетов об атрибуции и API частного агрегирования + общее хранилище .
Устранение неполадок при настройке источника отчетов
Исходный сервер отчетов — это место, где вы объявили правильные соответствующие .well-known
конечные точки, на которые будут отправляться агрегированные отчеты. Убедитесь, что развернутый исходный сервер отчетов правильно зарегистрирован.
Получает ли ваш источник отчетности отчеты?
Убедитесь, что развернутый исходный сервер отчетов правильно зарегистрирован. На этом сервере вы объявили правильные соответствующие .well-known
конечные точки, на которые будут отправляться агрегированные отчеты.
API измерения на стороне клиента | Соответствующая агрегируемая конечная точка |
---|---|
Отчеты по атрибуции | POST /.well-known/attribution-reporting/report-aggregate-attribution |
Частное агрегирование + общее хранилище (комбинированное) | POST/.well-known/private-aggregation/report-shared-storage |
Частное агрегирование + защищенная аудитория (комбо) | POST /.well-known/private-aggregation/report-protected-audience |
Убедившись, что исходный сервер правильно зарегистрирован, выполните следующие действия:
Проверьте, как вы запускаете отчеты. Убедитесь, что вы получаете правильный формат отчета в соответствии с используемым API:
Если вы запускаете отчеты, как рекомендовано, но проблема по-прежнему возникает, проверьте, наблюдаются ли ошибки в консоли разработчика Chrome на вкладках «Консоль» и «Сеть».
Если вам нужна дополнительная поддержка по устранению неполадок для этих клиентских API, продолжайте руководство по отладке для API отчетов об атрибуции и API частного агрегирования + общее хранилище .
Устранение неполадок в сводных отчетах
Агрегированные отчеты создаются API-интерфейсами измерения на стороне клиента и отправляются в источник отчетов. Эти отчеты должны быть преобразованы в формат AVRO
вашей конечной точкой отчетов. Если с этим преобразованием возникли проблемы или если сами отчеты не повреждены, вы можете увидеть ошибки в службе агрегирования.
Правильно ли конвертируются ваши агрегированные отчеты?
Убедитесь, что ваша конечная точка отчетов ( .well-known/…
) правильно преобразует данный агрегированный отчет JSON в AVRO
.
Ошибки API, которые могут возникнуть из-за этой проблемы, следующие:
Ошибка | DECRYPTION_ERROR |
---|---|
Пример | "result_info": {
"return_code": "REPORTS_WITH_ERRORS_EXCEEDED_THRESHOLD",
"return_message": "Aggregation job failed early because the number of reports excluded from aggregation exceeded threshold.",
"error_summary": {
"error_counts": [
{
"category": "DECRYPTION_ERROR",
"count": 1,
"description": "Unable to decrypt the report. This may be caused by: tampered aggregatable report shared info, corrupt encrypted report, or other such issues."
},
{
"category": "NUM_REPORTS_WITH_ERRORS",
"count": 1,
"description": "Total number of reports that had an error. These reports were not considered in aggregation. See additional error messages for details on specific reasons."
}
],
"error_messages": []
}
}
|
Проверять | Это может произойти из-за ошибок расшифровки, которые могут быть вызваны неправильно созданными отчетами AVRO, будь то агрегированные отчеты AVRO или AVRO выходного домена. Правильно ли формируются сводные отчеты AVRO? Полезную нагрузку необходимо будет декодировать в формате Base64 и преобразовать в массив байтов. Убедитесь, что отчет находится в формате avro. Кроме того, проверьте правильность выходного домена AVRO . Бакеты преобразуются в экранированный шестнадцатеричный формат Юникода, а затем преобразуются в массив байтов. Если вы видите несколько ошибок, вы можете узнать больше об ошибках на странице Aggregation Service GitHub . |
Ошибка | DECRYPTION_KEY_NOT_FOUND |
---|---|
Пример | "result_info": {
"return_code": "REPORTS_WITH_ERRORS_EXCEEDED_THRESHOLD",
"return_message": "Aggregation job failed early because the number of reports excluded from aggregation exceeded threshold.",
"error_summary": {
"error_counts": [{
"category": "DECRYPTION_KEY_NOT_FOUND",
"count": 1,
"description": "Could not find decryption key on private key endpoint."
}, {
"category": "NUM_REPORTS_WITH_ERRORS",
"count": 1,
"description": "Total number of reports that had an error. These reports were not considered in aggregation. See additional error messages for details on specific reasons."
}],
"error_messages": []
}
}
|
Проверять | API отчетов по атрибуции Для API отчетов по атрибуции эта ошибка может быть вызвана проблемой с регистрацией триггера. Проверьте, что они зарегистрировали свой триггер в правильном облаке, используя поле aggregation_coordinator_origin ( инструкции здесь ). Вы также можете предоставлять отчеты, зашифрованные в AWS, для их развертывания службы агрегации в Google Cloud или отчеты, зашифрованные в Google Cloud, для их развертывания в AWS. Попросите их проверить, какая конечная точка открытого ключа использовалась для шифрования агрегированных отчетов. Для Google Cloud поле Aggregation_coordinator_origin в агрегируемом отчете должно иметь вид https://publickeyservice.msmt.gcp.privacysandboxservices.com. Для AWS это https://publickeyservice.msmt.aws.privacysandboxservices.com. API частного агрегирования Для API частного агрегирования вам необходимо будет определить AggregationCoordinatorOrigin, используя пример из раздела выбора координатора агрегации в пояснении к API частного агрегирования. Укажите https://publickeyservice.msmt.gcp.privacysandboxservices.com в качестве Например: sharedStorage.run('someOperation', {'privateAggregationConfig':
{'aggregationCoordinatorOrigin': ' https://publickeyservice.msmt.gcp.privacysandboxservices.com'}});
|
Ошибка | DECRYPTION_KEY_FETCH_ERROR |
---|---|
Пример | "result_info": {
"return_code": "REPORTS_WITH_ERRORS_EXCEEDED_THRESHOLD",
"return_message": "Aggregation job failed early because the number of reports excluded from aggregation exceeded threshold.",
"error_summary": {
"error_counts": [
{
"category": "DECRYPTION_KEY_FETCH_ERROR",
"count": 1,
"description": "Fetching the decryption key for report decryption failed. This can happen using an unapproved aggregation service binary, running the aggregation service binary in debug mode, key corruption or service availability issues."
},
{
"category": "NUM_REPORTS_WITH_ERRORS",
"count": 1,
"description": "Total number of reports that had an error. These reports were not considered in aggregation. See additional error messages for details on specific reasons."
}
]
}
}
|
Проверять | В случае возникновения проблем с неутвержденным двоичным файлом или режимом отладки проблема будет устранена использованием правильного двоичного файла. Следуйте инструкциям здесь, чтобы использовать готовый AMI или создать свой AMI самостоятельно . |
Для проверки выполните следующие действия:
Вы можете использовать инструмент
aggregatable_report_converter
для преобразования агрегированных отчетов, собранных вами из конечной точки .well-known, в AVRO и создания выходных ключей домена . (Примечание. Выходные файлы домена должны представлять собой 16-байтовую байтовую строку с прямым порядком байтов .)Следуйте инструкциям в лаборатории кода вашего поставщика общедоступного облака, чтобы собрать отчеты об отладке и запустить задание службы агрегации с использованием ключей выходного домена: a. Google Cloud: выполните шаги с 3.1.2 по 3.2.3 службы агрегации Google Cloud Codelab b. Веб-сервисы Amazon: выполните шаги с 4.2 по 5.3 из лаборатории кода AWS службы агрегации .
Если это возвращает ответ SUCCESS
, ваше преобразование работает.
Исправны ли ваши сводные отчеты?
Убедитесь, что ваш сводный отчет, ключи выходного домена и общая информация не повреждены. Если вам нужна дополнительная информация, обратитесь к примерам кода для преобразования агрегированных отчетов и создания файлов домена.
Ошибки API, которые могут возникнуть в связи с этой проблемой, следующие:
Ошибка | INPUT_DATA_READ_FAILED |
---|---|
Конечная точка | создать работу |
Проверять | Корректны ли поля input_data_bucket_name , input_data_blob_prefix , output_data_bucket_name и output_data_blob_prefix в запросе createJob ? Есть ли в расположении входных данных отчета отчеты, подлежащие обработке? Есть ли у вас разрешение на чтение из места хранения отчетов и домена вывода? |
Для проверки выполните следующие действия:
Проверьте сводный отчет:
- Создавайте агрегированные отчеты и используйте инструмент
aggregatable_report_converter
для преобразования выходного домена в форматAVRO
. - Запустите запрос
createJob
с этим сводным отчетом и выходным файлом домена. - Если это возвращает
SUCCESS
, это означает, что агрегируемый отчет не поврежден. Если это возвращает ошибку, либо у вас возникла проблема с агрегированным отчетом, либо с отчетом и доменом. - Перейдите к проверке файла домена на следующем шаге.
- Создавайте агрегированные отчеты и используйте инструмент
Проверьте файл выходного домена:
- Создайте файл выходного домена и используйте инструмент
aggregatable_report_converter
для создания агрегированного отчета. - Запустите запрос
createJob
с этим сводным отчетом и выходным файлом домена. - Если это возвращает
SUCCESS
, это означает, что выходной домен не поврежден и существует проблема с вашим кодом для создания агрегированного отчета. - Перейдите к следующему шагу, чтобы проверить
shared_info
.
- Создайте файл выходного домена и используйте инструмент
Проверьте общую информацию:
- Убедитесь, что у вас включены отчеты с поддержкой отладки. В отчетах с включенной отладкой будет доступно поле
debug_cleartext_payload
. - Создайте отчет об отладке для использования с локальным инструментом тестирования и используйте
debug_cleartext_payload
в качестве полезных данных. - Запустите инструмент локального тестирования с файлом вашего домена. Если это
SUCCESS
, это означает, что вашshared_info
подделан.
- Убедитесь, что у вас включены отчеты с поддержкой отладки. В отчетах с включенной отладкой будет доступно поле
Если вы подозреваете какие-либо дальнейшие ошибки или вмешательство, соберите сводный отчет JSON, ключ домена, созданный сводный отчет AVRO
и выходной домен и перейдите к следующим шагам .
Проверьте новую версию развертывания
Убедитесь, что ваша версия службы агрегации по-прежнему поддерживается. Определив, какую версию вы используете, проверьте список выпусков службы агрегации и убедитесь, что ваша версия не имеет предупреждения об окончании поддержки: This release has reached its end of support on { date }
. Следующие инструкции по определению развернутой версии предназначены для поддерживаемых общедоступных облаков.
Шаги для Google Cloud
- Перейдите туда, где ваш Compute Engine > Экземпляры виртуальных машин .
- Щелкните экземпляр виртуальной машины с
-worker-
в имени. - Найдите раздел
Custom Metadata
, а затем найдите ключtee-image-reference
.- Примечание. Каждая виртуальная машина, подготовленная Terraform в Google Cloud, должна иметь эти метаданные ( метаданные
tee-image-reference
в рабочем модуле ).
- Примечание. Каждая виртуальная машина, подготовленная Terraform в Google Cloud, должна иметь эти метаданные ( метаданные
- Значение
tee-image-reference
будет содержать номер версии. Например, номер версии следующего пути —v2.9.1
. Это готовые изображения, которые хранятся в реестре артефактов проекта Google Cloud.- Примечание. Это актуально, если вы используете готовые ресурсы, если нет — они должны соответствовать тому, что вы лично назвали и пометили своим изображением. (пример:
us.docker.pkg.dev/<gcp_project_name>/artifacts:aggregation-service- container-artifacts-worker_mp_go_prod:2.9.1
)
- Примечание. Это актуально, если вы используете готовые ресурсы, если нет — они должны соответствовать тому, что вы лично назвали и пометили своим изображением. (пример:
Шаги для веб-сервисов Amazon
- Перейдите к экземплярам EC2 в консоли Amazon Web Services.
- Щелкните экземпляр с именем
aggregation-service-operator-dev-env
. - На странице экземпляра найдите «Подробности» > AMI (образ компьютера Amazon).
- Имя вашей версии должно быть включено в путь к образу. Например, номер версии следующего пути —
v2.9.1
.- Примечание. Это актуально, если вы используете готовые ресурсы, если нет — они должны соответствовать тому, что вы лично назвали и пометили своим изображением. (пример:
aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z
)
- Примечание. Это актуально, если вы используете готовые ресурсы, если нет — они должны соответствовать тому, что вы лично назвали и пометили своим изображением. (пример:
Следующие шаги
Если вы не видите решения проблемы со службой агрегирования, сообщите нам об этом, оставив заявку на GitHub или отправив форму технической поддержки .