Changelog

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 广告返回而引起的积分墙或者应用不正确的展示方向的问题。