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.
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.
Downloading the full Tapjoy SDK is simple and available from multiple sources like our dashboard, Cocoapods, or through NPM and Yarn.
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.
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.
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.
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.
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.
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"};
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); |
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) {
}
});