NativeAdsPlugin
No description available
Install / Use
/learn @SatanStudio/NativeAdsPluginREADME
NativeAdsPlugin v0.0.1
Cocos Creator 插件:实现原生平台广告的快速接入(支持iOS、Android)。
Creator编辑器进行广告信息配置,广告展示策略配置,编辑器下广告模拟展示,构建发布后快速集成至Xcode工程、Android Studio工程。
支持广告列表
| 名称 | 横幅 | 插屏 | 激励 | 说明 | |:-----------------------:|:---------------------------:|:----------------------------:|:----------------------------:|:----------------------------:| | Admob | y | y | n | https://www.google.com/admob/ | | 广点通 | y | y | n | http://e.qq.com/dev/index.html | | Facebook | y | y | n | https://developers.facebook.com/docs/audience-network 仅支持海外用户 | | Unity | n | y | y | https://unity3d.com/cn/services/ads | | Vungle | n | y | y | http://vungle.cn/ |
插件安装方法
请参考 扩展编辑器:安装与分享 文档。
CocosCreator Menu->插件->插件商店 购买下载安装后项目中多出native-ads-plugin-assets目录安装完成
运行DEMO
安装后,复制 creator工程目录/packages/native-ads-plugin/demo 至 creator工程目录/assets 下
creator编辑器下打开DEMO场景,配置广告信息,构建、发布,平台接入,enjoy!
快速开始
将命名NativeAdsManager的预制拖入场景中作为根节点。
<a id="Edit_Config_Data"></a> 配置广告信息
在NativeAdsManager节点中NativeAdsConfigData组件配置广告信息与展示策略。
详解参数意义,以admob为例:
admobBannerID 横幅ID
admobIniterialID 插屏ID
admobBannerEnabled 是否启用admob横幅广告
admobEnabled 是否启用admob插屏和激励广告
admobPriority 插屏展示优先级数字越小优先级越高,目的尽量多的展示广告与最大化收益
admobCooldown 插屏、激励广告展示的冷却时间,目的防止频繁展示被广告平台封号
admobTestDevices 测试设备号,在xcode、android studio真机调试时日志中广告平台会打印出测试设备号添加在这,目的防止测试频繁展示被广告平台封号
unityEncouragePriority 激励展示优先级数字越小优先级越高,目的尽量多的展示广告与最大化收益
代码使用
初始化广告管理类
初始化必须调用,推荐在程序开始。
var adManager = cc.find('NativeAdsManager').getComponent('NativeAdsManager');
adManager.initialize();
初始化只有第一次有效,读取NativeAdsConfigData中的配置数据,如果希望动态配置广告信息等数据,需要在初始化前修改NativeAdsConfigData中的内容。
var configData = cc.find('NativeAdsManager').getComponent('NativeAdsConfigData');
configData.admobBannerID = '123456';
configData.admobEnabled = true;
var adManager = cc.find('NativeAdsManager').getComponent('NativeAdsManager');
adManager.initialize();
展示横幅广告
adManager.showBanner();
隐藏横幅广告
adManager.hideBanner();
展示插屏广告
adManager.showInterstitial();
查询是否有可展示的插屏广告
bool flag = adManager.isInterstitialReady();
展示激励广告
adManager.showEncourageAd();
this.adManager.showEncourageAd('每日奖励');
this.adManager.showEncourageAd('复活');
查询是否有可展示的激励广告
bool flag = adManager.isEncourageAdReady();
回调
adManager.addListener(this, this.onAdsCallback);
onAdsCallback(event){
cc.log('onAdsCallback eventName = ' + event.detail.eventName + ', adtype = ' + event.detail.adType);
if (event.detail.eventName == 'encourageAdFinish'){
cc.log('encourage zone = ' + event.detail.zone);
//激励广告逻辑
if (event.detail.zone == '每日奖励'){
//每日奖励逻辑
} else if (event.detail.zone == '复活'){
//复活逻辑
}
}
},
<a id="Platform_Specific"></a> 平台接入
在CocosCreator第一次构建发布后,还需要配置原生项目(仅第一次)
iOS平台(Xcode工程)
添加依赖库和OC代码到Xcode工程
Xcode目录 creator工程目录/build/jsb-default(不同模版名字不同如jsb-link、jsb-binary)/frameworks/runtime-src/proj.ios_mac
NativeAdsPlugin的iOS目录(要添加的依赖库和代码) creator工程目录/packages/native-ads-plugin/platforms/ios
打开Xcode工程,导入nativeAdsPlugin的iOS目录下的文件,勾选copy items if needed
编辑AppController.h添加:
@interface AppController : NSObject
...
@property (retain, nonatomic) RootViewController *viewController;
@end
extern "C"{
AppController* getAppController ();
UIViewController *getRootViewController();
}
编辑AppController.mm添加:
@implementation AppController
@synthesize viewController = viewController;
...
static AppController *_appController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
_appController = self;
...
}
...
@end
extern "C"{
AppController* getAppController () {
return _appController;
}
UIViewController *getRootViewController() {
return getAppController().viewController;
}
}
添加Frameworks
AdSupport.framework
CoreTelephony.framework
libz.tbd
StoreKit.framework
libxml2.tbd
WebKit.framework
EventKitUI.framework
EventKit.framework
MessageUI.framework
Compile Flags
新添加的.m和.mm文件需要标注自动引用计数-fobjc-arc
iOS10 新增权限验证
Info.plist添加以下权限
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Use Your Bluetooth</string>
<key>NSCalendarsUsageDescription</key>
<string>Use Your Calendar</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Use Your Location</string>
<key>NSLocationUsageDescription</key>
<string>Use Your Location</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Use Your Location</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Use Your Photo</string>
Android平台(Android Studio工程)
添加依赖库和java代码到Android Studio工程
Android Studio目录 creator工程目录/build/jsb-default/frameworks/runtime-src/proj.android-studio
NativeAdsPlugin的Android Studio目录 creator工程目录/packages/native-ads-plugin/platforms/android-studio
NativeAdsPlugin目录/src 文件复制到 Android Studio目录/app/src下
NativeAdsPlugin目录/libs 文件复制到 Android Studio目录/app/libs下
配置build.gradle文件
minSdkVersion 14+,compileSdkVersion 23+,targetSdkVersion=22
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
minSdkVersion 14
targetSdkVersion 22
...
}
...
lintOptions {
abortOnError false
}
}
repositories {
flatDir {
dirs 'libs'
}
mavenCentral()
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':libcocos2dx')
compile 'com.google.firebase:firebase-ads:9.4.0'
compile 'com.google.android.gms:play-services-gcm:9.4.0'
compile 'com.alibaba:fastjson:1.2.21'
compile 'com.facebook.android:audience-network-sdk:4.+'
compile 'com.android.support:support-v4:23.4.0'
compile 'com.android.support:appcompat-v7:23.4.0'
compile files('libs/GDTUnionSDK.TBS.4.9.542.min.jar')
compile(name: 'DebugSettings', ext: 'aar')
compile(name: 'unity-ads', ext: 'aar')
}
配置AndroidManifest.xml文件
添加权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
添加activity
<!--facebook-->
<activity android:name="com.facebook.ads.AudienceNetworkActivity"
android:configChanges="keyboardHidden|orientation|screenSize" />
<!--gdt-->
<service
android:name="com.qq.e.comm.DownloadService"
android:exported="false"/>
<activity
android:name="com.qq.e.ads.ADActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"/>
<!-- Vungle -->
<activity android:name="com.vungle.publisher.VideoFullScreenAdActivity"
android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
<activity android:name="com.vungle.publisher.MraidFullScreenAdActivity"
android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
Related Skills
node-connect
346.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
346.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
346.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
Security Score
Audited on Jul 22, 2020
