A/B テストを行う

共有ストレージ ワークレットを使用して A/B テストを実行する。

Shared Storage API はプライバシー さまざまな用途をサポートする汎用のクロスサイト ストレージ向けのサンドボックス案 見ていきましょう。その一例が A/B Testing です。 。

ユーザーをテストグループに割り当ててから、そのグループを共有 クロスサイト環境でアクセスされるストレージ。

A/B テストを試す

共有ストレージで A/B テストをテストするには、Chrome 104.0.5086.0 以降を使用していることを確認してください。chrome://settings/adPrivacy で、すべての広告プライバシー API を有効にします。

コマンドラインで --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames フラグを使用して共有ストレージを有効にすることもできます。

コードサンプルでテストする

複数のサイトで A/B テストを実施することで、期待どおりの効果が得られるかどうかを確認できます。広告主またはコンテンツ制作者は、ユーザーに割り当てられているグループに基づいて、異なるコンテンツや広告を表示することを選択できます。グループの割り当ては共有ストレージに保存されますが、データの引き出しはできません。

この例では、次のようになります。

  • ab-testing.js は、コントロールと 2 つのテストコンテンツをマッピングするフレームに埋め込む必要があります。このスクリプトは、テストの共有ストレージ ワークレットを呼び出します。
  • ab-testing-worklet.js は、ユーザーに割り当てられているグループを返して表示する共有ストレージ ワークレットです。

ab-testing.js

// Randomly assigns a user to a group 0 or 1
function getExperimentGroup() {
  return Math.round(Math.random());
}

async function injectContent() {
  // Register the Shared Storage worklet
  await window.sharedStorage.worklet.addModule('ab-testing-worklet.js');

  // Assign user to a random group (0 or 1) and store it in Shared Storage
  window.sharedStorage.set('ab-testing-group', getExperimentGroup(), {
    ignoreIfPresent: true,
  });

  // Run the URL selection operation
  const fencedFrameConfig = await window.sharedStorage.selectURL(
    'ab-testing',
    [
      { url: `https://your-server.example/content/default-content.html` },
      { url: `https://your-server.example/content/experiment-content-a.html` }
    ],
    {
      resolveToConfig: true
    }
  );

  // Render the chosen URL into a fenced frame
  document.getElementById('content-slot').config = fencedFrameConfig;
}

injectContent();

ab-testing-worklet.js

class SelectURLOperation {
  async run(urls, data) {
    // Read the user's experiment group from Shared Storage
    const experimentGroup = await sharedStorage.get('ab-testing-group');

    // Return the corresponding URL (first or second item in the array)
    return urls.indexOf(experimentGroup);
  }
}

register('ab-testing', SelectURLOperation);

Use cases

All available use cases for Select URL API can be found in this section. We'll continue to add examples as we receive feedback and discover new test cases.

意見交換とフィードバックの提供

Select URL API の提案は現在、活発な議論と開発が進められており、今後変更される可能性があります。

Select URL API に関する皆様のご意見をぜひお聞かせください。