腾讯联盟 Unity SDK 接入文档
概述
说明
借助 腾讯联盟 Unity 插件,Unity 开发者无需编写 Java 或 Objective-C 代码,即可轻松地在 Android 和 iOS 应用上展示移动广告。
在 Unity 编辑器中打开您的项目,然后依次选择 Assets > Import Package > Custom Package,并找到下载的 SDK(xxx.unitypackage) 文件。确保选择所有文件,然后点击 Import导入。
背景
开发环境
- 操作系统:支持 Linux/Mac/Windows 系统,具体依赖开发者选择的 IDE
- 开发工具:推荐使用
Unity 2018.3.1+
- 部署目标:接入联盟流量的应用
支持广告类型
Unity 插件支持以下几种广告类型,您可以根据开发需要选择合适的广告:
广告类型 | 简介 | 适用场景 |
---|---|---|
开屏广告 | 开屏广告以App启动作为曝光时机,提供5s的可感知广告展示 | app启动时,常会使用开屏广告 |
Banner广告 | 位于app顶部、中部、底部任意一处,横向贯穿整个app页面 | 常出现在文章页末尾,详情页面底部,信息流顶部等 |
插屏广告 | 插屏广告是移动广告的一种常见形式,在应用执行流程中弹出,当应用展示插页式广告时,用户可以选择点按广告,访问其目标网址,也可以将其关闭,返回应用 | 在应用执行流程的自然停顿点,适合投放这类广告 |
平台模板 | 相比于前文介绍的Banner广告、插屏广告等,平台模板广告提供了更加灵活、多样化的广告样式选择 | 如果我们提供的模板广告样式符合您的需求,建议直接使用该样式 |
激励视频 | 将短视频融入到app场景当中,成为app“任务”之一。用户观看短视频广告后可以得到一些应用内奖励 | 常出现在游戏的复活、登录等位置,或者网服类app的一些增值服务场景 |
自渲染广告(2.1.0新增) | 自渲染是对原有类型的优化和升级,使用自渲染的API,您可以为您的应用打造定制式体验 |
常见问题
Android
- Unity SDK 1.1.0 及其以后版本不再提供默认
mainTemplate.gradle
,开发者可自行引入。 - Unity SDK 1.1.0 及其以后版本如果接入微信小程序或小游戏广告,需引入
opensdk
,可通过gradle
依赖,也可通过aar
依赖,参考Assets/UnionDemo/Plugins/Android/
目录。 - 使用
Unity 2018.1
及其以下的版本时,ModifyUnityAndroidAppManifestSample 文件会报错,可以删掉此文件 - 目前使用
Unity 2018.1
及其以下的版本直接打出的 APK 是不能使用平台模板视频广告的,这是因为 Unity 打包 APK 时,会把 Activity 的硬件加速关闭掉,所以,无法展示视频广告。 - unity SDK支持启用聚合功能,开发者修改demo工程中广告位为聚合广告位即可体验。在开发者自己的项目中启用聚合无需修改接入代码,但需要将adapter及第三方SDK导入项目(相关文件路径为Assets/Union/demo/Plugins/Android),同时对第三方SDK进行适配(例如快手需要引入recyclerview等),具体可参见优量汇unity demo工程或咨询技术支持。
如果需要展示平台模板视频广告,必须使用export project
的方式进行处理,处理流程如下所示:
选择 Export Project 的模式导出Android工程
修改 AndroidManifest 里的 hardwareAccelerated 属性,设置成 true
如果 Unity 2017 低版本导出的工程中没有 UnionAdViewManager
类,可以手动添加,需要确保包名一致。另外,如果导出的工程中没有 FileProvider
的声明,可以手动添加.
<provider
android:name="com.qq.e.comm.GDTFileProvider"
android:exported="false"
android:authorities="${applicationId}.gdt.fileprovider"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/gdt_file_path" />
</provider>
iOS
目前在 Unity 中无法直接运行 iOS 版本的 demo,您需要导出到 Xcode 中调试您的项目,以下为导出的具体步骤:
(1). 双击选择 Assets/UnionDemo
目录下的 UnionExample.unity
(2). 点击左上角 File
中的 BuildSettings
选项,出现导出设置界面
(3). 点击导出设置界面的 Add Open Scenes
按钮,选择 UnionDemo/UnionExample
(4). 在 Platform
下选择 iOS
,如果没有下载导出到 Xcode 的配置,需要先进行下载,再点击 Switch Platform
按钮
(5). 在您需要时可在 Player Settings
中修改一些导出设置
(6). 点击 Build
按钮,导出到 Xcode
使用 Unity2017 将 Unity 插件所在项目导出到 Xcode 后,如若不能成功运行,可尝试在Xcode中进行以下设置:
- 在 PROJECT -> Unity-iPhone -> Build Settings -> Other Linker Flags 中添加 -ObjC 字段, 注意大小写
- 在 TARGETS -> Unity-iPhone -> Build Phases -> Link Binary With Libraries 中添加 libxml2.2.tbd 或 libxml2.tbd 库,并添加 WebKit 库
使用 Unity2018 将 Unity 插件所在项目导出到 Xcode 后,如若不能成功运行,可尝试在 Xcode 中进行以下设置:
- 在 PROJECT -> Unity-iPhone -> Build Settings -> Other Linker Flags 中添加 -ObjC 字段, 注意大小写
- 在 TARGETS -> Unity-iPhone -> Build Phases -> Link Binary With Libraries 中添加 libxml2.2.tbd 或 libxml2.tbd 库
使用 Unity2019 将 Unity 插件所在项目导出到 Xcode 后,如若不能成功运行,可尝试在 Xcode 中进行以下设置:
- 在 TARGETS -> Unity-iPhone -> Build Phases -> Link Binary With Libraries 中添加 libxml2.2.tbd 或 libxml2.tbd 库
- 依次点击选择
Assets/UnionSDK/Plugins/iOS/GDTMobSDK
目录下所有文件的Target Membership
下UnityFramework
选项
Unity 2019 3.x 仅支持 iOS 10.0 及以上的系统版本
在系统版本为 iOS 13.x 的设备上运行 Unity 2019 3.x 版本打出的ipa包可能会出现闪退,建议开发者将 Unity 切换至 2019 3.x 之前的版本
如果还有 SDK category 在工程中不能使用的问题
- 在 PROJECT -> Unity-iPhone -> Build Settings -> Other Linker Flags 中添加 -all_load 或 -force_load 字段
Unity
当您需要将 demo 导出到 Android/iOS
平台时,务必在导出前进行以下操作:
(1). 双击选择 Assets/UnionDemo
目录下的 UnionExample.unity
(2). 点击左上角 File 中的 BuildSettings
选项,出现导出设置界面
(3). 点击导出设置界面的 Add Open Scenes
按钮,选择 UnionDemo/UnionExample
您在切换 Unity 版本时,如果出现 xxx because it is not part of the C# 4.0 language specification
错误,请确保 Unity 工程的 .NET 版本设置为 .NET 4.x