通用分析测量协议200 - 什么都没有出现

时间:2014-01-15 23:06:20

标签: ruby google-analytics

就像标题所说的那样,在实时事件或任何其他事件中都没有显示任何内容 发送的请求是使用ruby的法拉第宝石

完成的
require 'faraday'
require 'json'

GOOGLE_ANALYTICS_SETTINGS = {}

class GoogleAnalyticsApi

  def event(client_id = '555', category, action, label, value, user_agent)
    return unless !GOOGLE_ANALYTICS_SETTINGS["tracking_code"].empty?

    params = {
      v: GOOGLE_ANALYTICS_SETTINGS["version"],
      tid: GOOGLE_ANALYTICS_SETTINGS["tracking_code"],
      cid: client_id,
      t: "event",
      ec: category,
      ea: action,
      el: label,
      ev: value
    }

    begin      
      puts params
      c = Faraday.new() do |f|
        f.request :url_encoded          
        f.response :logger
        f.adapter  Faraday.default_adapter
      end
      response = c.post GOOGLE_ANALYTICS_SETTINGS["endpoint"], params, { "User-Agent" => user_agent || "Subscribing Worker theSkimm" }

      puts response.headers
      puts response.body
      return true
    rescue  Exception => rex
      return false
    end
  end

end

从控制台:

{:v=>1, :tid=>"UA-XXXXXXXX-1", :cid=>"1999999999.1389999972", :t=>"event", :ec=>"test-event", :ea=>"test-action", :el=>nil, :ev=>nil}
I, [2014-01-15T18:04:04.555555 #7666]  INFO -- : post http://www.google-analytics.com/collect
D, [2014-01-15T18:04:04.555667 #7666] DEBUG -- request: User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36"
Content-Type: "application/x-www-form-urlencoded"
I, [2014-01-15T18:04:04.670273 #7666]  INFO -- Status: 200
D, [2014-01-15T18:04:04.670512 #7666] DEBUG -- response: pragma: "no-cache"
expires: "Mon, 07 Aug 1995 23:30:00 GMT"
cache-control: "private, no-cache, no-cache=Set-Cookie, proxy-revalidate"
access-control-allow-origin: "*"
last-modified: "Sun, 17 May 1998 03:00:00 GMT"
x-content-type-options: "nosniff"
content-type: "image/gif"
date: "Wed, 15 Jan 2014 23:04:04 GMT"
server: "Golfe2"
content-length: "35"
alternate-protocol: "80:quic"
connection: "close"
{"pragma"=>"no-cache", "expires"=>"Mon, 07 Aug 1995 23:30:00 GMT", "cache-control"=>"private, no-cache, no-cache=Set-Cookie, proxy-revalidate", "access-control-allow-origin"=>"*", "last-modified"=>"Sun, 17 May 1998 03:00:00 GMT", "x-content-type-options"=>"nosniff", "content-type"=>"image/gif", "date"=>"Wed, 15 Jan 2014 23:04:04 GMT", "server"=>"Golfe2", "content-length"=>"35", "alternate-protocol"=>"80:quic", "connection"=>"close"}
GIF89a�����,D;

1 个答案:

答案 0 :(得分:2)

对于遇到此问题的人来说,问题是为el和ev设置nil值。当params散列通过法拉第移动时,零值项目将被转换为没有任何值的密钥名称,谷歌也不喜欢它。

IE一个查询字符串,其中nil值通过法拉第将是: ...&放大器; EL&安培; EV 不适合谷歌的测量协议。