带有单页应用的Facebook Pixel(angularjs)

时间:2015-12-01 12:32:04

标签: javascript angularjs facebook single-page-application

我使用AngularJS构建了单页面应用程序。我想用Facebook Pixel跟踪pageView这个网络应用程序。但在分析板上,Facebook Pixel忽略了'#'之后的url部分。 在此图片中,每个网址都会显示在http://localhost/中。

image

我可以推送自定义pageView(删除#)来修复此问题吗?

1 个答案:

答案 0 :(得分:3)

对于我的情况,它的工作原理如下:

  1. 在index.html
  2. 中添加带有跟踪ID的fb像素代码

    <!-- Facebook Pixel Code -->
    		<script>
    		!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
    		n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
    		n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
    		t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
    		document,'script','https://connect.facebook.net/en_US/fbevents.js');
    		fbq('init', '<<PIXEL ID>>'); // Insert your pixel ID here.
    		</script>
    		<noscript><img height="1" width="1" style="display:none"
    		src="https://www.facebook.com/tr?id=133095247279894&ev=PageView&noscript=1"
    		/></noscript>
    		<!-- DO NOT MODIFY -->
    		<!-- End Facebook Pixel Code -->

    1. 在状态控制器上注入$ window

      // Registration
      angular.module('app.module')
          .controller('LeadsController', ['$scope', '$state', '$window']);
      
      $window.fbq('track', 'InitiateCheckout');   //or Purchase/Leads/CompleteRegistration event
      
    2. 它的工作原理是因为基本上 fbq 已绑定在窗口对象上。 希望这有帮助!