广告SDK选择与集成
引言
欢迎您,亲爱的开发者!在当今的应用市场中,实现有效的流量变现是众多游戏和应用的开发者所面临的重要任务。MG广告平台作为微软应用商店开发者的优质广告聚合平台,为开发者提供了多种广告资源和强大的变现解决方案。需要注意的是,如果您打算接入MG广告SDK以实现流量变现,对于基于微软应用商店的应用,开发者需先移植UWP版本。本文档将重点聚焦于MG广告SDK的选择与集成这一关键环节。无论您是使用Unity、Cocos还是H5引擎开发游戏,或是使用C++、C开发的应用,MG广告SDK都能满足您的需求。通过选择合适的MG广告SDK并与您的开发项目成功集成,您将能够开启多元化的广告变现之路,利用MG广告平台的资源整合能力,为您的应用获取更多的收益。
广告SDK选择
基于引擎版本的选择
| 引擎类型 | 推荐SDK方案 | 适用场景 |
|---|---|---|
| Unity | MG Ads Unity SDK 或 MG Ads UWP SDK | 全平台游戏开发,支持2D/3D项目 |
| Cocos | MG Ads UWP SDK 或 MG Ads C++ SDK | 2D游戏开发,支持Cocos2d-x v3.7+ |
| Unreal Engine | MG Ads C++ SDK | 高性能图形需求 |
| 原生UWP | MG Ads UWP SDK (NuGet) | 纯UWP应用开发 |
| HTML5/Flash | MG Ads Html5 UWP SDK | 网页游戏,H5小游戏 |
| C/C++ | MG Ads C++ SDK 或 MG Ads C SDK | 原生桌面应用,性能敏感型应用 |
版本移植流程图
Unity项目集成
集成MG Ads UWP SDK
步骤 1: 将Unity项目编译为UWP项目。参考【Unity引擎转UWP项目移植UWP】
步骤 2: 在UWP项目中接入MG Ads UWP SDK。参考【UWP Ads C++ SDK下载】
集成MG Ads Unity SDK
步骤 1: 在Unity项目中接入MG Ads Unity SDK。参考【在Unity项目中集成MG Ads Unity SDK】
步骤 2: 在Unity项目转为UWP版本。参考【Unity引擎转exe移植UWP】
Cocos项目集成
集成MG Ads UWP SDK(cocos2d v3.7-v3.15版本可移植UWP)
步骤1: 将Cocos2d-x项目输出为UWP项目。参考【Cocos2d转UWP工程移植UWP】
步骤2: 在UWP项目中接入MG Ads UWP SDK。参考【MG Ads UWP SDK下载】
集成MG Ads C++SDK
步骤1: 将Cocos2d-x项目输出为Win32项目。参考【Cocos2d转Win32项目后移植UWP】
步骤2: 在Win32项目中接入MG Ads C++ SDK。参考【MG Ads C++ SDK下载】
H5或Flash项目集成
步骤1: 在H5或Flash项目中接入MG Ads Html5 UWP SDK。参考【MG Ads Html5 UWP SDK下载】
步骤2: 将H5或Flash项目转为UWP版本。参考【Html5移植UWP版本】
C/C++项目集成
步骤1: 在C/C++项目中接入MG Ads C++ SDK。参考【MG Ads C++ SDK下载】
步骤2: 将C/C++项目转为UWP版本。参考【C++引擎移植UWP】
Unreal Engine项目集成
步骤1: 在Unreal Engine项目中接入MG Ads C++ SDK。参考【MG Ads C++ SDK下载】
步骤2: 将Unreal Engine项目转为UWP版本。参考【C++引擎移植UWP】
UWP项目集成
步骤1: 在UWP项目中接入MG Ads UWP SDK。参考【MG Ads UWP SDK下载】
步骤2: 通过UWP项目发布UWP版本。参考【UWP打包发布流程】
基于开发语言的选择
对于应用开发者而言,如果您的应用是基于C++框架开发的,MG Ads C++ SDK是专为这类项目设计的。引入SDK文件后,只需进行简单的环境配置,即可开始调用广告接口。MG Ads C++ SDK能够自主创建并展示广告。
此外,MG还提供了C版本的广告SDK。对于习惯使用C语言进行应用开发的开发者来说,MG Ads C SDK更加友好。与C++ SDK的接入方式类似,只需在C工程中引入MG Ads C SDK的相关文件,并进行简单的环境配置,即可调用广告接口,完成广告接入。
广告SDK集成
获取SDK
开发者首先需要进入MG官网(https://www.mguwp.net),并在开发者文档中找到对应项目或应用的SDK下载入口。根据所选的SDK版本(如基于引擎或开发语言架构),下载相应的SDK包。开发者文档中还提供了与你项目类型相匹配的示例资源和集成文档等相关内容。
MG广告SDK是一个集成性的解决方案,开发者下载并集成该SDK后,无需额外复杂的操作即可调用广告资源。这得益于MG Ads聚合广告平台的整合能力,开发者仅需提供广告位并嵌入MG广告SDK代码,就能接入这些广告资源,而不是分别进行不同平台的接入操作。
SDK集成流程图
开发者后台配置
在接入MG Ads SDK前,需要先在MG广告开者后台创建应用以及相应的广告位【参考】
开发环境配置
开发者首先需要进入MG广告平台文档中心(https://doc.ad.mguwp.net),并在开发者文档中找到对应项目或应用的SDK下载入口。根据所选的SDK版本(如基于引擎或开发语言架构),下载相应的SDK包。开发者文档中还提供了与你项目类型相匹配的示例资源和集成文档等相关内容。
MG广告SDK是一个集成性的解决方案,开发者下载并集成该SDK后,无需额外复杂的操作即可调用广告资源。这得益于MG Ads聚合广告平台的整合能力,开发者仅需提供广告位并嵌入MG广告SDK代码,就能接入这些广告资源,而不是分别进行不同平台的接入操作。
初始化SDK
无论采用何种方式集成MG SDK,在调用广告接口之前,必须首先完成SDK的初始化,以及广告合规CMP相关设置操作。
初始化是确保SDK正常运行的核心步骤,它不仅能够建立与服务端的有效通信,还能根据预设配置加载必要的资源和服务,从而为后续功能的稳定运行奠定基础。这一过程对于保障广告接口的准确响应、提升用户体验以及实现预期的服务效果至关重要,因此开发者应特别注意初始化的正确性和完整性。
CMP是构建用户信任、降低法律风险、维持广告收入可持续性的关键基础设施,确保数据在合法、透明的前提下流动,从而平衡商业价值与隐私保护的双重需求。因此开发者在接入广告SDK时必须接入CMP。
using MiracleGamesAd;
using MiracleGamesAd.Models;
private async void MainPage_Loaded(object sender, RoutedEventArgs e)
{
//初始化接口调用,所需参数在MG广告后台申请创建
var result = await ApplicationManager.Initialize("YOUR_APP_KEY","YOUR_Secret_Key");
if (result.ReturnValue)//初始化回调接口,检测是否初始化完成。
{
}
}
广告接入
以下为UWP Ads C# SDK接入广告的代码示例,在接入时可以根据您的开发引擎找相对应的接入文档。
开屏广告
开屏广告位一般在页面的load方法中,在SDK初始化完成事件中实现。
public async void FullScreenAd()//MG FullScreenAd
{
//“XXXXXXXX”参数需要传入广告key,广告key来自MG广告后台创建。
var ad = await AdvertisingManager.ShowAd("XXXXXXXX", AdType.FullScreen);
if (ad.ReturnValue)//关闭广告时触发广告关闭事件
{
}
}
退屏广告
退屏广告是在退出游戏时触发,为了保证退出游戏时广告的弹出率,MG会分两步完成退屏广告的实现
1.在初始化完成后,将退屏广告的信息加载到内存中
2.在退出游戏时,直接打开退屏广告
//“XXXXXXXX”参数需要传入广告key,广告key来自MG广告后台创建。
AdvertisingManager.SetupExitunitId("XXXXXXXX");
横幅广告
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);
}
测试集成
功能测试
在不同类型的设备和不同分辨率下运行您的应用,检查广告是否能够按照预期加载、展示、切换(如果支持自动刷新)等功能。确保广告内容的显示没有出现截断、变形或者与其他UI元素重叠等问题。
兼容性测试
测试您的应用在有广告和无广告状态下在各种系统版本下是否都能稳定运行。同时,也要考虑与其他可能的第三方库或者插件的兼容性,确保MG广告SDK的存在不会引发任何冲突或者资源竞争问题。
性能测试
测量集成MG广告SDK前后的应用性能指标,如启动速度、帧率(对于游戏应用)等。确保广告的加载和展示不会对应用的帧率产生明显的下降影响,保证用户体验不受破坏。除了测量启动速度、帧率等常规性能指标外,还应关注广告加载时的内存占用情况。例如,在移动设备上,如果广告加载导致内存占用过高,可能会引发设备卡顿甚至应用崩溃。可以使用性能分析工具(如Android平台上的Android Profiler或者iOS平台上的Instruments)来精确监测内存的使用情况,并根据监测结果对广告加载逻辑进行优化,如采用懒加载策略或者优化广告资源的加载顺序。对于网络依赖性较强的广告(如视频广告),要进行网络状况模拟测试。在不同的网络带宽(如2G、3G、4G、Wi - Fi)下测试广告的加载速度、缓冲情况以及对整体用户体验的影响。如果发现网络较差时广告无法正常加载或者加载时间过长,可以考虑采用预加载部分内容或者提供离线广告解决方案。
结语
本文档介绍了MG广告SDK的选择与集成过程。MG广告平台的广告聚合功能,使开发者通过接入SDK就能调用广告资源。希望本文档能帮助您完成SDK集成工作,若有任何问题或者需要支持,请联系MG广告平台客服团队或参考其他开发者文档资源,祝您在开发与变现的道路上取得成功。