简介
Revcontent 为 iOS 编写的 Swift 库,允许您快速而可靠地将我们的 JS 小部件集成到您的应用程序中。
先决条件
- XCode 版本 >= 10.x
- iOS 版本 >=10.0
功能
- 通过 WidgetId 加载小部件
- 通过 SubId 加载小部件(可选)
- 灵活的小部件大小
- 使用 FQDN 或文章 URL 定义基础 URL
- 通过编程方式添加小部件或从 Storyboard/Xibs 创建 IBOutlets。
安装
- 在 Xcode 中创建一个新的项目,就像您通常做的那样
例如:MyApp
。 - 打开一个终端窗口,并使用
$ cd
命令进入到您的项目目录。 - 创建一个 Podfile。可以通过运行
$ pod init
来完成。 - 打开您的 Podfile。第一行应指定支持的平台和版本。
- 为了使用 CocoaPods,您需要定义 Xcode 目标并链接它们。例如,如果您正在编写 iOS 应用程序,则将是您的应用程序名称。创建一个目标部分,写入 target '$TARGET_NAME' do 并在几行后结束。
platform :ios, '10.0'
target 'MyApp' do
pod 'RCNativeiOSSDK'
end
- 保存您的 Podfile。
- 运行
$ pod install
。 - 打开创建的
MyApp.xcworkspace
。这应该是您每天用来创建应用程序的文件。
用法
初始化 SDK
应在使用小部件之前调用。
RCNativeiOSSDK.setup()
小部件使用
创建小部件视图。
lazy var widgetView: RCNactiveJSWidgetView = {
let widget = RCNactiveJSWidgetView(containerView: "put_here_container_for_widget")
// WidgetId is required.
widget.setWidgetId(widgetId: "put_your_widget_id")
// WidgetSubId is optional.
widget.setWidgetSubId(widgetSubId:["category":"entertainment", "utm_code":"123456"]);
// baseUrl is optional.
widget.setBaseUrl(baseUrl: "https://performance.revcontent.dev")
// GDPR is optional
widget.setGDPRConsent("put_your_base64encoded_consent", isEnabled: nil)
// CCPA is optional
widget.setCCPA("put_your_CCPA_consent_string")
return widget
}()
使用示例。
class ViewController: UIViewController {
@IBOutlet var widgetContainerView: UIView!
lazy var widgetView: RCNactiveJSWidgetView = {
let widget = RCNactiveJSWidgetView(containerView: widgetContainerView)
// WidgetId is required.
widget.setWidgetId(widgetId: widgetId)
// WidgetSubId is optional.
widget.setWidgetSubId(widgetSubId:["category":"entertainment", "utm_code":"123456"]);
// baseUrl is optional.
widget.setBaseUrl(baseUrl: "https://performance.revcontent.dev")
// GDPR is optional
widget.setGDPRConsent("put_your_base64encoded_consent", isEnabled: nil)
// CCPA is optional
widget.setCCPA("put_your_CCPA_consent_string")
widget.delegate = self
return widget
}()
var widgetId : String = "someWidgetId"
override func viewDidLoad() {
super.viewDidLoad()
RCNativeiOSSDK.setup()
widgetView.loadWidget()
}
}
清空缓存。
//You can clear cache by this method.
widgetView.clearCache()
使你的视图控制器符合 RCNativeJSWidgetViewDelegate
,并获取关于 widgetView 高度的信息。
滑块单元使用
创建滑块单元。
lazy var bottomSlider: RCNativeSliderBanner = {
let slider = RCNativeSliderBanner(bannerId: "put_your_banner_id", size: RCNativeSliderBanner.BannerSize)
slider.delegate = self
slider.presentingController = self
return slider
}()
使用 showImmediatelyAfterLoad
属性来管理何时显示滑块单元(默认为 true
)。
使你的视图控制器符合 RCNativeSliderBannerDelegate
,并获取关于滑块单元事件的信息。
public protocol RCNativeSliderBannerDelegate: class {
func sliderBannerDidLoad(_ banner: RCNativeSliderBanner)
func sliderBannerWillAppear(_ banner: RCNativeSliderBanner)
func sliderBannerDidAppear(_ banner: RCNativeSliderBanner)
func sliderBannerDidSelect(_ banner: RCNativeSliderBanner)
func sliderBannerWillClose(_ banner: RCNativeSliderBanner)
func sliderBannerDidClose(_ banner: RCNativeSliderBanner)
}
GDPR
通用数据保护条例(GDPR)是世界上最具挑战性的隐私和安全法律。尽管它是欧盟(EU)起草和通过的,但它对所有在欧盟的目标或收集有关欧盟人民数据的组织都施加了义务。该条例自2018年5月25日起生效。
Revcontent的小部件支持GDPR同意参数。为了提供用户的GDPR同意状态,您可以实现自己的或第三方 CMP。您还可以检查IAB提供的 演示应用程序。参数是可选的,可以通过下面的方法传递给Revcontent的小部件,该方法应在调用 loadWidget() 方法之前调用
// boolean value, which determines if GDPR is applicable.
let isGDPRApplicable = true
// GDPR consent string is IAB standard URL-safe base64 encoded value.
let gdprConsent = "your_base64encoded_consent"
widgetView.setGDPRConsent(gdprConsent, isEnabled: isGDPRApplicable)
// GDPR consent info should be provided before this method call:
widgetView.loadWidget()
CCPA
加州消费者隐私法案(CCPA)是一项法律,允许任何加州消费者要求查看公司保存的关于他们的所有信息,以及数据共享的完整第三方名单。此外,加州法律允许消费者在隐私指南被违反的情况下提起诉讼,即使没有发生泄露。
Revcontent的小部件支持CCPA同意参数。为了提供用户的CCPA同意状态,您应该获取美国隐私字符串。此参数是可选的,可以通过以下方法传递给Revcontent的小部件,该方法应在调用loadWidget()方法之前调用。
// CCPA consent string. Is IAB standard URL-encoded U.S. Privacy string.
let ccpaConsent = "your_CCPA_consent_string"
widgetView.setCCPA(ccpaConsent)
//CCPA consent info should be provided before this method call
widgetView.loadWidget()
变更日志
所有变更的历史记录可在此处查看。
发布者的ads.txt
什么是Ads.txt?
Ads.txt是由IAB技术实验室发起的一项旨在提高程序化环境中透明度的倡议。目标是确保出版商的库存仅通过授权合作伙伴出售,以防止伪造,并为广告商提供对其购买的库存的更多控制。
ads.txt究竟是什么?
- 授权数字卖家(简称ads.txt)是IAB为提高程序化广告透明度并减少欺诈行为而发起的一项倡议。
- ads.txt是一个公开可用的文件,由出版商创建并添加到其网站上。该文件为纯文本格式,包含有权销售其库存的授权网络名称。
ads.txt如何对我有益?
- Ads.txt文件可以帮助保护您的品牌免受故意错误标识为源自特定域名、应用程序或视频的假冒库存。
- 声明授权卖家将吸引更多需求,因为许多买家只有在拥有概述授权卖家的ads.txt文件的情况下才会购买库存。
我如何创建.txt文件?
使用记事本或类似的程序,将文件创建为文本(.txt)格式。
- 您的文件应托管在每个域的根目录级别。例如:https://example.com/ads.txt -根域定义为公共后缀列表下的一级,这也在IAB ads.txt规范中是怎样定义的。例如:google.co.uk会被认为是一个根域,因为co.uk在公共后缀列表中,但maps.google.co.uk则不会被视为根域。
ads.txt文件包含哪些信息?
出版商应在文件中为每个授权卖家添加单独的一行。出版商的ads.txt列表中的每一行都需要三块数据(外加一个可选字段)
- <字段 #1>,<字段 #2>,<字段 #3>,<字段 #4>
- 广告系统的域名(必需)例如:revcontent.com
- 出版商账户ID(必需)例如:12345(您的Revcontent出版商ID)
- 账户类型/关系(必需)DIRECT -出版商与广告系统之间的直接商业合同RESELLER -没有直接控制所指示账户的出版商应指定RESELLER NOTE:该字段对大小写敏感,对DIRECT和RESELLER都应始终使用全大写
- 认证机构ID(可选)当前的认证机构是Trusworthy Accountability Group(TAG),TAG ID将包含在此处。
作为Revcontent的发布商,你需要在ads.txt文件中包含的信息应直接从您的账户设置中找到的列表中复制。点击此处跳转到相关页面。
如何在DFP中创建ads.txt文件? 请查看谷歌关于DFP中ads.txt管理的分步指南。
需要更多信息? 你可以在这里了解更多关于这项IAB倡议的信息这里。从Revcontent获取更多信息,请随时联系您的出版商账户代表。
许可证
MIT