# Gaia SDK 集成文档

# 一、集成准备

# 1.修改默认参数

将压缩包中gaiares/params目录下json文件打开,不同渠道选择不同的json文件,将渠道广告参数配置到相应位置,如果网络或者服务器异常拉不到后台配置,就会启用默认参数,示例如下:

{
	"app": {
		"appKey": "4d347f232094330ada3c3ff769fde19b"   //游戏对应的appKey, 从“广告配置-H5游戏-添加游戏”后获取
	},
	"ad": {
		"adPos": [
			{
				"posId": "banner_pos",	//游戏中的广告位Id,从“广告配置-广告位管理-添加广告位”后获取  
				"ver": "v1",	//参数版本
				"showType": "banner",	//展示类型,对应后台“广告配置-广告位管理-展示类型”
				"adUnit": [	//广告单元,对应后台“广告配置-广告单元”
					{
						"unitId": "154874",	//渠道广告单元id,对应后台“广告配置-广告单元-广告位ID”
						"type": "banner",	//渠道广告格式,对应后台“广告配置-广告单元-填充类型”
						"weight": 2	//展示权重,值越大优先级越高,对应后台“广告配置-广告单元-权重”
					},
					{
						"unitId": "154875",
						"type": "native",
						"weight": 1
					}
				]
			},
			{
				"posId": "inter_pos",
				"ver": "v1",
				"showType": "inter",
				"adUnit": [
					{
						"unitId": "820e000ac5c744e4945951da8649156a",
						"type": "inter",
						"weight": 2
					},
					{
						"unitId": "154875",
						"type": "native",
						"weight": 1
					}
				]
			},
			{
				"posId": "video_pos",
				"ver": "v1",
				"showType": "video",
				"adUnit": [
					{
						"unitId": "154876",
						"type": "video",
						"weight": 1
					}
				]
			},
			{
				"posId": "native_pos",
				"ver": "v1",
				"showType": "native",
				"adUnit": [
					{
						"unitId": "154875",
						"type": "native",
						"weight": 1
					}
				]
			}
		]
	}
}

说明:json文件的命名是根据渠道名称,目前支持的渠道命名方式如下所示:

渠道名称 json文件名称
oppo params_oppo
vivo params_vivo

# 2.引擎配置

# 2.1 CocosCreator引擎

# 2.1.1 导入SDK

引入GaiaSdk.d.ts文件

将压缩包内libs目录里的GaiaSdk.d.ts文件放在工程下与creator.d.ts同级的目录。

引入GaiaSdk.mini.js文件

将压缩包内libs目录里的GaiaSdk.mini.js复制到引擎工程的assets目录内存放脚本的目录,一般为Script目录,并按以下步骤将其导入为插件。
引擎内选中GaiaSdk.mini.js文件--->右上角属性检查其中勾选“导入为插件”--->点击应用即可

# 2.1.2 导入SDK所需要的资源

将压缩包内gaiares目录复制到引擎工程的assets/resource目录下即可。

# 2.2 Laya引擎

# 2.2.1 导入SDK

引入gaia-laya.d.ts文件

将压缩包内libs目录里的gaia-laya.d.ts文件放在工程下与LayaAir.d.ts同级的目录。

引入gaia-laya.mini.js文件

将压缩包内libs目录里的gaia-laya.min.js复制到引擎工程的bin/libs目录,并在bin目录里的index.js文件添加以下代码:

	
	loadLib("libs/laya.ui.js")//sdk依赖库,必须添加
	loadLib("libs/gaia-laya.min.js")

# 2.1.2 导入SDK所需要的资源

将压缩包内gaiares目录复制到引擎工程的bin/res目录下即可。

# 二、接口调用

# 1.初始化

在第一个场景的start()生命周期函数中调用初始化接口。

callback为初始化回调,true为初始化成功,false为初始化失败。

	 GaiaSdk.GaiaAd.getInstance().init(callback); 

# 2.检查广告

通过检查广告接口可以判断广告是否加载成功,此接口只会对原生和激励视频广告生效。

  • posId为广告位Id;

  • callback为回调,返回true表示已经有广告准备好,false表示广告加载失败。

	GaiaSdk.GaiaAd.getInstance().checkAd("inter_pos", (state) => {
            console.log("==========checkNative", state);
    });

# 3.展示广告

展示广告接口以下两个,开发这根据需求选择合适的接口进行展示广告。

# 3.1 无需指定展示位置和大小的广告

此接口适用于横幅广告、激励视频、插屏广告。

  • posId为广告位Id;

  • callback为结束后的回调,err为异常信息,type为展示的广告类型,state为激励视频发奖标识,true可发奖,否则不能发奖。

展示激励视频示例

    GaiaSdk.GaiaAd.getInstance().showAd("video_pos", (err,type,state) => {
            if(err){
            	//展示广告异常
                console.log("show video_pos error:", err);
                return;
            }
            if(state){
            	//广告播放完成,可以发放奖励
                console.log("can reward :" + state);
            }else{
            	//中途退出广告,不能发放奖励
            }
            console.log("show video_pos success  type:", type);           
            
        });

展示其他广告示例

    GaiaSdk.GaiaAd.getInstance().showAd("banner_pos", (err,type) => {
            if(err){
            	//展示广告异常
                console.log("show banner_pos error:", err);
                return;
            }
          	//广告展示成功
            console.log("show banner_pos success  type:", type);           
            
        });

# 3.2 指定展示位置和大小的广告

此接口适用于OPPO原生广告。

	
	GaiaSdk.GaiaAd.getInstance().showAdWithPosit(posId, param, callback);

param参数说明:

属性名称 属性类型 属性说明
w number 原生宽度
h number 原生高度
x number 原生x坐标
y number 原生y坐标

# 4.隐藏广告

此接口适用于原生和banner广告,参数传广告位ID即可。

	GaiaSdk.GaiaAd.getInstance().hideAd(posId);

# 5.检查是否能够添加桌面图标接口

callback为结束后的回调,true为可以添加,false为不能添加。

GaiaSdk.GaiaAd.getInstance().checkDeskTop(callback);

# 6. 添加桌面图标接口

callback为结束后的回调,true为添加成功,false为添加失败。

GaiaSdk.GaiaAd.getInstance().addDeskTop(callback);

# 三、其他

# 1.目前SDK支持渠道的广告类型

渠道 banner 原生广告 原生插屏 原生banner 插屏广告 激励视频 开屏广告
oppo 支持 支持 / 支持 / 支持 支持
(无需技术接入,oppo后台申请广告位即可)
vivo 支持 / 支持 支持 支持 支持 /

# 2. 测试

测试时根据oppo (opens new window)vivo (opens new window)的官方文档安装相应的调试器调试rpk包,调试过程中可以参考SDK日志进行排查SDK接入情况,SDK的日志TAG过滤"GAIA"。

初始化关键日志

	GAIA sdk version:v1.0.0		//SDK版本
	GAIA [initAd]				//调用初始化接口
	GAIA init success!			//初始化成功

广告关键日志

以激励视频为例:

	GAIA [loadVideo]					//请求激励视频广告
	GAIA video ad load success			//激励视频请求成功
	GAIA video Id is null				//激励视频广告单元id为空,没有配置广告单元id
	GAIA [showAd] video_pos				//调用展示广告接口,video_pos为调用展示接口传入的广告位Id
	GAIA show raward video success		//激励视频展示成功
	GAIA reward vedio play complete		//激励视频播放完成并关闭广告