Release Notes

14.2.1 (2024-12-09)

  • 版本对齐。

14.2.0 (2024-12-04)

  • 在Privacy Manifest中添加tracking domains。
  • 使用Xcode 16.0 build。
  • 废弃TJPlacement didClick回调。
  • 废弃 getSupportURL。
  • 修复EasyApp (Objc) ATT prompt。
  • 不再支持iOS 10和iOS 11。

14.1.1 (2024-10-15)

  • 与Android版本对齐。

14.1.0 (2024-10-02)

  • 废弃PPE接口。
  • EasyApp上的一些修复。
  • 使用Xcode 15.4 build。

14.0.1 (2024-07-16)

  • 修复dynamic framework签名问题。

14.0.0 (2024-07-01)

  • 在privacy manifest添加NSPrivacyCollectedDataTypeEmailAddress。
  • 添加static framework支持. Cocoapods安装默认为static。
  • 添加getUserID getter。
  • 修复iOS 17.4及以上SKStoreProductViewController展示问题。
  • 清理C++ header。
  • 废弃userID property。
  • 删除废弃的push notifications接口。
  • 删除废弃的limitedConnect/placement接口。
  • 删除废弃的UserCohortVariables接口。
  • 删除废弃的InstallReferrer接口。
  • 删除废弃的CustomEvents接口。
  • 删除废弃的PrivacyPolicy接口。
  • 删除废弃的UserFriendCount接口。
  • 删除废弃的Mediation/Auction date接口。
  • 删除废弃的setUserId接口。
  • 删除public store property。
  • 删除public analyticsApiKey property.
  • 修复Swift EasyApp不显示ATT提示框的问题。
  • 修复在Objective-C EasyApp中connect之前点击‘show offerwall’按钮无法被激活的问题。
  • 修复EasyApp在刘海屏设备中Offerwall Discover显示问题
  • 修复Swift EasyApp在resume时调用connect问题。

13.4.1 (2024-03-19)

  • 修复Applaunch展示位置设置user id的问题。

13.4.0 (2024-03-04)

  • 添加wift Package Manager支持。
  • 添加onConnectWarning回调。
  • 删除push notifications。

13.3.0 (2023-11-30)

  • 添加了PrivacyManifest,包括Nutrition标签和Required Reason API。
  • 使用Tapjoy, Inc.证书签署XCFramework。
  • 好友数目数据不再发送。 API在13.2.0中已弃用,并将在14.0.0中删除
  • 用户群组变量数据不再发送。 API在13.2.0中已弃用,并将在14.0.0中删除
  • 错误修复和优化。

13.2.1 (2023-10-05)

  • 修复modulemap警告消息。

13.2.0 (2023-09-27)

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

13.1.2 (2023-07-14)

  • 与Android版本对齐。

13.1.1 (2023-06-30)

  • 与Android版本对齐。

13.1.0 (2023-06-28)

  • 添加Tapjoy-Managed虚拟货币回调错误代码。
  • 在C++接口中添加setUserID withCompletion方法。
  • 更新privacy policy接口。
  • 在Swift EasyApp添加Offerwall Discover UI。
  • 在EasyApp UI添加privacy policy settings。
  • 修复在C++接口中传递空展示位置名称时崩溃的问题。
  • 修复在app resume时再次调用connect的问题。
  • 修复在iOS 12及以下版本在新session中出现EXC_BAD_ACCESS的问题。
  • 修复在虚拟货币第一次初始化时earned currency不会触发的问题。
  • 修复和优化内存使用的问题。
  • TJPrivacyPolicy usPrivacy定义为public。setUSPrivacy在Swift中不再可用,请使用Tapjoy.getPrivacyPolicy().usPrivacy = privacyValue

13.0.1 (2023-04-18)

  • 与Android版本对齐。

13.0.0 (2023-04-06)

  • 设备广告ID在Xcode console中显示.
  • 新‘test device id’在Xcode console中显示.
  • 改进EasyApp.
  • 新Swift EasyApp.
  • iOS 9将不再支持.
  • 使用Xcode 14.1编译,不再支持32bit设备.
  • 删除deprecated privacy interfaces - 替换为TJPrivacyPolicy.
  • 删除deprecated display multiplier interface.
  • 删除deprecated AppDataVersion interface.
  • 修复didClick回调.
  • 修复webview memory leak.
  • 错误修复.

12.11.1 (2022-12-01)

  • 修复EasyApp UI相关问题.

12.11.0 (2022-10-07)

  • 从podspec和EasyApp中删除对PassKit的依赖。
  • EasyApp对刘海屏的支持。
  • 修复iOS15.7 sceneDisconnected appstore崩溃问题。

12.10.0 (2022-05-03)

  • 使用setUserIdWithCompletion()替换setUserId 方法。
  • 错误修复。

12.9.1 (2022-03-16)

  • 无代码改动,更新版本号以与Android和Unity SDK保持一致。

12.9.0 (2022-01-13)

  • Swift支持相关的改动(包括空数据标志和返回类型修复)。
    • 由于返回类型说明,在 Swift 中实例化 TJPlacement 现在使用标准初始化方式(TJPlacement(...)),而不是工厂方法 (TJPlacement.placement(...)))
  • 添加SDK请求的一些参数。详细信息请参考Tapjoy收集的信息
  • 错误修复。
  • 修复在EasyApp中的ATT提示。
  • 使用Xcode 13编译。

12.8.1 (2021-05-25)

  • 支持SKAdNetwork 2.2和View-Through Attribution (使用Xcode 12.5构建)
  • 支持MRAID SKAdNetwork
  • 添加SDK请求的一些参数。详细信息请参考Tapjoy收集的信息.
  • 错误修复和功能改进。

