Omniture报告REST API调用

时间:2015-11-13 21:48:57

标签: adobe-analytics

有人建议我关于Omniture REST API调用以生成报告(例如,我需要按收入生成十大浏览器的月度报告,按操作系统生成十大浏览器等?

2 个答案:

答案 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文件。