Skip to content

插件接口

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:

插件名称插件模块插件说明
AppsflyerUG_Plugin_AppsflyerAppsflyer买量上报
AdjustUG_Plugin_AdjustAdjust买量上报
FirebaseUG_Plugin_FirebaseFirebase统计上报
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>

插件自定义参数说明:

参数名称参数定义参数说明
devKeyDev KeyAppsflyer后台该应用的dev key参数
appleAppIDAppleIDAppStore后台该应用的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应用IDAdjust后台,创建应用后拿到的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广告参数说明:

参数名称参数类型参数说明
GADApplicationIdentifierStringAdmob后台,该应用的appID

AdMob广告位参数说明:

参数名称参数定义参数说明
splash.pos.id开屏广告位ID开屏广告对应的广告位ID
banner.pos.idBanner广告位ID横幅广告对应的广告位ID
interstitial.pos.id插屏广告位ID插屏广告对应的广告位ID
reward.pos.id激励视频广告位ID激励视频广告对应的广告位ID

版权所有© 2021-2030 上海丞诺网络科技有限公司