跳转至

条款

条款和条件是规定服务提供者与用户之间权利、义务和责任的文件。在提供游戏服务时,应用程序开发者必须通知或获得游戏用户对使用条款、隐私政策等的同意。


Hive SDK 提供用户注册和管理他们在启动应用时必须同意或拒绝的条款的能力。与提供的条款相关的功能如下。

  • 审查条款和条件
  • 删除同意历史
  • COPPA 合规
  • GDPR 合规
  • 验证法定代表人的同意
Info

有关注册术语的更多信息,请参考控制台指南 > 提供 > 术语

审查条款

Hive SDK 根据初始化时使用的 IP 地址确定用户的访问国家,并将其与 Hive 控制台中注册的国家特定条款进行匹配以进行显示。进入游戏后,无论是否显示国家特定条款,所有用户都应该能够根据应用语言值在应用内查看条款和隐私政策,并应提供一个功能(例如,重新查看条款的按钮)。

要实施条款审核,首先在 Hive 控制台中注册条款。之后,实施使得在应用中按下条款审核按钮时,执行 AuthV4.showTerms()。Hive SDK 会根据应用的语言值自动选择并显示条款。


这是一个展示服务条款的示例代码。

API 参考: Unity®

using hive;    
    AuthV4.showTerms((ResultAPI result) => {    
        if (result.isSuccess()) {    
            // API call success    
        }    
});

API 参考: C++

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    AuthV4::showTerms([=](ResultAPI const & result) {    
        if (result.isSuccess()) {    
            // API call success    
        }    
});

API 参考: Kotlin

import com.hive.AuthV4;    
    import com.hive.ResultAPI;
    AuthV4.showTerms(object : AuthV4.AuthV4ShowTermsListener {    
        override fun onAuthV4ShowTerms(result: ResultAPI) {    
            if (result.isSuccess) {    
                // API call success    
            }    
        }    
})

API 参考: Java

import com.hive.AuthV4;    
    import com.hive.ResultAPI;    
    AuthV4.INSTANCE.showTerms(result -> {    
        if (result.isSuccess()) {    
            // API call success    
        }    
});

API 参考: Swift

import HIVEService    
    AuthV4Interface.showTerms() { result in    
        if result.isSuccess() {    
            // API call success    
        }    
}

API 参考: Objective-C

#import <HIVEService/HIVEService-Swift.h>    
    [HIVEAuthV4 showTerms:^(HIVEResultAPI *result) {     
        if ([result isSuccess]) {    
            // API call success    
        }    
}];
#include "HiveAuthV4.h"

FHiveAuthV4::ShowTerms(FHiveAuthV4OnShowTermsDelegate::CreateLambda([this](const FHiveResultAPI& Result) {
        if (Result.IsSuccess()) {
                // 调用成功
        }
}));

删除协议历史记录(基于设备的条款)

如果您使用基于设备的条款,一旦用户第一次启动游戏时同意游戏条款,协议历史将保留在用户的设备上。下面的AuthV4.resetAgreement方法会删除此历史记录。

using hive;

AuthV4.resetAgreement();
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace hive;

AuthV4::resetAgreement()
import com.hive.AuthV4;

AuthV4.resetAgreement()
import com.hive.AuthV4;

AuthV4.INSTANCE.resetAgreement();
import HIVEService

AuthV4Interface.resetAgreement()
#import <HIVEService/HIVEService-Swift.h>

[AuthV4Interface 重置协议]
#include "HiveAuthV4.h"

FHiveAuthV4::ResetAgreement();


在使用基于设备的术语时,如果用户在删除其帐户后重新启动游戏,则已删除帐户的同意信息仍保留在设备上,并且条款同意弹出窗口不会出现。要在删除帐户后重新启动应用程序时重新显示条款同意弹出窗口(即在初始化 Hive SDK 时),请按照以下步骤操作。

  1. 调用 AuthV4.resetAgreement 删除之前保存的协议信息。\n2. 调用 AuthV4.setup 执行 Hive SDK 初始化。\n3. 在 SDK 初始化过程中,协议同意弹窗将自动重新出现。
Note

基于账户的条款 不支持删除同意历史记录。要选择基于设备的条款或基于账户的条款,您需要在设置中修改 agreementDetermineBase

Coppa 合规

在美国(美国领土)推出面向13岁以下用户的应用时,您必须遵守COPPA(儿童在线隐私保护法)。COPPA是美国的一项法律,旨在保护13岁以下儿童的隐私。如果用户是13岁以下的儿童,则该应用必须满足COPPA规定的所有要求,包括以下示例。

  • 认证方法仅提供访客登录
  • 某些用户无法接触到跟踪广告
  • 无法发送推送通知
  • 禁止应用内聊天
  • 对应用客户服务的询问无法保存
  • 在某些条件下无法收集个人信息
Warning

有关 COPPA 合规性的更多信息,请参阅 COPPA。为了遵守 COPPA,您必须检查 COPPA 所要求的所有要求。

Note

在PC环境中,13岁以下的用户在响应COPPA时无法访问该应用程序。根据COPPA,13岁以下的用户必须使用访客帐户登录,但Hive SDK在PC环境中不支持访客登录。

