Changelog

14.2.1 (2024-12-09)

  • 版本对齐。

14.2.0 (2024-12-04)

  • 升级Kotlin到v1.9.25.
  • 废弃TJPlacement onClick listener.
  • Target API升级到35.
  • 废弃getSupportUrl.
  • 修复在Android 15上EasyApp UI的问题.
  • 取消predictive back gesture.
  • 当在EasyApp中取消自动连接时, 添加新的SDK key之后无需重启即可连接。

14.1.1 (2024-10-15)

  • 修复在connect之后'AppLaunch'展示位置没有调用的问题。

14.1.0 (2024-10-01)

  • 修复Android 15上的刘海屏/相机/状态栏会遮挡UI的问题。
  • 修复由TJEventOptimiser引起的ANR问题。
  • 升级Gradle Plugin到8.6.1.
  • 更新EasyApp依赖.
  • 更新EasyApp使用AAR.
  • 废弃PPE接口.
  • 升级play-services-ads-identifier到18.1.0.
  • 升级play-services-appset到16.1.0.
  • 修复由于在Plugin中勾选Offerwall Discover导致的偶现的崩溃问题。
  • [C++]添加16k page files的支持。

14.0.1 (2024-07-16)

  • 与iOS版本对齐。

14.0.0 (2024-07-01)

  • 修复在Android 8.0上有时无法打开积分墙的问题。
  • 添加清楚用户数据功能。
  • 添加User Level getter。
  • 添加UserId getter。
  • 删除DISABLE_ANDROID_ID_AS_ANALYTICS_ID connect flag.
  • 删除废弃的push notifications接口。
  • 删除废弃的limitedConnect and placement接口。
  • 删除废弃的UserCohortVariables接口。
  • 删除废弃的InstallReferrer接口。
  • 删除废弃的CustomEvents接口。
  • 删除废弃的PrivacyPolicy接口。
  • 删除废弃的UserFriendCount接口。
  • 删除废弃的Mediation/Auction date接口。
  • 删除store_name connect flag.
  • 删除废弃的setUserId接口。
  • 删除废弃的connectFailure callback。
  • 删除TJConnectActivity。
  • 废弃setGLSurfaceView。
  • 废弃setActivity。

13.4.1 (2024-03-19)

  • 与iOS版本对齐。

13.4.0 (2024-03-04)

  • 添加connectWarning回调。
  • 添加Kotlin示例app。
  • 在SDK中添加kotlin-stdlib依赖。
  • 更新到Java 11 (native only)。
  • 删除push notifications。
  • 删除install referrer。

13.3.0 (2023-11-30)

  • Tapjoy.connect在API level 23及以下立即返回失败。编译支持MinSdk为API 21.
  • 废弃'DISABLE_ANDROID_ID_AS_ANALYTICS_ID'连接标志。
  • 好友数目数据不再发送。 API在13.2.0中已弃用,并将在14.0.0中删除
  • 用户群组变量数据不再发送。 API在13.2.0中已弃用,并将在14.0.0中删除
  • 错误修复和优化。

13.2.1 (2023-10-05)

  • 与iOS版本对齐。

13.2.0 (2023-09-27)

  • 删除对于Android4.x的支持。目前支持的最低API Level为21。
  • 升级到Gradle 8。
  • 增加设置最大用户等级的API。
  • 增加设置设置用户分组的API。
  • 增加设置用户账户虚拟货币余额API(仅限于自管理虚拟货币)。
  • 增加设置虚拟货币要求API。
  • 增加设置展示位置入口点API。
  • 废弃聚合和视频相关方法和回调。
  • 废弃推送通知。
  • 废弃limited connect。
  • 在C++接口中增加connect标志位。
  • 在C++接口中增加TJStatus。
  • 优化spend/earn虚拟货币方法。
  • 在connect失败方法中添加错误消息回调。废弃无参数回调。
  • 错误修复。

13.1.2 (2023-07-14)

  • 修复由于设置PrivacyPolicy引起的崩溃问题。
  • 错误修复。

13.1.1 (2023-06-30)

  • 修复设置userId引起的崩溃问题。

13.1.0 (2023-06-28)

  • 升级Gradle到7.5。
  • 升级Target API到33。
  • 添加Tapjoy-Managed虚拟货币回调错误代码。
  • 修复NullPointerException的问题。
  • 修复当requestContent在onContentDismiss调用时onContentDismiss会调用两次的问题。
  • 更新privacy policy 接口。
  • 在EasyApp UI添加privacy policy settings。
  • 修复在Android 6和7上视频引起的崩溃问题。
  • 修复CalledFromWrongThreadException引起的崩溃问题。

