本文介绍如何接入Miracle Games的广告系统
接入广告之前需要先初始化SDK【参考】
Miracle Games 广告支持【开屏1920*1080】【横幅728*90】【插屏640*640】【对联300*600】【全屏插播768*432】【退屏】
在开始接入前需要在Miracle Games开发者后台创建广告位【参考】,开屏,全屏插播,退屏,横幅,插屏,对联分别需要创建广告位,创建完成后,在应用的相关位置插入以下代码
Miracle Games广告代码接入完成之后,请联系MG工作人员协助测试。
//注册 关闭广告的回调事件 typedef void(WINAPI* FireCloseAdvertEvents)(OnResult onFireClose); //callback returns string {"advertplaceKey":"E4F8E422D3","AdvertKey":"xx","AdvertResourceId":"xx"} void onFireCloseAdverts(char* s) { printf("onFireCloseAdverts:%s\n", s); //... //在此处销毁客户端创建的容器 } void registerFireCloseAdvertEvents(HINSTANCE hDLL) { FireCloseAdvertEvents func = (FireCloseAdvertEvents)GetProcAddress(hDLL, "FireCloseAdvertEvents"); func(onFireCloseAdverts);//Pass in the callback function } //在SDK初始化完成后,加载MG广告 typedef int(WINAPI* OpenMGAdvert)(HWND parentPtr, char* advertplaceKey); void openMGAdvert(HINSTANCE hDLL) { OpenMGAdvert func = (OpenMGAdvert)GetProcAddress(hDLL, "OpenAdvert"); int result = func(parentPtr,"{\"advertplaceKey\":\"E4F8E422D3\",\"parentWidth\":1600,\"parentHeight\":900,\"appType\":1}"); //parentPtr:可以传整个窗体的句柄,或者是铺满全屏的容器的句柄 //parentWidth:游戏窗口宽 //parentHeight:游戏窗口高 //result:1:正常; -1:广告被后台关闭; }
由游戏客户端创建容器,并维护容器的尺寸和定位。容器尺寸728*90,定位于主窗体下方,横向居中。
void openMGAdvert(HINSTANCE hDLL) { OpenMGAdvert func = (OpenMGAdvert)GetProcAddress(hDLL, "OpenAdvert"); int result = func(parentPtr, "{\"advertplaceKey\":\"0B2D9717A1\",\"appType\":1}"); }
由游戏客户端创建容器,并维护容器的尺寸和定位。容器尺寸300*600,主窗体左侧和右侧各一个。
void openMGAdvert(HINSTANCE hDLL) { OpenMGAdvert func = (OpenMGAdvert)GetProcAddress(hDLL, "OpenAdvert"); int result = func(parentPtr, "{\"advertplaceKey\":\"3427B3ED71\",\"handle2\":234567,\"appType\":1}"); //handle2:右侧容器句柄转换成int类型 }
由游戏客户端创建容器,并维护容器的尺寸和定位。容器尺寸640*640,定位于主窗体中间。
void openMGAdvert(HINSTANCE hDLL) { OpenMGAdvert func = (OpenMGAdvert)GetProcAddress(hDLL, "OpenAdvert"); int result = func(parentPtr, "{\"advertplaceKey\":\"C6E76462AF\",\"width\":640,\"height\":640,\"appType\":1}"); //width: 容器宽度,可不传。默认值640 //height:容器宽度,可不传。默认值640 }
void openMGAdvert(HINSTANCE hDLL) { OpenMGAdvert func = (OpenMGAdvert)GetProcAddress(hDLL, "OpenAdvert"); int result = func(parentPtr, "{\"advertplaceKey\":\"72F76D95C0\",\"parentWidth\":1600,\"parentHeight\":900,\"appType\":1}"); //parentPtr:可以传整个窗体的句柄,或者是铺满全屏的容器的句柄 //parentWidth:游戏窗口宽 //parentHeight:游戏窗口高 }
弹屏广告是在退出游戏时触发,为了保证退出游戏时广告的弹出率,MG会分两步完成退屏广告的实现
// 加载退屏广告,传入在mg后台创建后得到的广告主键key值 typedef void(WINAPI *LoadMgExitAdvert)(char* advertplaceKey); void loadMgExitAdvert(HINSTANCE hDLL) { LoadMgExitAdvert func; func = (LoadMgExitAdvert)GetProcAddress(hDLL, "LoadMgExitAdvert"); func("9E4195A126");// Pass in advertplaceKey }
// 打开退屏广告 typedef void(WINAPI *OpenExitAdvert)(); void openExitAdvert(HINSTANCE hDLL) { OpenExitAdvert func; func = (OpenExitAdvert)GetProcAddress(hDLL, "OpenExitAdvert"); func(); }