Changelog

12.7.1 (2020-11-02)

  • Bug fixes and features inherited from the iOS and Android versions

12.7.0 (2020-09-16)

  • Bug fixes and features inherited from the iOS and Android versions

12.6.1 (2020-07-09)

  • Fixed issue introduced in Unity 2019.3 with regards to UnityFramework.h not being recognized by the main.mm exported Unity Project

12.6.0 (2020-06-29)

  • This release contains features that help publishers comply with the California Consumer Privacy Act (CCPA). Each platform (iOS, Android, Unity, C++) has a new class “TJPrivacyPolicy” which allows you to manage all privacy flags (GDPR, user consent, below consent age, and US privacy). For implementation details see here.

NB: If you are updating from a previous version of the Tapjoy SDK and have set privacy values using the old method don’t worry – the new SDK will still read the previously set values and you do not need to manually set them again. However, we would recommend eventually migrating your code to use this new method.

  • Added new TJPrivacyPolicy class to handle GDPR, US Privacy, Consent and Below Consent Age in one place.
  • Deprecated old GDPR, User Consent and Below Consent Age API
  • Deprecated old GDPR, User Consent and Below Consent Age API

12.4.2 (2020-02-07)

  • Bug fixes and features inherited from the iOS and Android versions

12.4.1 (2020-01-07)

  • Bug fixes and features inherited from the iOS and Android versions

12.4.0 (2019-12-04)

  • Bug fixes and features inherited from the iOS and Android versions

12.3.4 (2019-10-09)

  • Bug fixes and features inherited from the iOS and Android versions

12.3.3 (2019-09-20)

  • Bug fixes and features inherited from the iOS and Android versions

12.3.2 (2019-09-16)

  • Bug fixes and features inherited from the iOS and Android versions
  • UnityPlayerActivity in TapjoyAndroidManifest.xml has been updated

12.3.1 (2019-06-06)

  • Bug fixes and features inherited from the iOS and Android versions (including the additional video performance enhancements mentioned in the iOS and Android sections).

12.3.0 (2019-05-28)

  • Bug fixes and features inherited from the iOS and Android versions (including the video performance enhancements mentioned in the iOS and Android sections).
  • Added onClickHandler. Note that this callback will not actually be called until there is back-end server support for it. We expect this to start around mid-June 2019.
public delegate void OnClickHandler(TJPlacement placement);

12.2.1 (2019-03-14)

  • Bug fixes and features inherited from the iOS and Android versions

12.2.0 (2018-11-13)

This release adds a "user is below consent age" flag that helps publishers monetize their user base while remaining in compliance with COPPA. Note that it is the publisher’s responsibility to implement this function; it is not automatically implemented when the Tapjoy SDK is integrated into an application. Responsibility for overall compliance with COPPA and other applicable laws and regulations remains with the publisher.

In the US, the Children’s Online Privacy Protection Act (COPPA) imposes certain requirements on operators of online services that (a) have actual knowledge that the connected user is a child under 13 years of age, or (b) operate services (including apps) that are directed to children under 13.

Similarly, the GDPR imposes certain requirements in connection with data subjects who are below the applicable local minimum age for online consent (ranging from 13 to 16, as established by each member state).

For applications that are not directed towards children under 13 years of age, but still have a minority share of users known to be under the applicable minimum age, utilize this method to access Tapjoy’s monetization capability. This method will set ad_tracking_enabled to false for Tapjoy which only shows the user contextual ads. No ad tracking will be done on this user.

public static void BelowConsentAge(bool isBelowConsentAge);
  • Setting this to TRUE means the Tapjoy SDK will treat the user as if if the "Opt Out of Ads Personalization" switch (Android) "Limit Ad Tracking" switch (iOS) in their settings is on. This means they will still see Tapjoy ads, but the ads will not be targeted based on user behavior, and the user’s ad behavior will not be tracked by Tapjoy.

  • Bug Fixes inherited from the iOS and Android versions

12.1.0 (2018-10-11)

  • SDK now supports Firebase Cloud Messaging (FCM). Apps using the older Google Cloud Messaging (GCM) system should update to FCM, as this will eventually become an Android requirement. Instructions for using FCM with Tapjoy are in the Unity Getting Started Guide For Publishers.
  • Tapjoy’s Unity plugin now respects the Unity project rotation settings on iOS.
  • Bug fixes inherited from the iOS and Android versions

