在javascript中,我正在尝试访问Google缩短网址的分析数据for example。我累了'URL Shortener API',工作得很好,我收到了数据。但是,这些数据并非每天每小时或每月的每一天都有分析报告,因为它在here上可用。作为回应,它具有一些属性,例如“点击次数”和#39;和'水桶'其中包含我需要的点击次数。检查下图:
但我使用'缩短API'收到的数据中没有这些属性。我可能会为此目的使用Google analytics API。任何人都可以建议我如何使用分析API来获取任何缩短网址的分析?
由于
答案 0 :(得分:7)
您确定正确使用了URL Shortener API吗?
如果我查看您提供的示例,其中包含您需要的数据,例如过去两小时(每小时不存在)或过去一天的报告,我可以看到例如:
如果我尝试使用URL Shortener API获取相同短网址的相同数据:
curl -X "GET" "https://www.googleapis.com/urlshortener/v1/url?shortUrl=http://goo. gl/fbsS&projection=FULL&key=YOUR-API-KEY"
我会得到相同的数据:
{
"kind": "urlshortener#url",
"id": "http://goo. gl/fbsS",
"longUrl": "http://www.google.com/",
"status": "OK",
"created": "2009-12-13T07:22:55.000+00:00",
"analytics": {
"allTime": /* ... */,
"month": /* ... */,
"day": {
"shortUrlClicks": "1243",
/* ... */,
},
"twoHours": {
"shortUrlClicks": "6",
/* ... */,
}
}
}
所以我过去一天有1243次点击,过去两小时有6次点击,数据相同。
如果您需要始终获取所有数据,则必须自己存储数据,或者像使用Google Analytics一样存储数据。
谷歌分析和短网址在分析中处理非常棘手,因为他们会将用户从他们的网站重定向到您的网站,这可能会导致Google Analytics将其视为“直接”,而不是来自您指定的任何广告系列(简报,脸谱,推特等。)。
您需要标记您的网址,以便正确跟踪它们。通常,您需要使用Google URL Builder为您的网址生成自定义广告系列参数。
Google网址构建器没有API,但您可以使用上一个链接中提供的详细信息生成自己的有效网址,并在非短网址的末尾添加部分或全部参数,例如utm_source
,utm_medium
,utm_term
等
如果您的非短网址已正确标记,则可以使用您想要的任何服务缩短它们。
要恢复数据,您需要使用Google AnalyticsAPI,特别是Reporting API。
经过身份验证后,
var discoveryURL = 'https://analyticsreporting.googleapis.com/$discovery/rest?version=v4';
// Load the API
gapi.client.load(discoveryURL)
.then(function() {
// Returns Analytics data.
gapi.client.analyticsreporting.reports.batchGet({
"reportRequests": [
{
"viewId": VIEW_ID,
// View IDs can be fetched from the Analytics Account Explorer
// https://ga-dev-tools.appspot.com/account-explorer/
"dateRanges": [
{
"startDate": "7daysAgo",
"endDate": "today"
}
],
"metrics": [
{
"expression": "ga:sessions"
}
]
}
]
})
.then(function(response) {
var json = JSON.stringify(response.result, null, 2);
// Do anything you want with the JSON returned.
});
});
此处使用的主要功能是batchGet
,您可以获得有关Reporting API v4 reference上可以使用的字段和选项的所有信息。
您可以使用日期(DateRange),dimensions等各种字段进行操作,以获取应用中所需的所有数据。