Facebook はピクセルを更新したので、パラメーターを動的に組み合わせて Facebook に送信する独自のカスタム関数を呼び出して作成しました。
ステップ 1. すべてのページで、ページのhead要素でピクセルを初期化したことを確認します。
ステップ 2. 私が作成したこのカスタム関数を追加します (これは最初のドラフトであるため、少し冗長です。そのため、最適化する方法があると確信しています)。
triggerFacebookPixel: function(type, price, product_id, product_name, product_category, num_items) {
//See https://developers.facebook.com/docs/ads-for-websites/pixel-events/v2.8#events for documentation
//type = "ViewContent"|"AddToCart"|"Search"|"AddToWishlist"|"InitiateCheckout"|"AddPaymentInfo"|"Purchase"|"Lead"|"CompleteRegistration"
//product_id = Numeric Product ID. String or Integer accepted for single product events, or an array of integers for multiple products.
//price = Decimal/Float number of individual product's price or total price paid in conversion, or the user's status for 'CompleteRegistration'
//product_name = Optional. String of individual product's name or string of search query
//product_category = Optional. String of product category, hierarchy's accepted. E.g. "Clothing > Shirts > Men's > T-Shirts"
//num_items = Optional. Total number of products.
var data = {
value: typeof(price) == 'string' ? parseFloat(price) : price,
currency: 'USD'
}
switch (type) {
case 'Search':
data.content_ids = product_id;
data.search_string = product_name;
if (product_category !== undefined && product_category != '') {
data.content_category = product_category;
}
break;
case 'Lead':
data.content_name = product_name;
data.content_category = product_category;
break;
case 'CompleteRegistration':
data.status = product_id;
data.content_name = product_name;
break;
default:
//Product Specific Calls
//ViewContent|AddToCart|AddToWishlist|InitiateCheckout|AddPaymentInfo|Purchase
if (num_items == 1) {
data.content_ids = [typeof(product_id) == 'string' ? parseInt(product_id) : product_id];
data.content_category = product_category;
data.content_name = product_name;
} else {
data.content_ids = product_id;
}
//"num_items" is only a parameter used in these two types
if (type == 'InitiateCheckout' || type == 'Purchase') {
data.num_items = num_items
}
//"content_type" is only a parameter used in these three types
if (type == 'Purchase' || type == 'AddToCart' || type == 'ViewContent') {
data.content_type = 'product';
}
break;
}
fbq('track', type, data);
}
ステップ 3. 適切なパラメーターを指定してその関数を呼び出します。
購入後のサンキュー ポップアップでは、ユーザーが複数のアイテムを購入した場合と 1 つのアイテムを購入した場合で、ピクセルが異なる方法で起動されます。基本的に、Facebook は、商品が 1 つだけの場合は商品名とカテゴリのパラメーターを受け入れますが、複数の商品の場合はそれらのパラメーターを受け入れません。
次の例では、ユーザーが1 つの商品を購入した場合のサンプル商品データを次に示します。
- 商品名:「俺の超絶Tシャツ」
- 商品番号:182
- 商品カテゴリー:「衣類 > シャツ > Tシャツ」
- ユーザーが支払った合計金額 (送料/手数料と税金を含む): $10.84
確認時に呼び出す関数は次のとおりです。
triggerFacebookPixel('Purchase', 10.84, 182, 'My Super Awesome T-Shirt', 'Clothing > Shirts > T-Shirts', 1);
ユーザーが複数のアイテムを購入すると、ピクセルは商品名とカテゴリを除外し、ID のみを送信するという、異なる処理を行います。それでは、ユーザーが次の 2 つのアイテムを購入したとしましょう。
- プロダクト ID: 182 と 164 (シャツとその他)
- ユーザーが支払った合計金額 (送料/手数料と税金を含む): $24.75
これは、関数の使用方法です。
triggerFacebookPixel('Purchase', 24.75, [182, 164], '', '', 2);
製品に関してFacebook によって定義されたその他の標準イベントについては、「ViewContent」、「AddToCart」、「AddToWishlist」、「InitiateCheckout」、および「AddPaymentInfo」に対してこの同じ関数を使用できます。「購入」を電話のキーワードのいずれかに変更するだけです。
その他のイベント「リード」「検索」「登録完了」は必ずしも商品とは関係ありません。このようなキーワードには、この関数を引き続き使用できます。
例: ユーザーが「青いシャツ」を検索した場合:
triggerFacebookPixel('Search', 0, [], 'blue shirts');
ユーザー検索機能で製品カテゴリを渡したい場合は、最後に文字列として渡すことができます。ユーザーがどのカテゴリを検索しているかを知るユースケース シナリオは考えられません。製品が検索結果に表示され、ユーザーが検索ページから製品をクリックした場合にこれを使用した場合を除きます。それがこの関数の実際の目的かもしれませんが、ドキュメントはそれについて明確ではありません。その場合は、0 と空の配列を、検索結果ページからクリックされた製品の実際の値 (それぞれ価格と製品 ID) に変更し、そのカテゴリを文字列として最後に追加します。検索文字列の後のパラメーター。
例: ユーザーは、ニュースレターにサインアップするフォームを送信しました:
triggerFacebookPixel('CompleteRegistration', 0, 'Signed Up', 'Newsletter');
Facebook のドキュメントには、「CompleteRegistration」は、サービスの完全なサブスクリプション/サインアップなど、登録フォームが完成したときに使用する必要があると記載されています。"Signed Up" 文字列は "status" パラメータで、"Newsletter" 文字列は "content_name" パラメータです。
例: ユーザーは、提供するサービスの 30 日間の無料試用版にサインアップするフォームを送信しました (したがって、彼らは現在リードです)。ここで、サービスの名前は「無料の 30 日間試用サービス」であり、それはカテゴリ「マイ サービス」の下のサブカテゴリ「無料トライアル」:
triggerFacebookPixel('Lead', 0, 'Free 30-Day Trial Service', 'My Services > Free Trials');
Facebook のドキュメントには、「リード」とはサインアップが完了したときであると記載されています。たとえば、価格設定をクリックしたり、トライアルにサインアップしたりします。サービスの名前はパラメーター「content_name」、サービスのカテゴリは「content_category」パラメーターであると想定しました。