기술 자료

​
​

Development

User Acquisition

Monetization

산업 분야

Unity 오퍼월

Offerwall Android SDK

Offerwall iOS SDK

Offerwall Unity SDK

Unity 오퍼월

Tapjoy Offerwall
​
​
시작하기
  • 탭조이 오퍼월 수익화 대시보드에 액세스
  • 오퍼월 시작하기
  • Unity Ads 내 오퍼월 프로모션
  • 앱 설정
대시보드
  • AB 테스트
  • 재화 세일
  • 교환율
  • 메시징
  • 오퍼월 카드
  • Placements
  • 퍼블리셔 고객 서비스 툴
  • 타게팅
  • 지표 레퍼런스
최적화
  • 수익화 전략 계획
API
  • API 인증
  • 퍼블리셔용 리포트 API
  • 리포트 API 베스트 프랙티스
  • 콘텐츠 관리
  • 사용자 레벨 수익 API 알아보기
가상 재화
  • 가상 재화 알아보기
  • 자체 관리형 재화
  • 탭조이 관리형 재화
  • 콜백 실패 문제 해결
기타
  • Offerwall 수익화 대시보드 사용자 역할 및 권한
  • 문제 해결
  • 앱 개인정보 보호 - iOS
  • 데이터 보안 - Android
  • FAQ
  1. 게임 성장
  2. Unity Offerwall
  3. 오퍼월 수익화

탭조이 관리형 재화

탭조이 오퍼월 관리형 재화를 사용하여 탭조이 서버에 사용자 재화 잔액을 저장하고 관리합니다.
읽는 시간 9분
최근 업데이트: 8시간 전

탭조이에서 관리하는 재화를 사용하여 사용자의 가상 재화 잔액을 탭조이 서버에 저장하고 관리할 수 있습니다. 탭조이의 퍼블리셔 SDK를 통합하는 모든 개발자가 이용할 수 있는 이 무료 서비스를 통해, 앱 내에서 재화를 백엔드에 저장할 필요가 없어집니다.

재화 잔액 가져오기

사용자의 현재 가상 재화 잔액을 확인하려면 각 플랫폼별로 안내된 메서드를 사용합니다. 잔액이 정확하게 유지되도록
getCurrencyBalance
를 자주 호출하는 것이 권장되는 베스트 프랙티스입니다. 잔액을 확인하는 일반적인 시점은 다음과 같은 상황입니다.
  • ​​앱 실행
  • 앱 재개
  • 탭조이 뷰 종료
  • 플레이스먼트 콘텐츠가 사라짐
최적의 결과를 위해 광고 콘텐츠가 종료된 후 약 3.5초 뒤에
getCurrencyBalance
를 호출합니다. 이렇게 하면 보상이 업데이트될 충분한 처리 시간이 확보됩니다. 즉시 잔액을 확인하면 새롭게 획득한 보상이 반영되지 않을 수 있습니다.

재화 잔액 검색

탭조이는 보상을 신속하게 전달하기 위해 최선을 다합니다. 하지만 네트워크 지연이 발생할 수 있으므로 즉시 보상이 보장되지는 않습니다. 사용자들에게 오퍼 보상이 반영되기까지 다소 시간이 걸릴 수 있음을 알려줍니다. 정확성을 유지하려면 정기적으로 잔액을 확인하고, 다음과 같은 주요 앱 이벤트가 발생할 때 확인하십시오.
  • 앱 실행
  • 앱 재개
  • 레벨 사이
  • 스토어 로딩 전
