読者です 読者をやめる 読者になる 読者になる

エフアンダーバー

個人でのゲーム開発

Unity Adsのミュート機能

Unity Ads

昨日に引き続きUnity Adsの話。

「しろたま」はタイトル画面で音声ミュートの設定ができるようになっているのですが、 現状この設定はUnity Adsの広告には効きません。 できればUnity Adsの広告もミュートで再生したい、 ということでUnity Adsで音声ミュートが可能かどうか調べてみました。

f:id:fspace:20150817180818p:plain

「しろたま」タイトル画面

Unity Adsのオプション

「しろたま」ではアセットストア版のUnity Adsを使用しているので、 これのオプション設定について調べてみます。

公式ドキュメント

まずは当然 公式のドキュメント から。

最下部のShowOptions Classの項目をみると、 設定できる項目は表示後のコールバックとユーザSIDのみらしい。

スクリプト

でも、どっかでミュート云々の話をみた気がする・・・
だいたい広告表示時に左下にミュートボタンあるわけだし・・・
ということでスクリプトを少し読んでみます。

それっぽい単語で検索をかけてみると、 UnityAds.csのparseOptionsDictionaryメソッドに"muteVideoSounds"の文字が。 引数のoptionsに"muteVideoSounds"が設定されているかどうか調べて、 オプション用文字列を生成してるっぽい。

これを設定すればいけるのでは、 と思い呼び出し元を辿るも ShowOptions -> Dictionary<string,string> -> string の順にオプションを変換してるっぽい。 ShowOptionsにミュート設定のフィールドがないから設定できないじゃん・・・。

とはいえ、内部をいじればミュート設定は可能かもしれない。
となると今度はこれが許されているかどうかです。

Unity Adsの利用規約

スクリプトを変更すればミュート設定が可能っぽいことがわかったので、 Unity Adsの利用規約 でこれが許可されているかどうか確認してみます。

最も該当しそうなのはProhibited Usesの項目。

4.3 Prohibited Uses. Under no circumstances shall the Publisher be permitted to run video advertisements in placements that i) are below-the-fold and autostart; or ii) by default (i.e., without user interaction) do not play the sound track of the video advertisement; or iii) play any other soundtrack than of the video advertisements during the playback of the video advertisement; or iv) autostart and are presented or located in such a manner that would make it unlikely that the ads would be viewed by humans, whether or not the sound is defaulted to off; or v) are located in pop-up, pop-under or similar windows other than provided by Applifier. ...

苦手な英語なのであっているかどうかわかりませんが多分こんな感じ(信じるならば自己責任で)。


パブリッシャは以下の場所でビデオ広告を表示する場合には許可が必要である。

  1. below-the-fold(初期状態で画面外)にて自動再生
  2. デフォルトで(ユーザの対話的操作なしに)音声を再生しない
  3. 動画広告再生中に他の音声を再生
  4. 音声の有無にかかわらず、人間に見えない方法で提供または配置して自動再生
  5. ポップアップやポップアンダーあるいは提供された方法以外の類似したウィンドウ上への配置

...


ひっかかりそうなのは2番ですね・・・。
タイトル画面でユーザがミュートを選択しているからという言い訳はできますが、 こういうのは自分に都合のいい方には倒さない方がいい気がする。

公式の回答?

・・・とここまではずいぶん前に確かめた内容なのですが、 そのときに同じ質問をフォーラムにしている方がいたので、 記事を書くにあたり確認してみると直接問い合わせて回答をもらっていました。

Error | Unity Community

どうやらUnityに組み込む場合にはミュートする方法はないらしいです。
ただし、常にミュートでいいのであれば Unity AdsのAdminパネルからゲームごとに設定可能とのこと。

結論

いろいろ調べましたが、下手にいじらない方がよさそうです。
常時ミュートでよければAdminパネルから、 そうでないのならばあきらめるのが最善のよう。