FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

UnityADS

Unityでインセンティブ付き動画広告が見れるUnityADSは、出た当初から世話になっていましたが、ここ最近組み込み方法も大きく変わり、導入の仕方もWebで検索するとかえって間違った方法や古いやり方が氾濫していて大混乱になっています。

言える事は2つ。 ①公式の情報だけを見ること ②トラぶった場合は新規プロジェクトにUnityADSだけを入れて実機で動作確認を取り、不具合があるプロジェクトのほうもUnityADSの設定を初めから設定しなおすこと。








なおUnity2018からPackage ManagerがUnityメニュー>Window>Package Managerから組み込めるようになっており、そこからUnityADSもインストール出来るようになっています。従来のアセットストアや公式サイトからダウンロードする方式ではありません。Unity5.6以降でもServicesからインストールできるようになっているので、古いブログなどで変なところからダウンロードするような方法が書いてある場合はやめておいた方が無難です。
tes.png

Unityでの2018年7月ごろの正しい導入方法は公式の設定方法をみること。表示に必要なソースコードはそのページの一番下にある「Example rewarded ads button code」をコピペします。このスクリプトをuGUIのボタンに適応してやれば動作確認が取れるようになります。



ソースコードも、様々なサイトで記述が氾濫しており混乱を極めます。公式サイトのサンプルソースのみを見るようにしてください。それが正義です。下記のものは公式サイトのものから取ってきたものですが、公式サイトの注意書きにもあるように「ONLY NECESSARY FOR ASSET PACKEGE INTEGRATION」の部分はUnityでパッケージからインストールしたAdsでは記述しないようにしましょう。


UnityAdsButton.cs
UnityEngine; using UnityEngine.UI;
using UnityEngine.Advertisements;

[RequireComponent(
typeof(Button))]
public class UnityAdsButton : MonoBehaviour {
Button m_Button;
public string placementId = "rewardedVideo";

void Start () {
m_Button = GetComponent<Button>();
if (m_Button) m_Button.onClick.AddListener(ShowAd);
}

void Update () {
if (m_Button) m_Button.interactable = Advertisement.IsReady(placementId);
}

void ShowAd () {
ShowOptions options =
new ShowOptions();
options.resultCallback = HandleShowResult;
Advertisement.Show(placementId, options);
}

void HandleShowResult (ShowResult result) {
if(result == ShowResult.Finished) {
Debug.Log(
"Video completed - Offer a reward to the player");
}
else if(result == ShowResult.Skipped) {
Debug.LogWarning(
"Video was skipped - Do NOT reward the player");
}
else if(result == ShowResult.Failed) {
Debug.LogError(
"Video failed to show");
}
}
こんな感じですね。過去のブログによっては、初期化が必要だとかGameIDを設定する必要があると書いてあるものもありますが、現時点のUnity2017以上でAds2.0.8を組み込む場合は必要ありません。プラグイン自体もPackage ManagerからInstallするだけでOKです。



そして、古いUnityプロジェクトなどで古いUnityADSから差し替えようとした場合、色々な問題を起すことがあります。
ここでは解決方法をそれぞれ紹介します。

1.ビルド設定をAndroidかiOSに設定してから実行する。
 これをしないとエラーとなります。

2.The type or namespace name 'ShowResult' could not be found. Are you missing an assembly reference? と表示される
  ソースコードにエラーが出ますが、ソースコードに問題がない場合、一度Package Manager等からUnity ADSをバージョンアップするかRemoveしてインストールし直せば直ります。

3.Unityエディター上では表示されるものの、実機では出ない。
 テスト動画は表示されるものの、本番動画を再生しようとしても準備に失敗するケースがあります。それは非対応端末で動作確認をとっている場合があります。Kindle Fire等の一部の端末は非対応とのことなので複数の端末を所持している場合、それぞれの端末でテストしてみることをお勧めします。またソースコードの記述が間違っていても同様に表示出来ない為、まずは新規プロジェクトを開き、上記のソースコードだけを設定してビルドしてみることをお勧めします。

4.古いUnityADSから新しいADSに移行する際、うまくいかない。
 古いプラグイン類がプロジェクト内に残っており競合している場合が殆どです。まず、古いUnityADSのファイルを跡形もなく削除してから、新しいADSを入れなおします。特にキャッシュそのものも削除しないと上手く行きません。プロジェクトフォルダの中にある「ProjectSettings」や「Library」や「Temp」フォルダをまるっと削除した上で、Unityを再起動してみて下さい。


関連記事

コメントの投稿

非公開コメント

RECENT

コミックルーム
同人誌印刷popls

アーカイブ
名称未設定-1 名称未設定-1 名称未設定-1 名称未設定-1 名称未設定-1
Comments+Trackback
Comments<>+-
Trackback <> + -
月別アーカイブ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。