在 Unity 中使用 Google AdMob

以下說明如何在 Unity 中使用 Google AdMob

  1. 在 Unity 編輯器中, Edit -> Project Settings -> Package Manager ,輸入以下資料並儲存
    1
    2
    3
    Name: OpenUPM
    URL: https://package.openupm.com
    Scopes: com.google
  2. 在 Unity 編輯器中, Window -> Package Manager 開啟 Package Manager ,找到 Google Mobile Ads for Unity 並按下 Install 安裝。
  3. 在 Unity 編輯器中, Project Settings -> Player -> Android -> Publishing Settings -> Build 確認 Custom Gradle Properties TemplateCustom Gradle Settings Template 有被勾選。
  4. 在 Unity 編輯器中,選取 Assets -> External Dependency Manager -> Android Resolver -> Resolve ,讓 Unity External Dependency Manager 程式庫將已宣告的依附元件複製到 Unity 應用程式的 Assets/Plugins/Android 目錄中。
  5. 在 Unity 編輯器中,選取選單中的 Assets -> Google Mobile Ads -> Settings ,設定 AdMob 應用程式 ID
  6. 在載入廣告之前,需要呼叫 MobileAds.Initialize() 讓應用程式初始化 Google Mobile Ads SDK。初始化只需執行一次,最好是在應用程式啟動時執行。
    1
    2
    3
    4
    5
    6
    7
    public class LoadGoogleMobileAdsScript : MonoBehaviour
    {
    public void Start()
    {
    MobileAds.Initialize(initStatus => { });
    }
    }
  7. 可以使用以下 id 使用測試廣告進行測試
    1
    2
    3
    4
    5
    6
    7
    #if UNITY_ANDROID
    private string _adUnitId = "ca-app-pub-3940256099942544/6300978111";
    #elif UNITY_IPHONE
    private string _adUnitId = "ca-app-pub-3940256099942544/2934735716";
    #else
    private string _adUnitId = "unused";
    #endif
  8. 使用橫幅廣告 (Banner Ad)
    1. 使用 BannerView 類建立橫幅廣告
      1
      2
      3
      4
      5
      6
      7
      8
      9
      // _adUnitId :BannerView 應從中載入廣告的廣告單元 ID。
      // AdSize :您要使用的廣告尺寸。詳情請參閱「橫幅廣告尺寸」。
      // AdPosition :橫幅廣告應放置的位置。AdPosition 列舉了有效的廣告排序值。
      BannerView bannerView = new BannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
      ```
      2. 使用 request 載入廣告
      ```csharp
      var adRequest = new AdRequest();
      bannerView.LoadAd(adRequest);
    2. 使用後記得用銷毀廣告
      1
      2
      3
      4
      5
      if (bannerView != null)
      {
      bannerView.Destroy();
      bannerView = null;
      }
    3. 完整程式碼
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55
      public class BannerAd : MonoBehaviour
      {
      #if UNITY_ANDROID
      private string _adUnitId = "ca-app-pub-3940256099942544/6300978111";
      #elif UNITY_IPHONE
      private string _adUnitId = "ca-app-pub-3940256099942544/2934735716";
      #else
      private string _adUnitId = "unused";
      #endif

      private BannerView _bannerView;

      void Start()
      {
      LoadAd();
      }

      private void OnEnable()
      {
      LoadAd();
      }

      private void OnDisable()
      {
      DestroyAd();
      }

      public void CreateBannerView()
      {
      if (_bannerView != null)
      {
      DestroyAd();
      }
      _bannerView = new BannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
      }

      public void LoadAd()
      {
      if (_bannerView == null)
      {
      CreateBannerView();
      }
      var adRequest = new AdRequest();
      _bannerView.LoadAd(adRequest);
      }

      public void DestroyAd()
      {
      if (_bannerView != null)
      {
      _bannerView.Destroy();
      _bannerView = null;
      }
      }
      }

Reference:

評論