Bu kılavuzda, v2.12.0 itibarıyla Aggregation Service'te kullanıma sunulan PRIVACY_BUDGET_EXHAUSTED hataları için yeni gizlilik bütçesi hata ayıklama özelliğinin nasıl kullanılacağı açıklanmaktadır. Belgelendiği gibi, toplanabilir raporlar işler aracılığıyla Toplama Hizmeti dağıtımına gönderilirken altyapı, gizlilik bütçesi kullanımını sınırlamak için TEE (Güvenilir Yürütme Ortamı) koordinatörlerinde bulunan Toplanabilir Raporlama Hesap Hizmeti'ni kullanır. Hatırlatma olarak, gizlilik bütçesi, bilgi kazanımını sınırlamak için bu toplanabilir raporların özet rapor oluşturmak üzere kullanılabileceği maksimum sayıyı belirler. Bir raporun ayrılan gizlilik bütçesinin ötesinde herhangi bir toplama işlemi PRIVACY_BUDGET_EXHAUSTED hatasıyla başarısız olur.
Bu kılavuzda, v2.12.0 itibarıyla, işlerinizde karşılaşılan sonraki PRIVACY_BUDGET_EXHAUSTED hatalarına katkıda bulunan ilgili raporların yardımcı JSON dosyasını oluşturan ve depolayan bir hata ayıklama özelliği açıklanmaktadır.
Bütçe kurtarma ile ilgileniyorsanız GitHub'daki herkese açık rehberimize göz atın.
Ön koşul
Rehberin devamında, aşağıdakilere sahip olduğunuz varsayılır:
- Seçtiğiniz herkese açık bulutta (Google Cloud Platform veya Amazon Web Services) dağıtılan Aggregation Service
v2.12.0(veya sonraki bir sürüm).
PRIVACY_BUDGET_EXHAUSTED hatasıyla başarısız olan bir işi ayıklama
Bu noktada, getJob uç noktasını en son iş isteği kimliğinizle yürüttüğünüzü ve aşağıdaki yanıta benzer bir PRIVACY_BUDGET_EXHAUSTED hatası aldığınızı varsayıyoruz. Toplama hizmetinden v2.12.0, herkese açık bulut depolama paketinizde bulunan yeni oluşturulmuş bir gizlilik bütçesi tükenmiş hata ayıklama JSON dosyası almanız gerekir.
Yollar, return_message ile belirtilir ve aşağıdaki biçimlerde olur:
- Dosya yolu:
<output_data_bucket_name>/<output_data_blob_prefix>/ - Dosya adı:
privacy_budget_exhausted_<request_received_at_timestamp>.json
{
"job_status": "FINISHED",
"request_received_at": <utc timestamp>,
"request_updated_at": <utc timestamp>,
"job_request_id": <customer assigned job id>,
…
"request_processing_started_at": <utc timestamp>,
"result_info": {
"return_code": "PRIVACY_BUDGET_EXHAUSTED",
"return_message": "com.google.aggregate.adtech.worker.exceptions.AggregationJobProcessException: Insufficient privacy budget for one or more aggregatable reports. No aggregatable report can appear in more than one aggregation job. Information related to reports that do not have budget can be found in the following file:
File path: ags-privacy-budget-codelab/output-bucket/output-domain Filename: privacy budget exhausted debugging information <utc timestamp> \n com.google.aggregate.adtech.worker.aggregation.concurrent.ConcurrentAggregationProcessor.consumePrivacyBudgetUnits(ConcurrentAggregationProcessor.java:525) \n com.google.aggregate.adtech.worker.aggregation.concurrent.ConcurrentAggregationProcessor.process(ConcurrentAggregationProcessor.java:319) \n com.google.aggregate.adtech.worker.WorkerPullWorkService.run(WorkerPullWorkService.java:157)",
"error_summary": {
"error_counts": "",
"error_messages": ""
}
}
}
Hata Çözüm Adımları
Herkese açık bulut depolama paketinizde size sağlanan privacy_budget_exhausted_debugging_information_<utc timestamp>.json çıkışını bulup açın. Bu, return_message içinde sağlanan <output_data_bucket_name>/<output_data_blob_prefix> yolunda bulunabilir.
Bu JSON dosyasında, filtering_id (varsayılan olarak 0) ve relevant_shared_info özelliklerini giriş toplu raporlarıyla shared_info karşılaştırın.
Eşleşme bulunması, bu raporların ayrılan bütçeyi aştığı ve işin başarısız olmasına neden olduğu anlamına gelir. Bu nedenle, gelecekteki işlerde bu raporların filtrelenmesi gerekir. Eşleşen raporların farklı bir filtreleme kimliğiyle yeniden kullanılabileceğini unutmayın. Toplu raporlar AVRO dosyanızdaki eşleşen raporları belirleyip kaldırdıktan sonra işinizi yeniden çalıştırmaya hazırsınız demektir.
Aşağıda, privacy_budget_exhausted_debugging_information_<utc timestamp>.json çıkışına dair bir örnek verilmiştir.
{
"privacy_budget_exhausted_info" : {
"aggregatable_input_budget_consumption_info" : [ {
"aggregateable_input_budget_id" : {
"filtering_id" : 0,
"relevant_shared_info" : {
"api" : "attribution-reporting",
"attribution_destination" : "f246a4e6-dde9-46a5-a6b2-ea523b484d0a",
"reporting_origin" : "foo.com",
"scheduled_report_time" : 1738814400.000000000,
"source_registration_time" : 1738713600.000000000,
"version" : "0.1"
}
}
}, {
"aggregateable_input_budget_id" : {
"filtering_id" : 0,
"relevant_shared_info" : {
"api" : "attribution-reporting",
"attribution_destination" : "f246a4e6-dde9-46a5-a6b2-ea523b484d0a",
"reporting_origin" : "foo.com",
"scheduled_report_time" : 1738796400.000000000,
"source_registration_time" : 1738713600.000000000,
"version" : "0.1"
}
}
} ]
}
}
Sonraki Adımlar
Özel Korumalı Alan Durum Kontrol Paneli'nde veya Herkese açık GitHub deposunda aynı sorunla karşılaşan başka kullanıcılar olup olmadığını kontrol edin. Toplama hizmeti sorununuzun çözüldüğünü görmüyorsanız GitHub'da sorun kaydı oluşturun veya teknik destek formunu gönderin.