2015-11-13 2 views
3

Может кто-нибудь предложить мне о Omniture REST API вызова для того, чтобы сгенерировать отчет (например, мне нужно, чтобы создать ежемесячный отчет для десяти лучших браузеров по размеру выручки и десять лучших браузерами операционной системы и т.д.Omniture Report REST API вызов

+0

Спасибо за ваш ответ. Это очень помогло мне. но у меня есть еще один вопрос: как я могу генерировать отчет для Топ-10 браузеров операционными системами? –

ответ

4
?

Во-первых, использовать метод 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 и посмотреть ответы и помочь создать свои скрипты.

+0

любое предложение для этого вызова API с использованием java, посылая report.queue в формате JSON в Java? –

+0

@ Abdullah Я не эксперт по Java, но быстрый поиск в Google показывает, что существует тонна библиотек Java для создания запросов JSON. Я имею в виду, что это все, что есть. –