13.0.1 (2023-04-18)

  • 错误修复。

13.0.0 (2023-04-06)

  • 在logcat中显示'test device id'.
  • 改进EasyApp.
  • 删除deprecated privacy interfaces - 替换为 TJPrivacyPolicy.
  • 删除deprecated display multiplier interface.
  • 删除deprecated AppDataVersion interface.
  • 修复透明状态栏错误.
  • 修复 webview memory leak.
  • 其他错误修复和性能提升.

12.11.1 (2022-12-01)

  • 修复EasyApp与Android Studio Dolphin相关的问题。
  • 更新EasyApp gradle 版本。
  • 修复性能相关问题。

12.11.0 (2022-10-07)

  • 修复当在Connect之前调用optOutAdvertisingID时,advertisingID将不会的获取的问题。
  • 删除JCenter 并在适当的地方将其替换为 MavenCentral。
  • 更新target API 32.

12.10.0 (2022-05-03)

  • 使用setUserId(id, listener)替换setUserID方法。
  • 在Android 12支持推送消息。
  • 删除SDK中push to earn支持。
  • 添加在网络请求中enable/disable Android advertising_id参数。

12.9.1 (2022-03-01)

  • 在Android 12及以上版本使用PendingIntent FLAG_IMMUTABLE。这将解决在Android 设备上推送消息相关的崩溃问题和相关的Google play store警告信息。
  • 在Android 12设备上将不支持推送通知。
  • 删除setGcmSender API.
  • 升级play-services-ads依赖到18.0.0。
  • 删除play-services-ads严格的版本要求。

12.9.0 (2022-01-13)

  • 更新play-services-ads依赖关系到17.1.0 (最低支持版本为15.0.0)。对应哪些Google Play Families Program中的APP,在17.1.0版本中包括的AD_ID许可需要被[删除]。
  • 添加SDK请求的一些参数。详细信息请参考Tapjoy收集的信息
  • SDK将不再收集MAC地址。
  • 在EasyApp的launch activity中添加了android:exported属性来支持API 31。
  • 使用API 31和AndroidX编译。

12.8.1 (2021-05-25)

  • 更新EasyApp示例代码(使用API 30和Google Play Services更新为17.0.0)
  • play-services-ads-identifier:17.0.0为SDK的maven依赖项
  • SDK使用Android API 30构建
  • 添加SDK请求的一些参数。详细信息请参考Tapjoy收集的信息.
  • 错误修复和功能改进。

12.8.0 (2021-03-16)

12.7.1 (2020-11-02)

  • 添加InstallReferrer API
  • 修复重复回调onContentDismiss的问题

12.7.0 (2020-09-16)

12.6.1 (2020-07-09)

  • 重构ad unit生命周期相关代码。

12.6.0 (2020-06-29)

此版本提供开发者符合California Consumer Privacy Act (CCPA)功能。每个平台(iOS, Android, Unity, C++)提供了 “TJPrivacyPolicy”类来支持设置所有隐私标志位(GDPR, user consent, below consent age, and US privacy)。具体实现细节请参考这里。

注意: 如果您是从以前版本升级并且已经设置隐私标志位,请不要担心。新版本的SDK依然会使用以前版本中设置的值,无需再次手工设置。但是我们推荐您使用新的方法。

  • 添加新的TJPrivacyPolicy类来支持GDPR, US Privacy, Consent and Below Consent Age。
  • 废弃老的 GDPR, User Consent and Below Consent Age API。

12.4.2 (2020-02-07)

  • 删除安装归因相关旧的自定义功能。
  • Bug 修复。

12.4.1 (2020-01-07)

  • 删除安装归因相关旧的自定义功能。
  • 视频UI修改。
  • Bug 修复。

12.4.0 (2019-12-04)

  • 支持虚拟货币回调中设置自定义参数(未来产品发布)。
  • Bug修复。

12.3.4 (2019-10-09)

12.3.3 (2019-09-20)

12.3.2 (2019-09-16)

  • 默认使用DISABLE_ANDROID_ID_AS_ANALYTICS_ID connect 标志位。
  • Bug 修复。

12.3.1 (2019-06-06)

  • 更多视频广告性能优化。

12.3.0 (2019-05-28)

  • 视频广告性能优化。
  • 在TJPlacementListener中添加onClick回调接口。
public interface TJPlacementListener {
    public void onClick(TJPlacement placement);
}
  • 错误修复:
  • ACCESS_WIFI_STATE 许可从.aar中删除。

