質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

1回答

3152閲覧

monacaでadmobの動画リワード掲載

takuya0615

総合スコア17

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

1クリップ

投稿2017/07/09 17:12

###前提・実現したいこと
monacaでアプリ作っていて、cordova-admob-pro(公式のサンプルアプリで使用されているのと同じプラグイン)を使ってadmobの動画リワードを載せようとしています。

#エラーの詳細
バナーの広告はできたのですが、動画リワードの広告の読込みでエラーが出ます。

error:9, reason: No ad return from any ad server.,adNetwork:AdMob, adType:rewardvideo, adEvent:onAdFailload ```動画リワードのリリース前テストができないようになっているのか、 monaca公式のサンプルアプリではbanner, interstatialしか例がないので、動画リワード用のメソッドには対応していないのでしょうか...? 何か解決方法や案、実践例(失敗例でも)あったら教えてもらえたらありがたいです。

var admobid = {};
if (/(android)/i.test(navigator.userAgent)){
console.log('Android');
admobid = { // for Android
banner: 'ca-app-pub-',
rewardvideo: 'ca-app-pub-
',
};
} else if (/(ipod|iphone|ipad)/i.test(navigator.userAgent)){
admobid = { // for iOS
banner: 'ca-app-pub-',
rewardvideo: 'ca-app-pub-
',
};
} else {
admobid = { // for Windows Phone
banner: 'ca-app-pub-*********',
};
}

function createSelectedBanner(){
if(AdMob) AdMob.createBanner({
adId: admobid.banner,
overlap: $('#overlap').is(':checked'),
offsetTopBar: $('#offsetTopBar').is(':checked'),
adSize: $('#adSize').val(),
position: $('#adPosition').val(),
});
}
function showBannerAtPosition(){
if(AdMob) AdMob.showBanner( $('#adPosition').val() );
}
function onDeviceReady() {
if (! AdMob) { alert( 'admob plugin not ready' ); return; }
initAd();
// display a banner at startup
createSelectedBanner();
}
function initAd(){
AdMob.getAdSettings(function(info){
console.log('adId: ' + info.adId + '\n' + 'adTrackingEnabled: ' + info.adTrackingEnabled);
}, function(){
console.log('failed to get user ad settings');
});
AdMob.setOptions({
// adSize: 'SMART_BANNER',
position: AdMob.AD_POSITION.BOTTOM_CENTER,
isTesting: true, // set to true, to receiving test ad for testing purpose
bgColor: 'black', // color name, or '#RRGGBB'
// autoShow: true // auto show interstitial ad when loaded, set to false if prepare/show
// offsetTopBar: false, // avoid overlapped by status bar, for iOS7+
});
// new events, with variable to differentiate: adNetwork, adType, adEvent
$(document).on('onAdFailLoad', function(e){
// when jquery used, it will hijack the event, so we have to get data from original event
if(typeof e.originalEvent !== 'undefined') e = e.originalEvent;
var data = e.detail || e.data || e;
alert('error: ' + data.error +
', reason: ' + data.reason +
', adNetwork:' + data.adNetwork +
', adType:' + data.adType +
', adEvent:' + data.adEvent); // adType: 'banner', 'interstitial', etc.
});

// test rewarded video ad var videoReady = false; $('#game').click()(prepare()); //#gameはhtmlファイルに設定した function prepare() { videoReady = false; AdMob.prepareRewardVideoAd({ adId: admobid.rewardvideo, autoShow:true, isTesting: true }); } $('#checkvideo').click(function(){ if(videoReady) { AdMob.showRewardVideoAd(); } });

// 広告を見た際のretryボタンを押せるようにする処理
var retryb = document.getElementById('retryb');

document.addEventListener('onAdLeaveApp', function(data){ if(data.adType == 'rewardvideo') { retryb.className = "btn"; }

});

document.addEventListener('onAdLoaded', function(data){ if(data.adType == 'rewardvideo') { videoReady = true; }

});
document.addEventListener('onAdFailLoad', function(data){
if(data.adType == 'rewardvideo') {
videoReady = false;
prepare(); // prepare again for next ad
}
});
document.addEventListener('onAdDismiss', function(data){
if(data.adType == 'rewardvideo') prepare(); // prepare again for next ad
retryb.className = "btn";

});

// test case for #256, https://github.com/floatinghotpot/cordova-admob-pro/issues/256 $(document).on('backbutton', function(){ if(window.confirm('Are you sure to quit?')) navigator.app.exitApp(); }); // test case #283, https://github.com/floatinghotpot/cordova-admob-pro/issues/283 $(document).on('resume', function(){ AdMob.showInterstitial(); });

}
// test the webview resized properly
$(window).resize(function(){
$('#textinfo').html('web view: ' + $(window).width() + " x " + $(window).height());
});
$(document).ready(function(){
// on mobile device, we must wait the 'deviceready' event fired by cordova
if(/(ipad|iphone|ipod|android|windows phone)/i.test(navigator.userAgent)) {
document.addEventListener('deviceready', onDeviceReady, false);
} else {
onDeviceReady();
}
});

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ちょうど先日、monacaでAdMob(動画リワード)を使ったアプリをリリースしました。
その際はテスト環境でも動画のデモが流れました。
error code 9は、接続できたけど見せる広告がないよと言っているので、

javascript

1 2 AdMob.prepareRewardVideoAd({ 3 adId: admobid.reward, 4 autoShow: false 5 });

こちらで、試しに本番設定で呼び出してみるといかがでしょうか。
(私は、isTestingをほとんど使わずに進めてしまいました。)

投稿2017/08/17 09:11

namimon

総合スコア726

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takuya0615

2017/08/23 08:00

結局Monacaを使わずにcordovaだけでアプリを作ってしまったのですが、同じようなエラーは起き、その時もautoshowの変更で表示された気がします。有料登録を解約したのでmonacaでの実証はできないのですが、おそらくこれが原因だったのだと思います。ありがとうございました。
takuya0615

2017/10/21 17:05 編集

追記: ビルドのしやすさの関係から、monacaではiphone、cordovaだけではandroidでデバッグをしていたので気づかなかったのですが、やはりiphoneでは動画リワードが出ませんでした。androidでは出ました。回答受付中にしたいためベストアンサーは外させていただきました。すいません。 また最近は error: 1, reason: Request error: No ad to show〜(以下同じ)が出ます。この辺はindex.htmlをいじるたびに変わってるように思いますが大抵1か9です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問