C++ SDK广告

简介

本文介绍如何接入Miracle Games的广告系统

接入广告之前需要先初始化SDK【参考

Miracle Games 广告支持【开屏1920*1080】【横幅728*90】【插屏640*640】【对联300*600】【全屏插播768*432】【退屏】

在开始接入前需要在Miracle Games开发者后台创建广告位【参考,开屏,全屏插播,退屏,横幅,插屏,对联分别需要创建广告位,创建完成后,在应用的相关位置插入以下代码

Miracle Games广告代码接入完成之后,请联系MG工作人员协助测试。

开屏广告

CPP查看广告示例
//注册 关闭广告的回调事件
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:广告被后台关闭;
}
		

横幅

CPP查看广告示例

由游戏客户端创建容器,并维护容器的尺寸和定位。容器尺寸728*90,定位于主窗体下方,横向居中。

void openMGAdvert(HINSTANCE hDLL) { 
	OpenMGAdvert func = (OpenMGAdvert)GetProcAddress(hDLL, "OpenAdvert");
	int result = func(parentPtr, "{\"advertplaceKey\":\"0B2D9717A1\",\"appType\":1}");
}

对联

CPP查看广告示例

由游戏客户端创建容器,并维护容器的尺寸和定位。容器尺寸300*600,主窗体左侧和右侧各一个。

void openMGAdvert(HINSTANCE hDLL) { 
	OpenMGAdvert func = (OpenMGAdvert)GetProcAddress(hDLL, "OpenAdvert");
	int result = func(parentPtr, "{\"advertplaceKey\":\"3427B3ED71\",\"handle2\":234567,\"appType\":1}");
	//handle2:右侧容器句柄转换成int类型
}

插屏

CPP查看广告示例

由游戏客户端创建容器,并维护容器的尺寸和定位。容器尺寸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会分两步完成退屏广告的实现

  1. 在初始化完成后,将退屏广告的信息加载到内存中
  2. 在退出游戏时,直接打开退屏广告

加载退屏广告信息

// 加载退屏广告,传入在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();
}

视频演示--广告