Может кто-нибудь предложить мне о Omniture REST API вызова для того, чтобы сгенерировать отчет (например, мне нужно, чтобы создать ежемесячный отчет для десяти лучших браузеров по размеру выручки и десять лучших браузерами операционной системы и т.д.Omniture Report REST API вызов
ответ
Во-первых, использовать метод Report.Queue
для создания запроса отчета
Вот пример за последний месяц:.
{
"reportDescription":{
"reportSuiteID":"rsidhere",
"date":"2015-10",
"metrics":[
{
"id":"revenue"
}
],
"sortBy":"revenue",
"elements":[
{
"id":"browser",
"top":"10",
"startingWith":"1"
}
]
}
}
Это должно дать вам ответ с го е отчет идентификатор запроса, например:
{
"reportID":123456789
}
Затем используйте Report.GetQueue
для проверки состояния отчета.
Единственное, что нужно отправить этому методу - это пустой массив []
. Очередь отчетов является глобальной для всей компании. Она возвращает массив объектов, которые выглядят что-то вроде этого (например):
[
{
"reportID":"123456789",
"type":"ranked",
"queueTime":"2015-11-14 03:24:23",
"status":"waiting",
"priority":"0",
"estimate":"0",
"user":"user"
}
// , {..}
]
С более чем 1 объект может находиться в массиве (зависит от того, если у вас есть какие-либо другие сообщения в очереди), вы будете иметь прокрутить его и найти нужный 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 и посмотреть ответы и помочь создать свои скрипты.
любое предложение для этого вызова API с использованием java, посылая report.queue в формате JSON в Java? –
@ Abdullah Я не эксперт по Java, но быстрый поиск в Google показывает, что существует тонна библиотек Java для создания запросов JSON. Я имею в виду, что это все, что есть. –
Спасибо за ваш ответ. Это очень помогло мне. но у меня есть еще один вопрос: как я могу генерировать отчет для Топ-10 браузеров операционными системами? –