たなちの開発日誌

自分の知識をストックしていくためのブログ

動画配信サービスの収益モデルについてまとめてみた

生テレやSHOWROOMを使う機会があり、YouTubeやニコニコ動画とシステムが全く異なるのでそれぞれ収益モデルについてまとめてみました。

youtube

GoogleAdsenseによる広告収入

収益源は動画の再生前や再生中に表示されるあの広告です。基本的に単価×再生数が収入になるようですが、1再生数あたりの単価は配信者によって異なるようです。人気の配信者になるほど単価が高い傾向があります。

1再生=0.02円ぐらいですね
※チャンネル登録者数や再生時間なので変わるみたいです。ヒカキン氏レベルだと1再生0.1-0.3円ぐらいある模様
【YouTube】再生数30万だと広告収入はどれぐらいなのか公開します【アドセンス】 - WAROCOM

再生数が全て!キッズを対象としたマーケティングも可能

人気youtuberのヒカキンさんやはじめしゃちょーの主なターゲットは子供、中高生という印象があります。
どんな人が再生しても1再生としてカウントされるので、支払い能力がないユーザーもターゲットになるからですね。妖怪ウォッチやパズドラ等、子供たちに受けることを意識した動画を作っていて上手いなと思います。

こうしたマーケティングができるのは、無料で動画を楽しめるYouTubeの特徴といえます。当然、低年齢層以外のユーザーをターゲットにしている配信者もいますが。

ニコニコ動画

クリエイター奨励プログラム

ニコニコ動画で収入を得るには、クリエイター奨励プログラムに登録する必要があります。登録すると、投稿した作品に対してスコアというものが付与され、1点=1ptでニコニコポイントに、1点=1円で現金に交換できるとのこと。

登録された作品に月ごとにスコアが付与される。スコアは作品の人気度、派生作品の数や人気度等で計算されるが、詳しい計算方法は公開されていない。登録された作品にコンテンツツリー経由で子作品が登録されている場合は子ども手当(後述)も付与される。

クリエイター奨励プログラムとは (クリエイターショウレイプログラムとは) [単語記事] - ニコニコ大百科

二次創作を意識したコンテンツツリー

YouTubeとの違いとして、二次創作をしている作品が多くあります。作品に親子関係を設定することで元ネタとなった作品(子作品が登録された作品)にもスコアがつくため、作品が流行れば勝手にスコアがつくことがあります。
「歌ってみた」系の作品やMAD作品なんかが多いニコニコ動画の特徴です。

お金を払ってでも見たい配信

ニコニコ動画には有料チャンネルもあり、お金を払う価値があると思った人だけが視聴できるサービスもあります。
一般の方に認知されている配信者で、登録者数が多いのはメンタリストのDaiGo氏やホリエモンあたりでしょうか。順位は非公開ですが、上位30位までが公開されています。
有料チャンネルの総登録者数が50万人を突破:ニコラボチャンネル のブログ:ニコラボチャンネル(ロべルト) - ニコニコチャンネル:エンタメ
面白いコンテンツには、お金を払いたくなります。

SHOWROOM・生テレ

SHOWROOMはアーティストやアイドル、タレント等の配信が無料で視聴でき、さらに誰でもすぐに生配信が可能な、双方向コミュニケーションの仮想ライブ空間です。
https://www.showroom-live.com

生テレも同様のサービスです。
https://namatv.jp/

投げ銭システム

配信者の収益になるのは、放送中に投げられるアイテムです。視聴者が応援したいと思ったら有料・無料のアイテムを投げることのできる投げ銭方式の課金システムです。
有料アイテムには、10円単位のものから最高1万円のものがあり視聴者はそれぞれポイントを購入してアイテムを投げます。一人が投げられる金額に上限はなく、この記事によると月500万円以上の売上を出している配信者さんもいるとのこと。 appmarketinglabo.net

視聴は無料でできます。

視聴者の応援がタレントの仕事につながる