12.2.1 (2019-03-14)

  • Tapjoy调整了对设备标识的使用,比如Android ID。我们正在减少使用这些ID。这些改变对于多数的开发者没有影响,也无需任何的代码改变。具体如下:
    • 对于广告,如果Advertising ID 可用,我们会尽可能使用Advertising ID。老版本Tapjoy SDK 会在Advertising ID 不可用的情况下,使用Android ID和MAC地址(如果允许的话)。从SDK 12.2.1 起,即使Advertising ID不可用,Tapjoy SDK 也不会使用Android ID和MAC地址进行广告行为。
      • 如果开发者想在Advertising ID不可用的情况下使用Android ID进行广告行为,开发者需要在调用connect时设置ALLOW_LEGACY_ID_FALLBACK 标志位来覆盖默认的SDK行为。
      • 如果开发者想在Advertising ID不可用的情况下使用MAC地址进行广告行为,开发者需要在调用connect时设置ALLOW_LEGACY_ID_FALLBACK 标志位来覆盖默认的SDK行为,并且在manifest文件中设置ACCESS_WIFI_STATE许可。
    • 对于分析,除非开发者在调用connect时设置DISABLE_ANDROID_ID_AS_ANALYTICS_ID标志位,Tapjoy SDK依然会使用Android ID。
    • 对于分析,Tapjoy SDK将不再使用MAC地址。
    • 如果开发者正在使用Tapjoy管理货币,同时没有设置开发者用户ID, 对于那些没有Advertising ID的用户,如果Android ID 没有发送的话,有无法得到他们账户余额的风险。对于正在使用Tapjoy管理货币,同时没有设置开发者用户ID 的开发者,我们推荐在升级到12.2.1版本时使用ALLOW_LEGACY_ID_FALLBACK 标志位来保证用户可以得到他们账户余额。同时我们推开发者设置开发者用户ID,这样用户将不会依赖Android 来跟踪账户余额。
    • 删除DISABLE_PERSISTENT_IDS 标志位,Tapjoy SDK默认不会使用设备标识进行广告行为。
  • 删除一些无用的代码,SDK大小比上一个版本减小大约10%。(详细信息,请参考FAQ entry on SDK size。
  • 错误修复:
    • 修复偶尔"Fatal Exception: java.lang.RuntimeException: Package manager has died" 崩溃
    • 修复当SDK key为空时的崩溃
    • 修复 AppMonitor.getVisibleActivity() 方法中由于线程安装问题导致的java.util.ConcurrentModificationException

12.2.0 (2018-11-13)

在美国,儿童在线隐私保护法案(COPPA)对(a)知悉实际用户是13岁以下的儿童,或(b)针对13岁以下儿童提供服务(包括应用程序)的在线服务提供商有具体规定。

同样,GDPR 对低于准许在线的当地最低年龄(年龄范围在13到16,具体由每个成员国确定)的数据对象有具体规定。

对于不针对13岁以下儿童但仍有少数用户已知在适用的最低年龄以下的应用程序,请利用此方法使用Tapjoy变现功能。此方法会将ad_tracking_enabled设置为false,Tapjoy仅显示用户内容相关广告,不会对此用户进行广告跟踪。

public static void belowConsentAge(boolean isBelowConsentAge);

  • 将此设置为TRUE意味着Tapjoy SDK会将用户视为打开了“选择退出广告个性化”开关。 这意味着他们仍会看到Tapjoy广告,但广告不会根据用户行为进行匹配,Tapjoy也不会跟踪用户的广告行为。
  • 错误修复:
    • 修复了不常见的 "Fatal Exception: java.lang.NullPointerException" 崩溃。

12.1.0 (2018-10-11)

  • SDK支持Firebase Cloud Messaging (FCM)。因为Firebase Cloud Messaging (FCM)将会成为Android的标配,请使用老的Google Cloud Messaging (GCM)的应用请更新到 FCM。具体步骤请参考using FCM with Tapjoy are in the Android Getting Started Guide for Publishers.
  • 错误修复:
    • 用SharedPreferences.apply替换了SharedPreferences.com的几个实例,以解决罕见的崩溃问题。
    • 修复在播放开始后旋转设备时,只有一个方向(纵向或横向)的广告内容可能会被强制退出该方向的情况。
    • 更新错误弹出窗口的UI。

12.0.0 (2018-06-26)

  • Tapjoy SDK 添加了 IAB Open Measurement SDK。开发者不需要额外的操作或者代码改动。
  • 最低支持版本是API Level 14/Android 4.0/Ice Cream Sandwich。
  • 此版本支持程式化聚合广告。服务器端和控制面板的支持将会稍后发布。
  • 修复针对Android O设备的推送问题。

11.12.2 (2018-05-18)

此版本包含的功能可以帮助发布商遵守《一般数据保护条例》(GDPR)。每个平台(iOS,Android,Unity,AIR)都有两个新功能。Tapjoy是基于“合法利益”符合GDPR规定,所以以下功能并非强制性的。但是,我们为希望将同意信息传递给Tapjoy的发布商提供这些功能。如果发布商实现了这些功能,但是用户不同意,Tapjoy将向该用户提供非利益相关内容。

这些功能可以在Tapjoy Connect之前调用,同时要在请求任何Tapjoy广告内容之前调用:

  1. setUserConsent函数提供“0”(用户不同意),“1”(用户同意)或更详细的同意信息。 这个更详细的同意信息是在IAB支持的透明和同意框架中描述的同意信息
  2. "subject to GDPR"标志位提供可以设置为YES / TRUE(如果用户遵守GDPR规则)或NO / FALSE(如果用户不遵守GDPR规则)的可选“遵守GDPR规则”标志。 只有在应用程序已经确定GDPR是否适用于用户时,才能调用此函数。 如果这个功能没有被调用,Tapjoy认为应用程序没有做出这样的决定,因此Tapjoy自己决定GDPR的适用性。
Added:
public static void setUserConsent(String value);
Example:
Tapjoy.setUserConsent("1"); // user does consent
public static void subjectToGDPR(boolean gdprApplicable);
Example:
Tapjoy.subjectToGDPR(true); // This user is subject to GDP

GDPR FAQ

如果用户选择不同意,Tapjoy SDK是否依然收集广告ID?

是的。上面列出的功能是针对基于兴趣推送广告而设计的,它们将针对基于兴趣推送广告的用户同意状态发送给Tapjoy。因此,同意状态不会阻止Tapjoy SDK在SDK初始化或广告请求期间获取广告ID(iOS的IDFA或Android的GAID)。

** Tapjoy遵守法规的法律依据是“合法权益”。但是,发布商的合规性法律依据以及对广告主ID的要求可以与Tapjoy的法律依据不同。**

由应用程序决定是否应初始化Tapjoy SDK,具体取决于应用程序的合规性需求。例如,如果应用程序收集广告ID的合法依据是同意,而用户未同意,则不应为此类用户初始化Tapjoy SDK。

如果来自未受GDPR覆盖的国家/地区的用户不同意或撤回同意,Tapjoy会将广告限制为此类用户使用非基于兴趣的广告吗?

** Tapjoy SDK提供了灵活性,可以处理不同类型的应用程序,包括没有应用程序内方法来确定用户是否受GDPR约束的应用程序。**

因此,当应用程序未做出任何决定(即未调用subjectToGDPR函数)时,Tapjoy服务器将确定用户是否受GDPR约束。然后,Tapjoy仅在Tapjoy确定来自GDPR覆盖的用户的广告请求中遵守用户的同意首选项。

如果目的是允许来自任何国家的用户撤回同意,就像他们受GDPR一样,则可以通过对所有非同意用户调用subjectToGDPR方法(为TRUE)来完成。在这种情况下,Tapjoy的服务器将遵守subjectToGDPR方法调用的内容,并且不会自行决定用户是否受GDPR覆盖。发行商还可以联系support@tapjoy.com,并要求Tapjoy尊重其应用程序所有用户的同意首选项,无论他们是否受GDPR覆盖。

11.12.1 (2018-04-30)

  • 无新功能更新。

11.12.0 (2018-03-29)

  • Tapjoy SDK将不再请求如下权限:
    • ACCESS_FINE_LOCATION
    • ACCESS_COARSE_LOCATION
    • WRITE_EXTERNAL_STORAGE
  • 正式删除"Tapjoy Platform Mediation" 功能。这个是特殊形式的聚合,我们已经有1年不再支持。如果您仍然在使用platform mediation,请不要升级当前版本,我们推荐您切换到标准的适配器聚合。普通的适配器聚合(类似Mopub, ironSource, Fyber, Appodeal 和其他聚合平台提供的视频广告和插屏广告聚合)将不会的收到影响。
  • 错误修复:
    • 删除当网络连接而Tapjoy视频从缓存播放时提示的不正确的错误信息。
    • 修复当从Tapjoy 广告返回而引起的积分墙或者应用不正确的展示方向的问题。