【问题标题】:How to know from where visitors are coming?如何知道访客来自哪里?
【发布时间】:2014-07-19 09:34:40
【问题描述】:

我有一个带有 google Analytics 的网站,它提供有关访问者来自何处的信息。

我的网站有一个注册表单,我想知道新注册表的来源(但不问他)。

例如,假设用户在 google.com 中搜索 "cars",点击了我的链接(不是广告词),并在我的网站上注册。我如何以及从哪里可以读取并保存该用户在 google.com 中寻找 "cars" 并单击了我的链接?有没有谷歌生成的cookies?

【问题讨论】:

    标签: javascript ruby-on-rails ruby google-analytics


    【解决方案1】:

    您可以在其会话中存储用户来自的引荐来源网址:

    # in application_controller.rb
    before_filter :store_referrer
    
    private
    def store_referrer
      referer = request.referer.presence
      if referer && !referer.start_with?('http://your.domain')
        session[:referer] ||= referer 
      end
    end
    

    当用户注册时,您只需将该值传递给用户:

    User.new(params[:user].merge(:referer => session[:referer]))
    

    您的User 应该有一个处理该网址的referer= 方法。

    【讨论】:

    • 然后,OP需要解析session[:referer],如果host是google.com或相关,则取出q对应的查询值。
    • 是否可以使用 ?或 request.env['HTTP_REFERER'] ?
    • 函数 request.referer 和 request.env['HTTP_REFERER`] 在我的 localhost:3090 内工作,但如果我去 google.com 并在我的 URL 栏 localhost:3090 中写入请求.referer 和 HTTP_REFERER 是空的......这个功能只在我的域'localhost:3090'内工作???
    • request.referer 和 request.env['HTTP_REFERER'] 仅在您单击链接时设置。如果您在地址栏中手动输入 URL,则引荐来源网址始终为零。由于 Google 上没有指向 localhost 的链接,因此您无法测试此行为。
    • 好的,我认为我要走好路……只有最后一个问题,怎么可能知道你的域之外的 request.referer。我的意思是只在 URL 不是您的域时取值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多