アーカイブ

‘Web Access Analysis’ カテゴリーのアーカイブ

Adobe Analyticsでページの読み込み時間を Web Performance APIで計測する

2013 年 11 月 7 日 コメントはありません

急速にWeb Performance API対応ブラウザが増えており、Google AnalyticsがこのAPIを用いたページ読み込み時間レポートを提供している。

Adobe Analyticsでも以下のプラグイン(Mozillaのサンプルコードほぼそのまま / 非公式、自己責任で!)でカスタム変数に読み込み時間を埋め込める。
この例では、navigationstartを指定しているので、前のページのUnload以降の時間になる。
domainLookupEndを指定すれば名前解決からの時間、connectStartならサーバーへの接続開始からの時間など、細かく各ステップの時間を計測可能。

/*
*Plugin: getPageLoadTime 0.1
*/
s.getPageLoadTime=new Function(“”
+”var now = new Date().getTime(); var page_load_time = now – perform”
+”ance.timing.navigationStart; return page_load_time;”);

APIのリファレンスを見てプラグインを改変すれば、計測するタイミングをかなり細かくカスタマイズできる。

MSのNavigation Timingに関するリファレンス
http://msdn.microsoft.com/ja-jp/library/ie/hh673552(v=vs.85).aspx

Mozillaのリファレンス
https://developer.mozilla.org/ja/docs/Navigation_timing

カテゴリー: Web Access Analysis

Adobe SiteCatalyst Reporting API 簡易接続ツール

2013 年 4 月 23 日 コメントはありません

Adobe SiteCatalystのAdmin APIについてはすでに触れていたものの、Reporting APIは人のコードを動かしていただけだったので、先週の週末に簡単な接続テストにつかえるツールを書いてみた。

Adobe SiteCatalyst Reporting API 簡易アクセスツール

APIにアクセスできるユーザー(Web Service ユーザーグループに所属している)は、User/Passを入れて、RSIDと諸々必要事項を入力すると、レポートリクエストができます。
リクエストが正しくキューに入ると、Report IDというのが出てくるのでこれをメモしておきます。
少しして、Report IDを指定してGetStatusすると、レポート生成が完了したかエラーしたか、まだなのか結果が返ってきます。
GetStatusで結果が done ならレポート生成が完了しているので、同じようにReport IDを指定してGetReportするとレポートデータが得られます。

ElementsとMetricsはDeveloper Connectionにあるドキュメントを参照すること。

あくまでRankedレポート専用なので、Elementsは1個、Metricsはカンマ区切りで複数指定できます。

親切にSOAPリクエストとSOAPレスポンスを整形したXMLで見られるので、どんなリクエストが走って、どんな結果が返ってくるか確認できちゃいます。

裏のコード自体はTrendedにも対応しているし、Elementsの組み合わせ(クロス)やセグメンテーションも数分で使えるようになっているので、欲しい方には差し上げます。

利用はあくまで自己責任で。。。。

カテゴリー: Web Access Analysis

PHPでNuSoapを使ってSiteCatalyst APIに接続する

2012 年 3 月 9 日 コメントはありません

Adobe SiteCatalystのAPI(AdminとかReporting)に繋ぐときに使える関数。
元はサンプルコードから抜き出したもの。

まずリクエストヘッダーを生成する関数。

function get_header($username, $secret){
    $nonce = md5(rand());
    $created = date("Y-m-d H:i:s");
    $combo_string = $nonce . $created . $secret;
    $sha1_string = sha1($combo_string);
    $password = base64_encode($sha1_string);
    $headers = '<wsse:Security SOAP-ENV:mustUnderstand="1">
       <wsse:UsernameToken wsu:Id="User">
       <wsse:Username>'.$username.'</wsse:Username>
       <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">'.$password.'</wsse:Password>
       <wsse:Nonce>'.$nonce.'</wsse:Nonce>
       <wsu:Created>'.$created.'</wsu:Created>
      </wsse:UsernameToken>
     </wsse:Security>';
    return $headers;
}

それから、実際にAPIをコールして結果を返す関数。

function api_call($soap_func, $wsdl, $rsids, $username, $secret){
	$client = new nusoap_client($wsdl, TRUE);
	if($err = $client->getError()) {echo "ERROR:".$err."\n"; exit();}
	$result = $client->call(
                $soap_func,
                array("rsid_list" => $rsids),
                'http://omniture.com',
                '',
                get_header($username, $secret)
	);

	return $result;
}

使い方は簡単。
この2つの関数を読み込んで、以下の様にコールするだけ。

$username = "******";
$secret = "*****";
$rsids = array("RSID1","RSID2","RSID3","RSID4");
$result = api_call(
	'ReportSuite.GetSettings',
	'omniture_wsdl_sj.xml',
	$rsids,
	$username,
	$secret
);
var_dump($result);

この例では、複数のReportSuite IDについて、レポートスイートの設定内容が返って来る。
Dr.Hの自動SDRとかはこれで動いている。

緑のイタリックは変えてね。
$usernameと$secretは管理コンソールで取得したウェブサービス用ユーザー情報。api_callの第一引数がコマンド。

ご利用は計画的に自己責任で。

カテゴリー: Web Access Analysis