#adobeのページを見ながら試してみたメモ
###まずは概要
この辺を参考に。
https://marketing.adobe.com/developer/documentation/analytics-reporting-1-4/get-started
https://marketing.adobe.com/developer/get-started/enterprise-api/c-enterprise-api
https://marketing.adobe.com/developer/ja/~ にいけば日本語版が置いてあるけども、最新版ではないらしく、少し書いてある内容が違うよう。
###使い方
① Report.Queueでレポート作成を命令。レポートIDを受け取る。
② Report.GetでレポートIDを渡して、結果を取得(作成中の場合はnotReadyが返ってくる)
③ Report.Getで結果を取得(レポートが出来上がって入れば、結果が返ってくる)
###ぺスプラ
・数秒に1回くらいチェックすべし(毎秒1回以上チェックしてくれるな。)
・キューは並列で投げてもOK
###エンドポイント
・RESTの場合はこんな感じ
https://api4.omniture.com/admin/1.4/rest/?method=Report.Queue
・地域によってエンドポイントは異なるので、定期的にチェックした方がいいらしい。(Company.GetEndpointでチェック)
・とりあえず試したところ、なぜかシンガポール、太平洋北西地域どちらでも叩けた。
###準備が必要なもの
・ユーザー名 → 管理者に作ってもらう。
・暗号鍵 → 管理者に作ってもらう。
・Web Service Accessへのアクセス権 → 管理者に付与してもらう。
・rsid(レポートスイートID) → 管理者に聞く。
###レポートスイートIDの確認方法
・上記の通り、管理者にanalyticsの管理コンソールから確認してもらう。
・もしくは、s_code.jsのs_accountに設定している値から確認も可能。
###叩いてみる(REST 1.4)
ここで試せる
https://marketing.adobe.com/developer/api-explorer
・エンドポイント取得(この時はエンドポイントが不明なので api.omniture.com に向けて叩く)
・送信内容と結果(***は置き換え。)
https://api4.omniture.com/admin/1.4/rest/
が正解らしい。
・エンドポイントを今確認した場所(今回はSingapore)に設定してReport.Queueをたたく
・送信内容と結果(***と999は置き換え。)
https://marketing.adobe.com/developer/documentation/analytics-reporting-1-4/get-started
を参考に、Ranked Report を試してみる
・送信内容と結果(ここもid的なものは適宜置き換えて)
reportIDには先ほど返ってきた値をセット。
ページの閲覧ランキングが配列で返ってくる。あとは好きに加工すればOK。
###最後に、Report.Queueの部分だけPHPで書いてみたので載せておく
※こちらのサイトを参考にさせて頂きました。
http://d.hatena.ne.jp/i_ogi/20100214/wsse
http://d.hatena.ne.jp/ryster/20070907/1189148449
<?php
$url = 'https://api4.omniture.com/admin/1.4/rest/?method=Report.Queue';
$user_name = "**********";
$password = "**********";
$data = array(
'reportDescription' => array(
'reportSuiteID' => '**********',
'elements' => array( array(
'id' => 'page'
))
)
);
$data_json = json_encode($data);
$nonce = md5(mt_rand());
$created = date(DATE_ISO8601);
$x_wsse = sprintf('UsernameToken Username="%s", PasswordDigest="%s", Nonce="%s", Created="%s"',
$user_name,
base64_encode(sha1($nonce . $created . $password, true)),
base64_encode($nonce),
$created);
$context = stream_context_create(
array(
'http' => array(
'method' => "POST",
'header' => "X-WSSE: $x_wsse",
'content' => $data_json
)
)
);
echo file_get_contents($url, 0, $context);
?>
・細かい条件指定などはまた今度確認。
・バージョン1.4からOAuth2に対応してるとのことで、WSSEよりもそっちを使いたい。