接入流程

登录MG广告平台网站注册开发者账户,注册成功后创建应用,添加广告位信息(添加后会生成广告位ID,稍后嵌入广告时用到),然后将生成一个官方渠道的Publisher ID(之后嵌入广告时用到), 然后下载广告SDK压缩文件,里面包括SDK文件以及开发说明文档,您可以根据说明文档在您的应用程序中嵌入广告。嵌入成功后可以将应用更新至微软开发者后台等待审核,审核通过后您就可以开始推广应用获取广告收益了。

注册MG开发者账户

登录MG广告平台网站注册开发者账户。

创建应用

登录开发者后台选择功能菜单“应用管理-->应用列表”,点击右上角“添加”铵钮,创建应用。

注意:

“*”是必填项

“应用名称”需要注意,需要填写应用英文名称,如果是中文产品,可以使用产品首字母缩写。

“应用状态”首次填写 选择“未发布”状态。

创建广告位

登录开发者后台选择功能菜单“广告平台-->广告位列表”, 点击右上角“添加”铵钮,即可创建一个广告位,添加完成后会为每一个广告位生成一个“广告位主键“,该“广告位主键“用于在游戏中接入广告位。

注意:

“*”是必填项

广告位尺寸,可以自定义,广告位从后台广告库中提取同样大小的广告素材。

广告类型中 全屏暂时不提供,只选择后6个类型进行创建。

刷新时间:刷新广告的时间间隔。

开发者需要同时注册七个广告位,分别为开屏,插屏,横幅各两个,每一对分别对应pc和手机,退屏广告位一个,在图中“使用状态”选项来控制该广告位是否显示,开屏尺寸建议1366*768,1920*1080,插屏尺寸建议320*320,640*640,300*250,横幅350*50,480*80,退屏的尺寸选择300*50即可。

接入广告位

下载SDK请点击广告SDK

接入广告位之前需要先初始化SDK

游戏可接入六个广告位,分别为开屏、横幅、插屏、退屏,全屏插屏,对联。

开屏,横幅,插屏,对联

在MG后台创建开屏,横幅,插屏,对联广告位之后,在游戏代码的相关位置插入以下代码

try
{
	Windows.ApplicationModel.Core.CoreApplication.MainView.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
	{			
			
			MiracleGames.Advertising.UI.AdControl mgAd = new MiracleGames.Advertising.UI.AdControl("xxxxxxxxxx", "yyyyyyyyyy", true);		
			RootGrid.Children.Add(mgAd);//将广告添加到页面
	});
}
catch(Exception ex)
{
	string value = ex.ToString();
}
try
{
	Windows.ApplicationModel.Core.CoreApplication.MainView.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
	{			
			//第一,第二个参数需要传入广告key,广告key 来自MG后台创建。第三个参数true。 代表轮换广告图片,false代表不轮换。
			//只有开屏一般不轮换广告图片,可以设置成false。
			MiracleGames.Advertising.UI.AdControl mgAd = new MiracleGames.Advertising.UI.AdControl("xxxxxxxxxx", "yyyyyyyyyy", true);
			mgAdSpread.AdClosed += MgAd_AdClosed;//关闭广告时触发广告关闭事件,执行MgAd_AdClosed,也可以不注册该事件。
			RootGrid.Children.Add(mgAd);//将广告添加到页面
	});
}
catch(Exception ex)
{
	string value = ex.ToString();
}
开屏

开屏广告位一般在MainPage页面的load方法中实现

全屏插播
try
{
	Windows.ApplicationModel.Core.CoreApplication.MainView.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
	{			
		MiracleGames.Advertising.UI.AdControl mgAd = new MiracleGames.Advertising.UI.AdControl("xxxxxxxxxx", ""yyyyyyyyyy", 
		true, new AdControlExtendTableAdFull());//第四个参数是扩展广告控件的,一般不需要自己定义。
	});
}
catch(Exception ex)
{
	string value = ex.ToString();
}
退屏

在mainpage.xaml.cs的Loaded方法中初始化退屏广告位

if (MiracleGames.ApplicationManager.SetupCompletedSuccessfully)
{
    try
    {
        var mgAD = new AdControl("1B4FF5F216", "1B4FF5F216", true);
        mgAD.CloseIconVisibility = Visibility.Visible;
        Grid.SetRowSpan(mgAD, 10);
        RootGrid.Children.Add(mgAD);
    }
    catch (Exception)
    { }
}

在app.xaml.cs中注册进入后台事件,在进入后台事件中添加如下代码

bool exit = false;       
private async void App_EnteredBackground(object sender, EnteredBackgroundEventArgs e)
{
    exit = false;
    var deferral = e.GetDeferral();
    await System.Threading.Tasks.Task.Delay(5000);
    exit = true;
    deferral.Complete();
}

在app.xaml.cs的挂起事件中添加如下代码

private void OnSuspending(object sender, SuspendingEventArgs e)
{
    if(!exit)
    {
        MiracleGames.Advertising.AdvertisingManager.ExitAd();
    }
    var deferral = e.SuspendingOperation.GetDeferral();
    deferral.Complete();
}

WMS消息推送

在App.xmal.cs中注册OnActivated事件

protected override void OnActivated(IActivatedEventArgs args)
{
    MiracleGames.Advertising.AdvertisingManager.ToastAd(args);
    base.OnActivated(args);
}



视频演示