12.8.0 (2021-03-16)

  • 在Tapjoy SDK中采用XCFramework (要求Xcode 11及以上版本)
  • 删除了包含TapjoyResources.bundle的要求
  • 支持的最低版本为iOS9
  • 支持在配置Apple Silicon的arm64 Mac计算机上运行的模拟器
  • 在EasyApp(与SDK在一起的Tapjoy示例应用程序)中添加了AppTrackingTransparency提示,以开发者参考,以了解如何实现此功能
  • 错误修复和增强功能

12.7.1 (2020-11-02)

  • SKAdNetwork 2.0版本相关修复
  • 支持iOS14更改默认浏览器
  • Bug修复及功能改进

12.7.0 (2020-09-16)

12.6.1 (2020-07-09)

  • Tapjoy SDK Resource bundle 兼容 Unity 2019.3x

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)

  • 与Android版本匹配。

12.4.1 (2020-01-07)

  • 为setUserIDWithCompletion添加保护代码。
  • 修复应用商店调用相关Bug。

12.4.0 (2019-12-04)

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

12.3.4 (2019-10-09)

  • 支持 SceneDelegate
  • 支持 UIAlertController 取代 UIAlertView

12.3.3 (2019-09-20)

12.3.2 (2019-09-16)

  • 删除UIWebView。
  • 支持iOS 13。
  • 从SDK中删除不再使用的framework。
  • Bug 修复。

12.3.1 (2019-06-06)

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

12.3.0 (2019-05-28)

  • 视频广告性能优化。
  • 出于符合Apple激励安装政策的考虑,我们删除了网页版积分墙(也称为tapjoy.com 积分墙或者TJC积分墙)。同时删除了在SDK中直接调用网页版积分墙的方法。
  • 在TJPlacementDelegate中添加didClick接口。
@protocol TJPlacementDelegate <NSObject>
@optional
- (void)didClick:(TJPlacement*)placement;

12.2.1 (2019-03-14)

  • 修复集成iOS SDK之后编译应用时出现的一些假的“unable to open object file”警告信息。
  • 修复集成AdMob聚合之后的旋转问题。
  • 删除一些无用的代码,SDK大小比上一个版本减小大约10%。(详细信息,请参考FAQ entry on SDK size。

12.2.0 (2018-11-13)

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

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

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

+(void)belowConsentAge:(BOOL)isBelowConsentAge;

  • 将此设置为TRUE意味着Tapjoy SDK会将用户视为打开了“限制广告跟踪”开关。 这意味着他们仍会看到Tapjoy广告,但广告不会根据用户行为进行匹配,Tapjoy也不会跟踪用户的广告行为。

12.1.0 (2018-10-11)

  • 现在除了使用应用中积分墙,我们还提供了网页版Tapjoy 积分墙。注意如果要激活网页版积分墙,必须在创建虚拟货币时勾选‘Show "More Rewards" banner’并且要有足够多的日活用户(>100). 如果您在没有激活网页版积分墙的情况下调用网页版积分墙,调用会返回错误。示例如下:
[Tapjoy getOfferwallURL:placementName completion:^(NSURL *url, NSDate *expires, NSError *error) {
  if (error) {
     // handle the error
    } 
  else {
     [self openURL:url]; //actually open the web-based offerwall in Safari browser 
    }
 }
];

您可以参考SDK 文件夹中TapjoyEasyApp的实现。点击“Show Offerwall in Safari” 来得到URL,然后在Safari浏览器打开网页版积分墙。

  • 删除了所有在info.plist中需要应用同意的项目。在当前版本,NSMotionUsageDescription, NSAppleMusicUsageDescription, and NSPhotoLibraryUsageDescription 都不再需要。其他的配置需要已经在以前的版本中删除,所以现在集成Tapjoy SDK时,不再需要在info.plist 里面配置任何项目。
  • 错误修复:
    • 修复在Tapjoy广告展示时旋转设备的几个错误。
    • 修复在一个广告后立即播放另一个Tapjoy广告(使用contentDidDisappear)有时会失败的问题。
    • 删除在极少数情况下有可能导致崩溃的NSUserDefaults同步调用。

12.0.0 (2018-06-26)

  • Tapjoy SDK 添加了 IAB Open Measurement SDK。开发者不需要额外的操作或者代码改动。
  • 最低支持的iOS版本是iOS 8。
  • 此版本支持程式化聚合广告。服务器端和控制面板的支持将会稍后发布。
  • 修复TapjoyEasyApp中"Get Direct Play Video Ad" 按钮的问题。、
  • 注意:由于bitcode的更新,此版本Tapjoy iOS SDK必须使用Xcode9.3及以上版本。

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:
+(void)setUserConsent:(NSString*) value;
Example:
[Tapjoy setUserConsent:@"0″]; // user does not consent
+(void)subjectToGDPR:(BOOL) gdprApplicability;
Example:
[Tapjoy subjectToGDPR:NO];   // This user is not subject to GDPR

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)

  • 更新应用商店end card。
  • 更新积分墙上一些广告类型的引导页。

11.12.0 (2018-03-29)

  • 删除 CoreLocation framework的需求。
  • 正式删除"Tapjoy Platform Mediation" 功能。这个是特殊形式的聚合,我们已经有1年不再支持。如果您仍然在使用platform mediation,请不要升级当前版本,我们推荐您切换到标准的适配器聚合。普通的适配器聚合(类似Mopub, ironSource, Fyber, Appodeal 和其他聚合平台提供的视频广告和插屏广告聚合)将不会的收到影响。
  • 错误修复:
    • 修复一些由于耳机插拔,Siri和警报弹出引起的视频冻结的问题。
    • 修复由于 UIColor colorFromHexString引起的崩溃的问题。
    • 修复到App从后台重新激活后Tapjoy 视频的音频将会播放几秒钟的问题。