引言
Cocos游戏如何接入安卓穿山甲广告
大家好,相信大家通过关注亿元程序员,对游戏开发和游戏变现都有了一定的了解。
通常来说,游戏变现的的方式有IAP(应用内购)和IAA(广告变现)。我们熟知的是游戏应用内购需要版号,是比较困难的,相对来说,广告变现就比较容易实现,小游戏的首选。
关于广告变现,通常可以接入各平台的提供的功能来进行, 例如各大小游戏平台的流量主功能。在安卓渠道我们可以通过接入穿山甲联盟广告、优量汇广告或者海外的AdMob广告联盟等来进行变现。
言归正传,本文重点介绍一下Cocos游戏如何接入安卓穿山甲广告,如果对您有帮助,建议点赞分享收藏!
本文源工程可在文末获取,小伙伴们自行前往。
总览
为了更好地演示效果,笔者用之前小游戏的资源简单搭了一个Demo小程序,简单但又不失优雅。
其中相关配置可视化调整,配置即用。
资源结构清晰易懂,独立成模块。组件简单易用。
版本支持Cocos Creator3.8.3,Cocos Creator2.4.13,涵盖2.x和3.x。
Java接入SDK部分也是比较清晰完整。
穿山甲广告接入实例
接下来,跟随笔者一起看看如何准确高效地接入安卓穿山甲广告。
前提一:游戏能够顺利地打包成APK,关于如何顺利打包成APK可以阅读笔者往期文章《Cocos打安卓包打不出来?看看这个》进行了解。
前提二:游戏在Cocos能够顺利地与Android通信,关于Cocos如何跟Android原生通信,可以阅读笔者往期文章《Cocos如何跟Android通信?》进行了解。
假如以上前提遇到问题无法解决,可以联系笔者一起探讨,解决你的燃眉之急。
1.资源准备
首先我们简单地编辑一下UI,添加4个按钮,分别响应常用的4个广告类型的广告。
然后构建一下安卓工程。
构建完成后找到我们导出的安卓工程。
然后用AS(Android Studio)打开项目并且等待加载完成。
通过菜单栏Run->Run'TTSdkComponent3_X'
或者Build->Build Bundle(s) /APK(s)->Build APK(s)
先运行/生成APK,确保工程没问题能够顺利打APK。
2.SDK的获取
进到穿山甲广告后台,打开接入中心->GroMore->接入与测试
,选择Android版本。
点击下方生成接入代码,即可获取到SDK的Demo和接入指引和相关文档。
最后在流量变现->GroMore->应用管理
中创建应用以及我们所需要广告类型的广告位即可。
3.SDK的集成
关于SDK的集成,我们可以通过刚刚下载的Demo里面找到相应的SDK文件,将它拷贝到libs下即可。
当然也可以通过maven方式引入SDK。首先在工程的build.gradle
文件中添加下载地址。
地址如下:
allprojects {
repositories {
maven {
url "https://artifact.bytedance.com/repository/pangle"
}
google()
jcenter()
}
}
然后在模块的build.gradle
文件中添加依赖。
依赖如下:
implementation "com.pangle.cn:mediation-sdk:6.2.1.7"
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation "com.alibaba:fastjson:1.2.83"
然后在清单文件AndroidManifest.xml
中添加所需要的权限和provider。
权限如下:
<!-- 所需权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
provider如下:
<!-- 穿山甲 start================== -->
<provider
android:name="com.bytedance.sdk.openadsdk.TTFileProvider"
android:authorities="${applicationId}.TTFileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<provider
android:name="com.bytedance.sdk.openadsdk.multipro.TTMultiProvider"
android:authorities="${applicationId}.TTMultiProvider"
android:exported="false" />
<!-- 穿山甲 end================== -->
上述provider依赖的配置我们添加到目录res/xml
。
xml文件详细内容如下:
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path name="tt_external_root" path="." />
<external-path name="tt_external_download" path="Download" />
<external-files-path name="tt_external_files_download" path="Download" />
<files-path name="tt_internal_file_download" path="Download" />
<cache-path name="tt_internal_cache_download" path="Download" />
</paths>
4.SDK接入
SDK集成后,我们就可以通过写代码通过API去接入各种类型的广告了,下面以Banner广告为例,相关代码在官方的Demo中都有,笔者做了简化。
1.初始化
首先我们需要先进行初始化,通过TTAdSdk.init
和TTAdSdk.start
进行初始化,其中关键的参数是我们在后台申请到的buildConfig
中的appId
。
2.创建TTAdNative对象
通过TTAdSdk.getAdManager().createAdNative
创建一个TTAdNative
对象,其中所需的参数是Activity
,我们可以传Cocos的主Activity
。
3.创建广告请求AdSlot
通过new AdSlot.Builder()
创建广告位,其中关键的参数是我们后台申请到的广告位ID。
此外我们可以通过setImageAcceptedSize
设置Banner广告的尺寸大小。
4.加载广告
广告位创建完成之后,我们就可以进行广告的加载,通过adNativeLoader.loadBannerExpressAd
进行Banner广告的加载,然后通过onNativeExpressAdLoad
加载完成回调,加载完成后可以对广告进行显示。
5.显示广告
广告显示之前,我们可以监听一下广告的加载、渲染进度和情况,以及可以监听一下用户点击不喜欢关闭广告的情况进行处理。
然后通过mBannerAd.getExpressAdView()
获取到Banner广告的视图,并且通过mBannerContainer.addView(bannerView);
添加到我们的主窗体容器中去,此外还可以通过setX
和setY
修改我们Banner广告的位置。
6.关闭广告
关闭广告我们只需要通过mBannerAd.destroy()
对广告进行销毁。
5、抛出接口
当我们广告接入完成后,需要提供到接口给Cocos进行调用。
Cocos与Android通信,我们还是通过JsbBridge.setCallback
方法进行监听。
我们通过参数arg0
作为协议号,arg1
以Json的形式作为具体参数,方便解析。
如下图:
showToast方法需要参数content init方法需要参数appId showBannerAd需要参数codeId、left、top、width、height
注意,如果是2.x版本的话,因为没有JsbBridge
我们需要提供一个静态接口给到Cocos*调用。
6.调用接口
接口准备好之后,我们就可以回到Cocos进行调用了。
其中关键是通过native.bridge.sendToNative(arg0, arg1);
调用Java的方法,通过native.bridge.onNative
监听Java的回调。
上述参数我们直接可以通过编辑器进行编辑,非常的方便。
注意,如果是2.x版本的话,因为没有JsbBridge
我们需要通过方法jsb.reflection.callStaticMethod
反射的形式调用Java*提供的静态接口。
注意,Cocos2.x提供给Java调用的类,需要通过window*属性赋值。
7.效果演示
结语
以上是Cocos游戏如何接入安卓穿山甲广告的全部内容,整理不易,时间宝贵,需要源工程的小伙伴可以阅读原文获取,付费不仅是知识的获取,更是对笔者的支持和认可,感谢!
如果您付费后有什么疑问,都可以联系笔者,笔者全力协助你,感谢您的支持!
链接 : Cocos游戏接入安卓穿山甲广告实例
往期回顾:
V7投稿 | 如何在CocosCreator3.8中实现割绳子游戏效果