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

くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Unity×Android | Admob/Applovinを使ったリワード広告(動画リワード)

unity android

ひさびさにUnityでAndroidアプリを作ってみました! 初の横スクロールアクション「あざらしロジック」!(GooglePlay)

f:id:wannabe-jellyfish:20170128222935p:plain

www.youtube.com

その際にいろいろやったので、忘れないための備忘録φ(..)メモメモ
「あざらしロジック」で、AdMobApplovinを導入したときの話。

AdMobのUnityプラグインのインストール

AdMobのプラグインは、GitHubに公開されているので、以下からダウンロード。
Release Google Mobile Ads Unity Plugin v3.2.0 · googleads/googleads-mobile-unity · GitHub

※すでに他のプラグインで、AndroidManifest.xmlをインポートしている場合は、追加でインポートしない。

ApplovinのUnityプラグインのインストール

Applovinのプラグインは、Applovinの公式サイトからダウンロード
AppLovin - Sign in

※すでに他のプラグインで、AndroidManifest.xmlをインポートしている場合は、追加でインポートしない。

AndroidMainifest.xmlをインポートしなかった場合

AndroidManifest.xmlに追記が必要。追記する内容は以下の通り。
YOUR_PACKAGE_NAMEYOUR_SDK_KEYは、自分の環境に合わせて。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="YOUR_PACKAGE_NAME"
  ・・・・
  >

  <!-- These permissions are mandatory to run AppLovin SDK -->
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18"/>

  <!-- These permissions are strongly recommended and will result in higher performance -->
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.READ_PHONE_STATE" />

  <application>
    <!-- Applovin's meta-data -->
    <meta-data android:name="applovin.sdk.key" android:value="YOUR_SDK_KEY" />
    <activity android:name="com.applovin.adview.AppLovinInterstitialActivity" android:configChanges="orientation|screenSize"/>
    <activity android:name="com.applovin.adview.AppLovinConfirmationActivity" />
  </application>

</manifest>

リワード広告を表示してみる

使い方は、こんな感じ。(公式のDoc)より
リスナーが用意されているので、動画が表示されたら、報酬を付与するなどの処理ができる。

public class AdRewardManager : MonoBehaviour {

    void Start() {
        // AppLovin SDKの初期化
        AppLovin.InitializeSdk();
        // リワード広告の読み込み
        AppLovin.LoadRewardedInterstitial();
        // リスナーの設定
        AppLovin.SetUnityAdListener(name);
    }

    // リワード広告の表示
    public void ShowAdReward() {
        // 表示の準備ができていたら、広告を表示する
        if(AppLovin.IsIncentInterstitialReady()) {
            AppLovin.ShowRewardedInterstitial();
        }
    }

    // リスナー
    void onAppLovinEventReceived(string ev) {
        if(ev.Contains("REWARDAPPROVEDINFO")) {
            // 動画が再生された
        } else if(ev.Contains("LOADEDREWARDED")) {
            // 読み込み完了
        } else if(ev.Contains("LOADREWARDEDFAILED")) {  
            // 読み込み失敗
        } else if(ev.Contains("HIDDENREWARDED")) {
            //動画の表示し終わり、非表示にされた

            // 次の動画の準備
            AppLovin.LoadRewardedInterstitial();
        }
    }
}

AppLovinは、インタースティシャル広告も表示できる

インタースティシャル広告版はこちら。(公式のDoc)より

public class AdInterstitialManager : MonoBehaviour {

    void Start() {
        // AppLovin SDKの初期化
        AppLovin.InitializeSdk();
        // インタースティシャル広告の読み込み
        AppLovin.PreloadInterstitial();
        // リスナーの設定
        AppLovin.SetUnityAdListener(name);
    }

    // インタースティシャル広告の表示
    public void ShowAdReward(string name) {
        // 表示の準備ができていたら、広告を表示する
        if(AppLovin.HasPreloadedInterstitial()) {
            AppLovin.ShowInterstitial();
        }
    }

    // リスナー
    void onAppLovinEventReceived(string ev) {
        if(ev.Contains("DISPLAYEDINTER")) {
            // 広告が表示された
        } else if(ev.Contains("LOADEDINTER")) {
            // 読み込み完了
        } else if(ev.Contains("LOADINTERFAILED")) {  
            // 読み込み失敗
        } else if(ev.Contains("HIDDENINTER")) {
            // 広告が非表示にされた

            // 次の広告の準備
            AppLovin.PreloadInterstitial();
        }
    }
}

ちなみに、リスナーについては、こっちの公式Docより

以上!!かんたん!!

参考にしたサイト様