CocoaPodsが問題無く動作しているかの確認
- Unityから出力したプロジェクト内にPodsフォルダはありますか?また、そのPodsフォルダ内にファイルが出力されていますか?
ファイルがある場合、問題無く動作してます。
- Xcodeでプロジェクトを開く際、.xcodeprojではなく.xcworkspaceをクリックして開いてますか?
CocoaPodsの場合.xcworkspaceをクリックして開く必要があります。
もし.xcodeprojをクリックして開いている場合は、.xcworkspaceをクリックしてプロジェクトを開くようにしてください。
Cocoapodsとは?
iOSライブラリの管理ツールです。
具体的にはAdmobで広告を出す為に必要なGoogle Mobile Ads SDKなどをインストールしてくれてます。
これがあるおかげでプロジェクトに手動で追加する必要が無くなります。
原因追求の為のテスト
何が原因か分からないので下記コードを使って広告を取得できるかテストしていただいてもよろしいでしょうか?
お手数ですがよろしくお願いいたします。
テスト手順とテストコード
AdController
をインスペクタからすべて削除、シーンを保存
- 下記コードを「AdLoadTester.cs」という名前でプロジェクトに配置
- タイトルシーン、ゲームシーンの両シーンで一番初めに読み込まれるっぽいスクリプトのAwakeまたはStartで
AdLoadTester.Initialize()
メソッドを呼ぶ
- iPhoneに出力してバナー広告が表示されるか確認
C#
1
2using UnityEngine;
3using GoogleMobileAds.Api;
4
5public sealed class AdLoadTester : MonoBehaviour
6{
7 static AdLoadTester instance;
8 BannerView bannerView;
9
10 public static void Initialize()
11 {
12 if (instance != null)
13 {
14 return;
15 }
16
17 instance = new GameObject("AdLoadTester").AddComponent<AdLoadTester>();
18 DontDestroyOnLoad(instance.gameObject);
19
20 MobileAds.Initialize(InitializationStatus =>
21 {
22 instance.RequestBanner();
23 });
24 }
25
26 void RequestBanner()
27 {
28 string adUnitId = "ca-app-pub-3940256099942544/2934735716";
29
30 bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);
31 AdRequest request = new AdRequest.Builder().Build();
32 bannerView.LoadAd(request);
33 Debug.Log("ok");
34 }
35}
AdLoadTesterの初期化例
※ 必ず2つのシーンで呼んでください。
タイトルシーンで初期化
C#
1using UnityEngine;
2
3public sealed class TitleScene : MonoBehaviour
4{
5 void Awake()
6 {
7 // テスト広告初期化
8 AdLoadTester.Initialize();
9 }
10}
ゲームシーンで初期化
C#
1using UnityEngine;
2
3public sealed class GameManager : MonoBehaviour
4{
5 void Awake()
6 {
7 // テスト広告初期化
8 AdLoadTester.Initialize();
9 }
10}