UNPKG

cordova-plugin-admobpro

Version:

Ultimate Cordova Plugin for Google AdMob and DFP to monetize hybrid apps. Show mobile Ad with single line of JavaScript. Compatible with Cordova CLI, PhoneGap Build, Intel XDK/Crosswalk, Google ChromeApp, Ionic, Meteor, etc.

425 lines (343 loc) 12.8 kB
# AdMob Plugin Pro ����˵�� # �� Javascript ���� AdMob ���׬Ǯ��һ�д���㶨 �� ���㣺 - [x] ��򵥵�API��һ�д���㶨�����ʾ�� - [x] ֧�ֹ������Banner����ȫ����棨Interstitial���� - [x] ����ͨ��AdMob�н�֧�ֶ��������硣 - [x] ���ֹ�����ߴ磬���������Զ���ߴ硣 - [x] ���Թ̶��������Ļ���˻�ײ���Ҳ��������ģʽ�� - [x] �����Ĺ����֣�����������ָ��λ����ʾ�� - [x] ���������������ܹ�����Զ���Ӧ�� - [x] ֧�����µ� iOS SDK�� - [x] ֧�����µ� Android Google play services�� - [x] ����ά����ʱ������֧�ֵ�λ�� ���ݣ� - [x] Apache Cordova - [x] Intel XDK / Crosswalk - [x] IBM Worklight - [x] Google Chrome App - [x] Adobe PhoneGap Build ֧�ֹ�����磺 - [x] AdMob - [x] DoubleClick - [x] Facebook AudienceNetwork - [x] Flurry - [x] iAd - [x] InMobi - [x] Millennial Media - [x] MobFox ������ʾ����������� 2 ���µ�����ͳ�ƣ� - [x] ʹ�� AdMob Plugin Pro���ȿ�Դ�汾�и��ߵ�����ʣ�fill rate���� - [x] ʹ��ȫ����棬�ȹ������������ߣ��ߴ� 5-10 ���� ���ʣ� - �����ʣ�Fill rate��: �����App�й����ʾ�Ĵ��������Թ������Ĵ����� - �����ʣ�RPM��: ��ʾ 1000 �ι������档 - Intel XDK: Intel �� HTML5 �ƶ�Ӧ�ÿ����������Ʒ������ƶ˹������������֧�ֵ������ϵĵ���������� - Adobe PhoneGap Build: Adobe��HTML5��������Ʒ��񣬽��ܷ����������ֻ����ʹ�þ��������׼�IJ���� ���ţ� - ����Ƽ���Telerik�������� Verified Plugins Marketplace. [���� ...](http://plugins.telerik.com/plugin/admob) - ����Ƽ���William SerGio�������� code project (20 Jun 2014), [���� ...](http://www.codeproject.com/Articles/788304/AdMob-Plugin-for-Latest-Version-of-PhoneGap-Cordov) - ����Ƽ���Arne�������� Scirra Game Dev Forum (07 Aug, 2014), [���� ...](https://www.scirra.com/forum/plugin-admob-ads-for-crosswalk_t111940) - ����Ƽ���Intel XDK�Ŷ� (08/22/2014), [���� ...](https://software.intel.com/en-us/html5/articles/adding-google-play-services-to-your-cordova-application) - ����Ƽ���Scirra Construct 2 (09/12/2014)�ٷ��汾����, [read more ...](https://www.scirra.com/construct2/releases/r180) ## ���ʹ�� ## ���ʹ�� [Cordova �����й���](https://cordova.apache.org/docs/en/edge/guide_cli_index.md.html#The%20Command-Line%20Interface)���������²��贴����Ŀ�����Ӳ���� ```c cordova create <project_folder> com.<company_name>.<app_name> <AppName> cd <project_folder> cordova platform add android cordova platform add ios cordova plugin add com.google.cordova.admob // copy the demo html file to www rm -r www/*; cp plugins/com.google.cordova.admob/test/index.html www/ // connect device or run in emulator cordova prepare; cordova run android; cordova run ios; // or import into Xcode / eclipse ``` ���ʹ�� Intel XDK���������²�������� Project -> CORDOVA 3.X HYBRID MOBILE APP SETTINGS -> PLUGINS AND PERMISSIONS -> Third-Party Plugins -> Add a Third-Party Plugin -> Get Plugin from the Web, input: ``` Name: AdMobPluginPro Plugin ID: com.google.cordova.admob [x] Plugin is located in the Apache Cordova Plugins Registry ``` ## �������ֵ����� ## > ���� 1: ͨ�� AdMob ��վ��������Ӧ�Ĺ����λ ID ```javascript // ����ƽ̨���Զ�ѡ����Ӧ�Ĺ�� ID var admobid = {}; if( /(android)/i.test(navigator.userAgent) ) { // for android admobid = { banner: 'ca-app-pub-xxx/xxx', // or DFP format "/6253334/dfp_example_ad" interstitial: 'ca-app-pub-xxx/yyy' }; } else if(/(ipod|iphone|ipad)/i.test(navigator.userAgent)) { // for ios admobid = { banner: 'ca-app-pub-xxx/zzz', // or DFP format "/6253334/dfp_example_ad" interstitial: 'ca-app-pub-xxx/kkk' }; } else { // for windows phone admobid = { banner: 'ca-app-pub-xxx/zzz', // or DFP format "/6253334/dfp_example_ad" interstitial: 'ca-app-pub-xxx/kkk' }; } ``` > ���� 2: һ�д��룬��ʾ����� ```javascript // ��ʾ�������Ĭ���ڶ��˵����ܹ���� if(AdMob) AdMob.createBanner( admobid.banner ); // ����, �ڵײ���ʾ����� if(AdMob) AdMob.createBanner( { adId:admobid.banner, position:AdMob.AD_POSITION.BOTTOM_CENTER, autoShow:true} ); // ���ߣ��Ѹ���ģʽ���ڵײ���ʾ������ if(AdMob) AdMob.createBanner( { adId:admobid.banner, adSize:'MEDIUM_RECTANGLE', overlap:true, position:AdMob.AD_POSITION.BOTTOM_CENTER, autoShow:true} ); // ���ߣ���ָ����λ�ã���ʾָ����С�Ĺ�� if(AdMob) AdMob.createBanner( { adId:admobid.banner, adSize:'CUSTOM', width:200, height:200, overlap:true, position:AdMob.AD_POSITION.POS_XY, x:100, y:200, autoShow:true} ); ``` > ���� 3: ׼��ȫ����棬������Ҫ��ʱ����ʾ ```javascript // �ں�̨׼�������Դ�����磬��ij����Ϸ�ؿ���ʼ��ʱ�� if(AdMob) AdMob.prepareInterstitial( {adId:admobid.interstitial, autoShow:false} ); // ��ʾȫ����棬���磬��ij����Ϸ�ؿ�������ʱ�� if(AdMob) AdMob.showInterstitial(); ``` ## ���������� ## �μ�Դ���� [test/index.html] (https://github.com/floatinghotpot/cordova-admob-pro/blob/master/test/index.html). ## API ���� ## ### ���� ### ```javascript``` AdMob.setOptions(options); AdMob.createBanner(adId/options, success, fail); AdMob.removeBanner(); AdMob.showBanner(position); AdMob.showBannerAtXY(x, y); AdMob.hideBanner(); AdMob.prepareInterstitial(adId/options, success, fail); AdMob.showInterstitialAd(); ``` ### �¼� ### > **�﷨**: document.addEventListener(event_name, callback); ```javascript // �����¼��������ڹ������ȫ����� 'onAdFailLoad' 'onAdLoaded' 'onAdPresent' 'onAdLeaveApp' 'onAdDismiss' // �����¼��������ڹ���������������ϣ�������������¼� 'onBannerFailedToReceive' 'onBannerReceive' 'onBannerPresent' 'onBannerLeaveApp' 'onBannerDismiss' // �����¼���������ȫ����棬���������ϣ�������������¼� 'onInterstitialFailedToReceive' 'onInterstitialReceive' 'onInterstitialPresent' 'onInterstitialLeaveApp' 'onInterstitialDismiss' ``` ## ���� ## ### AdMob.setOptions(options) ### > **��;**: �������ķ�����������Ĭ�ϲ��������е���Ŀ���ǿ�ѡ�ģ����û������Ĭ��ֵ�� **����**: - **options**, *json object*, mapping key to value. ���� **options** �� key/value: - **license**, *string*, ������Ȩ��, �Ƴ� 2% �Ĺ���������� - **bannerId**, *string*, ���ù������Ĭ�Ϲ�� ID������ 'ca-app-pub-xxx/xxx' - **interstitialId**, *string*, ����ȫ������Ĭ�Ϲ�� ID������ 'ca-app-pub-xxx/xxx' - **adSize**, *string*, ���ù�����Ĵ�С��Ĭ��ֵ:'SMART_BANNER'. ���������µ�ij��: (Ч���μ���ͼ) ```javascript 'SMART_BANNER', // �Ƽ����Զ���Ӧ��Ļ��С�͸߶� 'BANNER', 'MEDIUM_RECTANGLE', 'FULL_BANNER', 'LEADERBOARD', 'SKYSCRAPER', 'CUSTOM', // �����Զ����С����Ҫָ������ 'width' �� 'height' ``` - **width**, *integer*, ������Ŀ���, ��Ҫָ�� *adSize*:'CUSTOM'. Ĭ��ֵ: 0 - **height**, *integer*, ������ĸ߶ȣ���Ҫָ�� *adSize*:'CUSTOM'. Ĭ��ֵ: 0 - **overlap**, *boolean@, ����ģʽ�����������������Web���ݵ����棬����Ļ����Webview���ϻ��������ƣ������ڵ�. Ĭ��ֵ:false - **position**, *integer*, �������λ�ã�, Ĭ��ֵ:TOP_CENTER ��������У�. ��ѡ��ֵ������: ```javascript AdMob.AD_POSITION.NO_CHANGE = 0, AdMob.AD_POSITION.TOP_LEFT = 1, AdMob.AD_POSITION.TOP_CENTER = 2, AdMob.AD_POSITION.TOP_RIGHT = 3, AdMob.AD_POSITION.LEFT = 4, AdMob.AD_POSITION.CENTER = 5, AdMob.AD_POSITION.RIGHT = 6, AdMob.AD_POSITION.BOTTOM_LEFT = 7, AdMob.AD_POSITION.BOTTOM_CENTER = 8, AdMob.AD_POSITION.BOTTOM_RIGHT = 9, AdMob.AD_POSITION.POS_XY = 10, // ����ָ��λ�� X �� Y, �μ� 'x' and 'y' ``` - **x**, *integer*, x����. �� *overlap*:true �� *position*:AdMob.AD_POSITION.POS_XY ��ʱ����Ч. Ĭ��ֵ: 0 - **y**, *integer*, y����. �� *overlap*:true �� *position*:AdMob.AD_POSITION.POS_XY ��ʱ����Ч. Ĭ��ֵ: 0 - **isTesting**, *boolean*, ���ڲ��ԣ�������Ϊ true ��ʱ�򣬿��Խ��ղ��Թ�棬������ʱ�����������Ϊ false�����򲻼������档 - **autoShow**, *boolean*, �����׼������ʱ�Զ���ʾ��������Ҫ���� showBanner ���� showInterstitial - **orientationRenew**, *boolean*, ����Ļ�������仯ʱ��ǿ�����ٺ����´����������һ������������á� - **offsetTopBar**, *boolean*, ƫ�ƹ������WebView�����ⱻ״̬���ڵ� (iOS7+) - **bgColor**, *string*, ���ø����ڵı���ɫ, ����ֵ��'black', 'white'�ȵ�, ����RGB��ʽ '#RRGGBB' - **adExtras**, *json object*, Ϊ�����ʾ���ö����ɫ�ʷ��. ```javascript { color_bg: 'AAAAFF', color_bg_top: 'FFFFFF', color_border: 'FFFFFF', color_link: '000080', color_text: '808080', color_url: '008000' } ``` ����: ```javascript var defaultOptions = { license: 'username@gmail.com/xxxxxxxxxxxxxxx', bannerId: admobid.banner, interstitialId: admobid.interstitial, adSize: 'SMART_BANNER', width: 360, // valid when set adSize 'CUSTOM' height: 90, // valid when set adSize 'CUSTOM' position: AdMob.AD_POSITION.BOTTOM_CENTER, x: 0, // valid when set position to POS_XY y: 0, // valid when set position to POS_XY isTesting: true, autoShow: true }; AdMob.setOptions( defaultOptions ); ``` ### AdMob.createBanner(adId/options, success, fail) ### > **��;**: ���������. ����������Դ������ID�ַ�����Ҳ���Դ���Json�����԰��������ѡ� **����** - **adId**, *string*, ������� ID. - **options**, *json object*, ���Ը�������ѡ��μ� **AdMob.setOptions** - **success**, *function*, �ɹ�֮��Ļص�����������Ϊ null ���� ȱʧ. - **fail**, *function*, ʧ��֮��Ļص�����������Ϊ null ���� ȱʧ. ���� **options** �����ж����ѡ� - **adId**, *string*, ������� ID. - **success**, *function*, �ɹ�֮��Ļص�����. - **error**, *function*, ʧ��֮��Ļص�����. ����: ```javascript // ���������� ID����������Ĭ��ֵ AdMob.createBanner( admobid.banner ); // ��������IJ��� AdMob.createBanner({ adId: admobid.banner, position: AdMob.AD_POSITION.BOTTOM_CENTER, autoShow: true, success: function(){ }, error: function(){ alert('failed to create banner'); } }); ``` ## AdMob.showBanner(position) ## > **��;**: ��ָ����λ����ʾ�����. Ҳ���������ƶ�����������������ٺ����´���������� ����: - **position**, *integer*, �μ� **AdMob.setOptions()** ## AdMob.showBannerAtXY(x, y) ## > **��;**: ���ƶ�������λ�� (x,y) ��ʾ�����. ����: - **x**, *integer*, ����. ����Ļ��߼����ƫ����. - **y**, *integer*, ����. ����Ļ���˼����ƫ����. ### AdMob.hideBanner() ### > **��;**: ���ع��������ʱ����Ļ���Ƴ�����û�����٣��Ժ󻹿��Լ�����ʾ. ### AdMob.removeBanner() ### > **��;**: ���ٹ������������ʾʱ���ã������û��Ѿ����ѣ�ȥ����档 ## AdMob.prepareInterstitial(adId/options, success, fail) ## > **��;**: ׼��ȫ�������Դ�����ں�����ʾ�� ����: - **adId**, *string*, ȫ�����Ĺ��ID. - **options**, *string*, �μ� **AdMob.setOptions()* - **success**, *function*, �ɹ�֮��Ļص�����������Ϊ null ���� ȱʧ. - **fail**, *function*, ʧ��֮��Ļص�����������Ϊ null ���� ȱʧ. ���� **options** �����ж����ѡ� - **adId**, *string*, ������� ID. - **success**, *function*, �ɹ�֮��Ļص�����. - **error**, *function*, ʧ��֮��Ļص�����. > ������ʾ: ͨ��ȫ�������Ҫ�϶��ͼƬ��Դ�ȹ�����Զ࣬�������Ҳ���Զ�һ�㣬ͨ����Ҫһ���ʱ����׼���������û�����ȴ����������á� ## AdMob.showInterstitial() ## > **��;**: ��ȫ�����׼������ʱ����ʾ���û����� ����: ```javascript // ׼���������Զ���ʾ����Լ��Ҫ0.5-1�� AdMob.prepareInterstitial({ adId: admobid.interstitial, autoShow: true }); // ����Ϸ�ؿ���ʼ��ʱ��׼�������Դ AdMob.prepareInterstitial({ adId: admobid.interstitial, autoShow: false }); // ����Ϸ�ؿ�������ʱ�򣬼�鲢����ʾ��� if(isready) AdMob.showInterstitial(); ``` ## �¼� ## �������е��¼��������������������� * data.adNetwork, ������������, ���� 'AdMob', 'Flurry', 'iAd', etc. * data.adType, 'banner' ���� 'interstitial' * data.adEvent, �¼������� ������Щ������ֵ����������ص��жϡ� 'onAdFailLoad' > ���ӹ����������ع����Դʧ�ܵ�ʱ�򴥷�. ```javascript document.addEventListener('onAdFailLoad',function(data){ console.log( data.error + ',' + data.reason ); if(data.adType == 'banner') AdMob.hideBanner(); else if(data.adType == 'interstitial') interstitialIsReady = false; }); ``` 'onAdLoaded' > �������Դ�ӷ������ɹ�����֮�󴥷�. ```javascript document.addEventListener('onAdLoaded',function(data){ AdMob.showBanner(); }); AdMob.createBanner({ adId: admobid.banner, autoShow: false }); ``` 'onAdPresent' > �����ɹ���ʾ������ʱ�򴥷�. 'onAdLeaveApp' > ���û��������ʱ�򣬼�����ת���������ָ�����վʱ������Ҳ��������Լ����û�����˶��ٴΡ� 'onAdDismiss' > ����汻�رգ��ص�Ӧ�û�����Ϸ��ʱ�򴥷��� ## ����ʹ�� Android Proguard ������ �����Թȸ裩## Ϊ�˱������Ҫ���������������Ҫ�� <project_directory>/platform/android/proguard-project.txt �ļ��м�����������: ``` -keep class * extends java.util.ListResourceBundle { protected Object[][] getContents(); } -keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { public static final *** NULL; } -keepnames @com.google.android.gms.common.annotation.KeepName class * -keepclassmembernames class * { @com.google.android.gms.common.annotation.KeepName *; } -keepnames class * implements android.os.Parcelable { public static final ** CREATOR; } -keep public class com.google.cordova.admob.** ```