Android版Cocos2d-X应用的AnySDK集成Admob管理库教程

一:要求
1:Cocos2d-X的最新版本
2: AnySDK框架v1.2.3或更高版本
3:AnySDK程序包工具

二:将AnySDK导入到游戏中
AnySDK快速入门指南详细介绍了如何在 C++和Android 级别导入AnySDK,请查看该指南以了解相关信息。

三:AnySDK Ads System API
成功导入AnySDK 后,您能够参阅广告系统指南,编写针对AnySDK广告系统的代码。
AdMob支持AD_TYPE_BANNER和AD_TYPE_FULLSCREEN格式。咱们将介绍一些集成 AdMob的经常使用方法。

1:横幅广告
要请求和展现横幅广告,请使用AD_TYPE_BANNER广告类型的showAds方法。
AdsPlugin * ads = AgentManager::getInstance()->getAdsPlugin();
ads->showAds(AD_TYPE_BANNER);

要中止展现横幅广告,请使用hideAds方法。ads->hideAds(AD_TYPE_BANNER);

2:插页式广告
在您显式展现插页式广告以前,应该使用AD_TYPE_FULLSCREEN广告类型的preloadAds方法预加载相应的广告。
AdsPlugin * ads = AgentManager::getInstance()->getAdsPlugin();
ads->preloadAds(AD_TYPE_FULLSCREEN);

当您稍后要展现插页式广告时,请调用showAds。
ads->showAds(AD_TYPE_FULLSCREEN);

3:使用多个横幅广告或插页式广告
若是您须要使用多个横幅广告尺寸或不一样的广告单元 ID,则能够向showAds、hideAds和preloadAds方法传递一个索引。如下是一些示例:
ads->showAds(AD_TYPE_BANNER, 2); // show banner #2
ads->hideAds(AD_TYPE_BANNER, 2); // hide banner #2
ads->showAds(AD_TYPE_FULLSCREEN, 2); // preload interstitial #2
ads->preloadAds(AD_TYPE_FULLSCREEN, 2); // show interstitial #2
若是不指定索引,则默认为1。

当您稍后使用AnySDK程序包工具配置AdMob时,能够设置每一个横幅广告的广告单元 ID、广告尺寸以及展现位置,还能够设置每一个插页式广告的广告单元ID。

注意:假设您的游戏有4个横幅广告展现位置和2个插页式广告展现位置。您应该将横幅广告从1到4进行编号,将插页式广告从1到2进行编号。AnySDK程序包工具但愿您使用这种编号方案。

4:监听广告事件
若是须要得到广告事件的通知(例如成功接收到广告),请指定实现AdsListener的类。它只提供一个方法(即onAdsResult),该方法会通知您全部事件。

AdMob支持如下广告事件:
1:kAdsReceived  2:kAdsShown   3:kAdsDismissed     4:kNetworkError    5:kUnknownError

onAdsResult方法的典型实现框架以下所示:
void onAdsResult(AdsResultCode code, const char * msg) {
switch(code) {
  case kAdsReceived:
   // Ad has been received.
   break;
  case kAdsShown:
   // Ad is presenting a full screen view.
   break;
  case kAdsDismissed:
   // A full screen ad view is being dismissed.
   break;
  case kNetworkError:
   // Ad failed due to network error.
   break;
  case kUnknownError:
   // Ad failed.
   break;
   default:
   break;
}

}

在这里,您能够决定针对各个事件采起的措施。

最后,请注意设置广告插件的广告监听器,以便告知 AnySDK 哪些类应该接收广告事件:
AgentManager::getInstance()->getAdsPlugin()->setAdsListener(this);

四:使用 AnySDK 程序包工具
将您的应用配置为使用AnySDK广告系统后,请使AnySDK程序包工具启用 AdMob 以填充您的广告空间。您必须分别针对 Android 配置 AnySDK,针对这两个平台的配置过程以下所述:
1:Android
在AnySDK应用配置的SDK Management(SDK 管理)部分,指定 AdMob做为广告提供商,并选择您的应用支持哪些格式。

2:在Parameter Config(参数配置)部分,为横幅广告和/或插页式广告输入 Android广告单元ID,还请输入广告尺寸和展现位置(若是您使用的是横幅广告)。

若是您的应用设置为使用多个横幅广告(参见使用多个横幅广告或插页式广告部分),请点击”+”标签为每一个横幅广告配置广告单元。另请针对插页式广告执行相同操做。

3:最后,在Publishing(发布)标签中,选择Browse(浏览)并找到应用的.apk文件。而后点击Start(开始)。

就这么简单!此步骤会生成一个包含 AdMob的项目版本!

由于Cocos2d-X的缺点是程序库比较复杂,而且不稳定;虽说是个引擎,也提供了些辅助工具,但没有系统化,实际只是个程序库;惟独他最大的优势就 在于开发的产品能够跨平台发行。因此利用他的优点能够集成KeyMob平台。该平台将整合国内外主流移动广告平台,并对广告功能进行统一管理、动态配置, 广告主和开发者均可以经过简单的操做轻松实现对多家广告平台的搭配使用。并能辅助开发者过市场审核。框架