보상형 동영상 광고 (Rewarded Video Ad)
Rewarded Video Ad
보상형 동영상 광고는 유저가 광고를 끝까지 시청하는 대가로 인앱 재화를 받는 형태입니다. 완시청률 95% 이상을 달성하기 위해서는 리워드의 가치와 지급 타이밍을 최적화하고, SDK 콜백 검증을 통해 어뷰징을 원천 차단해야 합니다.
보상형 동영상 광고는 유저가 광고를 끝까지 시청하는 대가로 인앱 재화를 받는 형태입니다. 완시청률 95% 이상을 달성하기 위해서는 리워드의 가치와 지급 타이밍을 최적화하고, SDK 콜백 검증을 통해 어뷰징을 원천 차단해야 합니다.
📖 개념 정의 및 실무 적용
보상형 동영상 광고는 일반 배너나 인터스티셜 광고와 달리 유저가 자발적으로 시청을 선택하므로 광고 피로도를 최소화하면서도 높은 참여율을 이끌어냅니다. 특히 앱의 리텐션과 LTV(생애가치)를 동시에 끌어올리는 핵심 수익화 모델로 기능합니다.
현업에서는 SDK 연동 누락이나 비정상적인 클라이언트 사이드 리워드 지급으로 인한 매출 누수 및 어뷰징 문제가 빈번하게 발생합니다. 서버투서버(S2S) 콜백 검증과 데이터 파이프라인 구축을 통해 이러한 비효율을 해결하고 정확한 ROAS를 측정하는 것이 실무의 핵심입니다.
💻 실무 활용 코드 스니펫 (PYTHON)
import hashlib
import hmac
from flask import Flask, request, jsonify
app = Flask(__name__)
SECRET_KEY = 'your_publisher_secret_key'
@app.route('/reward/callback', methods=['GET'])
def ad_reward_callback():
user_id = request.args.get('user_id')
reward_amount = request.args.get('reward')
transaction_id = request.args.get('tx_id')
signature = request.args.get('sig')
payload = f"{user_id}:{reward_amount}:{transaction_id}"
expected_sig = hmac.new(SECRET_KEY.encode(), payload.encode(), hashlib.sha256).hexdigest()
if not hmac.compare_digest(expected_sig, signature):
return jsonify({'status': 'error', 'message': 'Invalid signature'}), 400
# TODO: 지급 로직 구현 (DB 트랜잭션 처리)
print(f"User {user_id} granted {reward_amount} coins. TxID: {transaction_id}")
return jsonify({'status': 'success', 'message': 'Reward granted'}), 200
if __name__ == '__main__':
app.run(port=5000)
⚡ 5분 만에 적용하는 실행 스텝
- AdMob, AppLovin 등 미디에이션 플랫폼에서 보상형 광고 단위를 생성하고 SDK를 연동합니다.
- 클라이언트단에서 광고 시청 완료 이벤트 수신 시 즉시 재화를 주지 않고, 서버투서버(S2S) 콜백 시스템을 구축하여 위변조를 방지합니다.
- GA4 또는 Amplitude를 통해 ‘ad_reward_complete’ 이벤트를 추적하고, 리워드 획득 유저의 D1/D7 리텐션 코호트 분석을 수행합니다.
- A/B 테스트를 통해 재화 지급량과 광고 노출 빈도(Capping)를 조절하며 eCPM과 LTV의 최적 균형점을 찾습니다.
첫째, 유저가 게임 내에서 가장 결핍을 느끼는 타이밍(예: 스테이지 실패 직전, 유료 아이템 부족 순간)에만 보상형 광고를 노출하여 완시청률과 참여율을 극대화하세요. 둘째, 단일 광고 네트워크에 의존하지 말고 미디에이션(Mediation)을 활용해 국가별 eCPM이 가장 높은 네트워크로 자동 라우팅되도록 설정하세요.
초보자가 가장 흔히 저지르는 실수는 클라이언트 단에서만 리워드를 지급하도록 코딩하여 메모리 변조 등으로 인한 무한 재화 획득 어뷰징을 방치하는 것입니다. 반드시 서버투서버(S2S) 검증 방식을 도입해야 합니다. 또한, 과도한 광고 노출로 인해 장기 잔존율이 하락하는 것을 놓치는 경우가 많으므로 일일 광고 시청 횟수 제한(Frequency Capping)을 반드시 설정하세요.
❓ 자주 묻는 질문 (FAQ)
A. 광고 로딩 속도(Network Latency)와 X(닫기) 버튼의 활성화 타이밍을 점검해야 합니다. 너무 일찍 닫기 버튼이 노출되거나 로딩이 지연되면 유저가 이탈합니다.
A. 광고 네트워크로부터 전달받는 고유 트랜잭션 ID(Transaction ID)를 데이터베이스에 유니크 키로 저장하고, 이미 처리된 ID인 경우 무시하는 멱등성(Idempotency) 로직을 구현해야 합니다.