跳到主要内容

广告接入指南

简介

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

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

开屏广告

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

public async void FullScreenAd()//MG FullScreenAd
{
//“XXXXXXXX”参数需要传入广告key,广告key来自MG广告后台创建。
var ad = await AdvertisingManager.ShowAd("XXXXXXXX", AdType.FullScreen);
if (ad.ReturnValue)//关闭广告时触发广告关闭事件
{

}
}

退屏广告

退屏广告是在退出游戏时触发,为了保证退出游戏时广告的弹出率,MG建议在初始化完成后首先将退屏广告的信息加载到内存中,在退出游戏时,SDK会自动直接打开退屏广告

加载退屏广告的代码如下

//“XXXXXXXX”参数需要传入广告key,广告key来自MG广告后台创建。
AdvertisingManager.SetupExitunitId("XXXXXXXX");

接入退屏广告代码之后,还需要进行以下设置。

1.首先将主工程的Properties->Application页签中Target version改为19041(或者高于此版本)

2.右键Package.appxmanifest,选择Xml编辑器打开编辑

3.在Package标签中增加xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities",并在IgnorableNamespaces中补充rescap

4.在Capabilities节点下,增加这一行

5.保存即可

横幅广告

public async void ShowBannerAdImage()
{
var opt = new BannerAdSettingOptions();//设置广告的一些配置参数,未设置时使用默认状态
opt.MediaType = "image";//设置广告类型图片="image",网页="web"
//控制展示广告的位置
opt.VerticalAlignment = VerticalAlignment.Center;
opt.HorizontalAlignment = HorizontalAlignment.Center;
//“XXXXXXXX”参数需要传入广告key,广告key来自MG广告后台创建。
var bannerAd = await AdvertisingManager.ShowAd("XXXXXXXX", AdType.Banner, opt);
if (bannerAd.ReturnValue)//关闭广告时触发广告关闭事件
{

}
}

插屏广告

public async void ShowInterstitialAdDefault()
{
var opt = new InterstitialAdSettingOptions();//设置广告的一些配置参数,未设置时使用默认状态
opt.MediaType = "image";//设置广告类型图片="image",网页="web",视频="video"
//“XXXXXXXX”参数需要传入广告key,广告key来自MG广告后台创建。
var interstitialAd = await AdvertisingManager.ShowAd("XXXXXXXX", AdType.Interstitial,opt);
if (interstitialAd.ReturnValue)//关闭广告时触发广告关闭事件
{

}
}

对联广告

public async void ShowCoupletAdDefault()
{
var opt = new CoupletAdSettingOptions();//设置广告的一些配置参数,未设置时使用默认状态
opt.MediaType = "image";//设置广告类型图片="image",网页="web"
//“XXXXXXXX”参数需要传入广告key,广告key来自MG广告后台创建。
var coupletAd = await AdvertisingManager.ShowAd("XXXXXXXX", AdType.Couplet,opt);
if (coupletAd.ReturnValue)//关闭广告时触发广告关闭事件
{

}
}

激励视频

public async void ShowRewardAd()
{
var json = "{\"coin\":100}";
var rewardAd = await AdvertisingManager.ShowAd(RewardAdUnitId,
AdType.Reward,
new RewardAdSettingOptions
{
MediaType = "video",//设置广告类型图片="image",网页="web",视频="video"
Comment = WebUtility.UrlEncode(json),//开发者自定义参数
CallbackId = ""//回调地址,可为空
});
if (rewardAd.Tag is RewardAdCompleteState completeState)
{
if (completeState.IsCompleted)
{
//游戏逻辑发奖,然后报告核销
var comment = WebUtility.UrlDecode(completeState.Comment);
await AdvertisingManager.ReportAdRewardFulfillment(completeState.RewardId);
}
}
}

信息流

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

public async void ShowFeedAdDefault()
{
//支持传入的开发者控件类型是Panel, ContentControl, UserControl及他们的派生类
var feedAdSettingOptions = new FeedAdSettingOptions
{
Container = FeedContainer
};
//“XXXXXXXX”参数需要传入广告key,广告key来自MG广告后台创建。
var feed = await AdvertisingManager.ShowAd("XXXXXXXX", AdType.Feed, feedAdSettingOptions);
}

嵌入式

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

public async void ShowEmbededAdDefault()
{
//支持传入的开发者控件类型是Panel, ContentControl, UserControl及他们的派生类
var embededAdSettingOptions = new EmbededAdSettingOptions
{
Container = EmbededContainer
};
//“XXXXXXXX”参数需要传入广告key,广告key来自MG广告后台创建。
var embeded = await AdvertisingManager.ShowAd("XXXXXXXX", AdType.Embeded, embededAdSettingOptions);
}