Intro

This guide is to help ease the transition from Tapjoy being part of your video mediation solution, to having the Tapjoy Offerwall be a standalone SDK within your application.

Mediator Dashboard

It is recommended to not change anything in the mediator dashboard so Tapjoy will continue to be initialized by the mediators. If you have multiple placements, then you may remove all but one to keep Tapjoy initialized.

SDK Download

Downloading the full Tapjoy SDK is simple and available from multiple sources like our dashboard, Cocoapods, or through NPM and Yarn.

SDK Initialization

Since the mediator SDK will no longer be initializing the Tapjoy SDK, you will need to manually do the setup and initialization yourself. We have documentation for iOS, Android, Unity, and React Native that you can review to do this. Most notably, you will want to ensure that the "Connect" call happens and you listen for the callbacks in case of connect issues. Tapjoy recommends that you initialize the Tapjoy SDK then initialize your mediator SDKs.

Privacy Policy

It is important to make sure you pass Tapjoy the relevant privacy flags (GDPR, CCPA, US privacy laws, etc) similar to what the mediation API already provides so we can continue the correct processing of user information. More information about this can be found here.

Publisher User ID

For continued user currency rewarding, it is imperative that the publisher user ID is set for Tapjoy. Instructions on how to set this value can be found in our virtual currency documentation here.

Currency

You may have had an option to bypass Tapjoy's virtual currency rewarding so that the mediator managed your currency for you. Unfortunately, for offerwall usage, you will need to handle this directly yourself as there are variances in the reward amount per transaction. Refer to our virtual currency documentation for more information about your particular use case of currency.

Mediator Guides

The following is a guide for each mediator. Where you would see a mediator's method, we have added the corresponding Tapjoy method that should correspond to it.

MAX

In order to have MAX continue to enable the Tapjoy SDK while you make this transition to integrate the Tapjoy SDK directly, you will need to:

1. Keep Tapjoy's SDK key, and at least one placement name within the MAX UI

2. Ensure Tapjoy remains an enabled network

Here are the key things to update when changing your code to call the Tapjoy SDK directly.

Refer to MAX's documentation for privacy flags here:: https://dash.applovin.com/documentation/mediation/ios/getting-started/privacy

MAX Method Tapjoy Method Notes
[ALPrivacySettings setHasUserConsent: YES] [privacyPolicy setUserConsentStatus: TJStatusTrue]; YES/True = TJStatusTrue; No/False = TJStatusFalse
[ALPrivacySettings setIsAgeRestrictedUser: NO] [privacyPolicy setBelowConsentAgeStatus: TJStatusFalse] YES/True = TJStatusTrue; No/False = TJStatusFalse
[ALPrivacySettings setDoNotSell: NO]; [privacyPolicy setUSPrivacy: @"1YYY"]; Please refer to the IAB doc on the privacy flag for more information on how to set this value.

For user ID changes:

https://dash.applovin.com/documentation/mediation/ios/getting-started/integration

Where you see:

[ALSdk shared].userIdentifier = @"USER_ID";

Add Tapjoy's publisher user id method:

NSDictionary *connectFlags = @{TJC_OPTION_USER_ID : @"USER_ID"};

Admob

It is recommended to set the user ID before the Tapjoy connect. Please refer to the Tapjoy connect documentation for more details.

Refer to Admob's documentation for privacy here: https://developers.google.com/admob/android/privacy

If you need to comply with the California Consumer Privacy Act (CCPA) or General Data Protection Regulation (GDPR), follow the steps in CCPA settings or GDPR settings to add your mediation partners in AdMob Privacy & messaging's CCPA or GDPR ad partners list. Failure to do so can lead to partners failing to serve ads on your app.

Admob Method Tapjoy Method Notes
ConsentRequestParameters params = new ConsentRequestParameters.Builder().setTagForUnderAgeOfConsent(false).build(); tjPrivacyPolicy.setUserConsent(TJStatus.FALSE);
ConsentRequestParameters params = new ConsentRequestParameters.Builder().setTagForUnderAgeOfConsent(true).build(); tjPrivacyPolicy.setUserConsent(TJStatus.TRUE);

Fyber/Digital Turbine

Refer to Digital Turbine's documentation here:

https://developer.digitalturbine.com/hc/en-us/articles/360010915398-GDPR

https://developer.digitalturbine.com/hc/en-us/articles/9577916674333-COPPA

https://developer.digitalturbine.com/hc/en-us/articles/360010935578-US-Privacy-Compliance-

DT Method Tapjoy Method Notes
InneractiveAdManager.setGdprConsent(true); tjPrivacyPolicy.setUserConsent(TJStatus.TRUE); tjPrivacyPolicy.setSubjectToGDPR(TJStatus.TRUE);
InneractiveAdManager.setUSPrivacyString("1YYY"); tjPrivacyPolicy.setUSPrivacy("1YYY");
InneractiveAdManager.currentAudienceAppliesToCoppa(); tjPrivacyPolicy.setBelowConsentAge(TJStatus.TRUE);

Here are the publisher user id settings that you will need to add:

iOS:

https://developer.digitalturbine.com/hc/en-us/articles/360009930737-Initializing-the-SDK

[FairBid user].userId = @"user_id";

Tapjoy:

[Tapjoy setUserIDWithCompletion:@"user_id>" completion:^(BOOL success, NSError *error) {}];

Android:

https://developer.digitalturbine.com/hc/en-us/articles/360010079697-Initialize-the-SDK

UserInfo.setUserId("user_id");

Tapjoy:

Tapjoy.setUserID("user_id", new TJSetUserIDListener() {
  @Override
  public void onSetUserIDSuccess() {
    
  }

  @Override
  public void onSetUserIDFailure(String error) {

  }
});