Cocos游戏如何接入安卓穿山甲广告?

引言

Cocos游戏如何接入安卓穿山甲广告

大家好,相信大家通过关注亿元程序员,对游戏开发和游戏变现都有了一定的了解。

通常来说,游戏变现的的方式有IAP(应用内购)和IAA(广告变现)。我们熟知的是游戏应用内购需要版号,是比较困难的,相对来说,广告变现就比较容易实现,小游戏的首选。

关于广告变现,通常可以接入各平台的提供的功能来进行, 例如各大小游戏平台的流量主功能。在安卓渠道我们可以通过接入穿山甲联盟广告优量汇广告或者海外的AdMob广告联盟等来进行变现。

言归正传,本文重点介绍一下Cocos游戏如何接入安卓穿山甲广告,如果对您有帮助,建议点赞分享收藏!

本文源工程可在文末获取,小伙伴们自行前往。

总览

为了更好地演示效果,笔者用之前小游戏的资源简单搭了一个Demo小程序,简单但又不失优雅

QQ录屏20240724234449

其中相关配置可视化调整,配置即用。

image-20240724234758820

资源结构清晰易懂,独立成模块。组件简单易用。

image-20240724234913947

版本支持Cocos Creator3.8.3Cocos Creator2.4.13,涵盖2.x3.x

image-20240724234956785

Java接入SDK部分也是比较清晰完整。

穿山甲广告接入实例

接下来,跟随笔者一起看看如何准确高效地接入安卓穿山甲广告。

前提一:游戏能够顺利地打包成APK,关于如何顺利打包成APK可以阅读笔者往期文章《Cocos打安卓包打不出来?看看这个》进行了解。

前提二:游戏在Cocos能够顺利地与Android通信,关于Cocos如何跟Android原生通信,可以阅读笔者往期文章《Cocos如何跟Android通信?》进行了解。

假如以上前提遇到问题无法解决,可以联系笔者一起探讨,解决你的燃眉之急。

1.资源准备

首先我们简单地编辑一下UI,添加4个按钮,分别响应常用的4个广告类型的广告。

然后构建一下安卓工程。

构建完成后找到我们导出的安卓工程。

然后AS(Android Studio)打开项目并且等待加载完成。

image-20240725224253770

通过菜单栏Run->Run'TTSdkComponent3_X'或者Build->Build Bundle(s) /APK(s)->Build APK(s)先运行/生成APK,确保工程没问题能够顺利打APK

2.SDK的获取

进到穿山甲广告后台,打开接入中心->GroMore->接入与测试,选择Android版本。

image-20240727144926685

点击下方生成接入代码,即可获取到SDKDemo和接入指引和相关文档。

image-20240727145149017

最后流量变现->GroMore->应用管理中创建应用以及我们所需要广告类型的广告位即可。

3.SDK的集成

关于SDK的集成,我们可以通过刚刚下载的Demo里面找到相应的SDK文件,将它拷贝到libs下即可。

image-20240727201955862

当然也可以通过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.initTTAdSdk.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);添加到我们的主窗体容器中去,此外还可以通过setXsetY修改我们Banner广告的位置。

6.关闭广告

关闭广告我们只需要通过mBannerAd.destroy()对广告进行销毁。

5、抛出接口

当我们广告接入完成后,需要提供到接口给Cocos进行调用。

CocosAndroid通信,我们还是通过JsbBridge.setCallback方法进行监听。

我们通过参数arg0作为协议号,arg1Json的形式作为具体参数,方便解析。

如下图

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的回调。

上述参数我们直接可以通过编辑器进行编辑,非常的方便。

image-20240724234758820

注意,如果是2.x版本的话,因为没有JsbBridge我们需要通过方法jsb.reflection.callStaticMethod反射的形式调用Java*提供的静态接口。

注意,Cocos2.x提供给Java调用的类,需要通过window*属性赋值。

image-20240728215751542

7.效果演示

QQ录屏20240724234449

结语

以上Cocos游戏如何接入安卓穿山甲广告的全部内容,整理不易,时间宝贵,需要源工程的小伙伴可以阅读原文获取,付费不仅是知识的获取,更是对笔者的支持和认可,感谢!

如果您付费后有什么疑问,都可以联系笔者,笔者全力协助你,感谢您的支持!

链接 : Cocos游戏接入安卓穿山甲广告实例

往期回顾:

V7投稿 | 如何在CocosCreator3.8中实现割绳子游戏效果

V7投稿 | 如何在CocosCreator3.8中实现动态切割模型?

V7投稿 | 利用深度图实现屏幕空间贴花效果

运用动画状态机实现酷跑游戏实例

7赞

谢谢演示啊。感觉接入安卓广告太麻烦了。没有js 的方便

mark !!!

maskmask!!!!!!!!!

付费了 但是商店带的版本好像是旧的 打开显示是x2 版本 麻烦微信通过下

2.x和3.x都有的

非常不错,博主的教导也十分耐心,相对官方文档 博主的文档看起来更有温度,也更好懂很多,已经复现,有需要的哥们真的可以付费下载!特别是像我这样的新手

简直是手把手教学了。