Cocos插件集成

集成Cocos Plugin

开始之前

  • 我们支持 Cocos 2.4.3 版本。
  • 我们支持Android操作系统版本4.1(API级别16)及更高版本。
  • 我们支持XCode 9.0及更高版本以及CocoaPods。

总览

本指南适用于需要通过Cocos应用获利的发布商。

OpenMediation SaaS 聚合平台提供多样化且有效的货币化服务,并支持多种广告格式,包括原生广告,非页内广告,横幅广告和激励性视频广告。 OpenMediation平台可聚合AdTiming,AdMob,Facebook,UnityAds,Vungle,Tapjoy,AppLovin,AdColony,Chartboost,Pangle,Mintegral 和IronSource等。

 

步骤 1. 将 OpenMediation Cocos Package 添加到您的项目中

请按照以下步骤将OpenMediation Cocos软件包添加到您的项目中:

  1. 下载OpenMediation Cocos Package
  2. 打开Cocos项目
    • OpenMediation SDK设计用于Android和iOS平台。Cocos编辑器包含一个与Cocos代码一起使用的模拟器。为了使用我们的插件,您必须以Android或iOS版本为目标来测试集成。
  3. 导入Cocos Package
    • 找到项目与Assets同级目录的packages目录,将下载的package/OpenMediation放入该目录下。
    • 打开项目查看扩展菜单,可以看到OpenMediation子菜单。

 

步骤 2.Cocos 集成管理工具

OpenMediation Cocos集成管理工具可以通过扩展下载或更新最新版本的OpenMediation SDK和聚合适配器进行相应SDK的更新。

cocos_manager_cn.pngcocos_mediation_manager.png

注意:Cocos 集成管理工具中显示的Adapter版本号不是iOS/安卓OpenMediation及Adapter的原生版本号。

管理SDK版本

导入Cocos package之后,您将可以在扩展菜单栏中查看OpenMediation子菜单更新OpenMediation SDK或聚合适配器

  • 打开集成管理工具:OpenMediation > Integration Manager(针对中国地区流量应用请选择Integration Manager(CN))
  • 选择 “Install” or “Update“

如果您已经是最新版本的OpenMediation SDK或聚合适配器,则按钮将更改为 “Updated”,并且将被禁用。

 

步骤 3. 注册事件

OpenMediation Cocos 插件会触发一系列广告相关的事件回调,以通知您广告SDK的状态及信息。

添加以下代码以注册到事件:

cc.Class({
    extends: cc.Component,

    onLoad: function () {
        this.initPlugin();
    },

    initPlugin: function () {
        const self = this;
        OpenMediation.Ads.setListener({
            onInitSuccess: function () {
                //initialization success
            },

            onInitFailed: function (msg) {
                // initialization failed
            },

            onRewardedVideoAvailabilityChanged: function (available) {
                // Invoked when the ad availability status is changed
            },

            onRewardedVideoShow: function (scene) {
                // Invoked when the RewardedVideo ad view has opened
            },

            onRewardedVideoShowFailed: function (scene) {
                // Invoked when the call to show a rewarded video has failed
            },

            onRewardedVideoClosed: function (scene) {
                // Invoked when the RewardedVideo ad is closed
            },

            onRewardedVideoStarted: function (scene) {
                // Invoked when the RewardedVideo ad start to play
            },

            onRewardedVideoEnded: function (scene) {
                // Invoked when the RewardedVideo ad play end
            },

            onRewardedVideoReceiveRewarded: function (scene) {
                // Invoked when the video is completed and the user should be rewarded
            },

            onRewardedVideoClicked: function (scene) {
                // Invoked when the user clicked on the RewardedVideo ad
            },

            onInterstitialAvailabilityChanged: function (available) {
                // Invoked when the interstitial ad availability status is changed
            },

            onInterstitialShow: function (scene) {
                // Invoked when the Interstitial ad has opened
            },

            onInterstitialShowFailed: function (scene) {
                // Invoked when the Interstitial ad has showed failed
            },

            onInterstitialClosed: function (scene) {
                // Invoked when the Interstitial ad is closed
            },

            onInterstitialClicked: function (scene) {
                // Invoked when the user clicked on the Interstitial ad
            },

            onPromotionAdAvailabilityChanged: function (available) {
                // Invoked when PromotionAd availability changed
            },

            onPromotionAdShow: function (scene) {
                // Invoked when the PromotionAd has opened
            },

            onPromotionAdViewWillDisappear: function (scene) {
                // Invoked when the PromotionAd is closed
            },

            onPromotionAdClicked: function (scene) {
                // Invoked when the user clicked on the PromotionAd
            },

            onBannerLoadSuccess: function (placementId) {
                // Invoked when Banner Ad load success
            },

            onBannerLoadFailed: function (placementId, msg) {
                // Invoked when Banner Ad load failed
            },

            onBannerClicked: function (placementId) {
                // Invoked when the user clicked on the Banner Ad
            },

            onSplashLoadSuccess: function (placementId) {
                // Invoked when Splash Ad load success
            },

            onSplashLoadFailed: function (placementId, msg) {
                // Invoked when Splash Ad load failed
            },

            onSplashShow: function (placementId) {
                // Invoked when Splash Ad has opened
            },

            onSplashShowFailed: function (placementId, msg) {
                // Invoked when Splash Ad has showed failed
            },

            onSplashClicked: function (placementId) {
                // Invoked when the user clicked on the Splash Ad
            },

            onSplashClosed: function (placementId) {
                // Invoked when the Splash Ad is closed
            },

            onImpressionDataError: function (msg) {
                // If ILRD function is not enabled. It is called when ad is displayed
            },

            onImpressionData: function (msg) {
                // If ILRD function is enabled. It is called when ad is displayed
            },
        });
        OpenMediation.Ads.init(appKey);
    },

    showRewardedVideo: function () {
        OpenMediation.Ads.showRewardedVideo();
    },

    showInterstitial: function () {
        OpenMediation.Ads.showInterstitial();
    },

    LoadBanner: function () {
        OpenMediation.Ads.loadBanner(bannerPlacementID, 0, 0);
    },

    showBanner: function () {
        OpenMediation.Ads.showBanner(bannerPlacementID);
    },

    hideBanner: function () {
        OpenMediation.Ads.hideBanner(bannerPlacementID);
    },

    showPromotionAd: function () {
        OpenMediation.Ads.showPromotionAd('scene', 132, 153, 0, 0.3, 20);
    },

    hidePromotionAd: function () {
        OpenMediation.Ads.hidePromotionAd();
    },

    loadSplash: function () {
        OpenMediation.Ads.loadSplash(splashPlacementID);
    },

    showSplash: function () {
        OpenMediation.Ads.showSplash(splashPlacementID);
    },
});

 

