はじめに
こんにちは、筆者です。
いきなりの自分語り恐縮ですが、実は私のYoutubeチャンネルがそろそろ1周年を迎えるので…。
せっかく1年間やってきたことだし、自分の活動を振り返るためYoutube Data APIまとめやGoogle APIのOAuth認証方法まとめやら色々調査して来た次第でした。
Youtube Data APIは分析するには取れるデータが少なすぎるし、
Youtube Analytics and Reporting APIを使うにはOAuth認証をしなければならないと、
面倒なことが色々ありましたが…ようやくYoutube Analytics and Reporting APIに手を出せたということで。
そして分かってはいましたが、このAPI…発行の仕方や概念等々、なかなか癖があるAPIでして。
記事等にまとめながらじゃないと理解できそうにないな…ということで、
自分への備忘録がわりにAPIの発行方法や概念等々をまとめていければと。
本当は1記事にまとめようと思いましたが、記事量が膨大になりそうなので…。
「基礎知識編」「Youtube Analytics API編」「Youtube Reporting API編」の三部構成としようかと。
初回となる当記事では「基礎知識編」として、当APIの基礎知識や概念、認証方式や必要スコープについて見ていきます。
それではいきましょう。
Youtube Analytics and Reporting API基礎知識
具体的なAPIの仕様や発行方法…の前に、まずは基礎知識や主要な概念を固めましょう。
※公式Docsはこちら:
developers.google.com
まずは、当APIの大まかな分類から…。
Analytics APIとReporting APIの違い
当APIの名前に「and」と付いているように、このAPIは大きく分けて「Youtube Analytics API」と「Youtube Reporting API」の2つに分かれます。
どちらもYoutube Data APIよりもより深いYoutube関連のデータを取得できるのは同じですが…。
ざっくりいうと:
- Youtube Reporting API: リクエスト発行後、データが非同期で払い出される
.csv
形式のデータを後からDL可能- 大量のデータを受け取れる
- バッチ実行のユースケースに向いている、リアルタイムに今のデータを閲覧するには不向き
- Youtube Analytics API: リクエスト発行後、データが即受け取れる
- 大量のデータを受け取れはしない
…という感じです。
他サービスのAPI同様、欲しいデータをすぐJSON形式で受け取るなら「Youtube Analytics API」一択になります。
大量データを一気に分析したいなら、「YouTube Reporting API」を使って.csv
ファイルを加工して…としたほうが良いでしょう。
他にも細かな差異がありますが、それは後述。
概念説明:メトリクス、ディメンション
当APIでは、さまざまなデータを「メトリクス(指標)」と「ディメンション」の組み合わせで取得できるよう構成されてます。
それぞれ何を示すかというと…:
- メトリクス: データ量
- ディメンション: データ集計条件
- 取得する値の軸を指す
- SQL句でいう
GROUP BY
で指定する項目みたいなイメージ
- SQL句でいう
- 例: 動画投稿日時、所属国など
- 空指定可能
- 取得する値の軸を指す
この説明だと分かりにくいですが、実はこの形式かなり自由度が高く…。
さらにフィルターやソート条件も追加できるので、
ディメンションとメトリクスの組み合わせ+フィルターやソートを駆使することで、様々なデータを取得できます。
公式のサンプルクエリを例に見ていくと:
# 自チャンネルの動画の日毎の再生時間、視聴回数 dimensions=day metrics=views,estimatedMinutesWatched,averageViewDuration,averageViewPercentage,subscribersGained sort=day # 指定国にて再生数が多い動画TOP10 dimensions=video metrics=views,estimatedMinutesWatched,likes,subscribersGained filters=country==JP maxResults=10 sort=-views # 自チャンネル内部で最も再生された動画TOP10 dimensions=video metrics=estimatedMinutesWatched,views,likes,subscribersGained maxResults=10 sort=-estimatedMinutesWatched # 自チャンネルの指定再生リストの再生回数等統計情報 metrics=views,playlistStarts,estimatedMinutesWatched,viewsPerPlaylistStart filters==isCurated=1;playlist==PLAYLIST_ID # モバイル端末からの1日の視聴回数 dimensions=day,operatingSystem metrics=estimatedMinutesWatched,views filters=deviceType==MOBILE sort=day
…など、様々な角度から多様な結果が受け取れることが分かるかと。
アイデア次第で色んな情報を取れると思うので、クエリ構築力が試されそうです…。
認証方式、必要なスコープについて
最後に、認証方式とスコープについて触れておきましょう。
Youtubeに限らずGoogle系のAPIの認証方式は、大きく分けて「APIトークン式」と「OAuth認証式」がありますが…。
当APIは 「OAuth認証式」のみ対応 となっているため、実装する場合はOAuth認証の準備をしなければなりません。
OAuth認証の準備の仕方については、手前味噌ですが筆者が以前書いた記事を参考に: aik0aaat.hatenadiary.jp
また、OAuth認証時には「自作のアプリがGoogle上のどのリソースへアクセスできるか」スコープ(権限)指定をしないといけません。
これは各Google系APIによって必要なスコープが定められており、
Youtube Analytics and Reporting APIでは下記のスコープを要求されます:
https://www.googleapis.com/auth/yt-analytics.readonly
- 再生数や評価数など、基本的な情報へアクセス可能となる
https://www.googleapis.com/auth/yt-analytics-monetary.readonly
- 収益関連の情報へアクセス可能となる
https://www.googleapis.com/auth/youtube
,https://www.googleapis.com/auth/youtubepartner
単なる分析目的であれば、1と2のスコープを付与すれば十分です。
企業チャンネル等で複数のVtuberを抱えている際には、分析用のグルーピング機能は役立つかもなので…その場合は3も付与しておけば良いでしょう。
おわりに
今回はYoutube分析の鉄板API「Youtube Analytics and Reporting API」について、
基礎知識や概念、認証方式や必要スコープについて見ていきました。
正直言うと、筆者はサクッとデータを取ってサクッと分析したいと思ってたので…。
色々ややこしい概念が多くあり、これは大変なAPIだと思う次第です…特にディメンションとかメトリクスとか。
調査しながら「記事にまとめていかないと分からなくなっちゃう」と思い、
当記事を作りましたが…まとめながら筆者の理解も進んだので良かったですが。
まぁYoutubeというデカいプラットフォームを分析尽くすなら、これくらいしないと逆に仕様がややこしくなるのでしょうかね。
収益化も出来ますし、簡単な分析ではあらゆるユーザーのユースケースに対応出来ないと判断されたのかもと思ったり…。
実際、ディメンションとメトリクスの組み合わせであらゆるデータを取れますしね。
もし簡単な分析機能しかいらないなら、Youtube Data APIを使うのも良いと思います。
Youtube Data APIについては、手前味噌ですが筆者が以前書いた記事があるので参考になれば:
aik0aaat.hatenadiary.jp
…少し余談が長くなりました…。
当シリーズの次回記事ではYoutube Analytics APIについて深掘りしていこうと思います。
それでは|д゚*)