「Cordova/admob」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→GOOGLE_APP_ID in GoogleService-Info.plistのエラーが出るとき) |
(→GOOGLE_APP_ID in GoogleService-Info.plistのエラーが出るとき) |
||
行51: | 行51: | ||
end | end | ||
</pre> | </pre> | ||
+ | |||
+ | ===Error Domain=NSCocoaErrorDomainが出るとき== | ||
+ | 以下のように出る | ||
+ | AdmobBasicExample[44159:626729] [Client] Updating selectors after delegate addition failed with: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service | ||
+ | on pid 0 named com.apple.commcenter.coretelephony.xpc was invalidated." UserInfo={NSDebugDescription=The connection to service on pid 0 named | ||
+ | com.apple.commcenter.coretelephony.xpc was invalidated.} | ||
==各種フォーマット広告設置方法== | ==各種フォーマット広告設置方法== |
2020年5月29日 (金) 16:51時点における版
目次
ダウンロード
https://github.com/admob-plus/admob-plus
zipを落としてきて、unzipして適当なdirに置く。
admobのサンプルをビルド
cd examples/basic
androidの場合
cordova platform add android cordova requirements android cordova build android cordova run android
テストフラグ付きで、リワード&インステ静止画&フッターバナーが起動する
iosの場合
GADMobileAdsなどがないエラー
Use of unresolved identifier 'GADMobileAds'
以下podを更新して、Google-Mobile-Adsを入れる
cd examples/basic/platforms/ios pod update Installing Google-Mobile-Ads-SDK 7.60.0 (was 7.57.0 and source changed to `https://cdn.cocoapods.org/` from `trunk`)
コードの1行目に以下を追加
import GoogleMobileAds
直らなければ、Podfileを以下のように
target 'AdmobBasicExample' do project 'AdmobBasicExample.xcodeproj' use_frameworks! pod 'Firebase/Core' pod 'Firebase/AdMob' end
GOOGLE_APP_ID in GoogleService-Info.plistのエラーが出るとき
PodFileに pod 'Firebase/AdMob'を追加すると以下が出るかも。
AdmobBasicExample[11216:228420] - <AppMeasurement>[I-ACS020006] Google App ID from GoogleService-Info.plist is empty. Please, define GOOGLE_APP_ID in GoogleService-Info.plist for Analytics to work reliably. See https://goo.gl/txkZbE
plistは以下ファイルしか無いが、そこにGoogle App IDを足すのかも?
platforms/ios/exportOptions.plist platforms/ios/AdmobBasicExample/AdmobBasicExample-Info.plist
firebaseのgoogleIdが必要になるので、Podfileを以下サンプルにあるように、戻したほうが良いかも
target 'AdmobBasicExample' do project 'AdmobBasicExample.xcodeproj' pod 'Google-Mobile-Ads-SDK', '~> 7.57' end
=Error Domain=NSCocoaErrorDomainが出るとき
以下のように出る
AdmobBasicExample[44159:626729] [Client] Updating selectors after delegate addition failed with: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service on pid 0 named com.apple.commcenter.coretelephony.xpc was invalidated." UserInfo={NSDebugDescription=The connection to service on pid 0 named com.apple.commcenter.coretelephony.xpc was invalidated.}
各種フォーマット広告設置方法
公式マニュアル:https://admob-plus.github.io/docs/show-banner.html
テストIdのサンプル
バナー、静止画インステ、リワード全部入り
config.xml
<plugin name="cordova-admob-plus" spec="../../packages/cordova"> <variable name="APP_ID_ANDROID" value="ca-app-pub-3940256099942544~3347511713" /> <variable name="APP_ID_IOS" value="ca-app-pub-3940256099942544~1458002511" /> </plugin>
www/js/index.js
'use strict' const app = { initialize() { document.addEventListener( 'deviceready', this.onDeviceReady.bind(this), false, ) }, onDeviceReady() { this.receivedEvent('deviceready') this.checkIsLoaded().then(() => this.showAds()) }, checkIsLoaded() { return admob.interstitial.isLoaded().then(result => { alert(result) return result }) }, showAds() { admob.banner.show({ id: 'test', npa: '1' }).catch(console.log) admob.interstitial .load({ id: 'test' }) .then(() => admob.interstitial.show()) .catch(console.log) admob.rewardVideo .load({ id: 'test' }) .then(() => admob.rewardVideo.show()) .catch(console.log) }, receivedEvent(id) { const parentElement = document.getElementById(id) const listeningElement = parentElement.querySelector('.listening') const receivedElement = parentElement.querySelector('.received') listeningElement.setAttribute('style', 'display:none;') receivedElement.setAttribute('style', 'display:block;') console.log(`Received Event: ${id}`) }, } app.initialize()
バナー
document.addEventListener('deviceready', () => { admob.banner.show({ id: { // replace with your ad unit IDs android: 'ca-app-pub-xxx/yyy', ios: 'ca-app-pub-xxx/zzz', }, }).then(() => { setTimeout(() => { admob.banner.hide({ // replace with your ad unit IDs android: 'ca-app-pub-xxx/yyy', ios: 'ca-app-pub-xxx/zzz', }) }, 10000) }) }, false)
インステ
document.addEventListener('deviceready', () => { admob.interstitial.load({ id: { // replace with your ad unit IDs android: 'ca-app-pub-xxx/yyy', ios: 'ca-app-pub-xxx/zzz', }, }).then(() => admob.interstitial.show()) }, false)
リワード
document.addEventListener('deviceready', () => { admob.rewardVideo.load({ id: { // replace with your ad unit IDs android: 'ca-app-pub-xxx/yyy', ios: 'ca-app-pub-xxx/zzz', }, }).then(() => admob.rewardVideo.show()) }, false)
その他参考
ca-app-pub-が書かれてる場所一覧
AppIdや広告Idが違うなどと出たら、確認する。
.//platforms/ios/AdmobBasicExample/Plugins/cordova-admob-plus/AMSPlugin.swift .//platforms/ios/AdmobBasicExample/AdmobBasicExample-Info.plist .//platforms/ios/www/plugins/cordova-admob-plus/www/admob.js .//platforms/ios/ios.json .//platforms/ios/platform_www/plugins/cordova-admob-plus/www/admob.js .//platforms/ios/Pods/Google-Mobile-Ads-SDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.framework/GoogleMobileAds .//platforms/ios/Pods/Google-Mobile-Ads-SDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.framework/Headers/GADRewardedAd.h .//platforms/ios/Pods/Google-Mobile-Ads-SDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.framework/Headers/GADInterstitial.h .//platforms/ios/Pods/Google-Mobile-Ads-SDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.framework/Headers/GADNativeExpressAdView.h .//platforms/ios/Pods/Google-Mobile-Ads-SDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.framework/Headers/GADBannerView.h .//platforms/ios/AdmobBasicExample.xcarchive/Products/Applications/AdmobBasicExample.app/AdmobBasicExample .//platforms/ios/AdmobBasicExample.xcarchive/Products/Applications/AdmobBasicExample.app/www/plugins/cordova-admob-plus/www/admob.js .//platforms/ios/AdmobBasicExample.xcarchive/Products/Applications/AdmobBasicExample.app/Info.plist .//platforms/android/app/build/intermediates/bundle_manifest/debug/processDebugManifest/bundle-manifest/AndroidManifest.xml .//platforms/android/app/build/intermediates/merged_manifests/debug/AndroidManifest.xml .//platforms/android/app/build/intermediates/instant_app_manifest/debug/processDebugManifest/instant-app-manifest/AndroidManifest.xml .//platforms/android/app/build/intermediates/merged_assets/debug/mergeDebugAssets/out/www/plugins/cordova-admob-plus/www/admob.js .//platforms/android/app/build/intermediates/transforms/dexMerger/debug/0/classes.dex .//platforms/android/app/build/intermediates/transforms/externalLibsDexMerger/debug/0/classes.dex .//platforms/android/app/build/intermediates/transforms/dexBuilder/debug/41/admob/plugin/AdMob.dex .//platforms/android/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/admob/plugin/AdMob.class .//platforms/android/app/src/main/AndroidManifest.xml .//platforms/android/app/src/main/java/admob/plugin/AdMob.java .//platforms/android/app/src/main/assets/www/plugins/cordova-admob-plus/www/admob.js .//platforms/android/android.json .//platforms/android/platform_www/plugins/cordova-admob-plus/www/admob.js .//plugins/cordova-admob-plus/www/admob.js .//plugins/cordova-admob-plus/www/base.d.ts .//plugins/cordova-admob-plus/ts/base.ts .//plugins/cordova-admob-plus/src/ios/AMSPlugin.swift .//plugins/cordova-admob-plus/src/android/AdMob.java .//plugins/android.json .//plugins/fetch.json .//plugins/ios.json .//node_modules/cordova-admob-plus/www/admob.js .//node_modules/cordova-admob-plus/www/base.d.ts .//node_modules/cordova-admob-plus/ts/base.ts .//node_modules/cordova-admob-plus/src/ios/AMSPlugin.swift .//node_modules/cordova-admob-plus/src/android/AdMob.java .//config.xml .//package.json