JavaScript | ColdFusion - пиксель Facebook

1

Я пытаюсь вызвать свой Facebook-пиксель.

Это проблема:

У меня есть собственный пиксель изображения, установленный на веб-сайте клиента, когда мой пиксель запускается на клиентском веб-сайте, он отправляет запрос на мой сервер, который после некоторых вставок в db перенаправляет запрос на страницу CFML (HTML для ColdFusion), которая имеет пиксельный код из Facebook, как показано ниже:

  <script>
       // Facebok Pixel Init Code
       fbq('init', 'PIXEL_ID');
       fbq('trackCustom', 'myCustomEvent', {});
  </script>
  <noscript>
      <img src="THE_FB_URL/?id=PIXEL_ID&ev=myCustomEvent&noscript=1">
  </noscript>

Когда я напрямую обращаюсь к странице через браузер, он успешно запускает пиксель, и я могу видеть его в отчете о пикселях Facebook. Но когда запрос перенаправляется на страницу после вставки в db, пиксель не запускается.

Я думаю, это потому, что JavaScript и HTML никогда не добавляются в DOM, поэтому он никогда не запускается...

Вы знаете, как я могу это достичь?

Я думаю, если, возможно, я отправлю HTTP-запрос GET в <img> надеюсь, что Facebook примет его.

ОБНОВИТЬ

Так вот что происходит, запрос, который я отправляю, запускает событие, но @Jules прав. Я не могу найти, какое объявление привело к конверсии с использованием этого метода, проблема в том, что при нажатии на трафик на сайт наших клиентов, в котором мы не можем установить код javascript.

Я попытался проверить, что хранит файлы cookie в cookie, поэтому, когда я делаю запрос GET, я отправляю эти значения, но это происходит:

1 - Объявление отправляет пользователя по следующей ссылке:

l.facebook.com/l.php?u=redirect_url&h=some_token_here

На этой странице я могу проверить, что есть несколько файлов cookie (я предполагаю, что это значения, которые нужно найти в facebook, чтобы найти, какое объявление привело к конверсии)

2 - Затем пользователь перенаправляется на страницу формы наших клиентов

Я также пытался проверить файлы cookie, но файлы cookie, похоже, не существуют..

Мне нужна помощь людям!

  • 0
    Последнее предложение, похоже, стоит попробовать.
Теги:
coldfusion
facebook-pixel

4 ответа

1

Вы не должны писать код HTML/Javascript.

Первый пиксель преобразования вызывается через тег img поэтому вы не можете отвечать HTML/Javascript.

Все, что вам нужно сделать, это вернуть перенаправление (301) на конечный пиксель изображения. В этом случае:

Redirect 301 THE_FB_URL/?id=PIXEL_ID&ev=myCustomEvent&noscript=1
1

Итак, ребята,

Я сделал это так:

Вместо того, чтобы использовать CFLOCATION для перенаправления запроса на страницу CFML где есть фрагмент Facebook JS, я напрямую использую CFHTTP для запроса URL отслеживания Facebook. Вот так:

<cfif #source# eq 'facebook'>
     <cfhttpparam type="url" name="id" value="PIXEL_ID">
     <cfhttpparam type="url" name="ev" value="myCustomEvent">
     <cfhttpparam type="url" name="noscript" value="1">
</cfif>

Это сработало! :)

0

Основываясь на ваших комментариях, ниже может работать. Вы будете использовать тег изображения noscript. Я думаю, что вы хотите вернуться с CFML, это CFLocation на правильный URL-адрес пикселя FB, а не на загрузку cfhttp. Таким образом, клиент все еще загружает пиксель FB, и вы по-прежнему отслеживаете его загрузку между ними.

Загрузка браузера

<img src="//your-server.net/trackPixel.cfm?some_vars=some_vals">

Этот CFML делает...

<!--- DO YOUR STORAGE AND OTHER LOGIC --->
<cfquery>...</cfquery>

<!--- THEN REDIRECT --->
<cflocation url="the_official_fb_image_url.gif" addToken="no">

Поэтому, когда пользовательский браузер загружает ваш cfm в качестве изображения, ответ заключается в загрузке другого изображения.

0

Если вы используете CFlocation то нет, сценарии не будут срабатывать. Вместо этого используйте перенос javascript. Дайте браузеру достаточно времени, чтобы загрузить страницу и запустить сценарий. Что-то вроде этого:

<script>
    fbq('init', 'PIXEL_ID');
    fbq('trackCustom', 'myCustomEvent', {});
    setTimeout(
        function(){
            window.location.href='';
            // or simply: history.go(-1);
        },
        3000
    );
</script>
<noscript>
    <img src="THE_FB_URL/?id=PIXEL_ID&ev=myCustomEvent&noscript=1">
</noscript>
  • 0
    Спасибо, я заставил его работать с cfhttp, поэтому мне не нужно перенаправлять на страницу CFML.
  • 0
    Если вы сделаете это с помощью cfhttp, вы потеряете статистику в FB. Лучше позволить клиентскому браузеру запускать механизм отслеживания FB, чтобы сеанс клиента и файлы cookie могли выполнять свою работу.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню