有人建议我关于Omniture REST API调用以生成报告(例如,我需要按收入生成十大浏览器的月度报告,按操作系统生成十大浏览器等?
答案 0 :(得分:7)
首先,使用Report.Queue
方法创建报告请求。
以上是上个月的一个例子:
{
"reportDescription":{
"reportSuiteID":"rsidhere",
"date":"2015-10",
"metrics":[
{
"id":"revenue"
}
],
"sortBy":"revenue",
"elements":[
{
"id":"browser",
"top":"10",
"startingWith":"1"
}
]
}
}
这应该为您提供报告请求ID的响应,例如:
{
"reportID":123456789
}
然后,使用Report.GetQueue
检查报告的状态。
发送给此方法的唯一方法是空[]
数组。报告队列对整个公司来说是全球性的。它将返回一个看起来像这样的对象数组(例子):
[
{
"reportID":"123456789",
"type":"ranked",
"queueTime":"2015-11-14 03:24:23",
"status":"waiting",
"priority":"0",
"estimate":"0",
"user":"user"
}
// , {..}
]
由于数组中可以有多个对象(取决于队列中是否有其他报告),因此您必须遍历它并查找匹配的reportID
。
status
属性将显示“正在等待”或“正在运行”。它永远不会显示“完整”或任何东西。如果您在阵列中找不到reportID
,则表示报告已完成并准备好检索。
报告准备就绪后,使用Report.Get
方法检索报告。
您使用原始Report.Queue
中返回的相同值来获取报告:
{
"reportID":123456789
}
注意:文档说明如果在未准备好检索报告时尝试使用Report.Get
,您将收到一条错误消息,指出报告尚未就绪。因此,从表面看,这听起来像是跳过检查Report.GetQueue
的合理方式。但是,在实践中,我发现根据我请求的报告类型,将返回多少数据等(我不知道确切的公式),这不是真的。有时它会返回部分报告!
返回的报告看起来像这样(示例):
data[n].name
显示浏览器data[n].counts[0]
显示收入响应
{
"report":{
"type":"ranked",
"elements":[
{
"id":"browser",
"name":"Browser"
}
],
"reportSuite":{
"id":"rsidhere",
"name":"some rsid"
},
"period":"October 2015",
"metrics":[
{
"id":"revenue",
"name":"Revenue",
"type":"currency",
"decimals":2,
"latency":2696,
"current":false
}
],
"data":[
{
"name":"Microsoft Internet Explorer 11",
"url":"",
"counts":[
"474127.13"
]
},
{
"name":"Google Chrome 45.0",
"url":"",
"counts":[
"409498.61"
]
},
{
"name":"Google Chrome 46.0",
"url":"",
"counts":[
"355380.86"
]
},
{
"name":"Safari 9.0",
"url":"",
"counts":[
"275003.13"
]
},
{
"name":"Mozilla Firefox 41.0",
"url":"",
"counts":[
"166427.91"
]
},
{
"name":"Safari 8.0",
"url":"",
"counts":[
"125681.54"
]
},
{
"name":"Safari 0.8.2",
"url":"",
"counts":[
"103866.64"
]
},
{
"name":"::unspecified::",
"url":"",
"counts":[
"87761.87"
]
},
{
"name":"Safari 8.0.8",
"url":"",
"counts":[
"79675.79"
]
},
{
"name":"Safari 9.0.1",
"url":"",
"counts":[
"76977.82"
]
}
],
"totals":[
"2823943.75"
],
"version":"1.4.15.11"
},
"waitSeconds":"0.943",
"runSeconds":"8.710"
}
注意:您可以使用Adobe API Explorer试用API方法并查看回复并帮助构建脚本。
答案 1 :(得分:-1)
我创建了一个python模块,用作Adobe Analytics的高级API。 您可以在这里查看:http://www.datanalyst.info/python/adobe-api/adobe-analytics-api-introduction/
它将检索您想要的报告并将其另存为csv文件。