16

私はまだJavascriptにかなり慣れていませんが、「確認」/「ありがとう」ページを実際にロードせずに、Facebookコンバージョンピクセル(下記)を起動する最良の方法は何だろうと思っていました.

<script type="text/javascript">
var fb_param = {};
fb_param.pixel_id = 'XXXXXXXXXXX';
fb_param.value = '0.00';
fb_param.currency = 'USD';
(function(){
  var fpw = document.createElement('script');
  fpw.async = true;
  fpw.src = '//connect.facebook.net/en_US/fp.js';
  var ref = document.getElementsByTagName('script')[0];
  ref.parentNode.insertBefore(fpw, ref);
})();
</script>
<noscript><img height="1" width="1" alt="" style="display:none"
src="https://www.facebook.com/offsite_event.php?id=XXXXXXXXXX&amp;value=0&amp;currency=USD" /></noscript>

Facebook は、訪問者が変換 (フォームへの入力、購入など) した後に表示される「ありがとうページ」にこれをプラグインする必要があると述べています。ただし、一部のフォームは、コンテンツの横にあるサイドバーのポップアップまたはフォームであり、確認ページによって読者を誘導したくありません。

Google Analytics を使用すると、_gaq.push(['_trackPageview']); を実行して「見えない」ページビューを作成できます。その非表示のページビューを目標の完了としてカウントする必要があることを GA に伝えることができるコード。

私のサイトにFBピクセルを起動するように指示するのに十分な一般的なものに似たものはありますか?

4

5 に答える 5

8

FBドキュメントから「ページ内イベントを追跡する方法」

基本コード スニペットをインストールした後、HTML DOM 要素にさまざまなイベント ハンドラーを登録して、コンバージョン ピクセルの _fbq.push('track') 呼び出しを行うことにより、ボタンのクリックなどのページ内アクションを追跡できます。例えば:

function trackConversionEvent(val, cny) {
  var cd = {};
  cd.value = val;
  cd.currency = cny;
  _fbq.push(['track', '<pixel_id>', cd]);
}
<button onClick="trackConversionEvent('10.00','USD');" />
于 2014-12-24T17:52:34.503 に答える
0

同様の問題があり、複数の追加を実行してピクセル コードを追跡したいと考えていましたが、何らかの理由で追跡できませんでした。私がやったことは、現在のページで、フッターにピクセルコードを追加し、ajax ボタンが送信されたときに呼び出す JavaScript 関数を追加したことです。

最初にFacebookのドキュメントページを参照してください

https://developers.facebook.com/docs/ads-for-websites/conversion-pixel-code-migration#multi-conv-events

複数のコンバージョン イベントを追跡する方法

基本コード スニペットをインストールした後、各コンバージョン ピクセル ID に対して複数の _fbq.push('track') 呼び出しを行うことにより、同じ Web ページ内で複数のコンバージョンを追跡できます。例えば:

_fbq.push(['track','<pixel_id1>',{'value':'10.00','currency':'USD'}]);
_fbq.push(['track','<pixel_id2>']);

ページはめ込みイベントを追跡する方法

基本コード スニペットをインストールした後、HTML DOM 要素にさまざまなイベント ハンドラーを登録して、コンバージョン ピクセルの _fbq.push('track') 呼び出しを行うことにより、ボタンのクリックなどのページ内アクションを追跡できます。例えば:

function trackConversionEvent(val, cny) {
  var cd = {};
  cd.value = val;
  cd.currency = cny;
 _fbq.push(['track', '<pixel_id>', cd]);
 }
 <button onClick="trackConversionEvent('10.00','USD');" />

また、Facebook ピクセル トラッキング コード クロム アドオンを追加し、Facebook ピクセル ヘルパー ページを参照してください: https://developers.facebook.com/docs/ads-for-websites/pixel-troubleshooting

以下の解決策/回答を参照してください

現在のページの Facebook トラッキング コード (function() { var _fbq = window._fbq || (window._fbq = []); if (!_fbq.loaded) { var fbds = document.createElement('script'); fbds .async = true; fbds.src = '//connect.facebook.net/en_US/fbds.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(fbds, s) ; _fbq.loaded = true; } })(); window._fbq = window._fbq || ウィンドウ._fbq = ウィンドウ._fbq || []; window._fbq.push(['track', 'yourid', {'value':'1.00','currency':'USD'}]);

  <!-- Facebook Conversion -->
  <script>(function() {
  var _fbq = window._fbq || (window._fbq = []);
  if (!_fbq.loaded) {
   var fbds = document.createElement('script');
  fbds.async = true;
  fbds.src = '//connect.facebook.net/en_US/fbds.js';
  var s = document.getElementsByTagName('script')[0];
   s.parentNode.insertBefore(fbds, s);
  _fbq.loaded = true;
  }
  })();
  window._fbq = window._fbq || [];
  window._fbq.push(['track', 'yourid', {'value':'1.00','currency':'USD'}]);
  </script>

そして、ajaxフォームの送信またはボタンのクリック時に呼び出すjavascriptコード

 <script>
 function trackConversionEvent(val, cny) {
 var cd = {};
 cd.value = val;
 cd.currency = cny;
 _fbq.push(['track', 'yourid1', cd]);
 _fbq.push(['track', 'yourid1', cd]);

 }
</script>

ajaxが呼び出されたときに関数を呼び出す

jQuery(form).ajaxSubmit({

   type:"POST",

   data: $(form).serialize(),

   url:"process.php",

    success: function() {
    **trackConversionEvent**('1.00','USD');
   }
   ......
于 2016-02-09T14:20:46.730 に答える
0

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」パラメーターであると想定しました。

于 2017-03-24T14:57:06.537 に答える