Release Notes
14.1.1 (2024-10-15)
14.1.0 (2024-10-02)
- 废弃PPE接口。
- EasyApp上的一些修复。
- 使用Xcode 15.4 build。
14.0.1 (2024-07-16)
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)
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)
13.1.1 (2023-06-30)
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)
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)
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)
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) {
}
else {
[self openURL:url];
}
}
];
您可以参考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广告内容之前调用:
- setUserConsent函数提供“0”(用户不同意),“1”(用户同意)或更详细的同意信息。 这个更详细的同意信息是在IAB支持的透明和同意框架中描述的同意信息。
- "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 视频的音频将会播放几秒钟的问题。