こんにちは!
分析官のMです。
最近、業務でHIRAMEKI XDというマーケティングプラットフォームに触れる機会がありました。
HIRAMEKI XDにはwebサイトのアクセスログをユーザーに紐付けて収集・整理することができるXD.LOGSTORAGEという機能があります。
保存されたアクセスログはGUIで取得できるのですが、API(ログストレージAPI)を利用して取得することもできます。
本記事ではXD.LOGSTORAGEに保存されたアクセスログをログストレージAPIを利用してPythonで取得する方法を共有します。
ログストレージAPIの仕様
大まかな仕様は以下の通りです。
サーバリクエストパターン
https://www.xdata.jp/report/v2/api/storage/download/[site_id]/[targtet_date]/[profile_id]
[site_id]には契約時に発行されたサイトID(6桁)、
[targtet_date]にはダウンロードしたいアクセスログの日時(YYYYMMDDHH)、
[profile_id]にはダウンロードしたいログのプロファイルID(アクセスログの場合は”0000000001″)を入力します。
ユーザ認証
APIログイン認証はBasic認証です。
HIRAMEKI XDにログインする際のメールアドレス、パスワードを利用します。
実装
今回は2020年9月1日 0時台のアクセスログをzip形式で取得してみました。
下図がそのコードになります。
2行目:HTTPライブラリのrequestsをインポート
5~8行目:URLを指定
11,12行目:メールアドレスとパスワードを指定
15行目:アクセスログ取得
18,19行目:ログ格納先を指定
22,23行目:ローカル環境に保存(デコードされていない状態のアクセスログをres.contentで取得)
さいごに
XD.LOGSTORAGEに保存されたアクセスログは基本的には1時間単位でしか取得できないので、
例えば1か月分のログをダウンロードする場合、GUIだと約720(=24h×30日)回、ダウンロードボタンをクリックする必要があります。
それに対し、ログストレージAPIとfor文を駆使すれば、1回のPython実行で任意の期間のログをダウンロードすることができるので、近々実装してみたいと思います。
※APIリクエストは1分間に30回までという制約があるので、そこは注意が必要ですね…