2011-10-18 363 views
1

我只是Google分析API的初学者。
现在我正在测试此代码。谷歌分析

public static string HttpGetRequest(string url, string[] headers) 
{ 
    String result; 
    WebRequest request = WebRequest.Create(url); 
    if (headers.Length > 0) 
    { 
     foreach (var header in headers) 
     { 
      request.Headers.Add(header); 
     } 
    } 
    WebResponse response = request.GetResponse(); 
    using (var sr = new StreamReader(response.GetResponseStream())) 
    { 
     result = sr.ReadToEnd(); 
     sr.Close(); 
    } 
    return result; 
} 

上的代码运行时正确URL

https://www.google.com/analytics/feeds/data?ids=ga:xxxxxxxx&dimensions=ga:browser,ga:browserVersion,ga:city,ga:date,ga:hour,ga:visitCount,ga:visitorType&metrics=ga:entrances,ga:uniquePageviews&start-date=2011-09-18&end-date=2011-10-18&sort=-ga:entrances&max-results=50

然后将此上的代码返回正确的信息。
但是,当我URL值更改为

https://www.google.com/analytics/feeds/data?ids=ga:xxxxxxxx&dimensions=ga:pagePath,ga:browser,ga:browserVersion,ga:city,ga:date,ga:hour,ga:visitCount,ga:visitorType&metrics=ga:entrances,ga:uniquePageviews&start-date=2011-09-18&end-date=2011-10-18&sort=-ga:entrances&max-results=50

它给这个错误。

The remote server returned an error: (400) Bad Request. 

这两个URL之间的唯一区别是GA:PAGEPATH

请让我知道如何避免这些错误。 任何类型的建议表示赞赏。

+0

您确定ga:pagePath是否有效,错误将表明它不是。 –

+0

对不起拉姆霍德,我不清楚你想说什么。 –

+0

我很确定只有当我把URL值写入ga:pagePath时才会出现这个错误。 –

回答

0

如果你想看看有多少访问者访问了每一页,你应该只包括维度ga:pagePath。在我看来,你试图用单个查询来获取你想要的所有东西,事实上你应该做多个查询。您也可以在query explorer上测试您的查询:

1

这是解决方案,减少一个维度,它将起作用。 只允许使用7个尺寸,您使用了8个。

0

首先检查query explorer,如果它正在工作与否,则检查您的代码。 400错误不仅仅出现在这个问题上。 可能是身份验证问题