当浏览器处于后台时,使用javascript触发的像素跟踪不会在移动设备上触发
Pixel tracking fired with javascript is not fired on mobile when browser is in background
我正试图找到一个解决方案,从Safari浏览器发射像素iPhone
下面是我的场景:
我有一个网站(不是本地应用程序),需要在点击提交按钮后10秒向第三方发射一个像素(目前我使用JavaScript)。
问题是,当离开到另一个应用程序时,JavaScript停止运行,因此像素没有被触发。
还有其他触发像素的方法吗?
在移动浏览器中无法做到这一点。我唯一能想到的是检测到你是在手机上,然后才触发gif提交。如果必须在10秒之后,那么可以从服务器上触发它,假装在gif .
如果我理解你的问题,我认为你只有两个选择:
- 从表单页面发送您的跟踪像素(假设您控制它);或
- 仅在发出跟踪像素请求后提交表单(或者更安全,在获得非错误响应后)。
问题是Mobile Safari在标签页不活动时将其完全置于睡眠状态。我相信他们会立即进入睡眠状态(不像原生的webview,你有两秒钟的时间关闭应用程序,在应用程序"辞职"之前做任何你需要做的家务)
你的问题没有合理的解决方案可以在浏览器上实现。这是由于(您已经介绍过了)移动safari在后台执行后根本不会执行任何操作。因此,你要么需要一个10秒的加载屏幕,这可能会阻碍转换,要么像下面这样的hack/last-resort:
1)检测您是否在移动设备上
2)向服务器发出像素请求,并连同初始提交(甚至从提交中附加)
3)在服务器端代码上创建一个回调,延迟10秒,然后将请求(报头和所有)转发给第三方。这至少必须包括用户代理和IP。根据您的服务器端语言,欺骗IP可能很困难。
缺点:更多的代码,这是非常脆弱的。我并不是说这是一个很好的解决方案。此外,您将丢失像素发送给第三方的任何cookie信息,因为像素可能托管在您无法控制的域上。如果第三方的实现需要在请求中提供cookie信息,则此工作将不起作用。此外,任何第三方像素特定的数据,如像素上的ETags,都不会被传递。
考虑到您试图规避移动safari的基本行为(即在后台不执行javascript),然而,我没有看到任何可靠的客户端上这样做的选项。你的另一个选择是在你的域名上设置一个cookie,下次他们加载你的网页时,触发像素。这假定用户会重新访问您的页面,这取决于您的用户可能会或可能不会以任何频率发生。
- 我将如何在一个网页上放置多个Facebook跟踪像素
- 将跟踪像素添加到 jQuery 图像轮播中的每个图像
- 跟踪像素应该通过引用页面加载外部网站 - 但它不起作用
- 在html电子邮件时事通讯中插入跟踪像素
- 跟踪像素跨域,ASP.NET,jQuery,AJAX
- jQuery负载跟踪像素,然后重定向
- 只进行一次跟踪像素加载(每次访问者点击)
- 如何实现对页面视图进行计数的跟踪像素
- 是跟踪像素可以从远程服务器执行javascript
- 跟踪像素的动态响应
- 如何在10秒后加载跟踪像素
- 当用户单击外部iframe中的链接时,是否有可能触发跟踪像素?
- 如何正确地将JavaScript变量插入自定义跟踪像素
- 我可以用一个图像像素调用多个跟踪像素吗
- 触发一个跟踪像素onClick
- 用javascript跟踪像素
- 跟踪像素异步或同步
- 确定 cookie 的来源 javascript 或跟踪像素
- 在我的电子商务购物车中添加一个跟踪像素
- 是否有可能模拟一个facebook跟踪像素请求服务器端