데브허브 | DEVHUB | Unity Gaming Services tutorial series, part 10: Rewarded adsUnity Gaming Services tutorial series, part 10: Rewarded ads
- Unity Level Play를 활용하여 보상형 광고를 게임에 통합하는 방법을 설명합니다. 🎮
- 클라우드 코드를 통한 서버 측 검증으로 부정 행위를 방지하고 보상 지급의 보안을 강화합니다. 🔒
- Level Play는 여러 광고 네트워크를 중개하여 앱의 광고 공간에 대한 최고 입찰가를 자동으로 확보하는 광고 미디에이션 플랫폼입니다. 🤝
- 단일 SDK 통합으로 Unity Ads, IronSource, Google AdMob 등 다양한 광고 네트워크를 효율적으로 관리하고 최적화합니다. 🌐
- Level Play 대시보드에서 앱을 추가하고, 보상 아이템, 금액, 노출 제한(capping), 노출 간격(pacing) 등을 설정하여 광고 단위를 구성합니다. ⚙️
- 광고 게재 위치(Placements)는 광고 단위가 앱 내에서 표시되는 특정 지점(예: 메인 메뉴, 레벨 종료)을 제어하며, 광고 단위의 기본 보상을 재정의할 수 있습니다. 📍
- Unity 에디터에서는 Ads Mediation 패키지를 설치하고,
RewardedAdsManager 스크립트를 생성하여 광고 로직을 구현합니다. 🛠️
RewardedAdsManager는 플랫폼별 앱 키, 광고 단위 ID, 게재 위치 이름, 광고 완료 후 쿨다운 등을 관리합니다. 📝
- SDK 초기화는 플레이어 인증 후에 이루어지며, 추적 데이터 수집을 위해 플레이어 ID를 활용합니다. 👤
LevelPlay.SetPauseGame(true) 설정을 통해 광고 재생 중 게임을 자동으로 일시 정지하고, 광고 종료 시 재개합니다. ⏸️
- 클라이언트 측에서 생성되는 광고 토큰은 암호화되지 않으며, 실제 보안은 클라우드 코드의 서버 측 검증에서 이루어집니다. 🔑
- 클라우드 코드 함수
HandleGrantVideoAdReward는 토큰 파싱 후, 10초 간격 제한, 중복 토큰 방지, 타이밍 유효성 검사, 보상량 상한선 설정 등 강력한 서버 측 검증을 통해 보상을 지급합니다. ✅
- 클라우드 코드 내에서
PlayerDataService 및 EconomyService와 같은 서비스에 의존성 주입(Dependency Injection)을 사용하여 효율적으로 관리합니다. 💉