很早之前编写了Unity导出微信小游戏的博客,也尝试自己做了个Demo上线了,基本没更新过,不过几个月的时间,用户超过了一千,可以开通流量主了,大概率是因为上篇的帖子浏览量大了,扫码体验的人多,基本没什么留存的用户。
说白了就是接入后有一定的收ru,不过Unity端的接入就不是嵌入代码的方式,需要通过SDK的接口来调用,并编写逻辑实现激励视频流量主的发放奖励的功能。
本篇文章的还是基于该Demo游戏,将banner、插屏和激励这些接入,并将过程记录分享给大家。大家可以扫码该程序:
进行体验,如果流量主组件通过审核后会出现流量的内容,如果方便点击可以点击查看一下。
如果你还不了解Unity3d如何开发微信小游戏的方法,建议你先看看这个博客
Unity3d平台转微信小游戏保姆级教程
我个人的这个流量主也接入好几天了,效果是微乎其微。
当然如果大家都是认真做游戏,能做个像羊了个羊的高热度,让大家都愿意获取道具的,基本可以财富自由了,不用奋斗了。
开通条件如下:
累计独立访客(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(不然即使上线后也可能被封)。
只有banner可以进行开关和位置的设置,所以准备了打开bannerAD、关闭bannerAD,打开插屏AD和打开激励AD按钮。至于如果你要问按钮文字为啥是英文的建议你看看这篇博客微信小程序转换后中文字体不显示问题解决。
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过程大概为初始化、打开,初始化同样在Start中进行,打开需要在合适时机,关闭就得用户手动了。
初始化:
void InitInterstitialAd()
{
interstitialAd = WX.CreateInterstitialAd(
new WXCreateInterstitialAdParam()
{
adUnitId = "" //修改AD位ID
});
interstitialAd.OnLoad(ShowInterstitialAd);
}
adUnitId 需要填写你自己的ADID,这里也是默认加载后就显示。
打开:
if (interstitialAd != null)
interstitialAd.Show();
插屏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("播放中途退出,不下发游戏奖励");
}
}
https://download.csdn.net/download/qq_33789001/87400314
如果打不开说明还没审核通过。
下载工程后需要填写自己的Appid,如果不清楚请查看前言中的那篇博客。