2015-07-09 4 views
0

У меня есть пиксель отслеживания, который мне нужно загрузить в JS, одним нажатием кнопки. Таким образом, процесс выглядит следующим образом:Отслеживание пикселя с помощью javascript

  1. пользователь нажимает на ссылку
  2. предотвратить щелчок (e.preventDefault)
  3. нагрузки трекинг пикселей
  4. перенаправлять пользователя

Здесь представляет собой код:

$('.btn-cta').on('click', function (e) { 
    e.preventDefault(); 
    $('body').append('<img width="1" height="1" src="http://main.exoclick.com/tag.php?goal=xyz">'); 
    window.location.replace($(this).attr('href')); 
}); 

Моя проблема в том, что нет 100% людей, которые нажали, отслеживаются, похоже, около 40/50% из них не отслеживаются. Я не вижу другого способа сделать это, есть ли у вас лучшая идея отслеживать подобные вещи в JS?

Все идеи приветствуются.

Джон

+3

Вы должны перенаправить в прослушиватель событий onload на изображении. – pawel

+1

@Pawei имеет право: вы пересылаете до того, как изображение будет правильно запрошено, поэтому запрос будет отменен при перенаправлении. – somethinghere

ответ

2

Дождитесь изображения для загрузки, затем перенаправить.

$('.btn-cta').on('click', function (e) { 
    e.preventDefault(); 

    var url = $(this).attr('href'); 
    var track = new Image(); 
    track.onload = function(){ 
     window.location.replace(url); 
    }; 
    // in case the tracking server is down or misconfigured (see comments) 
    // otherwise the navigation would be broken. 
    track.onerror = function(){ 
     window.location.replace(url); 
    }; 
    track.src = 'http://main.exoclick.com/tag.php?goal=xyz'; 
}); 
+0

Большое спасибо, я попробую. – JohnWolf

+0

Итак, изображение загружается в порядке, но функция onload НЕ выполняется. Однако я не ошибаюсь. Возможно, это потому, что я получаю это: «Ресурс интерпретируется как изображение, но передается с текстом типа MIME/html». Есть идеи ? – JohnWolf

+0

@JohnWolf кажется, что это так. Добавьте обработчик события onerror, чтобы вы увидели, что он запускается при запросе этого изображения: http://jsfiddle.net/unj4haqn/1/ – pawel

 Смежные вопросы

  • Нет связанных вопросов^_^