Вот что я делаю это, кажется, работает до сих пор:
В моем файле index.html я удалил функцию и просмотров страниц закомментировал сам пиксель, как показано на рисунке ниже.
<head>
<!-- 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','//connect.facebook.net/en_US/fbevents.js');
fbq('init', 'XXXXXXXXXX');
//fbq('track', "PageView");
</script>
<!--<noscript><img height="1" width="1" style="display:none"-->
<!--src="https://www.facebook.com/tr?id=XXXXXXXXXX&ev=PageView&noscript=1"-->
</noscript>-->
<!-- End Facebook Pixel Code -->
</head>
Затем я настроил мое приложение следующим образом ...
.config(['$stateProvider', '$urlRouterProvider', '$windowProvider', function($stateProvider, $urlRouterProvider, $windowProvider) {
var $window = $windowProvider.$get();
Теперь для каждого изменения состояния, я использую OnEnter и OnExit выстрелить «событий» Я хочу, чтобы захватить:
.state('foo.bar', {
url:'/bar',
templateUrl: 'template.html',
controller: 'templateCtrl',
onEnter: function(){
$window.fbq('track', "Page1Enter");
},
onExit: function(){
$window.fbq('track', "Page1Exit");
}
})
Я предполагаю, что, если бы я захотел, я мог бы просто переместить любой fbq('track', "PageView");
код в контроллер. Однако для моего варианта использования отслеживание изменений состояния отлично работает для мониторинга потока из моего приложения.
Надеюсь, это поможет кому-то еще.
Когда именно вы называете "PixelInitialized? О смене государства? –
Кроме того, это будет срабатывать 'PixelInitialized 'несколько раз. При каждом изменении состояния. –
Я называю это при каждом изменении URL. Вы могли бы сделать это в $ routeChangeSuccess –