Page Analytics??
SharePoint onlineのページを表示すると出てくる「Analytics」というボタン、これをクリックするとページのアクセス解析グラフが表示されます。これとても綺麗で見やすいのですが、ページを横断してアクセス解析を自動取得したいという要望があったので、調べてみました。
SharePoint REST API の利用
Power Automate にこのアクセス解析を取得するアクションがなかったので、毎度のことながらREST APIを利用します。
今回利用するUriは以下のものです。
_api/v2.1/sites/{site ID}/lists/{list ID}/items/{item ID}/oneDrive.getAggregatedAnalytics?startDateTime=2021-05-19T05:12:17.643Z&endDateTime=2021-08-16T05:12:17.643Z&$expand=accessStatsByDay($expand=lastSevenDays,lastThirtyDays,lastNinetyDays,allTime,itemActivityStats)&select=*
長いですが、sites/{site ID}/lists/{list ID}/items/{item ID}/
で特定されるアイテム (この場合はページ) に対して、startDateTime
とendDateTime
で決まる期間のアクセス数を返します。
{site ID}だけちょっと調べにくいですが、Graph API Explorerで取得可能です。詳細は以下のブログを見てみてください。
Microsoft Graph APIでSharepointのサイトIDを調べる方法 - Qiita
レスポンスとしては以下のようなJSONが得られます。
ページごとにこのようなJSONが得られるので、あとは必要なだけのページ全部を Apply to eachでループして結果をCSVに出力すれば完了です。
※もし時間ごとのアクセスグラフを取得したいとなった場合 (この場合はCSVに出力するとしてもページ単位になりますが)には、
_api/v2.1/sites/{site ID}/lists/{list ID}/items/{item ID}/oneDrive.getAggregatedAnalytics?startDateTime=2021-05-19T06:48:52.365Z&endDateTime=2021-08-16T06:48:52.365Z&$expand=accessStatsByHour&select=*
を利用すると1時間ごとのPVが取れます。