ページトラッキング
サイト内でユーザーがページを移動する際の行動を追跡します。
テンプレート
以下のJavascriptコードテンプレートは、注文確認ページを除くすべてのページに配置する必要があります。
<script>
(function (d, w, s) {
var f = (w.fanplayr = w.fanplayr || { _i: [] });
f._i.push({
version: 3,
accountKey: '',
applyToCartUrl: '',
sessionOfferUrl: '',
userConsentMode: false,
// userConsentStatus: true(ユーザー同意ステータス: true)
// allowNegativeCurrencyAmounts: true(負の通貨金額を許可: true)
data: {
lineItemCount: 0,
numItems: 0,
gross: 0.0,
discount: 0.0,
discountCode: '',
pageType: '',
categoryId: '',
categoryName: '',
productId: '',
productName: '',
productSku: '',
productPrice: 0.0,
productUrl: '',
productImage: '',
currency: '',
products: [
{
id: '',
sku: '',
price: 0.0,
qty: 1,
name: ''
}
],
cartAction: 'override',
searchQuery: ''
},
custom_data: {
// ...
}
});
var js = d.createElement(s);
var fjs = d.getElementsByTagName(s)[0];
js.async = true;
js.src = 'https://cdn.fanplayr.com/client/production/loader.js';
fjs.parentNode.insertBefore(js, fjs);
})(document, window, 'script');
</script>設定
version
- タイプ:
integer - 範囲: すべてのページ
- 必須
Fanplayrプラットフォームで使用されるトラッキング形式のバージョン識別子。3に設定する必要があります。
accountKey
- タイプ:
string - 範囲: すべてのページ
- 必須
Fanplayrプラットフォームであなたのアカウントを識別するために使用される一意の文字列。
storeDomain
- タイプ:
string - 範囲: すべてのページ
- デフォルト:
window.location.hostnameの値
Fanplayrがセッションに関連付けるドメインをオプションで上書きするために使用できます。
connect
- タイプ:
object - 範囲: すべてのページ
- デフォルト:
undefined
拡張ユーザー識別のためのサーバーサイドページへのパス。
applyToCartUrl
- タイプ:
string - 範囲: すべてのページ
- デフォルト:
undefined
提供された場合、これによりFanplayrウィジェットがオファーコードを直接カートに適用できるようになります。これにより、訪問者が有料顧客に転換する手間を減らすことができます。カートへの適用セクションで詳細を確認してください。
sessionOfferUrl
- タイプ:
string - 範囲: すべてのページ
- デフォルト:
undefined
提供された場合、これによりFanplayrはセッションオファーセキュリティメソッドを使用できるようになります。セッションオファーセクションで詳細を確認してください。
allowOfferPrompt
- タイプ:
boolean | function - 範囲: すべてのページ
- デフォルト:
undefined
オファーフライアウトウィジェットは、オファーが適用されていない場合にウォレットを強制的に開くことで、収集されたオファーをカートに適用するようユーザーに促すように設定できます。デフォルトでは、この機能はカートページでのみトリガーされます。
このオプションは、現在のページ(ページタイプに関係なく)でこの機能を有効または無効にするために使用されます。関数が提供された場合、その戻り値が使用されます。
可能な値
true- カート以外のページを含む現在のページでオファープロンプトを許可します。false- 現在のページでオファープロンプトを無効にします。
値に関係なく、オファープロンプト機能は、現在カートにオファーが適用されていない場合にのみ使用されます。
userConsentMode
- タイプ:
boolean - 範囲: すべてのページ
- デフォルト:
undefined
Fanplayrがユーザーのデータを保存するために、ユーザーの同意を考慮する必要があるかどうかを決定します。
詳細については、データのユーザー同意を参照してください。
userConsentStatus
- タイプ:
boolean - 範囲: すべてのページ
- デフォルト:
undefined
userConsentModeがtrueに設定されている場合、これはユーザーがデータの保存に同意したかどうかを定義します。
詳細については、データのユーザー同意を参照してください。
allowNegativeCurrencyAmounts
- タイプ:
boolean - 範囲: すべてのページ
- デフォルト:
false
デフォルトでは、通貨変数の負の値は許可されず、代わりに 常に絶対正の値に変換されます。たとえば、grossに -100.00を指定すると、100.00(正の値)に変換されます。
この動作をオプトアウトし、負の通貨金額を 追跡したい場合(負のカート合計を追跡するなど)は、 allowNegativeCurrencyAmountsをtrueに設定してください。
この動作は以下のトラッキング変数に影響します。
トラッキング変数
以下の変数はdataオブジェクトで提供される必要があります。例:
{
version: 3,
accountKey: '7e43c8cddccade2b95ee5286ba89758a',
data: {
lineItemCount: 2,
numItems: 2,
gross: 89.90,
discount: 10.00
}
}lineItemCount
- タイプ:
integer - 範囲: すべてのページ
- 必須
現在カートに追加されている一意の商品の数。
numItems
- タイプ:
integer - 範囲: すべてのページ
- 必須
カートに追加されたすべてのアイテムの合計数量。
gross
- タイプ:
float - 範囲: すべてのページ
- 必須
現在カートにあるアイテムの合計金額(指定された通貨)。具体的には、割引、送料、税金前のカート内のアイテムの合計金額。
discount
- タイプ:
float - 範囲: すべてのページ
- 必須
これはカートに適用された割引の合計金額です。つまり、送料無料や送料割引のような割引はこの値を変更すべきではありません。
discountCode
- タイプ:
string - 範囲: すべてのページ
- 必須
カートに適用された割引コード(もしあれば)。複数の割引コードが適用されている場合は、コンマで区切ってください。
pageType
- タイプ:
string - 範囲: すべてのページ
- 必須
現在のページのタイプ。有効な値は次のとおりです。
home– ホームページ。prod– 商品ページ。cat– カテゴリページまたは商品リスト。srch– 特定の検索ページ、または検索結果ページ。cart– ショッピングカートページ。checkout- チェックアウトフローのページ(注文確認ページを除く)。blog- ブログページ。page– その他のページ。例: 'About' (会社概要), 'Contact' (お問い合わせ) など。
currency
- タイプ:
string - 範囲: すべてのページ
- デフォルト:
"USD"
追跡される商品およびカートの値のISO 4217通貨コード。
brands
- タイプ:
string[] - 範囲: ホーム、商品、カテゴリページ
現在のページに関連付けられたブランド名の配列。
categories
- タイプ:
string[] - 範囲: 商品およびカテゴリページ
- 必須
現在のページに関連付けられたカテゴリ名の配列。
categoryId
- タイプ:
string - 範囲: 商品およびカテゴリページ
- 非推奨。代わりにcategoriesを使用してください。
現在のカテゴリのID。カテゴリページおよび商品ページで指定する必要があります。
categoryName
- タイプ:
string - 範囲: 商品およびカテゴリページ
- 非推奨。代わりにcategoriesを使用してください。
利用可能な場合は、現在のカテゴリの名前。
productId
- タイプ:
string - 範囲: 商品ページ
- 必須
単一の一意な商品識別子。カートや注文内の商品を区別するために使用されます。
これは、個々の商品ページの閲覧をカートに追加された商品にリンクするためにも使用されます。Product.idで詳細を参照してください。
productSku
- タイプ:
string - 範囲: 商品ページ
- 必須
商品のSKU。これはproductIdと同じである場合がありますが、セグメンテーションオプションとしても利用可能です。
productPrice
- タイプ:
float - 範囲: 商品ページ
- 必須
ユーザーに表示される商品の単価。
基本価格と割引/セール価格を実装するカートの場合、商品がカートに追加されるときにユーザーに表示される価格が割引価格である場合は、割引価格を使用します。
productName
- タイプ:
string - 範囲: 商品ページ
- 必須
現在閲覧中の商品の名前。例: "Red Shoes" (赤い靴)。
productUrl
- タイプ:
string - 範囲: 商品ページ
- 必須
商品の詳細を表示するページのURL。このプロパティは、商品の「クイックビュー」を追跡する際に、実際の商品のページURLが正しく取得されるようにするために使用されます。
productImage
- タイプ:
string - 範囲: 商品ページ
- 必須
商品の画像のURL。
customerEmail
- タイプ:
string - 範囲: すべてのページ
現在のユーザーのメールアドレス。
customerId
- タイプ:
string - 範囲: すべてのページ
- 非推奨
これは、サイト内で内部的に使用されるユーザーの識別子です。新規ユーザーとリピートユーザーを追跡するために使用されます。
products
- タイプ:
Array<Product>| string - 範囲: すべてのページ
- デフォルト:
[]
現在ショッピングカートに入っている商品を表すオブジェクト(またはJSON)の配列。
この配列に格納する値の詳細については、Productオブジェクトを参照してください。
cartAction
- タイプ:
CartAction - 範囲: すべてのページ
- デフォルト:
"override"
これは、Fanplayrが現在のトラッキングコールにおけるカート関連データ(カート内の合計金額、カート内の商品など)をどのように処理するかを決定する特別な変数です。現在のトラッキングコールで利用できない場合、前のページビューからカートの詳細を引き継ぐために使用できます。
identities
- タイプ:
IdentityMap - 範囲: すべてのページ
ユーザーのID管理を改善するために、Fanplayr独自のユーザー識別子に他のユーザーIDを関連付けることができるIDマップオブジェクトです。詳細については、ID管理ドキュメントを参照してください。
searchQuery
- タイプ:
string - 範囲: 検索ページ
ウェブサイトの検索結果ページでユーザーが入力した検索語句やクエリを捕捉するために使用されます。pageTypeプロパティを参照してください。
カスタムデータ
必要に応じて、Fanplayrはサイトでのユーザー行動を追跡しながらカスタムデータを取得できます。このデータは、Fanplayrがネイティブでサポートしていないデータに対してセグメンテーションを行うために使用できます。
使用例としては、ユーザーの「ログイン済み」ステータス、内部セグメンテーション情報、または現在の店舗(例: Magento Enterpriseの使用時)の引き渡しが挙げられます。
この機能を使用するには、Fanplayrにご連絡いただければ設定をお手伝いいたします。
{
accountKey: '7e43c8cddccade2b95ee5286ba89758a',
// ...
custom_data: {
is_logged_in: '1',
internal_segment: 'general_user',
store: 'french',
}
}例
以下の例は、以下を追跡するために使用できます。
- 現在「Red Shoes」商品ページを閲覧しているユーザー
- すでにカートに2つの商品が追加されている:
- 10ドルのカップ2個
- 45ドルのTシャツ1枚
- カートに5ドルの割引を適用するクーポンコード「WINTER5」
<script>
(function (d, w, s) {
var f = (w.fanplayr = w.fanplayr || { _i: [] });
f._i.push({
version: 3,
accountKey: '7e43c8cddccade2b95ee5286ba89758a',
data: {
lineItemCount: 2,
numItems: 3,
gross: 65.0,
total: 60.0,
discount: 5.0,
couponCode: 'WINTER5',
pageType: 'prod',
categoryId: '45',
categoryName: "Women's Shoes",
productId: 'WRS001',
productName: 'Red Shoes',
productSku: 'WRS001',
productPrice: 59.0,
productUrl: 'https://example.com/women/shoes/001.html',
productImage: 'https://example.com/images/products/WRS001.jpg',
currency: 'USD',
products: [
{
id: 'cup001',
price: 10.0,
qty: 2,
name: 'Boring Old Cup'
},
{
id: 'tshirt001',
price: 45.0,
qty: 1,
name: 'Really Expensive T-Shirt'
}
]
}
});
var js = d.createElement(s);
var fjs = d.getElementsByTagName(s)[0];
js.async = true;
js.src = 'https://cdn.fanplayr.com/client/production/loader.js';
fjs.parentNode.insertBefore(js, fjs);
})(document, window, 'script');
</script>動的サイト
上記のトラッキングコードが正しく実装されると、Fanplayrはユーザーがウェブサイトを閲覧する際にページが読み込まれた後に追跡します。これはほとんどのサイトで十分ですが、コンテンツを動的に読み込むサイトでは追加の手順が必要になる場合があります。
例えば、ユーザーを新しいページにリダイレクトする代わりに、ポップアップオーバーレイで商品詳細を読み込むサイトの場合、商品ビューを正しく追跡するためには追加の手順を実装する必要があります。
最初のページビューがFanplayrによって追跡された後、fanplayr.reinitialize() メソッドにトラッキングデータを渡すことで、追加のページビューを動的に追跡できます。
トラッキングデータは上記で詳述したものと同じ形式に従います。すべての必須プロパティが存在する必要があることに注意してください。
// This method is available after the fanplayr script has loaded.
// このメソッドはfanplayrスクリプトが読み込まれた後に利用可能です。
fanplayr.reinitialize({
type: 'st',
accountKey: '7e43c8cddccade2b95ee5286ba89758a',
data: {
pageType: 'prod',
productId: '56_b2',
// Many required properties are omitted for brevity
// 簡潔にするため、多くの必須プロパティは省略されています
...
}
});