エフアンダーバー

個人開発の記録

UnityAdsVideoCacheについて

どうも「UnityAdsVideoCache」という検索ワードで以前書いたUnity Adsの記事にたどり着く人がいるみたいです。

www.f-sp.com

しかしこのワードで検索するということはおそらくUnity Adsで稼ぎたい開発者ではなく、 自分の端末に見知らぬフォルダを見つけて不安になった人だと思います。
そこで非開発者用にこれがなんなのか簡単に書いておきます。

UnityAdsVideoCacheとは?

不安だと思うので最初に言っておきますが、このフォルダは特に害のあるものではありませんし、 邪魔なら消してもかまいません(ただし、消すことにあまり意味はありません)。

UnityAdsVideoCacheは「Unity Ads」という広告を表示するサービスを利用した際に自動的につくられるフォルダです。 もちろん利用したといっても、 開発者がアプリの中に組み込んでおくことで自動的に広告を取得して表示するものであって、 アプリのユーザに義務云々は発生しません。 契約は開発者(あるいは広告主)とサービス提供者の間で行われています。 簡潔にいえば、開発者はUnity Adsを使ってユーザに広告を見せることで稼いでるわけです。

Unity AdsはUnityという超有名ゲームエンジン(簡単に言えばゲーム開発ツール)と同じ会社が提供しており、 ゲーム系の広告を配信しているため、組み込まれるアプリもゲームが多いです。 最も有名なのはクロッシーロード(Crossy Road)でしょうか。

とにかく、もしこのフォルダが作成されているのであれば、 動画広告を表示するゲームアプリをインストールしたはずです。

なんのためにあるの?

Unity Adsは広告の中でも動画広告を主に採用しています。 動画というのは文字や画像と比べると格段にデータ量が大きなものです。 そして、データ量が大きいということは取得するための通信に時間がかかるということです。 そうなると、いざ動画広告を表示しようとなったときに通信が終わるまで待たなくてはいけません。 特にそのときに通信環境が悪かったりすると最悪です。

このようなことを防止するためにキャッシュ(Cache)という方法があります。 これは事前に広告のデータを取得して端末内に保存し、必要になったときには端末内からデータを取得して再生するという方法です *1。 通信速度というのは端末内のデータへのアクセス速度と比べて格段に遅いので、これだけで非常に高速化されます。

もうお分かりかと思いますが、 UnityAdsVideoCacheというのはこの事前取得した広告のデータを保存しておくための場所なのです。

消してもいいの?

前述のとおり、UnityAdsVideoCacheというのは事前取得したデータを後の再生のために一時的に保管しているだけの場所です。 つまり、消しても特に問題ありません。

しかし、当然消した後に対象アプリを開けば動画データのダウンロードが始まり、フォルダが再作成されます。 なのでフォルダを消すことに特に意味はありません。 むしろ通信料の無駄になる可能性があります。

余談:WRITE_EXTERNAL_STORAGE

ちなみに開発者がAndroidにUnity Adsを組み込む場合にはアプリに WRITE_EXTERNAL_STORAGEというパーミッション(許可属性)をつけなくてはいけません。 なんのこっちゃという感じかもしれませんが、 Google Playからダウンロードしたのであればアプリの権限の表示を見たことがあると思います。 WRITE_EXTERNAL_STORAGEというのは「外部ストレージへの書き込み」の許可をユーザからもらう必要がありますよ、 という表示であり、実際ダウンロード時にユーザに確認されています(あまり気にしていないかもしれませんが)。 つまり、形式上Unity Ads(の組み込まれたアプリ)はユーザからフォルダとかつくっていいよ、 という許可をもらったうえでつくっているのです。

おわりに

「簡単に」とか言いつつひとつひとつ書いていたら長くなってしまった・・・
まあとにかく、怪しいもんじゃないので気にしないのが一番、ということでまとめておきます。

*1:一般的にキャッシュというと一度使ったデータを破棄せずに再利用するような場合が多いですが、ここでは事前取得しています。