快速接入小游戏平台的SDK发布啦

接入小游戏平台广告总是出错。双11别人都在买买买,只有自己在苦逼加班?别怕,这款源码帮助你告别加班,走上人生巅峰

概述

  1. 跨小游戏平台SDK是一款简单易用的适配了多平台的广告调用播放的SDK。它可以帮助你快速接入多个小游戏平台的广告SDK,使用起来方便快捷。
  2. 它可以帮助开发者解决80%的广告接入问题,但是因为可能对于不同的小游戏平台,会有不同的广告策略,剩下的20%还需要开发者根据自身的需求修改相关的代码。所以希望这套SDK能100%解决自己项目的需求是不现实的
  3. 本SDK的设计方便扩展,希望开发者在仔细阅读源码的基础上加以修改,以使其更加契合自己的所在项目
  4. 目前支持的平台如下
  • oppo小游戏
  • vivo小游戏
  • 魅族小游戏
  • QQ小游戏
  • 微信小游戏
  • 字节小游戏
  • 华为小游戏
  • 百度小游戏

接入流程

  1. 将 src 文件夹下的所有内容拷贝到项目的assets文件夹下即可

源码目录介绍

|-- src
    |-- resources
        |-- Platform
            |-- prefab(原生广告预制体)
    |-- resourecsSrc
        |-- Platform
            |-- PlatformAdapter(各小游戏平台的适配器接口)
            |-- png(预制体使用的图片资源)
            |-- prefab(预制体使用的脚本)
            |-- PlatformConfig.ts(各小游戏平台的广告参数的配置文件)‘
            |-- PlatformJudge.ts(判断小游戏平台)
            |-- PlatformManager.ts(小游戏广告对外的接口)
            |-- PlatformNotify.ts(向外抛出一些通知)

使用范例

PlatformJudge.ts

  1. 这是帮助开发者判断当前是哪个小游戏平台的帮助类。
  2. 该类并不依赖于特定的引擎版本,即使将这个类拷贝到其他的H5项目中,也能正常的工作。
  3. 使用代码如下
    if (PlatformJudge.isOppo) {
      console.log('当前是oppo小游戏');
    }
    else if (PlatformJudge.isWX) {
      console.log('当前是微信小游戏');
    }
    else if (PlatformJudge.isVivo) {
      console.log('当前是vivo小游戏');
    }
  1. 目前支持的平台
  • oppo小游戏
  • vivo小游戏
  • 魅族小游戏
  • QQ小游戏
  • 微信小游戏
  • 字节小游戏
  • 华为小游戏
  • 百度小游戏

PlatformConfig.ts

  1. 该类是配置各个小游戏平台的广告参数的地方。从小游戏后台开通了广告并且得到了广告id之后,请填入这个配置表中。
  2. 例如微信的配置表如下图
wx: {
    videoId: '视频id',
    bottomBannerId: 'banner广告的id',
    interstitialId: '插屏广告的id',
    customAd: '自定义广告的id',

    shareTitle: '多种玩法精彩不断。快来游玩XXX(分享的标识语)',
    shareImage: 'https://www.baidu.xxxx.png(分享的图片的url)',
  },
  1. oppo的配置表如下(oppo,vivo,hw等小游戏平台不同于微信小游戏,多出了一种新的广告类型——原生广告)
oppo: {
    videoId: '视频广告id',
    bannerId: '普通bannerid',
    nativeIds: {
      interstitial: '原生广告id--用作插屏',
      banner: '原生广告id--用作banner',
    },
  },

PlatfromManager.ts

  1. 该类是整个SDK最核心的类。它弥补了不同平台之间的差异,对外暴露了统一的接口。方便开发者的调用,同时也易于扩展。

  1. 播放视频广告示范
//当点击了视频广告
  onAdButtonClick() {
    PlatformManager.getInstance().showVideo({}, this.onAdComplete.bind(this));
  }

  //视频广告播放完成的回调函数
  onAdComplete(result: boolean, msg: string) {
    if (result) {
      console.log('视频广告播放完成了。可以得到奖励');
    }
    else {
      console.log('视频广告没有播放完成' + msg);
    }
  }

