JavaScript | ColdFusion-Facebook像素
我正试图触发我的Facebook像素 这就是问题所在: 我在客户端网站上安装了我自己的图像像素,当我的像素在客户端网站上被触发时,它会向我的服务器发送一个请求,在数据库中插入一些内容后,我会将请求重定向到CFML页面(HTML for ColdFusion),该页面包含来自Facebook的像素代码,如下所示:JavaScript | ColdFusion-Facebook像素,javascript,coldfusion,facebook-pixel,Javascript,Coldfusion,Facebook Pixel,我正试图触发我的Facebook像素 这就是问题所在: 我在客户端网站上安装了我自己的图像像素,当我的像素在客户端网站上被触发时,它会向我的服务器发送一个请求,在数据库中插入一些内容后,我会将请求重定向到CFML页面(HTML for ColdFusion),该页面包含来自Facebook的像素代码,如下所示: <script> // Facebok Pixel Init Code fbq('init', 'PIXEL_ID'); fbq
<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>
//Facebok像素初始化代码
fbq('init','PIXEL_ID');
fbq('trackCustom','myCustomEvent',{});
当我通过浏览器直接访问页面时,它会成功触发像素,我可以在Facebook像素报告中看到它。但是,当请求在插入数据库后重定向到页面时,像素不会触发
我认为这是因为JavaScript和HTML从未添加到DOM中,所以它从未被执行
你知道我怎样才能做到这一点吗
我想如果我向
标记URL发送一个HTTP GET请求,希望Facebook会接受它
更新
我发送的请求会触发事件,但@Jules是对的。我用这种方法找不到哪个广告导致了转换,问题是哪里把流量推到了我们客户的网站上,我们不能安装任何JavaScript代码
我试图检查Facebook存储了哪些cookies,因此当我发出GET请求时,我也会发送这些值,但这种情况会发生:
1-广告将用户发送到如下链接:
l.facebook.com/l.php?u=redirect\u url&h=some\u token\u此处
在这个页面中,我可以检查是否有一些cookie(我假设Facebook需要这些值来查找导致转换的广告)
2-然后用户被重定向到我们的客户表单页面
我也试着检查这里的饼干,但是饼干似乎不存在
我需要帮助 如果您使用的是
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>
fbq('init','PIXEL_ID');
fbq('trackCustom','myCustomEvent',{});
设置超时(
函数(){
window.location.href='';
//或者简单地说:history.go(-1);
},
3000
);
所以伙计们
我是这样做的:
我没有使用CFLOCATION
将请求重定向到Facebook JS片段所在的CFML
页面,而是直接使用CFHTTP
请求Facebook跟踪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>
成功了!:) 根据您的评论,以下内容可能有效。您将利用
noscript
image标记。
我认为使用CFML返回的是一个正确的FB像素URL的CFLocation,而不是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作为图像加载时,答案是加载不同的图像。您不应该编写HTML/Javascript代码 第一个转换像素是通过
img
标记调用的,因此您无法使用HTML/Javascript响应
你所要做的就是返回一个重定向(301)到你的最终图像像素。在这种情况下:
Redirect 301 THE_FB_URL/?id=PIXEL_ID&ev=myCustomEvent&noscript=1
最后一句话似乎值得尝试。谢谢,我让它与cfhttp一起工作,所以我不需要重定向到CFML页面。如果你使用cfhttp,你将在FB中丢失统计信息。最好让客户端浏览器运行FB跟踪机制,这样客户端的会话和Cookie就可以完成它们的工作。你是对的。我找不到使用这种方法导致转换的广告,问题是,在向客户端网站推送流量的地方,我们不能安装任何javascript代码。