Alexa を Angular ベースのアプリケーションで動作させるために、Alexa のコード スニペットをダウンロードして分析しました。
Alexaはこの関数に依存しているようです:
fire: function (e) {
this.user_cookie_v = this.muc();
this.map(e, function (e, t) {
this.opts[e] = t
});
// this.fired() check if "window._atrk_fired" is truthy
if (this.fired()) {
return
}
window._atrk_fired = true;
var t = new Image(1, 1);
t.alt = "alexametrics";
t.src = this.gen_url();
this.cloudfront.fire()
}
Angular アプリケーションでは、ページがリロードされないため、「window._atrk_fired」が真のままである場合にのみ、イベント fire() が 1 回トリガーされます。
ページのリロードをエミュレートするために、次のコードを追加する必要がありました。
$rootScope.$on( "$routeChangeStart", function(event, next, current) {
console.log('setting alexa fire value to false');
window._atrk_fired = false;
})
Alexa が pageView 追跡ポリシーを変更する可能性があるため、このハックはあまり信頼できないことはわかっています。私の目標は、Alexa が Angular アプリケーションを追跡できるかどうかを確認することでした。この件についてご意見をお聞かせください。