【问题标题】:Cross Domain tracking on a Form not working with ._linkbyPost表单上的跨域跟踪不适用于 ._linkbyPost
【发布时间】:2012-01-03 04:25:28
【问题描述】:

我在表单上的跨域跟踪存在问题。我有一个酒店客户,他有一个表格,根据所选的选项提交给两个预订引擎之一。但是,据我所知,它看起来不像以传统方式设置的表单,因为它不包含“动作”,而是包含“href”。代码如下。

<!--start quicksearch -->
<div id="qs" align="center">
      <div align="center"><img src="images/qs_title.gif" alt="Quick Search">
          <table width="200" border="0" cellpadding="0" cellspacing="0">
            <!--<form  method="post">--><form  method="post" onsubmit="pageTracker._linkByPost(this);">

....

<td width="35%" valign="bottom"><div align="left"><a href="javascript:sendToCBE();"><img src="quicksearch/continue-buttom_dreams.gif" alt="Continue" width="83" height="24" border="0" onclick="mojo_roi('continue'); pageTracker._trackEvent('Button', 'Click', 'QuickSearchWidget');"></a></div></td>
                </tr>

            </table></td>
          </tr>
        </form>
      </table>
  </div>
</div>
<!--end quick search-->

我的感觉是,因为没有要调用的“动作”,所以它没有传递任何 cookie 信息。我用作参考的其他网站上的所有其他表格都使用“动作”。有什么想法吗? ._linkbyPost 的位置是否正确还是需要移动?

任何和所有的见解都会非常有帮助。

谢谢!

【问题讨论】:

    标签: javascript google-analytics cross-domain web-analytics


    【解决方案1】:

    是的,这行不通。 Google Analytics 依赖于 POST 功能的本地使用。

    没有“动作”表明该表单是由 JavaScript 使用非本地表单功能管理的。所以,你需要调整管理表单的 JavaScript 逻辑(大概是调用sendToCBE的函数。

    _linkByPost 是一个尝试为 99% 的用例做所有事情的函数,但在这种情况下,它没有帮助。

    您需要使用_getLinkerUrl 进行一些自定义查询字符串调整

    这看起来像(伪代码):

    function submit_redirect_function(){
         var url = .... // the logic that creates the URL you're redirecting to onsubmit
         url = pageTracker._getLinkerUrl(url); //appends the linker query string to the URL. 
         window.location = url;
    }
    

    如果你分享更多关于这个表单是如何实现的细节(例如sendToCBE或mojo_roi具体做什么,我可以提供更具体的指导。

    【讨论】:

    • 说实话,我不确定 mojo_roi 是做什么的,但我认为它类似于事件跟踪。至于 SendToCBE 代码,它位于 Javascript 文档中,如下所示:// JavaScript Document function popup_no_status(loc) { var windowW=1000 var windowH=700 s = "width="+windowW+",height="+windowH+",status=yes, resizable=yes, scrollbars=yes"; mywin = window.open(loc ,'CBE', s); mywin.focus(); } 这有帮助吗?
    • 是的。您应该能够用pageTracker._getLinkerUrl 将loc 包装在window.open 语句中。比如window.open(pageTracker._getLinkerUrl(loc), "CBE", s);。
    • 通过添加该代码,是否应该解决跨域跟踪问题?为了使它工作,我需要在查询字符串中自定义什么吗? loc 是否需要设置为特定的东西?是否需要在 HTML 或此文档中的某个位置设置 LinkerURL?正如你可能知道的那样,我无论如何都不是 js 专家。
    • @GlennB 您应该与您的开发人员交谈,但是,我假设 loc 是您要重定向到的 URL。 pageTracker._getLinkerUrl(loc) 将返回相同的 URL,但附加了特殊的链接器 URL 参数。
    • 非常好,非常感谢!
    猜你喜欢
    • 2020-10-30
    • 1970-01-01
    • 2017-09-13
    • 2011-01-26
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多