動画リワードのアドネットワークSDKを初期化メディエーションするに至ったきっかけ
動画リワードのSDKを初期化するタイミングについて、アドネットワークさんと議論している時に、メディエーションできるのではないか?と、気づかされて機能を作るまでにいたったきっかけを忘れないように書いておく。
動画リワード広告の大きな特徴として、動画ファイル(1ファイルにつき2M〜6M)を事前にダウンロードしておくことで、広告表示するときにスムーズな動画再生が可能にしている。
せっかく見てもらう広告が回線状況が悪く、少しずつ動画ファイルを読み込みながらカクカクとコマ送りで再生されるのであれば、ユーザーはストレスを感じながら広告をみるので広告の魅力は半減してしまうし、広告効果(コンバージョン)にも影響があるだろう。
なので、事前にアドネットワークSDKを初期化して重い動画ファイルを読み込んでおけば、広告を表示したいタイミングでスムーズに再生される。
しかし、アドネットワークのSDKを初期化するタイミングは難しい。
何も考えず、アプリ起動時に全てのアドネットワークSDKを初期化してしまうと、動画リワードを利用しないユーザーにとっては不要なファイルを読み込まされてしまう。接続がWi-Fiでなければ、パケ死してしまうかもしれない。
インセンティブを与える機会が多いアプリの場合、例えば1日に見ようと思えば100回以上も動画リワード広告を視聴できるゲームもある。
このようなアプリの場合は、最初の何回か読み込みに失敗したとしても、そのうち時間が経てばアドネットワークSDKの初期化が完了するので、ユーザーも数分後に動画を見れることからクレームになりづらい。
逆に、1日に1、2回しか動画リワード広告を出すタイミングが無いアプリだった場合は?
動画を視聴することで、1日1回限り「ログインボーナスでポイント2倍!」、「1時間有料機能が開放!」など
このようなインセンティブ付与の場合、動画が読み込めませんでしたでは済まない。もしそのタイミングで広告在庫が無かったら、ユーザーのがっかり感からストアのレビューが低くなってしまうかもしれないし、サポートへお問合せが殺到するかもしれない。
今まではアドネットワークのSDKを初期化するタイミングというのは、アプリによってケースバイケースで、メディアさん側で決めることとして、求められればアドバイスする程度であった。
アプリ起動時に初期化するなら、アプリで使用するダウンロードしなければいけない重い処理やデータを読み込むことがあれば注意しなければいけなく、初期化するタイミングは少しずらしたほうがよいとか、
ゲームであればゲーム完了時に動画リワード出すのであれば、ゲームがスタートしたと同時に初期化するでも良いなどアドバイスしていた。
まだ動画リワードの市場が小さく、アドネットワークの数も広告在庫も少ない、フリクエンシーキャップが厳しくかかっていた時代であれば、複数のアドネットワークをユーザーのパケ死リスクを多少犠牲にしてでも呼び出す必要があったが、昨今の動画リワード市場の盛り上がり、在庫の豊富さや、フリクエンシーキャップをより細かく設定できる機能があることから、もっと最適化できる部分があることにやっと気がつけた。
メディエーションツールを作っていく過程で、メディアさんに提供するサンプルアプリを作って動作確認するのだが、過剰に動画ファイルを読み込まないようツールとして気を遣えば遣うほど、動画ファイルの読み込みを待たなければいけないジレンマに陥ることになる。
各アドネットワークが提供するサンプルアプリやAPI Referenceを読み解いていると、AppLovinのサンプルにはこう書かれている。
iOS-SDK-Demo/ALDemoAppDelegate.m at master · AppLovin/iOS-SDK-Demo · GitHub
// Initializing our SDK at launch is very important as it'll start preloading ads in the background.
アプリ起動時にAppLovinのSDKを初期化するのは、バックグラウンドで広告を事前に読み込み始める為に重要なことです。
さらに、AppLovin SDKはマネタイズだけでなく、AppLovin管理画面から広告出稿を行う場合に計測ツールとして使うことも出来る (サードパーティSDKでのトラッキングも可能) 、アプリ起動時にSDK初期化をしておく必要があるケースもあるとのこと。
これがきっかけで、事前にアドネットワークを初期化したらどうなるのだろうと、全てのアドネットワークをアプリ起動時に初期化を実行したところ、あまりの広告表示の快適さにユーザーのパケ死を無視したくなりそうな、禁断の果実っぷりを体験することになる。
この体験を元に、もう少し踏み込んでツールとしてSDKを初期化すること自体メディエーションできるのではないか?と、考えた結果が「アプリ起動時 初期化メディエーション」という長い名前の機能を開発するきっかけ。
細かい機能の説明については、セミナーで発表予定。