오퍼월 마이그레이션 가이드

  1. 먼저 Ironsource 의 Tapjoy 어답터를 연동합니다. gradle 파일에 아래와 같이 설정합니다.
maven { url "https://sdk.tapjoy.com/"}
implementation 'com.ironsource.adapters:tapjoyadapter:4.1.23'
implementation 'com.tapjoy:tapjoy-android-sdk:12.11.1'

최신 버전은 이 링크에서 확인하실 수 있습니다. 링크.

  1. 이 어답터는 Tapjoy SDK 의 API 를 직접 호출할 수 있도록 합니다. 이를 통해 Tapjoy 오퍼월을 호출할 수 있습니다. 먼저 Tapjoy 를 연동할 클래스에 임포트 합니다.
import com.tapjoy.Tapjoy;
  1. 그리고 Tapjoy SDK 를 초기화 합니다. SDK 초기화시 초기화 성공(혹은 경고, 실패) 에 대한 콜백을 받을 수 있습니다. 초기화 성공 콜백이 확인될 때 까지 다른 Tapjoy SDK 의 API 를 호출하시면 안됩니다.
Hashtable<String, Object> connectFlags = new 
Hashtable<String, Object>();

Tapjoy.connect(getApplicationContext(), "TJ_SDK_KEY", connectFlags, new TJConnectListener() {
  @Override
  public void onConnectSuccess() {

  }
  @Override
  public void onConnectWarning(int code, String message) {
        
  }   
  @Override
  public void onConnectFailure() {

  }
});
  1. 두개의 클래스에 대한 변수를 설정합니다.
private TJPlacementListener placementListener = this;
private TJPlacement placement;
  1. 다음 플레이스먼트 오브젝트를 생성합니다. 플레이스먼트는 Tapjoy 대시보드에서 설정한 오퍼월 컨텐츠를 포함하고 있습니다. 아래 예시에서는 플레이스먼트 이름을 "Offerwall" 로 설정하였다고 가정하였습니다. 플레이스먼트 이름은 여러분이 원하는 이름으로 Tapjoy 대시보드에서 설정하실 수 있습니다.
placement = Tapjoy.getPlacement("Offerwall", placementListener);
  1. 이제 플레이스먼트를 요청할 준비가 되었습니다. 이 API를 통해 해당 플레이스먼트를 불러올 수 있으며 원하는 시점에 이를 보여줄 수 있도록 준비할 수 있습니다. 오퍼월의 경우 바르게 불러올 수 있으나 오퍼월을 보여주기 전 미리 이를 불러오는 것이 가장 좋습니다.
placement.requestContent();
  1. 플레이스먼트와 관련한 콜백은 아래와 같이 제공되고 있습니다.
public void onRequestSuccess(TJPlacement placement); 
public void onRequestFailure(TJPlacement placement, TJError error);
public void onContentReady(TJPlacement placement); 
public void onContentShow(TJPlacement placement);
public void onContentDismiss(TJPlacement placement);
public void onPurchaseRequest(TJPlacement placement, TJActionRequest request, String productId);
public void onRewardRequest(TJPlacement placement, TJActionRequest request, String itemId, int quantity);
public void onClick(TJPlacement placement);

이중 일부는 이미 설정된 Ironsource 의 콜백을 대체할 수 있습니다. 아래의 표를 통해 해당 콜백이 Tapjoy 콜백과 어떻게 대치되는지 확인할 수 있습니다.

ironSource Callback Tapjoy Callback
onOfferwallOpened onContentShow
onOfferwallClosed onContentDismiss
onOfferwallAvailable onContentReady

onRequestSuccess 는 Tapjoy 서버로 부터 플레이스먼트의 컨텐츠가 성공했을 경우 경우 리턴합니다. onContentReady 는 컨텐츠(오퍼월) 이 사용자들에게 보여줄 준비가 되었을 경우 호출합니다. 이 시점에서 사용자들에게 오퍼월을 노출 시킬지 혹은 해당 플레이스먼트를 노출시킬 준비가 되었다는 별도의 설정값을 설정할 수 있습니다.

  1. 오퍼월 플레이스먼트를 보여주기 위해서는 우선 해당 플레이스먼트의 컨텐츠가 준비되었는지 확인하고 showContent API 를 통해 이를 노출합니다.
if(placement.isContentReady()) {
  placement.showContent();
}

이는 아래의 Ironsource API 를 대체합니다.

IronSource.showOfferwall();
  1. 사용자가 오퍼월을 닫을 경우 다시 컨텐츠를 요청하여야 합니다. 플레이스먼트는 한번 이상 노출되지 않습니다. 사용자가 반복적으로 컨텐츠를 확인할 수 있도록 onContentDismiss 에서 컨텐츠를 다시 요청하길 권장드립니다.

  2. 이후 나머지 Ironsource 오퍼월 코드를 제거합니다. 예를 들어 특정 클래스에 "OfferwallListener" 가 포함되어 있다면 더아싱 사용하지 않으므로 이를 제거합니다.

개인정보 보호

만약 Ironsource 레벨플레이를 사용하고 있으시다면 레벨플레이 API 를 이용하여 Tapjoy에 개인정보 보호와 관련한 정보를 공유할 수 있습니다.

  1. GDPR 설정.
  2. 미국 개인정보 보호법에 따른 개인정보 보호 설정.
  3. 미성년자 관련 설정. 여러분의 앱이 미성년자를 대상으로 하는 앱이라면 모든 사용자를 미성년자로 설정하셔야 합니다.

또한 여러분의 앱이 구글 플레이 가족 프로그램이나, 구글 플레이 내 가족 항목에 앱을 출시하였다면, 이 API 를 사용하여 Tapjoy SDK 로 하여금 사용자의 GAID 를 수집하지 못하도록 설정해 주시길 부탁드립니다.

만약 여러분이 Ironsource 레벨플레이를 사용하거나 혹은 Tapjoy SDK 를 별도로 설정하신다면 이 가이드라인 에 따라 Tapjoy에 개인정보 보호 관련 설정을 공유해 주시길 부탁드립니다.