Omniture 报告 REST API 调用
Omniture Report REST API call
任何人都可以建议我关于 Omniture REST API 调用以生成报告(例如;我需要生成按收入排名前十的浏览器和按操作系统排名前十的浏览器等的月度报告?
首先,使用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
查看报告状态。
唯一发送到此方法的是空 []
数组。报告队列对整个公司是全局的。它将 return 一组看起来像这样的对象(示例):
[
{
"reportID":"123456789",
"type":"ranked",
"queueTime":"2015-11-14 03:24:23",
"status":"waiting",
"priority":"0",
"estimate":"0",
"user":"user"
}
// , {..}
]
由于数组中可以有 1 个以上的对象(取决于队列中是否有任何其他报告),您将不得不遍历它并查找匹配的 reportID
。
status
属性 将显示 "waiting" 或 "running"。它永远不会显示 "complete" 或任何东西。如果您没有在数组中找到 reportID
,则表示报告已完成并可以检索。
报告准备就绪后,使用 Report.Get
方法检索报告。
您使用与原始 Report.Queue
相同的 returned 值来获取报告:
{
"reportID":123456789
}
注意:文档说,如果您在报告尚未准备好检索时尝试使用 Report.Get
,您将收到一条错误消息,指出报告尚未准备好。所以从表面上看,这听起来像是一种跳过检查 Report.GetQueue
的合理方法。但是,在实践中,我发现根据我请求的报告类型,将 returned 多少数据等(我不知道确切的公式),这是不正确的。有时它会 return 部分报告!
returned 报告看起来像这样(示例):
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 方法并查看响应并帮助构建脚本。
我创建了一个 python 模块,作为 Adobe Analytics 的高级 API。
你可以在这里查看:http://www.datanalyst.info/python/adobe-api/adobe-analytics-api-introduction/
它将为您检索所需的报告并将其保存为 csv 文件。
任何人都可以建议我关于 Omniture REST API 调用以生成报告(例如;我需要生成按收入排名前十的浏览器和按操作系统排名前十的浏览器等的月度报告?
首先,使用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
查看报告状态。
唯一发送到此方法的是空 []
数组。报告队列对整个公司是全局的。它将 return 一组看起来像这样的对象(示例):
[
{
"reportID":"123456789",
"type":"ranked",
"queueTime":"2015-11-14 03:24:23",
"status":"waiting",
"priority":"0",
"estimate":"0",
"user":"user"
}
// , {..}
]
由于数组中可以有 1 个以上的对象(取决于队列中是否有任何其他报告),您将不得不遍历它并查找匹配的 reportID
。
status
属性 将显示 "waiting" 或 "running"。它永远不会显示 "complete" 或任何东西。如果您没有在数组中找到 reportID
,则表示报告已完成并可以检索。
报告准备就绪后,使用 Report.Get
方法检索报告。
您使用与原始 Report.Queue
相同的 returned 值来获取报告:
{
"reportID":123456789
}
注意:文档说,如果您在报告尚未准备好检索时尝试使用 Report.Get
,您将收到一条错误消息,指出报告尚未准备好。所以从表面上看,这听起来像是一种跳过检查 Report.GetQueue
的合理方法。但是,在实践中,我发现根据我请求的报告类型,将 returned 多少数据等(我不知道确切的公式),这是不正确的。有时它会 return 部分报告!
returned 报告看起来像这样(示例):
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 方法并查看响应并帮助构建脚本。
我创建了一个 python 模块,作为 Adobe Analytics 的高级 API。 你可以在这里查看:http://www.datanalyst.info/python/adobe-api/adobe-analytics-api-introduction/
它将为您检索所需的报告并将其保存为 csv 文件。