Unity3d 微信小程序(小游戏)项目实现流量主接入功能(含源码)
前言
很早之前编写了Unity导出微信小游戏的博客,也尝试自己做了个Demo上线了,基本没更新过,不过几个月的时间,用户超过了一千,可以开通流量主了,大概率是因为上篇的帖子浏览量大了,扫码体验的人多,基本没什么留存的用户。
说白了就是接入后有一定的收ru,不过Unity端的接入就不是嵌入代码的方式,需要通过SDK的接口来调用,并编写逻辑实现激励视频流量主的发放奖励的功能。
本篇文章的还是基于该Demo游戏,将banner、插屏和激励这些接入,并将过程记录分享给大家。大家可以扫码该程序:
进行体验,如果流量主组件通过审核后会出现流量的内容,如果方便点击可以点击查看一下。
如果你还不了解Unity3d如何开发微信小游戏的方法,建议你先看看这个博客
Unity3d平台转微信小游戏保姆级教程
我个人的这个流量主也接入好几天了,效果是微乎其微。
当然如果大家都是认真做游戏,能做个像羊了个羊的高热度,让大家都愿意获取道具的,基本可以财富自由了,不用奋斗了。
功能效果
由于不能包含AD内容,请扫描体验吧:
AD条件
开通条件如下:
累计独立访客(UV)不低于 1000
存在刷粉行为或有严重违规记录的小程序不予申请
同一个收款账户最多允许关联 50 个账号开户主体
开通
进入 推广 > 流量主 界面:
在开通条件达成的时候开通按钮是绿色的,点击其进行开通即可。
开通后我们进入流量主 > 管理 > 选择类型 > 新增位,进行位的添加:
选择类型后,输入名称后即可创建完成,可以各个类型的添加几个AD位。
之后的需要用到的就是这里的AD位 ID。
如果是小程序的AD就可以通过“获取代码”按钮获取到AD插入的代码,将代码粘贴到项目的脚本(JavaScript可以直接使用)中:
// 创建 Banner AD实例,提前初始化
let bannerAd = wx.createBannerAd({ adUnitId: '', style: { left: 0, top: 0, width: 350 } })
不过开通流量主后,在小游戏上线后小程序AD组件还需要审核,我的就是在审核
中持续了几天
(目前已经审核通过了)。
功能实现
AD虽然能够给平台和开发者带来一定的收益,但是一定程度会给用户带来差的体验,之前铺天盖地的好友/群消息中的小程序AD大家应该都有体验过的,现在如果小程序存在涉嫌滥用,不正当使用、非善意使用小程序功能、接口、能力的行为会被关闭AD组件,更严重可能会被封禁账号,所以需要合理的展示AD(不然即使上线后也可能被封)。
UI搭建
这里简单的展示AD的接入和控制效果所以就设置了4个按钮:
只有banner可以进行开关和位置的设置,所以准备了打开bannerAD、关闭bannerAD,打开插屏AD和打开激励AD按钮。至于如果你要问按钮文字为啥是英文的建议你看看这篇博客微信小程序转换后中文字体不显示问题解决。
BannerAD
BannerAD过程大概为初始化、打开、关闭。初始化在Start中进行,打开和关闭都是加载完成中进行。
初始化:
void InitBannerAd() {
var sysInfo = WX.GetSystemInfoSync();
bannerAd = WX.CreateBannerAd(new WXCreateBannerAdParam()
{
adUnitId = "", //修改AD位ID
adIntervals = 30,
style = new Style() //适配bannerAD的大小和位置
{
left = 0,
top = (int)sysInfo.windowHeight - ((int)sysInfo.windowWidth / 4),
width = (int)sysInfo.windowWidth,
height = (int)sysInfo.windowWidth / 4
}
});
bannerAd.OnError((WXADErrorResponse res) =>
{
Debug.Log("bannerad error response");
});
bannerAd.OnResize((WXADResizeResponse res) =>
{
//拉取的AD可能跟设置的不一样,需要动态调整位置
bannerAd.style.top = (int)sysInfo.windowHeight - res.height;
});
bannerAd.OnLoad(ShowBannerAd);//加载后直接将其显示
}
这里创建BannerAD的过程中,我将其大小设置为:宽为屏幕宽度,高为屏幕宽度/4,并将其的位置至于屏幕的底部,并在加载后直接将其显示出来。adUnitId 需要填写你自己的ADID,adIntervals 为AD切换间隔,style 可以改变AD的位置和大小(注意大小不能设置过于小,不然无用)。
打开AD:
if (bannerAd != null)
bannerAd.Show();
关闭AD:
if (bannerAd != null)
bannerAd.Hide();
插屏AD
插屏AD过程大概为初始化、打开,初始化同样在Start中进行,打开需要在合适时机,关闭就得用户手动了。
初始化:
void InitInterstitialAd()
{
interstitialAd = WX.CreateInterstitialAd(
new WXCreateInterstitialAdParam()
{
adUnitId = "" //修改AD位ID
});
interstitialAd.OnLoad(ShowInterstitialAd);
}
adUnitId 需要填写你自己的ADID,这里也是默认加载后就显示。
打开:
if (interstitialAd != null)
interstitialAd.Show();
激励AD
插屏AD过程大概为初始化、打开,初始化同样在Start中进行,打开需要在合适时机,关闭就得用户手动了(而且中途关闭不给奖励,AD结束关闭才发放奖励)。
初始化:
void InitRewardedAd()
{
rewardedVideoAd = WX.CreateRewardedVideoAd(
new WXCreateRewardedVideoAdParam()
{
adUnitId = "", //修改AD位ID
multiton = true
});
rewardedVideoAd.OnClose(RewardAdClose);
}
adUnitId 需要填写你自己的ADID,这里也是默认加载后就显示,OnClose对关闭事件进行监听并以此判定是否发放奖励。
打开:
if (rewardedVideoAd != null)
rewardedVideoAd.Show();
激励AD的作用大概是道具获取、复活玩家等,让玩家看AD获得奖励的方式,通过关闭事件的监听判定是否发放奖励,一般中途关闭是不发放奖励,判定的逻辑如下:
//关闭事件监听
void RewardAdClose(WXRewardedVideoAdOnCloseResponse res) {
if ((res != null && res.isEnded) || res == null)
{
// 正常播放结束,可以下发游戏奖励
Debug.Log("正常播放结束,可以下发游戏奖励");
}
else
{
// 播放中途退出,不下发游戏奖励
Debug.Log("播放中途退出,不下发游戏奖励");
}
}
Unity工程
https://download.csdn.net/download/qq_33789001/87400314
如果打不开说明还没审核通过。
下载工程后需要填写自己的Appid,如果不清楚请查看前言中的那篇博客。
相关文章
- Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之五--模块(菜单)管理源码分享
- 开源项目中经常出现的七种错误
- windows 下的Python虚拟环境(vitrualen)pycharm创建Django项目
- ASP.NET MVC搭建项目后台UI框架—4、tab多页签支持
- 字节跳动裁撤“派对岛”项目团队;苹果承认iPhone 14系列存在SIM卡识别问题;deepin 20.7.1发布|极客头条
- IDEA调试SpringMvc项目时,出错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener,解决办法
- iOS项目开发实战——网页源码实现二进制和HTML的转换
- 【项目精选】基于Java的连连看游戏设计与实现(视频+论文+源码)
- 【项目精选】 javaEE采购管理系统(论文+视频+源码)
- 【项目精选】城市公交查询系统(论文+视频+源码)
- 【项目精选】基于SSH的任务调度系统的设计与实现(视频+源码+论文)
- 【项目精选】高校固定资产管理系统(论文+视频+源码)
- Vue3 的学习教程汇总、源码解释项目、支持的 UI 组件库、优质实战项目
- nacos进阶二--使用源码启动项目
- SpringBoot-jar和war方式打包部署项目
- 【甄选靶场】Vulnhub百个项目渗透——项目四十二:Moria1.1(MD5加盐爆破)
- 软件测试项目实战(附全套实战项目教程+视频+源码)
- 【实战】Vue Element+Node.js开发企业通用管理后台系统——项目需求分析
- 项目之软件project(我专业四年都未曾知道这四个字的含义,几句话便懂了)
- 分析至上 大数据项目部署的五大愿景
- 从项目到技能,软件测试面试高频题总结 (附答案),收割10个offer...
- JavaWeb网上购物系统项目源码+论文
- 【Android】Android开源项目分类汇总
- Unity3d C#实现显示计时器(游戏运行时间、录制时长等)功能(含项目源码)
- Unity3d制作一个简单粗暴的五子棋项目工程源码
- 7-点击流数据分析项目-数据预处理
- 开源项目live555学习心得
- 以太坊go-ethereum项目源码本地环境搭建
- 使用nginx部署多个前端项目
- RN笔记-项目教程与源码分享
- Egg.js 源码分析-项目启动
- 从一个实战项目来看一下React Native开发的几个关键技术点