買い物客の追跡環境設定の管理

信頼とユーザーのプライバシーの尊重という Salesforce のコアバリューに準拠して、B2C Commerce プラットフォームには、買い物客が追跡環境設定を制御するための包括的なメカニズムが用意されています。当社の追跡拒否 (DNT) のサポートでは、買い物客がデータの使用方法を制御できるようにしながら、現地の法律に準拠することができますデベロッパーは、追跡環境設定をアプリケーションにシームレスに組み込み、買い物客の選択を尊重できます。

このページ内のリンクには、既存のお客様のみがアクセスできるものがあります。Commerce Cloud リポジトリにアクセスする方法については Salesforce Commerce Cloud GitHub リポジトリとアクセスを参照してください。

Tip

SCAPI では、getAccessToken を使用して SLAS トークンを取得するときに、追跡環境設定を指定します。追跡環境設定は、そのトークンを使用するすべてのリクエストで考慮されます。

ユーザーアクティビティの追跡 

買い物客のアクセストークンを取得したら、クエリパラメーター dnt=true を指定して追跡を無効にします。買い物客が追跡をオプトアウトすると、買い物客のアクティビティは戦略的なおすすめ商品の強化に利用されなくなり、最近見た商品やリアルタイムのパーソナライズされたおすすめ商品などのサービスではアナリティクスの追跡が無効になります。詳細については、B2C Commerce 追跡拒否の影響および B2C Commerce でのプライバシー環境設定の指定を参照してください。

SCAPI には、ユーザー追跡環境設定を管理するために、次の機能が用意されています。

  • SLAS JWT には DNT クレームが含まれており、デフォルトでは、
    • 信頼できる代理エージェント (Trusted Agent On Behalf (TAOB)) を除くすべてのリクエストに対して 0 (追跡が有効) に設定されています。dnt=false が指定されている場合、JWT には dnt:0 クレームが含まれます。
    • TAOB リクエストの場合は 1 (追跡は無効)。dnt=true が指定されている場合、JWT には dnt:1 クレームが含まれます。
  • SCAPI レスポンスには、渡された買い物客の環境設定を反映した DNT HTTP レスポンスヘッダー (dnt:1 (追跡を無効にする) または dnt:0 (追跡を有効にする)) が含まれます。
  • 追跡環境設定は保存されるため、環境設定を変更しない限り、更新時にも同じ情報が返されます。
  • 買い物客が追跡環境設定を変更した場合は、リフレッシュトークンを使用して新しいトークンをリクエストし、新しい環境設定を渡します。
  • フックとカスタム API では、session.isTrackingAllowed() を使用して買い物客の追跡環境設定を考慮します。詳細については、B2C Commerce Script API のドキュメントを参照してください。

Commerce Cloud レポートデータの品質を最大限に高めるために、デフォルトで追跡を許可します。追跡を無効にすると、収集されたデータから個人を特定できる情報 (PII) が削除されるため、これらのレコードは一部のレポートとダッシュボードに表示されなくなります。

Note

DNT 環境設定の指定 

追跡をオプトアウトするには、dnt=true を提供します。

1RESPONSE=$(
2    curl "$BASE_AUTH/oauth2/token" \
3        -sS --fail-with-body \
4        -u "$CLIENT:$SECRET" \
5        -d "dnt=true" \
6        -d "channel_id=$SITE" \
7        -d 'grant_type=client_credentials'
8)
9TOKEN=$(echo $RESPONSE | jq -r '.access_token')
10
11# DNT preference is included in the JWT:
12echo $TOKEN | jq -rR 'split(".") | .[1] | @base64d | fromjson | {dnt}'
13REFRESH=$(echo $RESPONSE | jq -r '.refresh_token')
14
15# DNT preferences are stored, so using the refresh token without providing
16# a new preference returns whatever was previously chosen:
17RESPONSE=$(
18    curl "$BASE_AUTH/oauth2/token" \
19        -sS --fail-with-body \
20        -u "$CLIENT:$SECRET" \
21        -d 'grant_type=refresh_token' \
22        -d "refresh_token=$REFRESH"
23)
24TOKEN=$(echo $RESPONSE | jq -r '.access_token')
25echo $TOKEN | jq -rR 'split(".") | .[1] | @base64d | fromjson | {dnt}'

カスタム API との統合 

カスタム API とフックを使用すると、注文に外部追跡サービスを使用し、DNT 環境設定を渡すことができます。

  • session.isTrackingAllowed() を使用してください。
  • 呼び出しの際に、DNT 環境設定がサードパーティの統合またはアナリティクスコンポーネントに渡されていることを確認してください。
1// dw.ocapi.shop.order.afterPOST
2exports.afterPOST = function (order) {
3  if (session.isTrackingAllowed()) {
4    sendAnalyticsToExternalTrackingService();
5  }
6};
1window.addEventListener('load', function() {
2	const accessToken = getAccessToken();
3	const isTrackingAllowed = getTrackingFromAccessToken(accessToken);
4
5	if (isTrackingAllowed) {
6		const currentPageUrl = window.location.href;
7		trackPageView(currentPageUrl);
8	}
9});

追記