Podcastの再生回数を計測する方法

2020年12月5日

テクノロジー

eyecatch 趣味がPodcastを聞くこと配信することの、弓削田です。 子供の頃は、親が厳しくあまりテレビを見せてくれなかったため、小学校の頃からラジオっ子だったんですが、 友達のお兄ちゃんが聞いていた深夜放送を小学校の頃から聞いていて、聴くことの面白さは、大人になった今でも変わりません。 Podcastは、スマホひとつあれば収録できてしまうお手軽さで手軽に配信できるという魅力もあり、 自分が何を伝えられるかという事を考えて、「聞くだけでプログラミングを学習できてしまうラジオ」というのを配信しています。 https://mynt.work/radio/

podcastの計測について

Podcastの配信を無料で行ってくれるサービスなども、今現在たくさんありますが、僕の場合は技術屋さんなので、自分で全て構築して配信まで責任をおってやってみることにしてサイトを作るところからはじめました。 その時に、通常のwebサイトやブログであれば、GoogleAnalyticsのタグをセットしておけばいいだけなんですが、Podcastの場合はそういうわけにも行きません。 何故ならPodcastは、RSSを通して配信用の音声ファイル(mp3ファイルなど)に直接アクセスして聞くので、htmlを通らないんですね。 なのでタグで計測するというレベルではないということが分かりました。 また、Appleのpodcast管理画面というのがあり、そこにAnalytics機能はついているのですが、iPhoneのpodcastアプリで再生された(ダウンロードされた?)数が表示されている感じで、最近では、GoogleやSpotifyでもPodcastを再生できる機能を持っているので、そうした数は入ってきません。 そんな感じで、Podcastの計測って非常に難しいんですが、自分のサイトで今現在やっているPodcastの配信数確認をどうやって行っているか説明したいと思います。 尚、サーバーやプログラミングがわからない人は意味が分からない説明になると思いますので、類似の環境で配信を行っている人であっても、難しいと感じた人で計測を行いたいという人は、無料の配信サービスを使うことをオススメします。

mp3をphpで配信する方法

最初に言っておくと、この方法は、失敗に終わっています。 とりあえずやろうとした事としては、RSSに記載している配信する各話のmp3ファイルのURLを、phpアクセスのURLにして、mp3のデータを返すという方法で、 phpの機能がそのまま使えるので、色々な情報を取得して、ロギングして、それをレポート表示すればいいかと考えていました。 しかし、この方法では、AppleのRSSチェック機能に引っかかってしまい、mp3ファイルのダイレクトアクセス以外は、レスポンスヘッダをコントロールすることができませんでした。 ※もしかしたら、この方法でできるのかもしれませんが、PHPではかなり難しかったです。

Nginxで配信計測をする方法

この方法で、今現在運用しているのですが、個人的には最善な方法とは思っていないので、今後改善するかもしれませんが、数値はまあまあ正確に取得できているようです。 まず、nginxで.mp3という拡張子がきた時だけ、logデータを別に保持します。 この時のログデータは、nginxデフォルトの状態にしています。 そして、プログラムで定期的に、nginxのログファイルをシステム用のログデータに変換して以下の情報を取得しています。
  • mp3ファイルパス(配信ID)
  • IPアドレス
  • ユーザーエージェント
  • アクセス日時
この情報が取れたら、mp3ファイルアクセス毎にIPアドレスでユニーク化して(ユーザーエージェントもユニーク化に付与する)日別のアクセス数を計測することができます。 僕の配信しているPodcastサイトは、Podcastにmp3ファイルをダウンロードせずに、サイトでそのまま聞くこともできるので、そのログも合わせて計測して、それらの再生環境を分けて表示することも可能です。 注意する点としては、ユーザーエージェントに、たまにGoogleや、その他のBOTがクローリングに来ることがあるので、これらを計測値から除外する必要があります。 この辺は、通常のwebサイトのログレポート処理をやってみると同じ処理をすることになるので、なんとなく同じ感じです。

気に入っていない点

なんとなく、これでいい感じに今のところは計測できているんですが、 ユニーク計測のポイントが、IPアドレスとユーザーエージェントというところが落とし穴で、全く同じスマホ端末で、会社などの組織内wifiでダウンロードすると、本来は2つ以上の計測にしなければいけないところを、1つにまとめられてしまうという欠点があります。 もちろん、セッション数として、そうした数も全てユニーク化せずに足し込む方法もありますが、podcastでmp3をダウンロードする際に、ダウンロードがたまに切断されて、リジュームしてしまうケースがあり、 1回のダウンロードで複数回のログが書き込まれてしまうというケースがあるので、延べセッション数で、うかれるよりも、最低数のユニーク数にした方が信憑性が高いと考えて、今現在この仕様にしています。 今後もっといい方法があれば、またブログにて技術報告したいと思います。 これを見ている技術者で、別の方法を知っている人がいれば、教えてくだされ!!!

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