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

  1. 먼저 Ironsource 의 Tapjoy 어답터를 연동합니다. 이는 프로젝트 내 Ironsource 미디에이션 매니저 윈도를 통해 진행할 수 있습니다.

  2. 이제 Tapjoy 용 유니티 플러그인을 추가해야 합니다. 이 플러그인을 통해 Tapjoy SDK 메소드를 C#으로 구현할 수 있습니다. 플러그인 을 다운로드 받고 유니티 프로젝트에 적용합니다.

Tapjoy 유니티 플러그인은 외부 디펜던시 매니저를 사용하여 Tapjoy iOS / Android SDK 를 설치합니다. 이미 SDK 첫단계에서 SDK를 설치한만큼 중복된 설치는 필요하지 않습니다.(브릿지 코드만 필요) 이를 위해 /Assets/Tapjoy/Editor 내에 있는 TJPluginDependencies 파일에서 iOS 레퍼런스를 제거하고 Android 유니티 브릿지를 추가합니다. 추가해야할 내용은 아래와 같습니다.

<dependencies>
<androidPackages>
    <repositories>
      <repository>https://sdk.tapjoy.com</repository>
    </repositories>
    <androidPackage spec="com.tapjoy:tapjoy-android-unitybridge:12.11.1@aar"/>
  </androidPackages>
</dependencies>
  1. 이제 Tapjoy 의 SDK 함수를 호출할 수 있습니다. 이제 Tapjoy 오퍼월을 불러올 준비가 완료되었습니다. 먼제 Tapjoy 를 클래스에 추가합니다.
import TapjoyUnity
  1. 그리고 Tapjoy SDK 를 초기화 합니다. SDK 초기화시 초기화 성공(혹은 실패) 에 대한 콜백을 받을 수 있습니다. 초기화 성공 콜백이 확인될 때 까지 다른 Tapjoy SDK 의 API 를 호출하시면 안됩니다.
#if UNITY_ANDROID
  Tapjoy.Connect("your_android_sdk_key");
#elif UNITY_IOS
  Tapjoy.Connect("your_ios_sdk_key");
#endif
  1. 이제 플레이스먼트와 리스너를 설정합니다 (더많은 리스너는 7번 항목에 있습니다.). 플레이스먼트는 Tapjoy 대시보드에서 설정한 오퍼월 컨텐츠를 포함하고 있습니다. 아래 예시에서는 플레이스먼트 이름을 "Offerwall" 로 설정하였다고 가정하였습니다. 플레이스먼트 이름은 여러분이 원하는 이름으로 Tapjoy 대시보드에서 설정하실 수 있습니다.
TJPlacement placement = TJPlacement.CreatePlacement("Offerwall");
  1. 이제 플레이스먼트를 요청할 준비가 되었습니다. 이 API를 통해 해당 플레이스먼트를 불러올 수 있으며 원하는 시점에 이를 보여줄 수 있도록 준비할 수 있습니다. 오퍼월의 경우 바르게 불러올 수 있으나 오퍼월을 보여주기 전 미리 이를 불러오는 것이 가장 좋습니다.
placement.requestContent();
  1. 플레이스먼트와 관련한 콜백은 아래와 같이 제공되고 있습니다.
TJPlacement.OnRequestSuccess += HandlePlacementRequestSuccess;
TJPlacement.OnRequestFailure += HandlePlacementRequestFailure;
TJPlacement.OnContentReady += HandlePlacementContentReady;
TJPlacement.OnContentShow += HandlePlacementContentShow;
TJPlacement.OnContentDismiss += HandlePlacementContentDismiss;

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

ironSource Callback Tapjoy Callback
onOfferwallClosedEvent OnContentDismiss
onOfferwallOpenedEvent OnContentShow
onOfferwallAvailableEvent OnContentReady

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

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

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

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

  2. 이후 나머지 Ironsource 오퍼월 코드를 제거합니다.

개인정보 보호

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

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

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

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