Appearance
插件接口
IMPORTANT
本文档中所述的插件SDK,均为可选功能。 游戏可以根据自己的运营需求进行处理。
对于广告SDK、统计插件SDK等,都做了可插拔设计, 需要则用,不需要则不用, 不会对核心业务逻辑产生影响。
插件配置说明
3、插件配置
为了实现插件的可插拔, 我们在主工程的Info Plist中,定义了一个配置节点:UGSDK。 在该节点中配置Plugins子节点,在里面配置需要使用的插件信息和参数。
如果不在游戏工程的Info Plist中配置,也可以在UGSDK_Images.bundle/ug_config.plist中直接配置一个Plugins节点点击查看插件配置样例
xml
<key>UGSDK</key>
<dict>
<key>Plugins</key>
<array>
<dict>
<key>type</key>
<string>analytics</string>
<key>name</key>
<string>UG_Plugin_Appsflyer</string>
<key>devKey</key>
<string>11111111</string>
<key>appleAppID</key>
<string>10233302</string>
</dict>
<dict>
<key>type</key>
<string>analytics</string>
<key>name</key>
<string>UG_Plugin_Adjust</string>
<key>appToken</key>
<string>638743</string>
<key>appEnvironment</key>
<string>production</string>
</dict>
<dict>
<key>type</key>
<string>analytics</string>
<key>name</key>
<string>UG_Plugin_Firebase</string>
</dict>
<dict>
<key>type</key>
<string>ad</string>
<key>name</key>
<string>UG_Ad_AdMob</string>
<key>children</key>
<array>
<dict>
<key>type</key>
<string>splash</string>
<key>name</key>
<string>UG_AdMob_SplashAd</string>
<key>splash.pos.id</key>
<string>11112223333</string>
</dict>
<dict>
<key>type</key>
<string>banner</string>
<key>name</key>
<string>UG_AdMob_BannerAd</string>
<key>banner.pos.id</key>
<string>11112223333</string>
</dict>
<dict>
<key>type</key>
<string>interstitial</string>
<key>name</key>
<string>UG_AdMob_InterstitialAd</string>
<key>interstitial.pos.id</key>
<string>11112223333</string>
</dict>
<dict>
<key>type</key>
<string>reward</string>
<key>name</key>
<string>UG_AdMob_RewardAd</string>
<key>reward.pos.id</key>
<string>11112223333</string>
</dict>
</array>
</dict>
</array>
</dict>插件配置节点参数说明:
| 参数名称 | 参数定义 | 参数说明 |
|---|---|---|
| type | 插件类型 | 统计插件固定为analytics,广告插件固定为ad |
| name | 插件名称 | 和UGSDK中每个插件模块的名称一致 |
| children | 子插件 | 对于广告插件,可以有开屏、插屏、Banner和激励视频等子插件实现 |
| 其他 | 插件参数 | 第三方插件需要的参数,每个插件不同,具体请参考下面插件部分的说明 |
统计埋点插件
SDK中通过插件抽象的形式, 定义了统计埋点插件:UG_Analytics, 并接入了多个第三方买量投放埋点上报SDK,基本不需要游戏层调用,即可实现数据的自动上报。
1、内置埋点
SDK内部已经预制了一些数据埋点的时机,参考如下:
| 事件名称 | 事件接口 | 事件说明 |
|---|---|---|
| SDK初始化开始 | ug_sdk_init_begin | 在SDK初始化接口开始调用时触发 |
| SDK初始化成功 | ug_sdk_init_success | 在SDK初始化接口成功后触发 |
| SDK登录开始 | ug_sdk_login_begin | 在SDK登录接口开始调用时触发 |
| SDK登录成功 | ug_sdk_login_suc | 在SDK登录成功后触发 |
| SDK账号注册成功 | ug_sdk_register_suc | 在玩家首次登录/注册成功时触发 |
| SDK支付开始 | ug_sdk_pay_begin | 在SDK支付接口开始调用时触发 |
| SDK支付成功 | ug_sdk_pay_suc | 在SDK支付成功后触发 |
| 创建角色成功 | ug_sdk_role_create | 在游戏层调用角色上报接口并且opType是1时触发 |
| 进入游戏成功 | ug_sdk_game_enter | 在游戏层调用角色上报接口并且opType是2时触发 |
| 角色升级成功 | ug_sdk_level_up | 在游戏层调用角色上报接口并且opType是3时触发 |
2、自定义上报
如果游戏层有自己其他的事件需要上报到第三方统计平台, 可以调用如下接口:
objc
[[UG_Analytics sharedInstance] onCustomEvent:"eventName" params:params]; //eventName:事件名称(英文);prams: 事件参数3、已接入的插件
针对统计埋点插件, 当前SDK中已经接入了Appsflyer、Adjust和Firebase:
| 插件名称 | 插件模块 | 插件说明 |
|---|---|---|
| Appsflyer | UG_Plugin_Appsflyer | Appsflyer买量上报 |
| Adjust | UG_Plugin_Adjust | Adjust买量上报 |
| Firebase | UG_Plugin_Firebase | Firebase统计上报 |
3.1 点击查看【Appsflyer】插件SDK的配置
3.1.1 依赖库配置
确认游戏工程中添加了如下库:
AppsFlyerLib.framework
libUG_Plugin_Appsflyer.a正常提供SDK接入文件时,就已经将相关的依赖库放在SDKDemo/Libs中了。 如果你发现里面没有头条买量相关插件的库(libUG_Plugin_Appsflyer.a等),可以让SDK同学,做如下处理:
WARNING
在SDK工程中选择UG_Plugin_Appsflyer这个Target,点击编译;
编译成功后,在Products目录下,将生成的libUG_Plugin_Appsflyer.a以及UG_Plugin_Appsflyer/Libs下的库文件复制到Demo的Libs下。
3.1.2 参数配置
如果要使用Appsflyer插件, 需要去Appsflyer平台, 创建应用,拿到devKey等参数。 之后,我们需要在Info Plist中UGSDK->Plugins节点下,添加如下配置:
xml
<dict>
<key>type</key>
<string>analytics</string>
<key>name</key>
<string>UG_Plugin_Appsflyer</string>
<key>devKey</key>
<string>11111111</string>
<key>appleAppID</key>
<string>10233302</string>
</dict>插件自定义参数说明:
| 参数名称 | 参数定义 | 参数说明 |
|---|---|---|
| devKey | Dev Key | Appsflyer后台该应用的dev key参数 |
| appleAppID | AppleID | AppStore后台该应用的apple id |
3.2 点击查看【Adjust】插件SDK的配置
3.2.1 依赖库配置
确认游戏工程中添加了如下库:
AdjustSdk.framework
libUG_Plugin_Adjust.a正常提供SDK接入文件时,就已经将相关的依赖库放在SDKDemo/Libs中了。 如果你发现里面没有Adjust相关插件的库(libUG_Plugin_Adjust.a等),可以让SDK同学,做如下处理:
WARNING
在SDK工程中选择UG_Plugin_Adjust这个Target,点击编译;
编译成功后,在Products目录下,将生成的libUG_Plugin_Adjust.a以及UG_Plugin_Adjust/Libs下的库文件复制到Demo的Libs下。
3.2.2 参数配置
如果要使用Adjust插件, 需要去Adjust平台, 创建应用,拿到token等参数。 之后,我们需要在Info Plist中UGSDK->Plugins节点下,添加如下配置:
xml
<dict>
<key>type</key>
<string>analytics</string>
<key>name</key>
<string>UG_Plugin_Adjust</string>
<key>appToken</key>
<string>638743</string>
<key>appEnvironment</key>
<string>production</string>
</dict>插件自定义参数说明:
| 参数名称 | 参数定义 | 参数说明 |
|---|---|---|
| appToken | 应用ID | Adjust后台,创建应用后拿到的token参数 |
| appEnvironment | 是否正式环境 | 当前环境,sandbox/production |
3.3 点击查看【Firebase】插件SDK的配置
3.3.1 依赖库配置
确认游戏工程中添加了如下库:
FirebaseCore.xcframework
FirebaseCoreInternal.xcframework
FirebaseAnalytics.xcframework
FirebaseInstallations.xcframework
FBLPromises.xcframework
GoogleUtilities.xcframework
GoogleAppMeasurementIdentitySupport.xcframework
nanopb.xcframework
FirebaseAnalyticsOnDeviceConversion.xcframework
GoogleAppMeasurementOnDeviceConversion.xcframework
PromisesSwift.xcframework
FirebaseSessions.xcframework
FirebaseCrashlytics.xcframework
FirebaseCoreExtension.xcframework
GoogleDataTransport.xcframework
libUG_Plugin_Firebase.a正常提供SDK接入文件时,就已经将相关的依赖库放在SDKDemo/Libs中了。 如果你发现里面没有Firebase相关插件的库(libUG_Plugin_Firebase.a等),可以让SDK同学,做如下处理:
WARNING
在SDK工程中选择UG_Plugin_Firebase这个Target,点击编译;
编译成功后,在Products目录下,将生成的libUG_Plugin_Firebase.a以及UG_Plugin_Firebase/Libs下的库文件复制到Demo的Libs下。
3.3.2 参数配置
如果要使用Firebase插件, 需要在Info Plist中UGSDK->Plugins节点下,添加如下配置:
xml
<dict>
<key>type</key>
<string>analytics</string>
<key>name</key>
<string>UG_Plugin_Firebase</string>
</dict>最后还需要去Firebase平台, 创建应用,下载GoogleService-Info.plist参数文件,放到游戏工程app模块下,并添加到游戏XCode工程中。
广告插件
SDK中通过插件抽象的形式, 定义了支付插件:UG_Ad, 并接入了Admob等广告,游戏可以根据需求选用。
依赖库配置
增加Admob的依赖库:
GoogleAppMeasurement.framework
FBLPromises.framework
GoogleUtilities.framework
nanopb.framework
GoogleMobileAds.framework
UserMessagingPlatform.framework
GoogleAppMeasurementIdentitySupport.framework
libUG_Ad_AdMob.a正常提供SDK接入文件时,就已经将相关的依赖库放在SDKDemo/Libs中了。 如果你发现里面没有Admob插件相关的库(libUG_Ad_AdMob.a等),可以让SDK同学,做如下处理:
WARNING
在SDK工程中选择UG_Ad_AdMob这个Target,点击编译;
编译成功后,在Products目录下,将生成的libUG_Ad_AdMob.a以及UG_Ad_AdMob/Libs下的库文件复制到Demo的Libs下。
插件参数配置
如果要使用Admob插件, 需要在Info Plist中UGSDK->Plugins节点下,添加如下配置:
xml
<dict>
<key>type</key>
<string>ad</string>
<key>name</key>
<string>UG_Ad_AdMob</string>
<key>children</key>
<array>
<dict>
<key>type</key>
<string>splash</string>
<key>name</key>
<string>UG_AdMob_SplashAd</string>
<key>splash.pos.id</key>
<string>11112223333</string>
</dict>
<dict>
<key>type</key>
<string>banner</string>
<key>name</key>
<string>UG_AdMob_BannerAd</string>
<key>banner.pos.id</key>
<string>11112223333</string>
</dict>
<dict>
<key>type</key>
<string>interstitial</string>
<key>name</key>
<string>UG_AdMob_InterstitialAd</string>
<key>interstitial.pos.id</key>
<string>11112223333</string>
</dict>
<dict>
<key>type</key>
<string>reward</string>
<key>name</key>
<string>UG_AdMob_RewardAd</string>
<key>reward.pos.id</key>
<string>11112223333</string>
</dict>
</array>
</dict>还需要在游戏工程的Info Plist中添加AdMob广告的应用ID:
xml
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~1458002511</string>Admob广告参数说明:
| 参数名称 | 参数类型 | 参数说明 |
|---|---|---|
| GADApplicationIdentifier | String | Admob后台,该应用的appID |
AdMob广告位参数说明:
| 参数名称 | 参数定义 | 参数说明 |
|---|---|---|
| splash.pos.id | 开屏广告位ID | 开屏广告对应的广告位ID |
| banner.pos.id | Banner广告位ID | 横幅广告对应的广告位ID |
| interstitial.pos.id | 插屏广告位ID | 插屏广告对应的广告位ID |
| reward.pos.id | 激励视频广告位ID | 激励视频广告对应的广告位ID |