检查是否在13岁以下

Hive SDK 提供了 AuthV4.getAgeGateU13 方法,以检查用户是否未满 13 岁,以符合 COPPA 规定。此方法必须在应用程序用户选择他们是否未满 13 岁的条款弹出窗口后调用。如果用户未满 13 岁,则该方法返回的值为 true。开发人员必须使用此值遵守 COPPA 要求,仅提供访客登录,不显示某些广告等。

例如,如果这个值为true,开发者应该只允许访客登录,并且不支持与其他身份提供者账户的集成,例如谷歌账户或脸书账户,并且应该禁用账户链接按钮或将其完全从用户界面中移除。

使用Hive Adiz或Hive Adkit时,在显示应用内广告时,系统会自动向用户展示符合COPPA要求的广告。如果开发者不使用Hive Adiz或Hive Adkit,他们必须自行实现代码,以确保仅显示符合COPPA要求的应用内广告。

ageGateU13的值为true时,Hive SDK内部发生的行为如下。

平台 描述
安卓 * 显示退出弹窗时不显示更多游戏按钮。
* 未收到远程推送,推送API无法工作。
iOS * 调用 AuthV4.setup()Auth.initialize() 时未显示请求推送权限的弹窗。
* 推送API无法工作。


API 参考: AuthV4.getAgeGateU13

using hive;    

Boolean ageGateU13 = AuthV4.getAgeGateU13();
#include "HiveAuthV4.h"

bool bAgeGateU13 = FHiveAuthV4::GetAgeGateU13();

API 参考: AuthV4 ::getAgeGateU13

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    

bool ageGateU13 = AuthV4::getAgeGateU13();

API 参考: AuthV4.getAgeGateU13

import com.hive.AuthV4;

val ageGateU13 = AuthV4.getAgeGateU13()

API 参考: AuthV4.INSTANCE.getAgeGateU13

import com.hive.AuthV4;    

boolean ageGateU13 = AuthV4.INSTANCE.getAgeGateU13();

API 参考: AuthV4Interface.getAgeGateU13

import HIVEService    

Bool ageGateU13 = AuthV4Interface.getAgeGateU13()

API 参考: HIVEAuthV4 getAgeGateU13

#import <HIVEService/HIVEService-Swift.h>    

BOOL ageGateU13 = [HIVEAuthV4 getAgeGateU13];

GDPR 合规

应用程序开发者必须遵守GDPR(通用数据保护条例),无论他们在欧洲是否有商业存在,只要他们向欧洲的数据主体提供商品或服务。

为了遵守GDPR,您需要在Hive控制台中设置GDPR条款曝光,然后在应用用户同意条款时调用Configuration.getAgeGateU16Agree()方法。

Note

有关GDPR合规的更多信息,请查看官方GDPR网站

GDPR条款协议查询

Hive SDK 提供了 Configuration.getAgeGateU16Agree() 方法,用于返回在受 GDPR 影响的国家中,16 岁以下的用户是否同意 GDPR 条款。此方法必须在 16 岁以下的用户在条款弹出窗口中选择其同意状态后调用。如果该值为 true,则表示 16 岁以下的用户已同意条款;如果为 false,则表示相反。

在使用第三方库来判断用户是否未满16岁并相应限制应用功能时,您可以使用Configuration.getAgeGateU16Agree()方法。例如,您可以使用此方法确保不会向儿童用户提供个性化广告。

using hive;

Boolean ageGateU16 = Configuration.getAgeGateU16Agree();
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;

bool ageGateU16Agree = Configuration::getAgeGateU16Agree();
import com.hive.Configuration;

val ageGateU16Agree = Configuration.ageGateU16Agree()
import com.hive.Configuration;

boolean ageGateU16Agree = Configuration.INSTANCE.getAgeGateU16Agree();
import HIVEService

var ageGateU16Agree: Bool = ConfigurationInterface.getAgeGateU16Agree()
#import <HIVEService/HIVEService-Swift.h>

BOOL ageGateU16 = [HIVEConfiguration getAgeGateU16Agree];

如果应用程序使用法定监护人同意条款,应用程序用户可以通过调用Configuration.getLegalGuardianConsentAgree()方法来接收他们是否已获得法定监护人同意。如果值为true,则表示已给予同意。

using hive;    

Boolean legalGuardianConsentAgree = Configuration.getLegalGuardianConsentAgree();
#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
using namespace std;    
using namespace hive;    

bool ageGateU16Agree = Configuration::getLegalGuardianConsentAgree();
import com.hive.Configuration    

val legalGuardianConsentAgree = Configuration.legalGuardianConsentAgree()
import com.hive.Configuration;    

boolean legalGuardianConsentAgree = Configuration.INSTANCE.getLegalGuardianConsentAgree();
import HIVEService    

var legalGuardianConsentAgree: Bool = ConfigurationInterface.getLegalGuardianConsentAgree()
#import <HIVEService/HIVEService-Swift.h>    

BOOL legalGuardianConsentAgree = [HIVEConfiguration getLegalGuardianConsentAgree];