跳到主要内容

广告接入指南

简介

      在接入广告之前,首先需要完成SDK的初始化。

      MG Ads 支持【开屏1920*1080】【退屏】【横幅728*90】【插屏1024*768】【对联300*600】【激励视频1024*768】【信息流】【嵌入式】

开屏广告

开屏广告位一般在页面的load方法中,在SDK初始化完成事件中实现。

private async void Form1_Load(object sender, EventArgs e)
{
var result = await ApplicationManager.Initialize(YourAppId, YourSecretKey);
if (result.ReturnValue)
{
//初始化成功...
ShowMessage("初始化完成");

//退屏广告Step1.
//...

//...

//开屏广告
AdvertManager.ShowAd(this, "xxxxxxx", AdType.Splash);
}
else
{
ShowMessage("初始化失败");
}
}

退屏广告

      退屏广告是在退出游戏时触发,为了保证退出游戏时广告的弹出率,MG会分两步完成退屏广告的实现

      1.在初始化完成后,将退屏广告的信息加载到内存中

      2.在退出游戏时,直接打开退屏广告

//退屏广告
//Step1.初始化成功之后,加载退屏广告资源
private async void Form1_Load(object sender, EventArgs e)
{
var result = await ApplicationManager.Initialize(YourAppId, YourSecretKey);
if (result.ReturnValue)
{
//初始化成功...
ShowMessage("初始化完成");

//退屏广告Step1.初始化成功之后,加载退屏广告资源
AdvertManager.SetupExitAd("xxxxxxx");

//...

//开屏广告
AdvertManager.ShowAd(this, "xxxxxxx", AdType.Splash);
}
else
{
ShowMessage("初始化失败");
}
}


// 退屏广告
// Step2.在程序关闭时,弹出展示退屏广告
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
_ = AdvertManager.ShowExitAdBlocking();
}

横幅广告

private void btnAd3_Click(object sender, EventArgs e)
{
AdvertManager.ShowAd(this, "xxxxxxx", AdType.Banner);
}

插屏广告

private void btnAd4_Click(object sender, EventArgs e)
{
AdvertManager.ShowAd(this, "xxxxxxx", AdType.Interstitial);
}

对联广告

private void btnAd5_Click(object sender, EventArgs e)
{
AdvertManager.ShowAd(this, "xxxxxxx", AdType.Couplet);
}

激励视频

 private void btnAd6_Click(object sender, EventArgs e)
{
string comment = "id123,abc,$9.99";//透传参数,需url编码
dynamic jsonObj = new
{
unitId = "xxxxxxx",
comment = Uri.EscapeDataString(comment)
};
string json = JsonConvert.SerializeObject(jsonObj);
AdvertManager.ShowAd(this, json, AdType.Rewarded);
}

信息流

信息流广告需要开发者创建并维护控件,将控件实例传给SDK。

 private void btnAd7_Click(object sender, EventArgs e)
{
dynamic jsonObj = new
{
unitId = "xxxxxxx",//尺寸自定义,在MG后台设置
media = "image",//支持image、video、web
width = panelAd6.Width,
height = panelAd6.Height
};
string json = JsonConvert.SerializeObject(jsonObj);
AdvertManager.ShowAd(this.panelAd6, json, AdType.Feed);
}

嵌入式

嵌入式广告需要开发者创建并维护控件,将控件实例传给SDK。

private void btnAd8_Click(object sender, EventArgs e)
{
dynamic jsonObj = new
{
unitId = "xxxxxxx",//尺寸自定义,在MG后台设置
media = "image",//支持image、video、web
width = panelAd.Width,
height = panelAd.Height
};
string json = JsonConvert.SerializeObject(jsonObj);
AdvertManager.ShowAd(this.panelAd, json, AdType.Embedded);
}

广告关闭事件

      注册广告关闭的回调事件,一般在页面的构造函数中进行

      广告关闭事件参数说明

参数名参数描述示例
unitId开发者传入的广告位IDe333abaf22404c4a8d382c1e7ba42076
advertStatus广告位状态1:广告正常;2:广告被后台关闭;3:没有广告素材
以下是仅激励视频广告拥有的参数
completeStatus广告的播放状态1:广告播放完毕,可以发奖励;0:广告未播放完毕
comment由开发者传入的透传参数,经过 url 编码abc%2c123
rewardId奖励的MG订单号,游戏发奖后向MG报告核销时使用String
resourceId资源IdString
materialId素材 IdString
public Form1()
{
InitializeComponent();
AdvertManager.AdClickEvent += AdvertManager_AdClickEvent;
AdvertManager.AdCloseEvent += AdvertManager_AdCloseEvent;
}

private void AdvertManager_AdCloseEvent(object sender, string e)
{
ShowMessage("广告被关闭 " + e);

//普通广告 {"unitId":"6bf68881673540788d096b9ea4a3cedb","advertStatus":1,"resourceId":"68d20656bd9558abfdf43465","materialId":"d235efa86ccf44acbe7053af760031b6"}
//激励视频广告 {"unitId":"0f505442fac84f098e81d6f2ca04abe1","advertStatus":1,"completeStatus":1,"resourceId":"68ecb9eb20f045c603867874","materialId":"b0817d87ee2544629bac1933a60238d2","comment":"id123%2Cabc%2C%249.99","rewardId":"D1E593C16BBD412CA880FD89F0450A14"}

JObject jsonObject = JObject.Parse(e);
string unitId = (string)jsonObject["unitId"];

if (unitId == "0f505442fac84f098e81d6f2ca04abe1")//激励视频,根据返回结果发奖励道具
{
int completeStatus = (int)jsonObject["completeStatus"];
string resourceId = (string)jsonObject["resourceId"];
string materialId = (string)jsonObject["materialId"];
string rewardId = (string)jsonObject["rewardId"];
string comment = (string)jsonObject["comment"];//透传参数
if (completeStatus == 1)
{
//视频播放完毕,下发奖励道具
//...

Task.Run(async () =>
{
_ = await AdvertManager.ReportAdRewardFulfillment(unitId, resourceId, materialId, rewardId);//向MG报告
});
}
}
}

private void AdvertManager_AdClickEvent(object sender, string e)
{
ShowMessage("广告被点击 " + e);
}