「Unity/GoogleMobileAds/初期設定」の版間の差分
(→広告が出ない) |
|||
(同じ利用者による、間の12版が非表示) | |||
行1: | 行1: | ||
− | ==GoogleMobileAds-3. | + | ==GoogleMobileAds-3.18以後== |
− | + | ||
− | + | ||
3.18(2019/6/21)からはデフォでadmob/admanager判定コードが入ってた。 | 3.18(2019/6/21)からはデフォでadmob/admanager判定コードが入ってた。 | ||
一度androidでbuildするとAssets/GoogleMobileAds/Resources/GoogleMobileAdsSettingsが作成され、それを選択するとフォーム上からAndroidとiOSのappIdを入力できる | 一度androidでbuildするとAssets/GoogleMobileAds/Resources/GoogleMobileAdsSettingsが作成され、それを選択するとフォーム上からAndroidとiOSのappIdを入力できる | ||
+ | |||
+ | MobileAds.Initializeの初期化は以下のようにする。 | ||
+ | <pre> | ||
+ | using GoogleMobileAds.Api; | ||
+ | public class GoogleMobileAdsDemoScript : MonoBehaviour | ||
+ | { | ||
+ | public void Start() | ||
+ | { | ||
+ | MobileAds.Initialize(initStatus => { }); | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | 参照:https://developers.google.com/admob/unity/start?hl=ja | ||
+ | |||
+ | ==GoogleMobileAds-3.16以後== | ||
+ | GoogleMobileAds-3.16以後は以下設定が必要。 | ||
===androidの場合(admob)=== | ===androidの場合(admob)=== | ||
行95: | 行109: | ||
==広告が出ない== | ==広告が出ない== | ||
− | Assets/Plugins/AndroidGoogleMobileAdsPlugin/AndroidManifest.xml があれば、そのApplicationIdが正しく入力されてるか確認。 | + | * Assets/Plugins/AndroidGoogleMobileAdsPlugin/AndroidManifest.xml があれば、そのApplicationIdが正しく入力されてるか確認。 |
+ | |||
+ | * Assets/Plugins/Android/AndroidManifest.xml があれば、そのApplicationIdが正しく入力されてるか確認。 | ||
+ | |||
+ | * Asset/GoogleMobileAds/Editor/PListProcessor.cs があれば、appIdが正しく入力されてるか確認。 | ||
+ | |||
+ | * AdManagerでなく、AdmobなのにAsset/GoogleMobileAds/Editor/PListProcessor.cs に plist.root.SetBoolean("GADIsAdManagerApp", true);があればその行は削除する。 | ||
+ | |||
+ | * TestDeviceIdを入れる | ||
+ | |||
+ | ==TestDevice例== | ||
+ | AdRequest request = new AdRequest.Builder() | ||
+ | .AddTestDevice("YOUR_TEST_DEVICE_ID") // YOUR_TEST_DEVICE_IDはlogに出てるので各自それを入れる。 | ||
+ | .Build(); | ||
+ | |||
+ | ==以下のようなエラーが出る場合== | ||
+ | HandleRewardBasedVideoFailedToLoad event received with message: | ||
+ | Failed to receive ad with error: (null) | ||
+ | 支払い情報に不備がある可能性があり。ios側の場合はios側のbuildにゴミが混じってる可能性があるので、xcodeを一旦閉じる。unityで出力されたxcodeプロジェクトを一旦削除して作り直せば良い。再インストールに失敗してる可能性もあるので、前回のアプリを削除しておく。 | ||
+ | |||
+ | https://support.google.com/admob/thread/1755290?hl=en | ||
− | + | ==AndroidのBuild設定== | |
+ | *CustomMainGradleTemplateにチェック | ||
+ | *CustomGradlePropertiesTemplateにチェック | ||
− | + | 参考:https://developers.google.com/admob/unity/quick-start?hl=ja | |
− | + | ==GoogleMobileAdsSettingsファイルの作成== | |
+ | Assets/GoogleMobileAds/GoogleMobileAdsSettings.assetsがないときは、 | ||
+ | Unityメインメニュー/Assets/GoogleMobileAds/Settingsを選択すると、ファイルが作成される |
2024年8月25日 (日) 03:02時点における最新版
目次
GoogleMobileAds-3.18以後
3.18(2019/6/21)からはデフォでadmob/admanager判定コードが入ってた。
一度androidでbuildするとAssets/GoogleMobileAds/Resources/GoogleMobileAdsSettingsが作成され、それを選択するとフォーム上からAndroidとiOSのappIdを入力できる
MobileAds.Initializeの初期化は以下のようにする。
using GoogleMobileAds.Api; public class GoogleMobileAdsDemoScript : MonoBehaviour { public void Start() { MobileAds.Initialize(initStatus => { }); } }
参照:https://developers.google.com/admob/unity/start?hl=ja
GoogleMobileAds-3.16以後
GoogleMobileAds-3.16以後は以下設定が必要。
androidの場合(admob)
GoogleMobileAds-v3.16からこのファイルにAPPLICATION_IDが存在する。
Assets/Plugins/Android/GoogleMobileAdsPlugin/AndroidManifest.xmlの[ADMOB APPLICATION ID]にadmobのAppIDを入れれば良い
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.unity.ads" android:versionName="1.0" android:versionCode="1"> <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" /> <application> <uses-library android:required="false" android:name="org.apache.http.legacy"/> <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="[ADMOB APPLICATION ID]"/> </application> </manifest>
MobileAds.Initialize(appId);は不要となる。
参考:https://developers.google.com/admob/android/quick-start#update_your_androidmanifestxml
java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider: java.lang.IllegalStateException: Invalid application IDが発生するときは [ADMOB APPLICATION ID]がそのままな可能性がある。
iosの場合(admob)
GoogleMobileAds-v3.16からこのファイルは存在する。
Assets/GoogleMobileAds/Editor/PListProcessor.cs
string appId = "ADMOB_APPLICATION_ID";
ADMOB APPLICATION IDにadmobのAppIDを入れれば良い
iosのprojectをビルドし、Info.plistのADMOB_APPLICATION_IDに値が入っていることを確認する。
これを設定しないと以下が発生する
Thread 1: signal SIGABRT libc++abi.dylib: terminating with uncaught exception of type NSException
androidの場合(Google AdManager)
Assets/Plugins/Android/GoogleMobileAdsPlugin/AndroidManifest.xml
<manifest> <application> <meta-data android:name="com.google.android.gms.ads.AD_MANAGER_APP" android:value="true"/> </application> </manifest>
iosの場合(Google AdManager)
Assets/GoogleMobileAds/Editor/PListProcessor.cs のGADApplicationIdentifier行を削除して、GADIsAdManagerApp行を追加。
public static void OnPostProcessBuild(BuildTarget buildTarget, string path) { string appId = "ADMOB_APPLICATION_ID"; string plistPath = Path.Combine(path, "Info.plist"); PlistDocument plist = new PlistDocument(); plist.ReadFromFile(plistPath); // plist.root.SetString("GADApplicationIdentifier", appId); plist.root.SetBoolean("GADIsAdManagerApp", true); File.WriteAllText(plistPath, plist.WriteToString()); }
"AndroidJavaException: java.lang.ClassNotFoundException: com.google.unity.ads.UnityAdListener"エラー
unity/Build Settings/Player Setting/Publishing Settings/user proguard fileをon
Assets/Plugins/Android/proguard-user.txt に以下を記述
-keep class com.google.unity.** { *; } -keep public class com.google.android.gms.ads.**{ public *; } -keep public class com.google.ads.**{ public *; } -keepattributes *Annotation* -dontobfuscate
広告が出ない
- Assets/Plugins/AndroidGoogleMobileAdsPlugin/AndroidManifest.xml があれば、そのApplicationIdが正しく入力されてるか確認。
- Assets/Plugins/Android/AndroidManifest.xml があれば、そのApplicationIdが正しく入力されてるか確認。
- Asset/GoogleMobileAds/Editor/PListProcessor.cs があれば、appIdが正しく入力されてるか確認。
- AdManagerでなく、AdmobなのにAsset/GoogleMobileAds/Editor/PListProcessor.cs に plist.root.SetBoolean("GADIsAdManagerApp", true);があればその行は削除する。
- TestDeviceIdを入れる
TestDevice例
AdRequest request = new AdRequest.Builder() .AddTestDevice("YOUR_TEST_DEVICE_ID") // YOUR_TEST_DEVICE_IDはlogに出てるので各自それを入れる。 .Build();
以下のようなエラーが出る場合
HandleRewardBasedVideoFailedToLoad event received with message: Failed to receive ad with error: (null)
支払い情報に不備がある可能性があり。ios側の場合はios側のbuildにゴミが混じってる可能性があるので、xcodeを一旦閉じる。unityで出力されたxcodeプロジェクトを一旦削除して作り直せば良い。再インストールに失敗してる可能性もあるので、前回のアプリを削除しておく。
https://support.google.com/admob/thread/1755290?hl=en
AndroidのBuild設定
- CustomMainGradleTemplateにチェック
- CustomGradlePropertiesTemplateにチェック
参考:https://developers.google.com/admob/unity/quick-start?hl=ja
GoogleMobileAdsSettingsファイルの作成
Assets/GoogleMobileAds/GoogleMobileAdsSettings.assetsがないときは、 Unityメインメニュー/Assets/GoogleMobileAds/Settingsを選択すると、ファイルが作成される