3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Unity収益化】アダプティブ バナー広告の実装

Posted at

アダプティブ バナー広告の実装手順メモ
公式サイト・udemyを参考に実装していく

アダプティブバナーとは

スマートバナーの改良版
デバイスごとに広告サイズが最適化されるレスポンシブ広告

実装の前提条件

  • Unityプラグインがインポートされている
  • Mobile Ads SDKが追加されている

完了していない方は、以下の記事を参考に設定してください

アダプティブバナー実装手順

オブジェクト追加

  1. Hierarchyビューで空のオブジェクトを追加して、任意の名前で保存(今回は、AdMobManagerと命名)
    image.png

スクリプト作成

  1. Projectビューで[Assets]>[Scripts]にC#スクリプト追加(今回はAdMobBannerと命名)
    image.png
  2. C#スクリプトを開く

スクリプト実装

  1. 以下の内容にスクリプトを編集する
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using GoogleMobileAds.Api;

public class AdMobBanner : MonoBehaviour
{

    private BannerView bannerView;//BannerView型の変数bannerViewを宣言 この中にバナー広告の情報が入る


    //シーン読み込み時からバナーを表示する
    //最初からバナーを表示したくない場合はこの関数を消してください。
    private void Start()
    {
        RequestBanner();//アダプティブバナーを表示する関数 呼び出し
    }


    //ボタン等に割り付けて使用
    //バナーを表示する関数
    public void BannerStart()
    {
        RequestBanner();//アダプティブバナーを表示する関数 呼び出し       
    }

    //ボタン等に割り付けて使用
    //バナーを削除する関数
    public void BannerDestroy()
    {
        bannerView.Destroy();//バナー削除
    }

    //アダプティブバナーを表示する関数
    private void RequestBanner()
    {
        //AndroidとiOSで広告IDが違うのでプラットフォームで処理を分けます。
        // 参考
        //【Unity】AndroidとiOSで処理を分ける方法
        // https://marumaro7.hatenablog.com/entry/platformsyoriwakeru

#if UNITY_ANDROID
        string adUnitId = "Your_AdMob_APP_ID";//ここにAndroidのバナーIDを入力

#elif UNITY_IPHONE
        string adUnitId = "Your_AdMob_APP_ID";//ここにiOSのバナーIDを入力

#else
        string adUnitId = "unexpected_platform";
#endif

        // 新しい広告を表示する前にバナーを削除
        if (bannerView != null)//もし変数bannerViewの中にバナーの情報が入っていたら
        {
            bannerView.Destroy();//バナー削除
        }

        //現在の画面の向き横幅を取得しバナーサイズを決定
        AdSize adaptiveSize =
                AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(AdSize.FullWidth);


        //バナーを生成 new BannerView(バナーID,バナーサイズ,バナー表示位置)
        bannerView = new BannerView(adUnitId, adaptiveSize, AdPosition.Bottom);//バナー表示位置は
                                                                               //画面上に表示する場合:AdPosition.Top
                                                                               //画面下に表示する場合:AdPosition.Bottom


        //BannerView型の変数 bannerViewの各種状態 に関数を登録
        bannerView.OnAdLoaded += HandleAdLoaded;//bannerViewの状態が バナー表示完了 となった時に起動する関数(関数名HandleAdLoaded)を登録
        bannerView.OnAdFailedToLoad += HandleAdFailedToLoad;//bannerViewの状態が バナー読み込み失敗 となった時に起動する関数(関数名HandleAdFailedToLoad)を登録


        //リクエストを生成
        AdRequest adRequest = new AdRequest.Builder().Build();

        //広告表示
        bannerView.LoadAd(adRequest);
    }


    #region Banner callback handlers

    //バナー表示完了 となった時に起動する関数
    public void HandleAdLoaded(object sender, EventArgs args)
    {
        Debug.Log("バナー表示完了");
    }

    //バナー読み込み失敗 となった時に起動する関数
    public void HandleAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
    {
        Debug.Log("バナー読み込み失敗" + args.LoadAdError);//args.LoadAdError:エラー内容 
    }

    #endregion
}

オブジェクトへ適用

  1. 最初に作成したオブジェクトにスクリプトを貼り付ける
    image.png
  2. 保存して実行すると、画面の下部にThis is a Test Adaptive Bannerと表示される
    image.png
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?