视频广告的回调函数接受2个参数。分别是是否成功和出错信息。本SDK其他接口触发的回调函数都沿用这个风格。


  1. 展示banner广告
  start() {

    //展示banner
    PlatformManager.getInstance().showBanner({
      type: 'native', //是原生Banner还是默认banner,该参数只在oppo,vivo等有原生广告平台生效。
    });

    //隐藏Banner
    PlatformManager.getInstance().hideBanner({ tryDestroy: true });
  }

  //切记,事件的监听必须有注册和取消成对操作,光监听而不取消。那么可能会出错。切记
  onLoad() {
    PlatformNotify.addObserver(PlatformNotify.BANNER_SHOW_HEIGHT, this.onBannerShowHeight, this);
  }

  onDestroy() {
    PlatformNotify.removeObserver(PlatformNotify.BANNER_SHOW_HEIGHT, this);
  }

  //当底部的banner的高度发生了变化
  onBannerShowHeight(param: any) {
    let height = param.height;
    if (height > 0) {
      //这里的Height高度对应的就是view.getVisibleSize尺寸下的坐标。
      //只需要将底部的UI的position.y + height就可以完美不遮挡了
      console.log('banner展示成功了,高度为', height);
    }
    else {
      console.log('banner 被隐藏了, banner高度变成了0')
    }
  }

  1. 接口的参数
    从上边的例子里可以发现展示banner或者隐藏banner都接受了一个参数,如下
export interface BannerParam {
  width?: number; //banner的宽度百度分 0~1
  tryDestroy?: boolean; //尝试销毁
  type?: 'native' | 'default'; //是原生制作的广告,还是默认的广告
  posIndex?: number; //广告位置
}

该参数中的各个选项都是可选的。只所以这样子设计是因为每个平台的的banner的展示需要控制的变量不竟相同,例如type参数,选择了’native’那么展示的就是使用原生广告预制件resources/Platform/prefab/nativeBanner.prefab制作的banner广告,该参数只oppo等平台有效。而对于wx等就无效
同理,本SDK提供的的其他接口也是沿用了这个逻辑


  1. PlatformManager提供的其他常用接口如下
  • showInterstitialAd(param: InterstitialParam) 展示插屏
  • share(cb: any, param: any) 分享
  • tryShortcutIndesktop(cb: any) 尝试添加桌面快捷方式
  • startRecord() 开始录屏,字节平台
  • endRecord() 结束录屏,字节平台
  • isRecording() 是否在录屏, 字节平台
  • shareRecordVideo(cb: any) 分享录屏 字节平台
  • vibrateShort(type: VibrateParam) 震动

  1. PlatformManager.ts提供的接口远不止如此,但是如何使用,需要开发者仔细阅读源码后才能运用自如。
  2. 更多示例,可查看demo/assets/UseCase

运行原理

  1. 任何对PlatformManager.ts接口的调用最后都会由具体平台的AdapterXX.ts来执行。
  2. 例如在微信平台上会执行如下的路径
    PlatformManager.getInstance().xxxx ==> AdapterBase.xxxx ==> AdapterWX.xxxx

欢迎加QQ群交流讨论

群号:485674798

购买链接

https://store.cocos.com/app/detail/3362

2赞

这个很简单吧 价格虚高 :rofl:

一…一时语塞

对于初学者还是很有帮助的,价格低点,会有更多用户买单的 :grinning:

这个是买游戏源码还是单单是sdk???

这不是游戏啊,这个是几个ts文件的源码。用来接入小游戏的广告用的

啥时候出个安卓的,ios的sdk大全?

这价格有点爆炸哈哈哈

俺就想问问有没有老哥们可以拼单购买的 :joy:

已经打2折出售了。

看到这个价格 突然觉得我自己写的 还能用 :joy: