本日、Admob用のプロジェクトファイルを更新しました。
最新のOSへの対応の他、OpenAdという新しい広告タイプを採用しています。
※ 2022年7月追記
Open Adとインタースティシャル広告の両方を有効にしていると、Googleから偶発的クリックを促す可能性が高いのでNGという警告が来ることがあります。
最悪の場合、Admobアカウントの停止などのペナルティを受けてしまうこともあるので、Open Adかインタースティシャルのどちらか一方を有効にするようにしてください。
コンテンツ
Open Ad(アプリ起動広告)について
OpenAdは広告の表示のさせ方の1つです。
アプリの初回起動時や、一度アプリを閉じた後に再度アプリを開いたときに表示される形式の広告になります。
これまでは、レクタングル広告やインタースティシャル広告(全画面広告)を利用して類似の機能を実現していましたが、Admobが標準でアプリ起動広告機能を公開してくれたので採用しました。
これまで、アプリ起動時にインタースティシャル広告を表示することで、誤クリック誘導などの警告メッセージが届くなどの問題がありましたが、今回のOpenAdはGoogleが標準で用意している広告タイプですから、今後はこの警告問題も解決していくと考えています。
OpenAdの実装に伴い、Admob広告の導入方法が若干変更されています。
projectファイルの更新を優先したため、現段階でPDFなどで配布しているマニュアルの整備が整っていません。
恐縮ではございますが、以下を参考に最新のAdmob機能を実装ください。
各種マニュアル内での解説は順次対応していきます。
また、今後さらにAdmobの実装方法は変更になる可能性があります。
その場合は都度本ページで新しい実装方法を紹介します。
重ねて恐縮ではございますが、数日の間は本ページおよびアプリギルドからのLINEメッセージなどをお読みいただければと思います。
新しいAdmobの実装方法
最新のプロジェクトファイルをダウンロード
以下から最新版のプロジェクトファイルをダウンロードしてご利用ください。
https://apps.jp.net/files/project_admob.zip
(他ページからダウンロードできるファイルも最新のファイルに変更済みです)
プロジェクトのインポート方法やApp Studioのパブリッシュ方法は今まで通りです。
Admob管理画面でアプリIDと広告IDを取得
アプリの追加
Admobにログインして「アプリ」メニュー内の「アプリを追加」からアプリを追加します。
※ 既にアプリを追加済みの場合はこの作業は必要ありません。
指示通りに項目を入力してアプリを追加してください。
広告ユニットの追加
アプリが追加できたら、以下の3つの広告ユニットを追加します。
・バナー(画面下部広告)
・インタースティシャル広告(全画面広告)
・OpenAd広告(アプリ起動広告)
先程追加したアプリの「広告ユニット」メニューから「広告を追加」をクリックします。
選択肢の中から、バナー、インタースティシャル、アプリ起動の3つの広告タイプを順に選択してそれぞれの広告ユニットを作成してください。
広告ユニット名は何でもOKです。わかり易い名前をつけておきます。
3種の広告ユニットが追加できたら完了です。
cordovaプラグインの編集箇所
これまでAdmob SDKというプラグインを利用していましたが、より多機能なAdmob Plus(admob-plus-cordova)というプラグインを採用しています。
Monaca IDEの「設定」-> 「cordovaプラグインの管理」を開いて有効なプラグインの中にadmob-plus-cordovaプラグインが含まれていることを確認してください。
admob-plus-cordovaプラグインのアイコン箇所にマウスを移動させて表示される「設定」というメニューをクリックするとインストールパラメータというウインドウが開きます。
Admob管理画面から確認できる自分のアプリIDを設定してください。
Admob Plusの導入にあたり、これまではAndroidとiOSの区別をしなくてもOKでしたが、今回からOSを区別してアプリIDを指定する必要があります。
APP_ID_ANDROID=[Androidアプリの場合はここを変更]
APP_ID_IOS=[iPhoneアプリの場合はここを変更]
Androidアプリの場合はAPP_ID_ANDROIDの行の項目を変更してください。
iOSアプリの場合はAPP_ID_IOSの行の項目を変更してください。
アプリIDはAdmob管理画面の「アプリの設定」から確認できます。
例:ca-app-pub-2653369295607612~39833000000
apps.admob.jsの編集箇所
続いて、広告ユニットIDをapps.admob.jsファイルに記述します。
monaca IDを開いて左のファイル一覧にある「apps.admob.js」を選択してファイルを開いてください。
3種類の広告IDを設定するだけで標準的な動作をするようになっています。
広告の挙動をカスタマイズしたい場合は、必要に応じて項目を編集してください。
以下にコードの一部を抜粋して編集可能箇所に関する説明を記述します。
(コード内の細かい表現は変更になる可能性があります。適宜読み替えて判断いただければと思います。)
// ++++++++++++++++++++++++++++++++++++++++ //
// 編集項目ここから
// 参考 -> https://apps.jp.net/information/about_project_file/
// ++++++++++++++++++++++++++++++++++++++++ //
var admobid = {}
// 1. 以下のca-app-pub-xxxxx/yyyyyのxxxxxとyyyyy部分を自分の広告IDの数値に変更してください
admobid = {
// バナー型広告の広告IDを入力
banner: 'ca-app-pub-2653369295607612/8072753290',
// インタースティシャル型広告の広告IDを入力
interstitial: 'ca-app-pub-2653369295607612/6975294041',
// OpenAd広告の広告IDを入力
open: 'ca-app-pub-2653369295607612/4200036630',
}
// 2. アプリ起動時広告(OpenAd)を利用する場合はtrue/利用しない場合はfalse
var use_open_ad = true;
// 3. OpenAd表示間隔(指定した秒が経過するまで再度広告は表示されません)
var open_ad_interval = 60;
// 4. 全画面広告広告(interstitialAd)を利用する場合はtrue/利用しない場合はfalse
var use_interstitial = true;
// 5. interstitialAd表示間隔(指定した秒が経過するまで再度広告は表示されません)
var interstitial_ad_interval = 30;
// ++++++++++++++++++++++++++++++++++++++++ //
// 編集項目ここまで
// ++++++++++++++++++++++++++++++++++++++++ //
config.xmlの編集箇所(iOSアプリの場合)
Androidアプリの場合はこれまでの設定でAdmob広告が表示されるようになっています。
iOSアプリの場合は、config.xmlファイルを開いて
<platform name=”ios”>〜</platform>
の間にあるアプリIDの欄を自分のアプリのIDへ変更してください。
設定などによって前後しますが、63行目付近に記載することになります。
<preference name="ios-XCBuildConfiguration-SWIFT_VERSION" value="5.3"/>
<config-file parent="GADApplicationIdentifier" target="*-Info.plist">
<string>ca-app-pub-[ここはあなたのアプリID]</string>
</config-file>
<preference name="ios-XCBuildConfiguration-SWIFT_VERSION" value="5.3"/>
<config-file parent="GADIsAdManagerApp" platform="ios" target="*-Info.plist">
<true/>
</config-file>
これで新しいAdmob広告が表示されるようになります。
monacaデバッガー上では表示されません。
動作を確認する際は、monaca IDEのビルドメニューからカスタムビルドやデバッグビルドファイルをビルドして実機確認をする必要があります。
各広告の表示例
参考までに広告の表示例を画像で紹介します。
バナー広告(従来どおり)
インタースティシャル(従来どおり)
OpenAd
注意点など
プラグインの更新の前後で、内部で利用しているライブラリなどのバージョンも変更になっています。
以前に作ったプロジェクトを再利用する場合は、各種ライブラリのバージョンが最新になっているか確認してください。
特にリリース前にアプリをビルドする時にはバージョンが最新でないと正常にビルドが完了しない場合もあります。
cordovaプラグインのバージョンチェック
対象になるプロジェクトのmonaca IDEを開いて上部メニュー「設定」→「Cordovaプラグインの管理」から
Cordovaプラグインが最新のバージョンになっているか確認します。
2022年4月現在最新バージョンは以下の通りです。
ビルド環境のバージョンチェック
同様にIDEメニューから「ビルド」→「ビルド環境の設定」をクリックしてビルド環境も最新にしましょう。
2022年4月現在、最新バージョンは以下の通りです。
それぞれバージョンが最新であることが確認できたら、各種リリースビルドを作成してiOSアプリであればTransporter(Application Loader)、AndroidアプリはGoogle Playのコンソール画面からビルドファイルをアップロードしてください。
補足:Transporterの使い方
AndroidアプリはWeb画面からビルドファイルをアップロードできるので常に最新の機能を利用できますが、iOSアプリは専用のTransporterというデリバリソフトを使うことになります。(Macパソコンのみ利用可能)
Macをご利用の方は最新のTransporterを以下からダウンロードしてご利用ください。
利用方法はシンプルです。
手順1. Transporterを起動
初回起動時、Apple ID(メールアドレス)とパスワードを入力してログインする必要があります。
ログイン後は以下のような画面が表示されるので、monacaでビルドしたリリースビルドファイル(ipaファイル)をドラッグしてアプリを追加してください。
手順2. アプリを検証
アプリを追加すると、アプリ一覧に新しいアプリが追加されます。「デリバリ」ボタンを押せばデリバリ(アップロード)が始まりますが、「…」メニューをクリックして一度アプリの検証を行っておきましょう。
手順3. デリバリをクリック
検証で問題がなければ「デリバリ」をクリックするとアプリのアップロードが始まります。
検証中にエラーが生じた場合は、問題解決してから再度「ビルド」と「検証」を行ってください。
エラーが解決できない場合は、ここで表示されたエラメッセージをコピペしてサポートに問い合わせて頂ければ、対応がスムーズです。
まとめと今後の予定
これまで、Admobを導入している方からGoogleから「誤ったクリックの誘導」に関する警告についての問い合わせを多く頂いていました。
今回のOpenAdの導入で問題は解決ないし軽減していくと考えていますが、しばらくの間は様子を見て適切な挙動になるように微調整を行う予定です。
調整内容によっては再度導入方法が変わるかもしれません。
しばらくの間、お手数をおかけするかもしれませんが何卒宜しくお願いします。
また、まだAdmobを導入していないという方は、ぜひこれを機会に導入を検討してください。
現在は無料で導入できて、実装も簡単なNend広告を標準広告として推奨していますが、Admobの方が広告量、クリック単価など総合的に見て稼ぎやすい広告ASPです。
admobに乗り換えただけで広告収入が10倍になったという事例も少なくはありません。
monaca IDE上でコードを編集することになるので、最初は抵抗があるかもしれませんが、見返りは大きいです。
最初は手探りでも何度か実装すれば、自然と身につくと思います。
これを機会にぜひ1つ上のアプリビジネスに挑戦してください!
多くの副業難民を救ったアプリビジネスのノウハウの集大成を完全無料で公開!
運営実績5年以上、指導実績1200名を超えて月収100万円以上の実績者を多数輩。
最高月収867万円達成者も語る「時間」や「場所」に縛られない理想的な副業ライフを手に入れるための特別レッスンを今すぐ受け取ってください!
本記事の記載通りに、新しいAdmob広告を実装してmonacaでビルドしました。Androidアプリは上手くいきましたが、iOSアプリはビルド時に以下のエラーが発生します。原因と対処方法を教えて下さい。
[11:24:42] /Users/builder/Library/Developer/Xcode/DerivedData/クイズ_for_地縛少年花子くん-hduypdtkdviravbbmuxuiqdyyxyz/Build/Intermediates.noindex/ArchiveIntermediates/クイズ for 地縛少年花子くん/IntermediateBuildFilesPath/クイズ for 地縛少年花子くん.build/Release-iphoneos/クイズ for 地縛少年花子くん.build/Objects-normal/arm64/AMBAppOpenAd.dia:1:1: warning: Could not read serialized diagnostics file: error(“Invalid diagnostics signature”) (in target ‘クイズ for 地縛少年花子くん’ from project ‘クイズ for 地縛少年花子くん’)
[11:24:42] Command CompileSwift failed with a nonzero exit code
[11:24:42] /tmp/download/platforms/ios/クイズ for 地縛少年花子くん/Plugins/admob-plus-cordova/AMBAdBase.swift:1:8: error: no such module ‘GoogleMobileAds’
[11:24:42] import GoogleMobileAds
[11:24:42] ^
[11:24:42] /Users/builder/Library/Developer/Xcode/DerivedData/クイズ_for_地縛少年花子くん-hduypdtkdviravbbmuxuiqdyyxyz/Build/Intermediates.noindex/ArchiveIntermediates/クイズ for 地縛少年花子くん/IntermediateBuildFilesPath/クイズ for 地縛少年花子くん.build/Release-iphoneos/クイズ for 地縛少年花子くん.build/Objects-normal/arm64/AMBBanner.dia:1:1: warning: Could not read serialized diagnostics file: error(“Invalid diagnostics signature”) (in target ‘クイズ for 地縛少年花子くん’ from project ‘クイズ for 地縛少年花子くん’)
[11:24:42] Command CompileSwift failed with a nonzero exit code
[11:24:42] /tmp/download/platforms/ios/クイズ for 地縛少年花子くん/Plugins/admob-plus-cordova/AMBAdBase.swift:1:8: error: no such module ‘GoogleMobileAds’
[11:24:42] import GoogleMobileAds
[11:24:42] ^
[11:24:42] /Users/builder/Library/Developer/Xcode/DerivedData/クイズ_for_地縛少年花子くん-hduypdtkdviravbbmuxuiqdyyxyz/Build/Intermediates.noindex/ArchiveIntermediates/クイズ for 地縛少年花子くん/IntermediateBuildFilesPath/クイズ for 地縛少年花子くん.build/Release-iphoneos/クイズ for 地縛少年花子くん.build/Objects-normal/arm64/AMBContext.dia:1:1: warning: Could not read serialized diagnostics file: error(“Invalid diagnostics signature”) (in target ‘クイズ for 地縛少年花子くん’ from project ‘クイズ for 地縛少年花子くん’)
[11:24:42] Command CompileSwift failed with a nonzero exit code
[11:24:42] /tmp/download/platforms/ios/クイズ for 地縛少年花子くん/Plugins/admob-plus-cordova/AMBAdBase.swift:1:8: error: no such module ‘GoogleMobileAds’
[11:24:42] import GoogleMobileAds
[11:24:42] ^
[11:24:42] /Users/builder/Library/Developer/Xcode/DerivedData/クイズ_for_地縛少年花子くん-hduypdtkdviravbbmuxuiqdyyxyz/Build/Intermediates.noindex/ArchiveIntermediates/クイズ for 地縛少年花子くん/IntermediateBuildFilesPath/クイズ for 地縛少年花子くん.build/Release-iphoneos/クイズ for 地縛少年花子くん.build/Objects-normal/arm64/AMBCore.dia:1:1: warning: Could not read serialized diagnostics file: error(“Invalid diagnostics signature”) (in target ‘クイズ for 地縛少年花子くん’ from project ‘クイズ for 地縛少年花子くん’)
[11:24:42] Command CompileSwift failed with a nonzero exit code
[11:24:42] /tmp/download/platforms/ios/クイズ for 地縛少年花子くん/Plugins/admob-plus-cordova/AMBAdBase.swift:1:8: error: no such module ‘GoogleMobileAds’
[11:24:42] import GoogleMobileAds
[11:24:42] ^
[11:24:42] /Users/builder/Library/Developer/Xcode/DerivedData/クイズ_for_地縛少年花子くん-hduypdtkdviravbbmuxuiqdyyxyz/Build/Intermediates.noindex/ArchiveIntermediates/クイズ for 地縛少年花子くん/IntermediateBuildFilesPath/クイズ for 地縛少年花子くん.build/Release-iphoneos/クイズ for 地縛少年花子くん.build/Objects-normal/arm64/AMBGenerated.dia:1:1: warning: Could not read serialized diagnostics file: error(“Invalid diagnostics signature”) (in target ‘クイズ for 地縛少年花子くん’ from project ‘クイズ for 地縛少年花子くん’)
[11:24:42] Command CompileSwift failed with a nonzero exit code
[11:24:42] note: Using new build system
[11:24:42] note: Planning
[11:24:42] note: Build preparation complete
[11:24:42] note: Building targets in parallel
[11:24:42] ** ARCHIVE FAILED **
[11:24:42] xcodebuild: Command failed with exit code 65