Как заставить AdMob Pro работать в Ionic

Я получаю сообщение «AdMob» не определено, когда пытаюсь выполнить приведенный ниже код. Я пытаюсь использовать плагин Cordova AdMob Pro, но не могу обойти неопределенное ошибка(и). Я не могу подтвердить, загружается ли плагин.

Вот версии, которые я использую: AngularJS v1.3.4, Cordova v4.1.2, Ionic v1.2.8. Я запускаю код на телефоне Galaxy S5 под управлением Android версии 4.4.4.

Я пытался добавить этот код как в app.js, так и в контроллер.

$ionicPlatform.ready(function() {
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    // for form inputs)
    if(window.cordova && window.cordova.plugins.Keyboard) {
        cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
    }
    if(window.StatusBar) {
        // org.apache.cordova.statusbar required
        StatusBar.styleDefault();
    }

    console.log('window.cordova.plugins: ' + window.cordova.plugins);  //returns object
    console.log('window.cordova.plugins.AdMob: ' + window.cordova.plugins.AdMob);  //returns undefined
    console.log('window.AdMob: ' + window.AdMob);    //returns undefined
    console.log('AdMob: ' + AdMob); //returns undefined
    console.log('window.AdmobAd: ' + window.AdmobAd); //returns undefined
    console.log('AdmobAd: ' + AdmobAd);  //returns undefined

    if (window.AdMob || AdMob) {
        alert('admob plugin found');
        var admob_key = (device.platform == "Android") ? "ADMOB_KEY" : "IOS_PUBLISHER_KEY";
        var admob = window.AdMob;
        admob.createBannerView(
            {
                'publisherId': admob_key,
                'adSize': admob.AD_SIZE.BANNER,
                'bannerAtTop': false
            },
            function () {
                admob.requestAd(
                    { 'isTesting': false },
                    function () {
                        admob.showAd(true);
                    },
                    function () { console.log('failed to request ad'); }
                );
            },
            function () { console.log('failed to create banner view'); }
        );
    }
});

person GamerDev    schedule 03.12.2014    source источник
comment
Я никогда раньше не работал с профессиональной версией, но вы всегда можете настроить базовую версию с помощью этого руководства: blog.nraboy.com/2014/06/using-admob-ionicframework   -  person Nic Raboy    schedule 05.12.2014
comment
Спасибо, Ник. Я действительно читал ваш блог ранее, чтобы помочь мне начать. Мне нужно использовать новый AdMob Pro, потому что я хочу использовать посредничество facebook. Я заставил все работать, удалив платформу и плагины и начав с нуля.   -  person GamerDev    schedule 09.12.2014
comment
@Que с новой версией плагина, API изменился, поэтому убедитесь, что вы используете профессиональный плагин pointdeveloper.com/   -  person krv    schedule 02.08.2015


Ответы (3)


Только что прошел через это и обнаружил, что ошибка связана с попыткой найти «AdMob», когда этого не существует, если (window.AdMob || AdMob)

если вы просто используете «if (window.AdMob) {», все будет в порядке.

person Ivan Mayes    schedule 19.05.2015
comment
Спасибо помогло. Но я не вижу рекламу. Я проверил на устройстве. Я вижу, что оповещение («найден плагин admob») работает внутри if (window.admob). Должен ли я делать что-то еще? - person Dileep Mettu; 02.01.2016

Я только что разработал расширение AngularJS поверх AdMob Pro, чтобы вы могли лучше взаимодействовать с этим плагином Cordova.

Вот репозиторий: https://github.com/santonocito/angular-admobpro

Вот пример того, как вы можете использовать его с Ionic:

angular.module('yourApp', ['ionic', 'admob'])
    .run(function($rootScope, $state, $log, $adMob) {

        $ionicPlatform.ready(function() {
            // AdMob
            if(window.AdMob) {
                var admobid;

                if (device.platform == "Android") {
                    admobid = { // for Android
                        banner: 'ca-app-pub-your-ad-key',
                        interstitial: 'ca-app-pub-your-ad-key'
                    };
                } else {
                    admobid = { // for iOS
                        banner: 'ca-app-pub-your-ad-key',
                        interstitial: 'ca-app-pub-your-ad-key'
                    };
                }

                $adMob.createBanner( {
                    adId: admobid.banner,
                    autoShow: true,
                    bgColor: 'black',
                    position: $adMob.position.BOTTOM_CENTER
                });

                $adMob.prepareInterstitial({
                    adId: admobid.interstitial,
                    autoShow: false
                });
            }
        });
    });
person marco.santonocito    schedule 05.07.2015
comment
Я попытался добавить ваш плагин, но выдало ошибку: bower ENORESTARGET Не найден тег, который мог бы удовлетворить 1.2.2 Дополнительные сведения об ошибке: Доступные версии в git://github.com/driftyco/ionic-bower.git: 1.2 .2-nightly-1..... и так продолжалось. Я могу предоставить полную ошибку, сгенерированную на терминале, если это необходимо. - person Dileep Mettu; 02.01.2016

1.установите плагин admob phonegap

cordova plugin add admob
  1. Плагин инициализации admob, плагин инициализации после события deviceready

    admob.initAdmob("admob banner ID","admob interstitial ID");
    

3. показать рекламу admob

admob.showBanner(admob.BannerSize.BANNER,admob.Position.TOP_APP);//show banner at the top of app

ссылка:https://github.com/admob-google/admob-cordova

person hotpot    schedule 23.02.2016