有料・無料アイテムにはポイントがついていて、イベント期間中にポイント上位になると現実世界での仕事に繋がります。SHOWROOM、生テレが用意した報酬としてはTVへの出演や東京ガールズコレクションのイベントへの出演、アニメの声優オーディションへの参加、等がありなかなか豪華に見えます。
好きなタレントが参加してるから、そのコンテンツに興味を持つ人もいるので番宣にもなるのでしょうね。

看板タレントは、SHOWROOMだとAKB、生テレだとフェアリーズあたりでしょうか。ただ、上記の仕事は知名度のあるアイドルよりも売り出し中のタレントの方が喉から手が出るほど欲しいと思います。

タレントを応援したい人、(かつ課金をしてくれる人)がターゲット

無課金ユーザーも無料アイテムを投げたり、コメントを打つことでポイントに変換されるので、応援はできます。 ただ、運営のバランス次第ですが有料アイテムを投げないと仕事につながるレベルのイベントで勝つことはできません。
頑張っているタレントさんを応援したい、もっと活躍している姿をみたい、と思ったらアイテムを投げましょう。配信が面白かったり、何かしら魅力のあるタレントさんなら僕は課金してもいいと思います。

javascriptからsubmitを行うときの書き方

htmlの<input type="submit">を記述する方法ではなく、jsからsubmitを呼びたいときの書き方。

html

<form id="itemForm" name="itemForm" >

    <div class="submitBtn">
        <input type="button" id="btnItemQuit" name="btnItemQuit" value="キャンセル" onClick="javascript:window.close();"></input>
        <input type="button" id="registerBtn" name="registerBtn" data-bind="click: register" value="登録"/>
    </div>
</form>

javascript

attr()でinputタグに値を設定。appendTo()でsubmitBtnクラスに設定した要素を追加し、form id を指定してsubmitを実行する。

/*
 * 登録ボタン押下時
 */
function register() {
    // ボタンの属性設定
    $('<input>').attr({
        type: 'hidden',
        id: 'registerBtn',
        name: 'interim', 
        value: '仮登録'
    }).appendTo('.submitBtn');

    $('#itemForm').submit();
}

Spring(おまけ)

個人的にSpring MVCで下記のようなマッピングをしてメソッドを呼ぶ際に、name属性にパラメータとして値を持たせるときに役立った。

@RequestMapping(value = "/register", params = "interim", method = RequestMethod.POST)
public void intermRegister(){
…
}

参考文献

Springで複数のsubmitボタン対応 - Qiita

.attr() | jQuery 1.9 日本語リファレンス | js STUDIO

.appendTo() | jQuery 1.9 日本語リファレンス | js STUDIO

MyBatisで自動採番されたIDを取得する方法

テーブルのidにAUTO_INCREMENT 属性が設定されているとき、insert処理を実行した後に自動生成されたIDを取得したいケースがあった。下記のようなselectKeyステートメントを利用することで実現できる。orderには"BEFORE"または"AFTER"を設定することができ、insert実行の前後どちらのタイミングでキーを取得するか選択できる。

Mapper XML ファイル

<!-- 登録処理 -->
<insert id="insertItem">
    INSERT INTO USER (
        NAME
        ,AGE
    ) VALUES (
        #{name}
        ,#{age}
    )
    <!-- 自動採番されたIDを取得 -->
    <selectKey resultType="int" keyProperty="id" order="AFTER">
        select @@IDENTITY
    </selectKey>
</insert>

Java (Spring framework)

Spring framework で使用したときはこんな書き方をした。かなり簡略化してるけど。

userService.java

User user = new User();
user.setName("chitana");
user.setAge(20);

// 新規登録
userMapper.insertItem(user);
// idを取得できている
int id = user.getId();

userMapper.java

/**
 * Userテーブルへ新規登録
 * @param user
 */
void insertItem(User user);

参考文献

MyBatis – MyBatis 3 | Mapper XML ファイル