【问题标题】:JavaScript | ColdFusion - Facebook pixelJavaScript | ColdFusion - Facebook 像素
【发布时间】:2021-05-21 04:18:03
【问题描述】:

我正在尝试触发我的 Facebook 像素。

这就是问题所在:

我在客户端网站中安装了自己的图像像素,当我的像素在客户端网站中被触发时,它会向我的服务器发送一个请求,在数据库中插入一些内容后,我将请求重定向到 CFML 页面(ColdFusion 的 HTML)其中包含来自 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 像素报告中看到它。但是当请求在插入到数据库后被重定向到页面时,像素不会触发。

我认为这是因为 JavaScript 和 HTML 从未添加到 DOM 中,因此它永远不会被执行...

你知道我怎样才能做到这一点吗?

我想如果我向&lt;img&gt; 标签 URL 发送一个 HTTP GET 请求,希望 Facebook 接受它..

更新

所以这就是发生的事情,我发送的请求触发了事件,但@Jules 是正确的。我找不到使用这种方法导致转化的广告,问题是在将流量推送到我们客户网站的地方,我们无法安装任何 JavaScript 代码。

我试图检查 Facebook 存储了哪些 cookie,所以当我发出 GET 请求时,我也会发送这些值,但是会发生这种情况:

1 - 广告将用户引导至如下链接:

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

在此页面中,我可以检查是否有一些 cookie(我假设这些是 Facebook 需要查找哪些广告导致转化的值)

2 - 然后用户被重定向到我们的客户表单页面

我也尝试在这里检查 cookie,但 cookie 似乎不存在..

我需要帮助的人!

【问题讨论】:

  • 最后一句话似乎值得一试。

标签: javascript coldfusion facebook-pixel


【解决方案1】:

各位,

我是这样设计的:

我没有使用CFLOCATION将请求重定向到Facebook JS sn-p所在的CFML页面,而是直接使用CFHTTP请求Facebook Tracking URL。像这样:

<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>

成功了! :)

【讨论】:

    【解决方案2】:

    根据您的 cmets,以下可能有效。您将利用noscript 图像标签。 我认为你想用 CFML 返回的是一个 CFLocation 到正确的 FB 像素 URL - 而不是 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加载为图片时,回复是加载不同的图片。

    【讨论】:

      【解决方案3】:

      您不应该编写 HTML/Javascript 代码。

      第一个转换像素是通过img 标记调用的,因此您无法使用 HTML/Javascript 进行响应。

      您所要做的就是将重定向 (301) 返回到您的最终图像像素。在这种情况下:

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

      【讨论】:

        【解决方案4】:

        如果您使用的是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>
        

        【讨论】:

        • 谢谢,我让它与 cfhttp 一起工作,所以我不需要重定向到 CFML 页面。
        • 如果你用 cfhttp 来做,你会失去 FB 的统计数据。最好让客户端浏览器脱离 FB 跟踪机制——这样客户端的 session 和 cookie 就可以完成它们的工作。
        • 你是对的。我找不到使用这种方法导致转化的广告,问题是在向我们客户网站推送流量的地方,我们无法安装任何 javascript 代码。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-09
        • 1970-01-01
        • 2023-02-11
        • 1970-01-01
        • 1970-01-01
        • 2015-08-31
        • 2017-06-04
        相关资源
        最近更新 更多