コンテンツ制作者や広告主の多くは、自分のコンテンツを見たユニーク ユーザー数を知りたいと考えています。共有ストレージを使用すると、広告、埋め込み動画、パブリケーションをユーザーが初めて見たことを記録し、同じユーザーが異なるサイトで重複してカウントされないようにすることができます。その後、Private Aggregation API を使用して、リーチの概要レポートを出力できます。
Shared Storage API は、汎用のクロスサイト ストレージに関するプライバシー サンドボックスの提案であり、多くのユースケースに対応しています。Private Aggregation API は、クロスサイト データを集計できる共有ストレージの出力です。
ユニークリーチの測定を試す
共有ストレージとプライベート集計を使用したユニークリーチ測定をテストするには、Chrome M107 以降を使用していることを確認してください。次に、chrome://flags/#privacy-sandbox-ads-apis
でプライバシー サンドボックスの広告 API のテストフラグを有効にします。
コマンドラインで --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames
フラグを使用して共有ストレージを有効にすることもできます。
コードサンプルでテストする
さまざまなサイトでコンテンツを閲覧したユニーク ユーザー数を追跡したい場合、この例では、コンテンツ ID ディメンションが集計キー(バケット)にエンコードされ、カウントが集計可能値として使用されます。概要レポートには、「約 391 人のユーザーがコンテンツ ID 123 を表示しました」などの情報が表示されます。
次に例を示します。
* unique-reach-measurement.js
はフレームを介して読み込まれ、共有ストレージ ワークレットを読み込みます。
* unique-reach-measurement-worklet.js
: 共有ストレージのフラグを確認し、Private Aggregation API を介してレポートを送信する共有ストレージ ワークレット。
async function measureUniqueReach() {
// Load the Shared Storage worklet
await window.sharedStorage.worklet.addModule('reach-measurement-worklet.js');
// Run the reach measurement operation
await window.sharedStorage.run('reach-measurement', { data: { contentId: '1234' } });
}
measureUniqueReach();
// Learn more about noise and scaling from the Private Aggregation fundamentals
// documentation on Chrome blog
const SCALE_FACTOR = 65536;
function convertContentIdToBucket(contentId) {
return BigInt(contentId);
}
class ReachMeasurementOperation {
async run(data) {
const { contentId } = data;
// Read from Shared Storage
const key = 'has-reported-content';
const hasReportedContent = (await this.sharedStorage.get(key)) === 'true';
// Do not report if a report has been sent already
if (hasReportedContent) {
return;
}
// Generate the aggregation key and the aggregatable value
const bucket = convertContentIdToBucket(contentId);
const value = 1 * SCALE_FACTOR;
// Send an aggregatable report via the Private Aggregation API
privateAggregation.sendHistogramReport({ bucket, value });
// Set the report submission status flag
await this.sharedStorage.set(key, true);
}
}
// Register the operation
register('reach-measurement', ReachMeasurementOperation);
フィードバックを共有
共有ストレージの提案は現在検討中であり、将来変更される可能性があります。この API をお試しいただき、フィードバックがございましたら、ぜひお寄せください。
- GitHub: 提案を確認し、質問を投稿し、ディスカッションに参加する。
- Shared Storage API に関するお知らせ: メーリング リストに参加したり、過去のお知らせを確認したりできます。
- デベロッパー サポート: プライバシー サンドボックス デベロッパー サポート リポジトリで質問したり、ディスカッションに参加したりできます。