步骤 4. 初始化广告单元

在加载广告之前,通过使用您的AppKey调用 OpenMediation.Ads.init('appKey') 来初始化 OpenMediation SDK。 最好在应用程序启动时完成此操作,只需执行一次即可。 这是一个示例,说明如何在附加到Node的脚本的 onLoad( ) 方法内调用 init( ) 及设置监听回调方法。

OpenMediation.Ads.init('appKey');

OpenMediation Cocos 插件会触发初始化事件,以通知您SDK初始化的结果。

添加以下代码以注册到事件:

onInitSuccess: function () {
    //initialization success
},

onInitFailed: function (msg) {
    // initialization failed
},

 

是否初始化

调用init( ) 方法后,您还可以使用以下代码来确定SDK是否已成功初始化。

// To determine the result of init()
OpenMediation.Ads.initialized()

 

移除 Listener

OpenMediation.Ads.removeListener();

 

获取 Plugin 版本号

OpenMediation.Ads.getVersion();

 

设置 GDPR Consent,建议在 init 前调用

OpenMediation.Ads.setGDPRConsent(consent);

 

获取GDPR Consent

OpenMediation.Ads.getGDPRConsent();

 

根据《加州消费者隐私法案》(CCPA)设置限制使用个人信息。

OpenMediation.Ads.setUSPrivacyLimit(true);

 

设置用户年龄

OpenMediation.Ads.setUserAge(25);

 

设置用户性别

  • gender int, 0:Unknown; 1:Male; 2:Female
OpenMediation.Ads.setUserGender(1);

 

上报IAP数据(可选)

IAP是 in-App Purchase的缩写,中文称为“应用内购买”,表示该设备的用户在应用内购买虚拟商品的花费。您可以通过SDK的setIAP接口上报用户购买虚拟商品的金额数据,这些IAP数据可以帮助我们为您的用户更加精准的投放广告,从而获得更好的广告收益。

  • count float
  • currency string 货币单位, 如 CNY, USD 等
OpenMediation.Ads.setIAP(10, 'USD');

currency 是一个代表货币代码的字符串类型参数,按ISO国际标准组织的 ISO 4217:2008 标准定义。

您可以在 SDK 初始化后的任何时候上报 IAP 数据,比如在初始化回调 onInitSuccess 之后处理,在用户发生 IAP 购买行为的时候,您可以调用该方法及时更新 IAP 数据。

 

提示:

启用本地日志记录:(仅用于本地调试,在上线之前将其删除。)

OpenMediation.Ads.debug(true);

 

这篇文章有帮助吗?
3 人中有 1 人觉得有帮助

评论

0 条评论

登录写评论。