Мне нужно создать пиксель веб-отслеживания, такой как пиксель facebook, пиксель glami и т. д.

Мне нужно создать пиксель веб-отслеживания, такой как пиксель Facebook, пиксель Glami и т. д.

Пробовал междоменное подключение и работал:

  • laravel domain1: заголовок ('Access-Control-Allow-Origin', '*')
  • Laravel поддельный магазин: js XMLHttpRequest

Пока у меня есть:

<script>

let request = obj => {
    return new Promise((resolve, reject) => {
        // ajax code found on internet
    });
};

function test() {
    request({url: 'http://localhost/pixel/test'})
        .then(r => {
            console.log(r); // works
        });
}

</script>

И я хочу что-то вроде:

<!-- {Foo} piXel for {domainName}-->
<script>
(function(p, a, r, a, m, s) {f['FooTrackerObject'] = i;
f[i]=f[i]||function(){(f[i].q=f[i].q||[]).push(arguments)};o=a.createElement(s),
n=a.getElementsByTagName(s)[0];o.async=1;o.src=h;n.parentNode.insertBefore(o,n)
})(window, document, 'script', 'foohost/js/compiled/pt.js', 'foo');

foo('create', 'RandomStringGeneratedForUsers', 'ro');
foo('track', 'PageView');
</script>
<!-- End Foo piXel -->

Также полезна ли эта ссылка?: https://github.com/dockwa/openpixel


person Cosmin Serban    schedule 07.08.2019    source источник


Ответы (1)


Решил свою проблему:

    /**
     * @test track('PageView', {foo: 'bar'});
     */
    !function(a, u, d, i, o, t, e, k) {t='PixelTrack';o=[];
        a['track']=(...f)=>{o.push(f)};e=u.createElement('script');
        e.async=true;e.src = d;u.getElementsByTagName('head')[0].appendChild(e);
        e.onload=()=>{a[t](i);o.forEach((item)=>{a[t](item)})};
    }(window, document, 'http://www.domain.cr/js/pixel.js', 'INSERT_YOUR_API_KEY_HERE');

//    (function(a, u, d, i, o, t, e, k) {
//        e = 'PixelTrack';
//        t = [];
//        a['track'] = function(...f){
//            t.push(f);
//        };
//
//        k = document.createElement(d);
//        k.async = true;
//        k.src = i;
//
//        k.onload = function() {
//            a[e](o);
//            t.forEach((item) => {
//                a[e](item)
//            })
//        };
//
//        u.getElementsByTagName("head")[0].appendChild(k);
//
//    })(window, document, 'script', 'http://www.domain.cr/js/pixel.js', 'INSERT_YOUR_API_KEY_HERE');

А в pixel.js есть laravel-комбинация чего-то вроде:

window.PixelTrack = function(params){ console.log('do stuff') }
person Cosmin Serban    schedule 14.08.2019