Overview
이용약관(Terms of Service), 개인정보처리방침(Privacy Policy), iOS ATT(App Tracking Transparency), Google UMP(User Messaging Platform)를 포함합니다.
초기화
Percent > Policies > Focus UserAgreement Config
AdMob 개인 정보 보호 및 메세지 설정 요청하기
슬랙 채널: #team_business
@biz * [누구] - {요청자} * [무엇] - {해당 프로젝트}의 AdMob 대시보드에서 UMP(User Messaging Platform) 설정 * [이유] - GDPR 대응
Admob App Id 기입하기 - Admob App Id 목록 시트
이용약관 및 개인정보처리방침 회사 선택
예제
public class TitleScene : MonoBehaviour
{
private async void Awake()
{
await UserAgreementInit(); //초기화
await UserAgreementManager.PercentConsentService.ShowConsentFormIfRequiredAsync(); //유저에게 동의를 묻는 팝업노출
}
private async UniTask UserAgreementInit()
{
var initResult = await UserAgreementManager.InitializeAsync();
PLog.Debug($"InitResult:: {initResult.ToString()}");
switch (initResult.ErrorCode)
{
case ErrorCode.NetworkNotConnected:
// 네트워크 오류
// 팝업 보여주기: 네트워크 상태 확인 안내하기.
// 팝업 이후 로직: 다시 타이틀씬으로 돌아가서 초기화 재시도
PLog.Warning($"초기화 실패! {initResult.ErrorCode}");
return;
case ErrorCode.Timeout:
// 타임아웃
// 팝업 보여주기: 애플리케이션 종료 후 재시작 안내하기.
// 팝업 이후 로직: 애플리케이션 종료 (한 번 타임아웃이 난 경우에는 재시도해도 무조건 타임아웃이 발생하기 때문)
PLog.Error($"초기화 실패! {initResult.ErrorCode}");
return;
case ErrorCode.Cancelled:
PLog.Warning("클라이언트 개발자가 전달한 취소토큰에 의해 작업이 취소 되었습니다.");
// 게임 클라이언트 개발자에 의해 취소된 상황, 취소 처리 로직 수행하기
return;
case ErrorCode.Fatal:
// 알 수 없는 에러
// 팝업 보여주기: 애플리케이션 종료 후 재시작 안내하기.
// 팝업 이후 로직: 애플리케이션 종료
// 로그 확인하기... 로그 확인했음에도 불구하고 해결책이 안나오면, 기술지원팀에 문의하기
PLog.Error($"초기화 실패! {initResult.ErrorCode}");
return;
case ErrorCode.None:
// 초기화 성공
PLog.Info("초기화 성공!");
break;
}
}
}
유저 동의 여부 체크하기
플랫폼 로그인 시도시 유저동의를 체크해주세요.
if (UserAgreementManager.PercentConsentService.IsAuthorized() is false)
{
return;
}
설정창에서 정책 페이지로 보내기
내부적으로 OpenURL이 호출됩니다.
UserAgreementManager.ShowTermsOfService();
UserAgreementManager.ShowPrivacyPolicy();