跳到主要内容

广告接入指南

简介

      在接入广告之前,首先需要完成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 ShowCustomAdDefault()
{
//支持传入的开发者控件类型是Panel, ContentControl, UserControl及他们的派生类
var adSettingOptions = new CustomAdSettingOptions
{
Container = CustomContainer
};
//“XXXXXXXX”参数需要传入广告key,广告key来自MG广告后台创建。
var feed = await AdvertisingManager.ShowAd("XXXXXXXX", AdType.Custom, adSettingOptions);
}

广告预加载功能

      预加载功能包含两个独立接口:预加载接口 和 展示预加载广告接口。您可以在需要展示广告之前,提前调用 PreloadAd 接口请求广告素材,待广告准备就绪后再通过 ShowPreloadAd 接口进行展示。
      预加载功能适用于所有广告类型。

预加载接口

private void PreloadInterstitialAd()//示例:预加载插屏广告
{
//参数1:广告位ID
//参数2:广告位类型
//参数3:设置广告类型,图片="image",网页="web",视频="video"
var interstitialAd = await AdvertisingManager.PreloadAd(InterstitialAdUnitId, AdType.Interstitial, "image");
if (interstitialAd.ReturnValue)
{
var messageDialog = new Windows.UI.Popups.MessageDialog("插屏广告预加载完成", "成功");
await messageDialog.ShowAsync();
}
else
{
var messageDialog1 = new Windows.UI.Popups.MessageDialog("插屏广告预加载失败", "失败");
await messageDialog1.ShowAsync();
}
}

展示预加载广告接口

public async void ShowPreloadInterstitialAd()//示例:展示预加载成功的插屏广告,调用前请确保对应的广告位已经预缓存成功。
{
//参数1:广告位ID
//参数2:广告位类型
var interstitialAd = await AdvertisingManager.ShowPreloadAd(InterstitialAdUnitId, AdType.Interstitial);
if (interstitialAd.ReturnValue)
{
var messageDialog = new Windows.UI.Popups.MessageDialog("插屏广告展示完成", "成功");
await messageDialog.ShowAsync();
}
else
{
var messageDialog1 = new Windows.UI.Popups.MessageDialog("插屏广告展示失败", "失败");
await messageDialog1.ShowAsync();
}
}