SDK接入配置
1. 鸿蒙中心仓库接入
1. 鸿蒙中心仓库接入
从ToBid广告SDK-HarmonyOS 1.3.1版本开始,支持远程仓库依赖,接入方式详见:
步骤一:添加仓库
项目根目录.ohpmrc配置仓库地址registry=https://ohpm.openharmony.cn/ohpm/,https://ohpm.sigmob.com/repos/ohpm
备注:
可以配置多个仓库地址,以英文逗号间隔,多个仓库地址的优先级按照配置顺序排序。 https://ohpm.sigmob.com/repos/ohpm为ToBid鸿蒙远程仓库。
步骤二:添加依赖
在工程主module的oh-package.json5文件中需要引入ToBid SDK的模块,以远程包形式引入: 在oh-package.json5添加依赖
"dependencies": {
"@tobid/adsdk": "${version}"
}2. 手动引入har包
步骤一:添加仓库
项目根目录.ohpmrc配置仓库地址registry=https://ohpm.openharmony.cn/ohpm/,https://ohpm.sigmob.com/repos/ohpm
备注:
可以配置多个仓库地址,以英文逗号间隔,多个仓库地址的优先级按照配置顺序排序。 https://ohpm.sigmob.com/repos/ohpm为ToBid鸿蒙远程仓库。
在oh-package.json5添加依赖
"dependencies": {
"@tobid/adsdk": "file:./libs/tobidad-{version}.har",
}工程完成依赖接入后,执行 ohpm install 执行har包的安装,即可在工程中tobidadsdk了。
注意: 如果之前接入了har或者本次为替换har包更新版本,可先执行ohpm clean cache清除oh_modules目录,避免更新har包失败。
SDK默认构建字节码HAR,工程的工程级build-profile.json5的useNormalizedOHMUrl字段true
2. 环境要求
| 项目 | 要求 |
|---|---|
| 系统 | HarmonyOS Next |
| API | API 12+ |
| IDE | DevEco Studio 5.0+ |
| 语言 | ArkTS(推荐 Strict Mode) |
| 核心包 | @tobid/adsdk 5.0.0 |
3. 聚合 SDK 引入
在应用模块(如 entry)的 oh-package.json5 中声明:
{
"dependencies": {
"@tobid/adsdk": "file:../adsdk",
"@sigmob/common": "^1.0.0"
}
}正式发包后可将 file: 路径替换为仓库版本号。
执行:
ohpm install4. 渠道适配器引入
按后台配置的渠道,在业务模块 oh-package.json5 中按需声明 Adapter HAR。各 Adapter 已在自身 oh-package.json5 声明所依赖的渠道 SDK,无需业务侧再单独引入渠道 SDK:
{
"dependencies": {
"@tobid/adsdk": "file:../adsdk",
"@tobid/huawei_adapter": "file:../tobid_huawei_adapter",
"@tobid/csj_adapter": "file:../tobid_csj_adapter",
"@tobid/gdt_adapter": "file:../tobid_gdt_adapter",
"@tobid/ks_adapter": "file:../tobid_ks_adapter",
"@tobid/gromore_adapter": "file:../tobid_gromore_adapter"
}
}无需手动 import 注册:官聚渠道(csj / gromore / gdt / kuaishou / huawei)的 Adapter 已由 SDK 内部内置注册,并在瀑布流命中该渠道时通过动态
import懒加载。业务侧不需要在初始化前写import '@tobid/xxx_adapter'。
4.1 runtimeOnly 配置(必须)
由于 Adapter 是通过变量形式的动态 import(moduleName) 加载的,编译期无法静态解析,必须在业务模块的 build-profile.json5 中额外声明 runtimeOnly,否则模块不参与编译、运行时加载失败(错误码 800040):
{
"buildOption": {
"arkOptions": {
"runtimeOnly": {
"packages": [
"@tobid/huawei_adapter",
"@tobid/csj_adapter",
"@tobid/gdt_adapter",
"@tobid/ks_adapter",
"@tobid/gromore_adapter"
]
}
}
}
}名字需与
dependencies完全一致。Demo 参考:entry/build-profile.json5。
若后台配置了某渠道但依赖未引入(或 runtimeOnly 未声明、release 包混淆掉了 Adapter 类名),加载阶段会返回错误码 800040(适配器错误)。渠道清单、渠道 SDK 版本与排查方式见 第三方广告网络配置说明。
5. 权限配置(module.json5)
在入口模块 module.json5 的 requestPermissions 中按需声明(Demo entry/src/main/module.json5 参考):
| 权限 | 用途 | 建议 |
|---|---|---|
ohos.permission.INTERNET | 广告请求 / 素材下载 / 埋点上报 | 必选 |
ohos.permission.APP_TRACKING_CONSENT | OAID / 广告标识相关 | 推荐(合规同意后使用) |
ohos.permission.GET_NETWORK_INFO | 网络类型采集 | 推荐 |
ohos.permission.GET_WIFI_INFO | WiFi 信息 / MAC | 可选 |
ohos.permission.APPROXIMATELY_LOCATION | 粗略定位(部分渠道定向) | 可选 |
ohos.permission.ACCELEROMETER | 摇一摇等互动 | 可选 |
ohos.permission.VIBRATE | 震动反馈 | 可选 |
ohos.permission.STORE_PERSISTENT_DATA | 持久化数据 | 可选 |
详细说明见 权限与合规说明。
6. 工程注意点
- 初始化必须使用
UIAbilityContext(如EntryAbility的this.context),不要使用错误的 Context 类型。 - Banner / 原生广告依赖 ArkUI 组件渲染,请在页面生命周期内创建与销毁广告对象。
- 建议参考仓库 Demo:
entry/src/main/ets/ads/。
7. 验证接入
import { ToBidAdSDK } from '@tobid/adsdk';
console.info(`ToBid version = ${ToBidAdSDK.sdkVersion()}`);