Reklam teknolojileri ölçüm API'lerini (Attribution Reporting API veya Private Aggregation API) tetiklediğinde şifrelenmiş raporlar Chrome tarayıcıdan / istemci tarafından reklam teknolojisinin raporlama kaynağına sahip bir .well-known URL olan reklam teknolojisinin raporlama uç noktasına gönderilir. Raporlama uç noktası, şifrelenmiş raporları toplamak için reklam teknolojisi tarafından barındırılır.
API başına uç noktalar şunlardır:
Private Aggregation
- Hata ayıklama
[reporting-origin]/.well-known/private-aggregation/debug/report-shared-storage - Canlı
[reporting-origin]/.well-known/private-aggregation/report-shared-storageveya/.well-known/private-aggregation/report-protected-audience
- Hata ayıklama
İlişkilendirme Raporları
- Hata ayıklama
[reporting-origin]/.well-known/attribution-reporting/debug/report-aggregate-attribution - Şu an
[reporting-origin]/.well-known/attribution-reporting/report-aggregate-attribution
- Hata ayıklama
Reklam teknolojisi sağlayıcılar, raporları bir POST çağrısı aracılığıyla JSON biçiminde alır. Reklam teknolojisi sağlayıcılar bu JSON raporlarını toplar ve daha sonra bunları, Toplama Hizmeti'nde kullanılan AVRO biçimine dönüştürür. Dönüştürüldükten sonra AVRO raporları, daha sonra toplu işleme için reklam teknolojisinin bulut depolama alanında saklanır.
Reklam teknolojisi gruplama için hazır olduğunda, reklam teknolojisinin bulut depolama alanından raporların alındığı toplama hizmeti aracılığıyla bir toplama işi isteğini tetikler. Toplama Hizmeti, reklam teknolojisinin bulut depolama alanında barındırılır ve izin verilenler listesinde bir resim içermelidir.
Alınan raporlar aşağıdaki gibi görünür:
Private Aggregation API
{
"aggregation_coordinator_origin": "https://publickeyservice.msmt.aws.privacysandboxservices.com",
"aggregation_service_payloads": [ {
"key_id": "1a2baa3f-5d48-46cf-91f0-772633c12640",
"payload": "8Cjr1s3FVkCYkjzBvyzJn14yardVjd5N4vLCA69LQAPbIkJ0B58hAqUGBCNXpvTjW9ZpIoZbCSiUOsUDuoA/S+tqVolLMkame6sWC07cfUmZcVsbU+La3pzTMtCgdtNc8MIWgD3C63CMw7rWroRlechewVUajvAYVK/0HJq0YyGrTiFZZm36zi0jjyHLAXKV8p1Lvy1d0o/wnBxC5oVo5BV6LPkxqQEcoYS2GyixUuht6wD0RzuH+BxxuH6vY/ynp2xDrnwftjvqwDUAxUWLFTunthM6BXZVxlrvOBim1h2dvPqWSyKZ5gafo+MgW9EM4SraavNM3XzZSCjdtAfSMJMrynSu2j0opyAq+9e1jq1xeYN00yZrJ0Y/GTI45IGjgCnVmvmuoI9ucW2SnXP31CQBwHqk4gtUgMsYGFSUYfhtnAQ/8TSbaXyS2LX+cQW87LqkvIraWw6o37O24VFBreFoFFXpu3IUeCZfji+Sr4/ykfZuHeMzQbBavyNnHKzPZlbLSXMiucx4/vWzYyOzHeIlbtupXVvbi40V2PieDShaSbjI266kGgFkeCk6z51AaAGebDPtRT1lhBpcoQ6JdF0Yp5VWSnyFARKFtCZ1aEBrlUlrEHLUQY/pFtmDxJQiicRz1YPjR8jRr3C7hlRhWwov0dMocqnMz5209hHGVZWSsaGc9kWjtxREW2ULXfoIwOGbX+WZsyFW2RhXksQPJ5fhyNc4ROkAzUthLb68gC5e0yZHvmLIAU4hcWe0UanJv+jRljn8PAPaJHKFUxQNJyBA7mTbn5mkpycxGrX6T3ZYdPHqvckqt9llJZWjr8NneizzZFRuJk423BDs38fXkvcTAsAckd2Zu0u2KC45WR93sN2/CWrqB7/QU9BsgNdonl/ehAWhU1LbcRRvBTcR9+0wL7vRL7cv5LG3+gRYRKsWI6U2nDSWp0cNpo9+HU0JNiifa5X0cguihqU2bSk6ABozgRtCZ7m+7eqWXMLSzBdmc1CPUoQppo6Wmf6ujdNqI6v2S6pDH781lph8Z2v7ZpxGdhVVPEL51cVn"
} ],
"debug_key": "1234",
"shared_info": "{\"api\":\"shared-storage\",\"report_id\":\"05e3b948-cb8d-4404-be29-bfeac7ad9710\",\"reporting_origin\":\"https://privacy-sandbox-demos-dsp.dev\",\"scheduled_report_time\":\"1707784729\",\"version\":\"0.1\"}"
}
Attribution Reporting API
{
"aggregation_coordinator_origin": "https://publickeyservice.msmt.aws.privacysandboxservices.com",
"aggregation_service_payloads": [ {
"key_id": "2dee0f3f-2aee-4a4a-8238-9154ed3d6f72",
"payload": "pHvTHhcxvNKaCmnLpvYQsXlJpiNRuFO5Zj1QqUlqgWPOfuoHLfiXiFjmpvY8a53/OYnS4bKwHwJReFcofldsu8E9BzTTJ3CEk+B7vbEjnDPaljhpIBMTuQXy3QHGK4slWR/yNZVm2uXRWR/DVVzXziBoTDjN7qaPstRoLKUUMdfY2u8oq4tnLY00Y+NDZttZ4wJvC7hPmvY3lqHjdl14JPD2ytZZ4NViYzno3WKdH/oZc0jhGK4zI38lAM0qpahF/B9yb4zOu7IRIjQpNx73P8naDyddxLldoVlW/qHpO04FguWymscvI/8i6NwUR6Kj8seRlWS0iIUhETt/ai3lilKUHUb+uz0YG2kxjoXq7Ldk+MP56nNl67ZRNi2YZ7bOGI/okYWoT/wt2uWPe/5xAEMmadxl0hQQrG7YXHRSD8rDnaVPXo+AKIxdg727yJeB1ZENZvovl/kIevdRAmdBe2h1U3J6Uz6psly/46fvjgkj5QD+kO2uaYirzvmwS19luJsN/Qvh/R3ZO4qlJIQI0nDJPWwUJ4ODpyVmj4a0xQp3t2ESEnf4EmY7+khn3xpF5+MwEWKES2ZeDf7SHalR99pvZA8G3Fr8M0PWFmT00cmKCBwpQgZyd3Eay70UlqdkbFEedxiCVWKNNOUz41m5KG/7K3aR+dYx57l57Wct4gOFQg3jiUEBJWrFIVCXf12BT5iz5rBQh1N1CUt2oCOhYL/sPuBl6OV5GWHSIj8FUdpoDolqKXWINXfE88MUijE2ghNRpJN25BXIErUQtO9wFQv7zotC6d2BIaF0x8AkKg/7yzBQRySX/FZP3H3lMkpOz9rQMV8DjZ2lz7nV4k6CFo8qhT6cpYJD7GpYl81xJbglNqcJt5Pe5YUHrdBMyAFsTh3yoJvYnhQib/0xVN/a93lbYccxsd0yi375n4Xz0i1HUoe2ps+WlU8XysAUA1agG936eshaY1anTtbJbrcoaH+BNSacKiq4saprgUGl4eDjaR/uBhvUnO52WkmAGon8De3EFMZ/kwpPBNSXi7/MIAMjotsSKBc19bfg"
} ],
"shared_info": "{\"api\":\"attribution-reporting\",\"attribution_destination\":\"https://privacy-sandbox-demos-shop.dev\",\"report_id\":\"5b052748-f5fb-4f14-b291-de03484ed59e\",\"reporting_origin\":\"https://privacy-sandbox-demos-dsp.dev\",\"scheduled_report_time\":\"1707786751\",\"source_registration_time\":\"0\",\"version\":\"0.1\"}",
"source_debug_key": "123456789",
"trigger_debug_key": "123456789"
}
JSON'u AVRO raporlarına dönüştürme
Toplu işleme sırasında, toplanabilir raporlar AVRO biçiminde olmalıdır. AVRO raporu oluşturmak için rapor AVRO şemasına (AVSC) ihtiyacınız vardır.
Toplama Hizmeti GitHub deposunda örnek bir JavaScript kodu bulunmaktadır.
Aşağıda, toplanabilir raporlar için AVRO şeması verilmiştir. Raporların farklı alanları payload, key_id ve shared_info'dir.
{
"type": "record",
"name": "AggregatableReport",
"fields": [
{
"name": "payload",
"type": "bytes"
},
{
"name": "key_id",
"type": "string"
},
{
"name": "shared_info",
"type": "string"
}
]
}
| Parametre | Tür | Açıklama |
|---|---|---|
payload |
Bayt |
Canlı / üretim raporları için yükün base64 kodunun çözülerek payload konumundan bir bayt dizisine dönüştürülmesi gerekir.
|
debug_cleartext_payload |
Bayt |
Hata ayıklama raporları için yükün base64 kodunun çözülüp debug_cleartext_payload öğesinden bir bayt dizisine dönüştürülmesi gerekir.
|
key_id |
Dize | Bu, raporda bulunan key_id dizesi olacaktır. key_id, 128 bitlik evrensel olarak benzersiz bir tanımlayıcı olacaktır. |
shared_info |
Dize | Bu, raporun shared_info alanında bulunan değiştirilmemiş dizedir. |
Aşağıda örnek bir rapor JSON'u verilmiştir:
{
"aggregation_coordinator_identifier": "aws-cloud",
"aggregation_service_payloads": [{
"debug_cleartext_payload": "omRkYXhgaJldmFsdWVEAAAAgGZidWNrZXRQAAAAAAAAAAAAAAAAAAAFWW1vcGVyYX",
"key_id": "3c6e2850-edf6-4886-eb70-eb3f2a7a7596",
"payload": "oapYz92Mb1yam9YQ2AnK8dduTt2RwFUSApGcKqXnG1q+aGXfJ5DGpSxMj0NxdZgp7Cq"
}],
"debug_key": "1234",
"shared_info":
"{\"api\":\"shared-storage\",\"debug_mode\":\"enabled\",\"report_id\":\"b029b922-93e9-4d66-a8c6-8cdeec762aed\",\"reporting_origin\":\"https://privacy-sandbox-demos-dsp.dev\",\"scheduled_report_time\":\"1719251997\",\"version\":\"0.1\"}"
}
Çıkış alanı AVRO
Reklam teknolojisi, toplama hizmetini kullanarak özet raporlar oluşturmak için toplanabilir raporlara ve alan dosyasına ihtiyaç duyar. Toplanabilir raporlar, raporlama kaynağında alınan ve AVRO biçimine dönüştürülen JSON raporlarıdır. Çıkış alanları, toplanabilir raporlarınızdan toplanacak ve özet raporlara yazılacak önceden bildirilmiş anahtarları içerir. İlişkilendirme Raporlama'daki anahtarlar ve Private Aggregation'daki anahtarlar hakkında daha fazla bilgi edinin. Çıkış alan adı, alan grubu değerini içerir ve grup değeri, grup anahtarınız olur.
Alan adı dosyasının da aşağıdaki şema kullanılarak AVRO biçiminde olması gerekir:
{
"type": "record",
"name": "AggregationBucket",
"fields": [
{
"name": "bucket",
"type": "bytes",
"doc": "A single bucket that appears in the aggregation service output. 128-bit integer encoded as a 16-byte big-endian bytestring."
}
]
}
Paket Anahtarı
Paket anahtarı, paket anahtarının onaltılık bayt dizesi olmalıdır. Bunun bir örneği, ondalık sistemde 1369 anahtarına sahip olmaktır. Onaltılık sisteme dönüştürüldüğünde 559 olur. Ardından, 559 sayısını çıkış alanı AVRO'ya eklenecek bir bayt dizisine dönüştürmeniz gerekir.
Toplu işlem raporları
Gizli erişim limitleri ve gruplandırma hakkında daha fazla bilgi edinmek için gruplandırma stratejileri belgesine gidin. Ayrıca, toplanabilir bir raporun yalnızca belirli bir süre içinde gruplandırılabileceğini unutmayın. Bir rapor, scheduled_report_time ile toplu iş çalıştırma tarihi arasında MAX_REPORT_AGE değerini (şu anda 90 gün) aşmamalıdır.
Özet raporlar
Toplama Hizmeti, gruplandırmadan sonra özet raporu AVRO biçiminde oluşturur. Özet raporunda results.avsc şeması kullanılır.
Özet rapor, output_data_blob_prefix içinde createJob isteğinde belirtilen output_data_bucket_name paketinde yer alır.
debug_run'ın etkinleştirildiği Toplama Hizmeti grupları için iki rapor oluşturur. Özet rapor ve hata ayıklama özeti raporu. Hata ayıklama özeti raporu, output_data_blob_prefix/debug klasöründe yer alır.
Oluşturulan hata ayıklama raporunda debug_results.avsc şeması kullanılır.
Hem özet hem de hata ayıklama raporu [output_data_blob_prefix]-1-of-1.avro olarak adlandırılır. output_data_blob_prefix değeriniz summary/summary.avro ise rapor, summary-1-of-1.avro adıyla özet klasöründe yer alır.
results.avsc
{
"type": "record",
"name": "AggregatedFact",
"fields": [
{
"name": "bucket",
"type": "bytes",
"doc": "Histogram bucket used in aggregation. 128-bit integer encoded as a 16-byte big-endian bytestring. Leading 0-bits will be left out."
},
{
"name": "metric",
"type": "long",
"doc": "Metric associated with the bucket"
}
]
}
debug_results.avsc
{
"type": "record",
"name": "DebugAggregatedFact",
"fields": [
{
"name": "bucket",
"type": "bytes",
"doc": "Histogram bucket used in aggregation. 128-bit integer encoded as a 16-byte big-endian bytestring. Leading 0-bits will be left out."
},
{
"name": "unnoised_metric",
"type": "long",
"doc": "Unnoised metric associated with the bucket."
},
{
"name": "noise",
"type": "long",
"doc": "The noise applied to the metric in the regular result."
}
{
"name":"annotations",
"type": {
"type": "array",
"items": {
"type":"enum",
"name":"bucket_tags",
"symbols":["in_domain","in_reports"]
}
}
]
}
Dönüştürüldükten sonra özet raporunuz örnekteki gibi görünür results.json. debug_run etkinleştirildiğinde hata ayıklama özeti raporu, örnek debug_results.json'ya benzer bir sonuç döndürür.
results.json (örnek)
Toplama hizmetinden gelen AVRO raporları, paket anahtarının ve paket değerlerinin ek gürültüsüyle birlikte özet / toplu değerin bulunduğu yerlerde benzer görünebilir.
{
"bucket": "\u0005Y",
"metric": 26308
}
debug_results.json (örnek)
Toplama hizmetinden gelen AVRO raporlarının hata ayıklaması, paket anahtarlarınızı aldığınız, unnoised_metric (gürültü içermeyen paket anahtarlarının özeti) ve unnoised_metric'ya eklenen gürültü ile ilgili olarak aşağıdakine benzer görünmelidir.
{
"bucket": "\u0005Y",
"unnoised_metric": 128,
"noise": -17948,
"annotations": [
"in_reports",
"in_domain"
]
}
Açıklamalarda in_reports ve / veya in_domain da yer alır. Bu, şu anlama gelir:
in_reports: Bucket anahtarı, toplanabilir raporlarda kullanılabilir.in_domain: Bucket anahtarı,output_domainAVRO dosyasında bulunur.