재화 잔액을 조회하려면 다음 플랫폼별 메서드를 참고하십시오.
iOS 디바이스에서 현재 가상 재화 잔액을 확인하려면 다음 메서드를 사용합니다.
// This method requests the tapjoy server for current virtual currency of the user.//Get currency[Tapjoy getCurrencyBalanceWithCompletion:^(NSDictionary *parameters, NSError *error) { if (error) { //Show error message NSLog(@"getCurrencyBalance error: %@", [error localizedDescription]); } else { //Update currency value of your app NSLog(@"getCurrencyBalance returned %@: %d", parameters[@"currencyName"], [parameters[@"amount"] intValue]); }}];
완료 블록은
currencyName
에 재화 이름,
amount
에 사용자의 총 잔액을 반환합니다. 구현 세부 사항은 SDK 패키지의 샘플 애플리케이션을 참고하십시오.
Android 디바이스에서 현재 가상 재화 잔액을 확인하려면 다음 메서드를 사용합니다.
Tapjoy.getCurrencyBalance(new TJGetCurrencyBalanceListener(){ @Override public void onGetCurrencyBalanceResponse(String currencyName, int balance) { Log.i(TAG, "getCurrencyBalance returned " + currencyName + ":" + balance); } @Override public void onGetCurrencyBalanceResponseFailure(String error) { Log.i("Tapjoy", "getCurrencyBalance error: " + error); } });
onGetCurrencyBalanceResponse
콜백에서 결과값을 받고
onGetCurrencyBalanceResponseFailure
에서 오류 정보를 받습니다. 앱 시작과 재개 시
getCurrencyBalance
를 호출하여 정확도를 유지합니다. spend와 award 콜백도 전체 잔액을 반환하며, 앱 업데이트에 활용할 수 있습니다.
// Get currencyTapjoy.GetCurrencyBalance();// on enable, add delegatesvoid OnEnable() { Tapjoy.OnGetCurrencyBalanceResponse += HandleGetCurrencyBalanceResponse; Tapjoy.OnGetCurrencyBalanceResponseFailure += HandleGetCurrencyBalanceResponseFailure;}// on disable, remove delegatesvoid OnDisable() { Tapjoy.OnGetCurrencyBalanceResponse -= HandleGetCurrencyBalanceResponse; Tapjoy.OnGetCurrencyBalanceResponseFailure -= HandleGetCurrencyBalanceResponseFailure;}public void HandleGetCurrencyBalanceResponse(string currencyName, int balance) { Debug.Log("C#: HandleGetCurrencyBalanceResponse: currencyName: " + currencyName + ", balance: " + balance);} public void HandleGetCurrencyBalanceResponseFailure(string error) { Debug.Log("C#: HandleGetCurrencyBalanceResponseFailure: " + error);}
지정한
OnGetCurrencyBalanceResponse
핸들러에서 재화 잔액에 대한 알림을 받게 되며, 이 핸들러는
currencyName
및
balance
파라미터를 전달합니다.
OnGetCurrencyBalanceResponseFailure
핸들러에서 오류가 발생하면 알림을 받게 됩니다.
try { let result = await Tapjoy.getCurrencyBalance(); let currencyName = result['currencyName']; let amount = result['amount'];} catch (error: any) { //Handle error}
React Native에서 파라미터를 받지 않는
getCurrencyBalance()
에 대해 프로미스를 사용합니다. 이 프러미스는
currencyName
와
amount
를 포함하는 딕셔너리로 해결되거나, 실패할 경우 오류가 발생합니다.
// Get currency TapjoyAIR.getCurrencyBalance(); // Setup handlers TapjoyAIR.addEventListener(TJCurrencyEvent.GET_CURRENCY_BALANCE_SUCCESS, tapjoyCurrencyEventHandler); TapjoyAIR.addEventListener(TJCurrencyEvent.GET_CURRENCY_BALANCE_FAILURE, tapjoyCurrencyEventHandler); private function tapjoyCurrencyEvents(event:TJCurrencyEvent):void { trace("Tapjoy sample event listener for " + event.type + ", " + event.balance + ", " + event.currencyName); }
지정한
TJCurrencyEvent.GET_CURRENCY_BALANCE_SUCCESS
핸들러에서 재화 잔액에 대한 알림이 전달되며, 이 핸들러는
TJCurrencyEvent
파라미터를 전달합니다. 이 오브젝트에는
currencyName
및
balance
등록 정보가 포함되어 있습니다.
TJCurrencyEvent.GET_CURRENCY_BALANCE_FAILURE
핸들러에서 오류가 발생하면 알림을 받게 됩니다.

사용자가 화폐를 획득했는지 확인

마지막 잔액 확인 이후 재화를 획득하면 사용자에게 알림을 제공합니다. 알림을 설정하려면 다음 섹션의 플랫폼별 명령어를 사용합니다.
iOS 디바이스에서 획득한 재화를 감지하려면 알림 관찰자를 추가합니다.
// Set the notification observer for earned-currency-notification. It's recommended that this be placed within the applicationDidBecomeActive method.[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showEarnedCurrencyAlert:) name:TJC_CURRENCY_EARNED_NOTIFICATION object:nil];// In the following method, you can set a custom message or use the default UIAlert to inform the user that they just earned some currency.- (void)showEarnedCurrencyAlert:(NSNotification*)notifyObj{ NSNumber *currencyEarned = notifyObj.object; int earnedNum = [currencyEarned intValue]; NSLog(@"Currency earned: %d", earnedNum); // Pops up a UIAlert notifying the user that they have successfully earned some currency. // This is the default alert, so you may place a custom alert here if you choose to do so. [Tapjoy showDefaultEarnedCurrencyAlert]; // This is a good place to remove this notification since it is undesirable to have a pop-up alert more than once per app run. [[NSNotificationCenter defaultCenter] removeObserver:self name:TJC_CURRENCY_EARNED_NOTIFICATION object:nil];}
사용자가 가상 재화를 획득할 때마다(예: 오퍼를 통해) 알림을 받으려면 다음 방법으로 획득한 재화 리스너를 설정합니다.
// Get notifications whenever Tapjoy currency is earned. Tapjoy.setEarnedCurrencyListener(new TJEarnedCurrencyListener() { @Override public void onEarnedCurrency(String currencyName, int amount) { Log.i("Tapjoy", "You've just earned " + amount + " " + currencyName); } });
획득한 재화 알림은
onEarnedCurrency(String currencyName, int amount)
콜백 내의
TJEarnedCurrencyListener
에서 수신합니다. 예를 들어 사용자의 잔액이 100이고 오퍼로 25를 획득했다면, 다음
getCurrencyBalance()
호출 시
onEarnedCurrency
가 25 금액으로 트리거됩니다.
// on enable, add delegatesvoid OnEnable() { Tapjoy.OnEarnedCurrency += HandleEarnedCurrency;}// on disable, remove delegatesvoid OnDisable() { Tapjoy.OnEarnedCurrency -= HandleEarnedCurrency;}public void HandleEarnedCurrency(string currencyName, int amount) { Debug.Log("C#: HandleEarnedCurrency: currencyName: " + currencyName + ", amount: " + amount);}
지정한
OnEarnedCurrency
핸들러를 통해 획득한 재화로 알림을 받게 되며,
currencyName
및
amount
파라미터가 전달됩니다.
TapjoyAIR.addEventListener(TJEarnedCurrencyEvent.EARNED_CURRENCY, tapjoyEarnedCurrencyEventHandler); private function tapjoyEarnedCurrencyEventHandler(event:TJEarnedCurrencyEvent):void { trace("You can notify user's here that they've just earned " + event.amount + " " + event.currencyName); }
지정한
earned in the TJEarnedCurrencyEvent.EARNED_CURRENCY
핸들러에서 재화 관련 알림을 받게 되며
TJEarnedCurrencyEvent object
가 전달됩니다. 이 오브젝트에는
currencyName
및
amount
등록 정보가 포함되어 있습니다.

탭조이 관리형 재화 지출

사용자의 가상 재화를 일정 금액 사용하려면 다음 섹션에 자세히 안내된 플랫폼별 메서드를 호출합니다.
// This method call will deduct 10 virtual currencies from the user's total.[Tapjoy spendCurrency:10 completion:^(NSDictionary *parameters, NSError *error) { if (error) { NSLog(@"spendCurrency error:%@", [error localizedDescription]); } else { NSLog(@"spendCurrency returned %@: %d", parameters[@"currencyName"], [parameters[@"amount"] intValue]); }}];
완료 블록에서 재화 잔액에 대한 알림을 받게 되며, 파라미터
currencyName
는 재화 이름을 제공하고,
amount
는 사용자의 잔액을 제공합니다.
Tapjoy.spendCurrency(10, new TJSpendCurrencyListener() { @Override public void onSpendCurrencyResponse(String currencyName, int balance) { Log.i("Tapjoy", currencyName + ": " + balance); } @Override public void onSpendCurrencyResponseFailure(String error) { Log.i("Tapjoy", "spendCurrency error: " + error); } });
지정한
TJSpendCurrencyListener
의
onSpendCurrencyResponse(String currencyName, int balance)
콜백 메서드에서 재화 잔액에 대한 알림을 받게 됩니다.
onSpendCurrencyResponseFailure(String error)
메서드에서 오류가 발생하면 알림을 받게 됩니다.
// Spend currencyTapjoy.SpendCurrency(10);// on enable, add delegatesvoid OnEnable() { Tapjoy.OnSpendCurrencyResponse += HandleSpendCurrencyResponse; Tapjoy.OnSpendCurrencyResponseFailure += HandleSpendCurrencyResponseFailure;}// on disable, remove delegatesvoid OnDisable() { Tapjoy.OnSpendCurrencyResponse -= HandleSpendCurrencyResponse; Tapjoy.OnSpendCurrencyResponseFailure -= HandleSpendCurrencyResponseFailure;}public void HandleSpendCurrencyResponse(string currencyName, int balance) { Debug.Log("C#: HandleSpendCurrencyResponse: currencyName: " + currencyName + ", balance: " + balance);} public void HandleSpendCurrencyResponseFailure(string error) { Debug.Log("C#: HandleSpendCurrencyResponseFailure: " + error);}
지정한
OnSpendCurrencyResponse
핸들러에서 재화 잔액에 대한 알림을 받게 되며, 이 핸들러는
currencyName
및
balance
파라미터를 전달합니다.
OnSpendCurrencyResponseFailure
핸들러에서 오류가 발생하면 알림을 받게 됩니다.
try { let result = await Tapjoy.spendCurrency(10); let currencyName = result['currencyName']; let amount = result['amount'];} catch (error: any) { //Handle error}
React Native에서
spendCurrency(),
에 프러미스를 사용하며,
amount
를 파라미터로 받습니다. 프러미스는 사전 또는 오류(이 오류는 처리되어야 함)로 해결됩니다. 딕셔너리 키에는
currencyName
재화 금액이 포함된 문자열이 있습니다.
// Spend currency TapjoyAIR.spendCurrency(10); // Setup handlers TapjoyAIR.addEventListener(TJCurrencyEvent.SPEND_CURRENCY_SUCCESS, tapjoyCurrencyEventHandler); TapjoyAIR.addEventListener(TJCurrencyEvent.SPEND_CURRENCY_FAILURE, tapjoyCurrencyEventHandler); private function tapjoyCurrencyEventHandler(event:TJCurrencyEvent):void { trace("Tapjoy sample event listener for " + event.type + ", " + event.balance + ", " + event.currencyName); }
지정한
TJCurrencyEvent.SPEND_CURRENCY_SUCCESS
핸들러에서 재화 잔액에 대한 알림이 전달되며, 이 핸들러는
TJCurrencyEvent
파라미터를 전달합니다. 이 오브젝트에는
currencyName
및
balance
등록 정보가 포함되어 있습니다.
TJCurrencyEvent.SPEND_CURRENCY_FAILURE
핸들러에서 오류가 발생하면 알림을 받게 됩니다.

탭조이 관리형 재화 보상

경고
신규 앱에서 이 기능을 사용하려면 세일즈 담당자에게 문의하여 승인을 받으십시오.
사용자의 가상 재화에 보상을 지급하려면 다음 섹션에 자세히 안내된 플랫폼별 메서드를 사용합니다.
// This method call will award 10 virtual currencies to the user's total.[Tapjoy awardCurrency:10 completion:^(NSDictionary *parameters, NSError *error) { if (error) { NSLog(@"awardCurrency error:%@", [error localizedDescription]); } else { NSLog(@"awardCurrency returned %@: %d", parameters[@"currencyName"], [parameters[@"amount"] intValue]); }}];
completion
블록에서 재화 잔액에 대한 알림을 받게 되며, 파라미터
currencyName
는 재화 이름을 제공하고,
amount
는 사용자의 잔액을 제공합니다.
Tapjoy.awardCurrency(10, new TJAwardCurrencyListener() { @Override public void onAwardCurrencyResponseFailure(String error) { Log.i("Tapjoy", "awardCurrency error: " + error); } @Override public void onAwardCurrencyResponse(String currencyName, int balance) { Log.i("Tapjoy", currencyName + ": " + balance); } });
지정한
TJAwardCurrencyListener
의
onAwardCurrencyResponse(String currencyName, int balance)
콜백 메서드에서 재화 잔액에 대한 알림을 받게 됩니다.
// Award currencyTapjoy.AwardCurrency(10);// on enable, add delegatesvoid OnEnable() { Tapjoy.OnAwardCurrencyResponse += HandleAwardCurrencyResponse; Tapjoy.OnAwardCurrencyResponseFailure += HandleAwardCurrencyResponseFailure;}// on disable, remove delegatesvoid OnDisable() { Tapjoy.OnAwardCurrencyResponse -= HandleAwardCurrencyResponse; Tapjoy.OnAwardCurrencyResponseFailure -= HandleAwardCurrencyResponseFailure;}public void HandleAwardCurrencyResponse(string currencyName, int balance) { Debug.Log("C#: HandleAwardCurrencySucceeded: currencyName: " + currencyName + ", balance: " + balance);} public void HandleAwardCurrencyResponseFailure(string error) { Debug.Log("C#: HandleAwardCurrencyResponseFailure: " + error);}
지정한
OnAwardCurrencyResponse
핸들러에서 재화 잔액에 대한 알림을 받게 되며, 이 핸들러는
currencyName
및
balance
파라미터를 전달합니다.
OnAwardCurrencyResponseFailure
핸들러에서 오류가 발생하면 알림을 받게 됩니다.
try { let result = await Tapjoy.awardCurrency(10); let currencyName = result['currencyName']; let amount = result['amount'];} catch (error: any) { //Handle error}
React Native에서
awardCurrency()
에 프러미스를 사용하며,
amount
를 파라미터로 받습니다. 프러미스는 사전 또는 오류(이 오류는 처리되어야 함)로 해결됩니다. 딕셔너리 키에는
currencyName
재화 금액이 포함된 문자열이 있습니다.
// Award currencyTapjoyAIR.awardCurrency(10);// Setup handlersTapjoyAIR.addEventListener(TJCurrencyEvent.AWARD_CURRENCY_SUCCESS, tapjoyCurrencyEventHandler);TapjoyAIR.addEventListener(TJCurrencyEvent.AWARD_CURRENCY_FAILED, tapjoyCurrencyEventHandler);private function tapjoyCurrencyEventHandler(event:TJCurrencyEvent):void { trace("Tapjoy sample event listener for " + event.type + ", " + event.balance + ", " + event.currencyName);}
지정한
TJCurrencyEvent.AWARD_CURRENCY_SUCCESS
핸들러에서 재화 잔액에 대한 알림이 전달되며, 이 핸들러는
TJCurrencyEvent
파라미터를 전달합니다. 이 오브젝트에는
currencyName
및
balance
등록 정보가 포함되어 있습니다.
TJCurrencyEvent.AWARD_CURRENCY_FAILURE
핸들러에서 오류가 발생하면 알림을 받게 됩니다.

탭조이 관리형 재화 테스트

오퍼월의 오퍼를 테스트하려면 애플리케이션에 테스트 디바이스를 추가합니다. 이렇게 하면 테스트 오퍼가 확인을 위해 오퍼월 상단에 표시됩니다.

베스트 프랙티스 및 추가 정보

  • 항상
    awardCurrency
    와
    spendCurrency
    호출을 확인하고, 호출이 성공할 때만 콘텐츠를 잠금 해제합니다. 호출이 실패하면 디바이스 내 잔액이 손상될 수 있습니다.
  • 로컬에 저장된 재화 정보에만 의존하지 마시고, 정확성을 위해 탭조이의 서버를 활용합니다.
  • 콘텐츠 잠금을 해제하기 위해 재화를 차감할 때만 spendCurrency를 호출합니다.
  • 관리형 재화는 앱 ID당 하나의 재화만 지원합니다. 여러 재화를 사용하려면 자체 관리형 재화를 사용하십시오.
  • 탭조이는 디바이스 및 앱별로 재화 잔액을 저장하여 디바이스 간 재화 잔액 공유를 방지합니다.
  • 탭조이는 신속한 보상을 목표로 하고 있지만, 여러 가지 요인으로 인해 재화 보상이 지연될 수 있습니다. 주요 앱 이벤트가 발생한 후에는 정기적으로 잔여 용량을 확인하고, 사용자에게 발생할 수 있는 지연 사항을 알립니다.

Copyright © 2026 Unity Technologies
법률 정보개인정보 처리방침쿠키Documentation Terms of Use개인 정보 판매 또는 공유 금지개인정보 보호 선택(쿠키 설정)

'Unity', Unity 로고 및 기타 Unity 상표는 미국 및 기타 지역 내 Unity Technologies 또는 그 계열사의 상표 또는 등록상표입니다(자세한 내용은 여기에서 확인하세요). 기타 명칭 또는 브랜드는 해당 소유자의 상표입니다.

일부 페이지는 편의를 위해 기계 번역되었으며 부정확한 내용이 있을 수 있습니다. 정보가 상충되는 경우, 영어 버전을 우선으로 참조하세요.

  • 보고 있는 페이지
    • 재화 잔액 가져오기

      • 재화 잔액 검색

    • 사용자가 화폐를 획득했는지 확인

    • 탭조이 관리형 재화 지출

    • 탭조이 관리형 재화 보상

    • 탭조이 관리형 재화 테스트

    • 베스트 프랙티스 및 추가 정보


이 페이지의 문제 보고