Korunan Kitle'deki verileri ve Ortak Depolama'daki siteler arası verileri kullanarak toplu veri raporları oluşturun.
Web'in kullandığı kritik özellikleri sağlamak için Özel Toplama API'si, siteler arası verileri gizliliği koruyacak şekilde toplama ve raporlama amacıyla tasarlanmıştır.
Uygulama durumu
Teklif | Durum |
---|---|
Paylaşılan depolama alanı için rapor doğrulamasıyla geçersiz Private Aggregation API raporlarını önleme Açıklayıcı |
Chrome'da kullanılabilir |
Özel toplama hata ayıklama modu, üçüncü taraf sağlayıcı uygunluğuna bağlı olarak kullanılabilir GitHub sorunu |
Chrome M119'da kullanılabilir |
Rapor gecikmesini azaltma Açıklayıcı |
Chrome M119'da kullanılabilir |
Paylaşılan depolama alanı için özel toplama katkısı zaman aşımı Açıklama |
M119'da kullanılabilir |
Google Cloud için Private Aggregation API ve Aggregation Service desteği Açıklama |
Chrome M121'de kullanılabilir |
Toplanabilir rapor yükü için dolgu Açıklama |
Chrome M119'da kullanılabilir |
auctionReportBuyers raporlaması için özel toplama hata ayıklama modu kullanılabilir Açıklama |
Chrome M123'te kullanılabilir |
Filtreleme kimliği desteği Açıklama |
Chrome M128'de kullanılabilir |
İstemci tarafı katkı birleştirme Açıklama |
Chrome M129'da kullanılabilir |
Private Aggregation API nedir?
Private Aggregation API, geliştiricilerin Protected Audience API'deki verileri ve Shared Storage'daki siteler arası verileri kullanarak toplu veri raporları oluşturmasına olanak tanır.
Bu API'nin ana işlevi contributeToHistogram()
olarak bilinir. Histografik işlem, tanımladığınız her gruptaki (API'de toplama anahtarı olarak bilinir) kullanıcılar arasında verileri toplamanıza olanak tanır.
Histogram çağrınız değerleri toplar ve özet rapor biçiminde gürültülü bir toplu sonuç döndürür. Örneğin, raporda her kullanıcının içeriğinizi gördüğü sitelerin sayısı gösterilebilir veya üçüncü taraf komut dosyanızda bir hatayla karşılaşılabilir. Bu işlem başka bir API'nin iş parçasında gerçekleştirilir.
Örneğin, daha önce Paylaşılan Depolama'ya demografik ve coğrafi veriler kaydettiyseniz New York'ta siteler arası içeriklerinizi yaklaşık olarak kaç kullanıcının gördüğünü gösteren bir histogram oluşturmak için Gizli Toplama API'yi kullanabilirsiniz. Bu ölçüm için toplama yapmak istiyorsanız coğrafya boyutunu toplama anahtarına kodlayabilir ve kullanıcıları toplanabilir değerde toplayabilirsiniz.
Temel kavramlar
Private Aggregation API'yi bir toplama anahtarı ve birleştirilebilir bir değerle çağırdığınızda tarayıcı, birleştirilebilir bir rapor oluşturur.
Toplanabilir raporlar, toplanma ve gruplandırma için sunucunuza gönderilir. Gruplandırılmış raporlar daha sonra Toplama Hizmeti tarafından işlenir ve bir özet rapor oluşturulur.
Private Aggregation API ile ilgili temel kavramlar hakkında daha fazla bilgi edinmek için Private Aggregation API'nin temelleri belgesine bakın.
İlişkilendirme raporlamasından farklılıklar
Private Aggregation API, Attribution Reporting API ile birçok benzerliğe sahiptir. Attribution Reporting, dönüşümleri ölçmek için tasarlanmış bağımsız bir API'dir. Private Aggregation ise Protected Audience API ve Shared Storage gibi API'lerle birlikte siteler arası ölçümler için tasarlanmıştır. Her iki API de, özet raporlar oluşturmak için toplama hizmeti arka ucu tarafından kullanılan birleştirilebilir raporlar oluşturur.
İlişkilendirme raporlaması, farklı zamanlarda gerçekleşen bir gösterim etkinliğinden ve dönüşüm etkinliğinden toplanan verileri ilişkilendirir. Gizli toplama, tek bir siteler arası etkinliği ölçer.
Bu API'yi test etme
Private Aggregation API'yi yerel olarak test etmek için chrome://settings/adPrivacy
altındaki tüm reklam gizliliği API'lerini etkinleştirin.
Deneme ve katılım bölümünde test hakkında daha fazla bilgi edinin.
Demoyu kullanma
Paylaşılan Depolama için Özel Toplama API'sinin demosuna goo.gle/shared-storage-demo adresinden, koduna ise GitHub'dan erişebilirsiniz. Demo, istemci tarafı işlemleri uygular ve sunucunuza gönderilen birleştirilebilir bir rapor oluşturur.
Protected Audience API için Private Aggregation API demosu ileride yayınlanacaktır.
Kullanım alanları
Private Aggregation, siteler arası ölçüm için genel amaçlı bir API'dir ve Shared Storage ile Protected Audience API iş parçacıklarında kullanılabilir. İlk adım, hangi bilgileri toplamak istediğinize karar vermektir. Bu veri noktaları, toplama anahtarlarınızın temelini oluşturur.
Paylaşılan depolama alanı
Ortak Depolama, sızıntıyı önlemek için siteler arası verileri güvenli bir ortamda okumanıza ve yazmanıza olanak tanır. Özel Toplama API'si ise Ortak Depolama'da depolanan siteler arası verileri ölçmenize olanak tanır.
Tekil erişim ölçümü
İçeriklerini kaç benzersiz kullanıcının gördüğünü ölçmek isteyebilirsiniz. Private Aggregation API, "861 Content ID'sini yaklaşık 317 benzersiz kullanıcı gördü." gibi bir yanıt sağlayabilir.
Paylaşılan Depolama'da, kullanıcının içeriği görüp görmediğini belirtmek için bir işaret belirleyebilirsiniz. İşaretin bulunmadığı ilk ziyarette, Özel Toplama'ya bir çağrı yapılır ve ardından işaret ayarlanır. Siteler arası ziyaretler dahil olmak üzere kullanıcının sonraki ziyaretlerinde, işaret ayarlanmışsa Paylaşılan Depolama'yı kontrol edebilir ve Özel Toplama'ya rapor göndermeyi atlayabilirsiniz. Bu ölçümleri uygulama yöntemleri hakkında daha fazla bilgi edinmek için erişim teknik makalemizi inceleyin.
Demografik grup ölçümü
İçeriğinizi farklı sitelerde görmüş kullanıcıların demografisini ölçmek isteyebilirsiniz.
Özel toplama, "Yaklaşık 317 benzersiz kullanıcı 18-45 yaş aralığında ve Almanya'dan." gibi bir yanıt sağlayabilir. Üçüncü taraf bağlamındaki demografi verilerine erişmek için Paylaşılan Depolama'yı kullanın. Daha sonra, yaş grubu ve ülke boyutlarını toplama anahtarında kodlayarak özel toplama içeren bir rapor oluşturabilirsiniz.
K+ sıklık ölçümü
Önceden seçilmiş bir K değeri için belirli bir tarayıcıda bir içeriği veya reklamı en az K kez gören kullanıcıların sayısını ölçmek isteyebilirsiniz.
Özel toplama, "Yaklaşık 89 kullanıcı, 581 Content ID'yi en az 3 kez gördü." gibi bir yanıt sağlayabilir. Bir sayaç, paylaşılan depolama alanında farklı sitelerden artırılıp bir iş parçasında okunabilir. Sayı K'ya ulaştığında Özel Toplama kullanılarak bir rapor gönderilebilir.
Çoklu dokunma ilişkilendirme
Reklam teknolojilerinin, paylaşılan depolama alanı + özel toplama içinde MTA'nın nasıl uygulanacağını anlayabilmesi için bu rehberlik geliştirici sitesinde yayınlanacaktır.
Protected Audience API ile
Protected Audience API, yeniden hedefleme ve özel kitle kullanım alanlarını etkinleştirir. Gizli toplama ise alıcı ve satıcı iş parçacıklarındaki etkinlikleri bildirmenize olanak tanır. API, açık artırma tekliflerinin dağılımını ölçme gibi görevler için kullanılabilir.
Protected Audience API iş parçasından, verilerinizi doğrudan contributeToHistogram()
kullanarak toplayabilir ve Protected Audience API için özel bir uzantı olan contributeToHistogramOnEvent()
'u kullanarak verilerinizi bir tetikleyiciye göre raporlayabilirsiniz.
Kullanılabilir işlevler
Aşağıdaki işlevler, Paylaşılan Depolama ve Protected Audience API iş parçacıklarında bulunan privateAggregation
nesnesinde kullanılabilir.
contributeToHistogram()
Toplama anahtarının bucket
ve toplanabilir değerin value
olduğu privateAggregation.contributeToHistogram({ bucket: <bucket>, value: <value> })
işlevini çağırabilirsiniz. bucket
parametresi için bir BigInt
gereklidir. value
parametresi için tam sayı bir sayı gereklidir.
Erişim ölçümü için paylaşılan depolama alanında nasıl çağrılabileceğine dair bir örnek aşağıda verilmiştir:
iframe.js
// Cross-site iframe code
async function measureReach() {
// Register worklet
await window.sharedStorage.worklet.addModule('worklet.js');
// Run reach measurement operation
await window.sharedStorage.run('reach-measurement', {
data: { contentId: '1234' }
});
}
measureReach();
worklet.js
// Shared storage worklet code
function convertContentIdToBucket(campaignId){
// Generate aggregation key
}
// The scale factor is multiplied by the aggregatable value to
// maximize the signal-to-noise ratio. See "Noise and scaling"
// section in the Aggregation Fundamentals document to learn more.
const SCALE_FACTOR = 65536;
class ReachMeasurementOperation {
async run(data) {
const key = 'has-reported-content';
// Read the flag from Shared Storage
const hasReportedContent = await sharedStorage.get(key) === 'true';
// Don't send report if the flag is set
if (hasReportedContent) {
return;
}
// Send histogram report
// Set the aggregation key in `bucket`
// Bucket examples: 54153254n or BigInt(54153254)
// Set the scaled aggregatable value in `value`
privateAggregation.contributeToHistogram({
bucket: convertContentIdToBucket(data.contentId),
value: 1 * SCALE_FACTOR
});
// Set the flag in Shared Storage
await sharedStorage.set(key, true);
}
}
register('reach-measurement', ReachMeasurementOperation);
Önceki kod örneği, siteler arası iframe içeriği her yüklendiğinde Gizli Toplama'yı çağırır. Iframe kodu, iş parçacığını yükler ve iş parçası, içerik kimliğini bir toplama anahtarına (bucket) dönüştürerek Özel Toplama API'yi çağırır.
contributeToHistogramOnEvent()
Yalnızca Protected Audience API iş parçacıklarında, yalnızca belirli bir etkinlik gerçekleştiğinde rapor göndermek için tetikleyici tabanlı bir mekanizma sağlarız. Bu işlev, grubun ve değerin açık artırmanın o noktasında henüz mevcut olmayan sinyallere bağlı olmasına da olanak tanır.
privateAggregation.contributeToHistogramOnEvent(eventType, contribution)
yöntemi, tetikleyici etkinliği belirten bir eventType
ve etkinlik tetiklendiğinde gönderilecek contribution
alır. Tetikleyici etkinlik, açık artırma sona erdikten sonra açık artırmanın kendisinden (ör. açık artırma kazanma veya kaybetme etkinliği) gelebilir ya da reklamı oluşturan korumalı bir çerçeveden gelebilir.
Açık artırma etkinlikleri için rapor göndermek üzere reserved.win
, reserved.loss
ve reserved.always
olmak üzere iki ayrılmış anahtar kelime kullanabilirsiniz. Çitlenmiş bir çerçeveden gelen bir etkinlik tarafından tetiklenen bir rapor göndermek için özel etkinlik türü tanımlayın. Etkinliği çitle çevrili bir çerçeveden tetiklemek için Çitle Çevrili Çerçeveler Reklam Raporlama API'sinde bulunan fence.reportEvent()
yöntemini kullanın.
Aşağıdaki örnekte, açık artırma kazanan etkinliği tetiklendiğinde bir gösterim raporu, reklamı oluşturan çitli çerçeveden bir click
etkinliği tetiklenirse bir tıklama raporu gönderilir. Bu iki değer, tıklama oranını hesaplamak için kullanılabilir.
function generateBid(interestGroup, auctionSignals, perBuyerSignals, trustedBiddingSignals, browserSignals) {
// …
privateAggregation.contributeToHistogramOnEvent("reserved.win", {
bucket: getImpressionReportBucket(),
value: 1
});
privateAggregation.contributeToHistogramOnEvent("click", {
bucket: getClickReportBuckets(), // 128-bit integer as BigInt
value: 1
});
Daha fazla bilgi edinmek için Genişletilmiş Özel Toplama Raporlaması açıklamalı kılavuzuna göz atın.
enableDebugMode()
Üçüncü taraf çerezleri kullanılmaya devam edecek olsa da hata ayıklama modunu etkinleştirerek daha kolay hata ayıklama ve test yapmanızı sağlayan geçici bir mekanizma sunacağız. Hata ayıklama raporu, çerez tabanlı ölçümlerinizi Gizli Toplama ölçümlerinizle karşılaştırmanıza yardımcı olur ve API entegrasyonunuzu hızlı bir şekilde doğrulamanızı sağlar.
Çalışma alanında privateAggregation.enableDebugMode()
çağrısı yapıldığında hata ayıklama modu etkinleştirilir. Bu mod, birleştirilebilir raporların şifrelenmemiş (net metin) yükünü içermesine neden olur. Ardından bu yük verimlerini Toplama Hizmeti yerel test aracı ile işleyebilirsiniz.
Hata ayıklama modu yalnızca üçüncü taraf çerezlerine erişmesine izin verilen arayanlar tarafından kullanılabilir. Arayanın üçüncü taraf çerezlerine erişimi yoksa enableDebugMode()
sessizce başarısız olur.
Ayrıca, BigInt
'un hata ayıklama anahtarı olarak kullanılabileceği privateAggregation.enableDebugMode({ <debugKey: debugKey> })
çağrısını yaparak hata ayıklama anahtarını ayarlayabilirsiniz. Hata ayıklama anahtarı, çerez tabanlı ölçümden ve Özel Toplama ölçümünden gelen verileri ilişkilendirmek için kullanılabilir.
Bunlar, bağlam başına yalnızca bir kez çağrılabilir. Sonraki tüm çağrılar istisna oluşturur.
// Enables debug mode
privateAggregation.enableDebugMode();
// Enables debug mode and sets a debug key
privateAggregation.enableDebugMode({ debugKey: BigInt(1234) });
Rapor doğrulaması
Private Aggregation API, kullanıcı gizliliğini korurken siteler arası ölçümü etkinleştirir. Ancak kötü niyetli kişiler bu ölçümlerin doğruluğunu değiştirmeye çalışabilir. Bunu önlemek için raporların gerçekliğini doğrulamak üzere bir bağlam kimliği kullanabilirsiniz.
Bağlam kimliği ayarlamak, nihai toplu sonuçlara katkıda bulunurken verilerin doğru olmasını sağlar. Bu, aşağıdaki yöntemlerle yapılır:
- Yasal olmayan veya sahte raporları önleme: Raporların, kötü niyetli kişilerin rapor oluşturmasını zorlaştıracak şekilde yasal ve gerçek API çağrıları aracılığıyla oluşturulduğundan emin olun.
- Raporların yeniden oynatılmasını önleme: Eski raporların yeniden kullanılmasıyla ilgili tüm girişimleri tespit edip reddederek her raporun toplu sonuçlara yalnızca bir kez katkıda bulunmasını sağlayın.
Paylaşılan Depolama
Toplanabilir bir rapor gönderebilen bir işlem çalıştırmak için Ortak Depolama'yı kullanırken iş parçasının dışında tahmin edilemeyen bir kimlik ayarlayabilirsiniz.
Bu kimlik, çalışma sayfasından oluşturulan rapora yerleştirilir. run()
veya selectURL()
Paylaşılan Depolama yöntemlerini çağırırken privateAggregationConfig
anahtarının altındaki seçenekler nesnesi içinde belirtebilirsiniz.
Örneğin:
sharedStorage.run('measurement-operation', {
privateAggregationConfig: {
contextId: 'exampleId123456789abcdeFGHijk'
}
});
Bu kimlik ayarlandıktan sonra, raporun Paylaşılan Depolama İşleminizden gönderildiğini doğrulamak için kullanabilirsiniz. Bilgi sızıntısını önlemek için, contributeToHistogram()
çağrılarının sayısından bağımsız olarak, paylaşılan depolama alanı işlemi başına tam olarak bir rapor gönderilir (katkı yapılmamış olsa bile).
Private Aggregation API, birleştirilebilir raporları bir saate kadar rastgele bir gecikmeyle gönderir. Ancak bir raporu doğrulamak için bağlam kimliği ayarlamak bu gecikmeyi azaltır. Bu durumda, paylaşılan depolama alanı işleminin başlamasından itibaren 5 saniyelik sabit ve daha kısa bir gecikme olur.
Örnek iş akışı (yukarıdaki şemada gösterildiği gibi):
- Paylaşılan Depolama Alanı işlemi, bir bağlam kimliği belirten özel bir toplama yapılandırmasıyla çalıştırılır ve toplanabilir bir rapor oluşturulur.
- Bağlam kimliği, sunucunuza gönderilen oluşturulan birleştirilebilir rapora yerleştirilir.
- Sunucunuz, oluşturulan birleştirilebilir raporları toplar.
- Sunucunuzdaki işlemler, raporları gruplandırıp Toplama Hizmetinize göndermeden önce her bir birleştirilebilir rapordaki bağlam kimliğini depolanan bağlam kimliklerinizle karşılaştırarak geçerliliğini kontrol eder.
Bağlam kimliği doğrulaması
Toplayıcı sunucunuza gelen raporlar, Toplama Hizmeti'ne gönderilmeden önce birkaç farklı şekilde doğrulanabilir. Geçersiz bağlam kimliklerine sahip raporlar, bağlam kimliği aşağıdaki durumlarda reddedilebilir:
- Bilinmiyor: Sisteminizin oluşturmadığı bir bağlam kimliği içeren bir rapor alırsanız raporu reddedebilirsiniz. Bu sayede, bilinmeyen veya kötü amaçlı kişilerin toplama ardışık düzeninize veri eklemesi engellenir.
- Yinelenen: Aynı bağlam kimliğine sahip iki (veya daha fazla) rapor alırsanız hangi raporların silineceğini seçmeniz gerekir.
- Spam algılamada işaretlendi:
- Bir kullanıcıdan şüpheli etkinlik (ör. kullanıcının etkinliğinde ani bir değişiklik) algılarsanız raporunu işleme alırken reddedebilirsiniz.
- Raporları, içerik kimlikleriyle ve alakalı sinyallerle (ör. kullanıcı aracısı, yönlendirme kaynağı vb.) birlikte saklayabilirsiniz. Daha sonra, kullanıcı davranışını analiz ederken ve yeni spam göstergelerini belirlerken, depolanan raporları ilişkili bağlam kimliklerine ve sinyallerine göre yeniden değerlendirebilirsiniz. Bu sayede, başlangıçta işaretlenmemiş olsalar bile şüpheli etkinlik gösteren kullanıcıların raporlarını reddedebilirsiniz.
Etkileşim kurma ve geri bildirim paylaşma
Private Aggregation API aktif olarak tartışılmakta olup gelecekte değiştirilebilir. Bu API'yi denedikten sonra geri bildiriminiz olursa bizimle paylaşın.
- GitHub: Açıklamayı okuyun, soru sorun ve tartışmaya katılın.
- Geliştirici desteği: Privacy Sandbox Geliştirici Desteği deposunda soru sorabilir ve tartışmalara katılabilirsiniz.
- Gizli toplama ile ilgili en son duyurulardan haberdar olmak için Shared Storage API grubuna ve Protected Audience API grubuna katılın.