12.0.0 (2018-06-26)

This release is compatible with iOS 12 and Android 9 "Pie".

  • All fixes and features from the iOS and Android SDK updates
  • Note that due to recent updates in bitcode, you will need to use Xcode 9.3 or later for iOS builds with this version.

11.12.2 (2018-05-18)

This release contains features that help publishers comply with the General Data Protection Regulation (GDPR). Each platform (iOS, Android, Unity, AIR) has two new functions. Tapjoy is GDPR-compliant based on "legitimate interest," therefore the following functions are not mandatory. However, we offer these functions for those publishers who wish to pass consent information to Tapjoy. If the publisher implements these functions and the user does not consent, Tapjoy will serve non-interest based content to that user.

These functions can be called before the application calls the Tapjoy Connect function, and should be called before the application requests any content from Tapjoy:

A setUserConsent function that takes either "0″ (user does not consent), "1″ (user does consent) or a more detailed consent string. This more detailed string is the consent string is described in the Transparency and Consent Framework as supported by the IAB. An optional "subject to GDPR" flag that can be set to YES/TRUE (if the user is subject to GDPR rules) or NO/FALSE (if the user is not subject to GDPR rules). This function should only be called if the application has made its own determination as to whether GDPR is applicable to the user or not. If this function is not called, Tapjoy assumes the application has not made such a determination, and therefore Tapjoy makes its own determination of GDPR applicability.

GDPR FAQ

If a user does not consent or withdraws existing consent, will the Tapjoy SDK still send advertising identifiers to Tapjoy? Yes. The functions listed above are designed for interest-based advertising, and they send the user consent status for interest-based advertising to Tapjoy. Therefore, the status of the consent does not disable Tapjoy SDK from sending advertising identifier (IDFA for iOS or GAID for Android) at SDK initialization or during ad requests.

Tapjoy’s legal basis for compliance is ‘legitimate interest’. However, the publisher’s legal basis for compliance, and consequently their requirement for advertiser identifier collection, could be different than Tapjoy’s.

It is left to application to determine if the Tapjoy SDK should be initialized or not, depending on the application’s compliance need. For example, if an application’s legitimate basis for collection of advertising identifier is consent, and user has not consented, then the Tapjoy SDK should not be initialized for such users.

If a user from a country that is not covered by GDPR does not consent or withdraws consent, would Tapjoy limit advertising to non-interest-based ads for such a user? The Tapjoy SDK provides flexibility to handle different types applications, including applications that have no in-app method for determining whether the user is subject to GDPR or not.

Therefore, when an Application does not make any determination (i.e. the subjectToGDPR function is not called), Tapjoy servers determine whether the user is subject to GDPR. Then, Tapjoy honors the user’s consent preferences only for ad requests that Tapjoy determines are coming from GDPR-covered users.

If the intent is to allow users from any country to withdraw consent as if they were governed by GDPR, this can be done by calling the subjectToGDPR method with TRUE for all non-consenting users. In this case, Tapjoy’s servers will honor the content of the subjectToGDPR method call, and will not make its own determination as to whether or not the user is covered by GDPR. The publisher may also contact support@tapjoy.com and request that Tapjoy honor the consent preferences of all users of their application, regardless of whether they are covered by GDPR or not.

Added:
public static void SetUserConsent(string value);
Example: //User consent string generated according to consent string guidelines Tapjoy.SetUserConsent("BOEFEAyOEFEAyAHABDENAI4AAAB9vABAASA");
public static void SubjectToGDPR(bool gdprApplicable);
Example:Tapjoy.SubjectToGDPR(true); // This user is subject to GDP
  • Note that in Unity, if you want the GDPR settings to affect the initial Tapjoy Connect call, you should turn autoconnect OFF in the Tapjoy UI and make the Tapjoy Connect call manually in your own code. Otherwise, the Tapjoy Connect call will be made before the GDPR settings can take effect.
  • Note that due to recent updates in bitcode, you will need to use Xcode 9.3 or later for iOS builds with this version.

11.12.1 (2018-04-30)

  • All fixes and features from the iOS and Android SDK updates
  • Note that due to recent updates in bitcode, you will need to use Xcode 9.3 or later for iOS builds with this version.

11.12.0 (2018-03-29)

  • Removed an incorrect Error while downloading Asset Bundle error message when building for Unity Android.
  • All fixes and features from the iOS and Android SDK updates