動画リワードSDKの動画ファイル保存場所とライフサイクルは?
動画リワードをメディエーションするツールの開発に関わってきて、各アドネットワークの挙動を調査しつつ、アドネットワークのSDKについては、それなりに把握しているつもりだった。
特に、通信内容を見ながら再生される前の段階で複数の動画ファイルが読み込まれていて、wifiでなければパケ死するなと警報をならしたり、LTEの時は極力パケ死しないような設計をしてみたりしたが、読み込まれた動画ファイル自体にまで気が及んでいなかった。
メディア様からの指摘でふと気がついたのだが。
1.動画ファイルが保存されている場所は?
2.動画ファイルが保存されたファイルは残り続ける?消される?
アプリを開発しているディベロッパーの方は、この2点については特に気になるであろう。
端末のストレージ容量は様々で、少ない容量しかない場合は、アプリを消したりしてやりくりしている。
昔に比べたらだいぶ端末のストレージ容量が増えたとはいえ、写真や動画を撮れば高解像度で保存していたり、音楽を入れまくったりしていると、ストアからアプリをダウンロードするときに、容量がいっぱいでインストールできませんという警告がされる時がある。
まさに自分は、iPhone6sを12月に機種変したのだが、何故かiPhone5s 32GBからiPhone6s 16GBにしてしまった。全然容量が足りなくて、写真や音楽を消さなければいけないほど。。空き容量が0だし。
なんで16GBにしてしまったんだろう。。
買った当初は娘にクレしんランがインストールできないと怒られるし。アプリを削除してなんとかインストールしたが。
ちなみにicloud有料は契約していない。
そんなことで、アプリがインストールできたはいいが、アプリ内の容量が増えまくると、ユーザから削除候補のアプリになるよね。
動画リワードで気をつけるべきなのは、通信量だけではなく、ダウンロードされたデータ容量とライフサイクルも大事であった。
先週から、複数のAndroid端末で動画ファイルがどこにダウンロードされて、どのようにクリーンアップされていくのか、Android StudioのDDMSや、Android File Transferで保存された状態をキャプチャしてみた。
/Android/data/パッケージ名/〜 以下に保存されるケースが多い。
filesかcacheに保存するようだ。
つい先日、水没して買い換えたばかりの自分の端末、SO-02H(OS 5.1.1)では、
/Android/data/パッケージ名/filesに保存されるのがAppLovinとVungle。
/Android/data/パッケージ名/cacheに保存されるのが、UnityAds
※AdColonyはどこに保存しているのか、わからなかった。
通信内容から、動画ファイル名は判明しているので、端末をルート化してunixコマンド打ちながら探せば見つかるだろうけど、個人端末ではやりたくない。あとでfile exploere系のアプリで探してみるかな。
このfiles、cacheはユーザが手動で消すことができる。
「データを削除」で、files内のデータが消えて、
「キャッシュを削除」でcache内のファイルが消える。
※ただし、cache内に保存されたファイルは、いつ消されても文句は言えない。
まあ、保存場所としてはそりゃそうだろうなと思いきや、問題があって、
端末によって保存される場所が変わることが確認できている。
/Android/dataではなく、トップディレクトリに動画ファイルを保存してしまうケースも確認できている。OSのバージョンによる挙動の違いなのか端末依存なのか、範囲を広げて調べないとわからない。
▼SO-01Eでの結果。
あと、どれぐらいのサイクルで動画ファイルがクリーンアップされていくのか、今後引き続き調査していく必要があるかな。
こういう問題があって、改善ポイントが多い状態の方が面白い。
スマホの動画広告に今後も関わり続けていきたいと強く思った。