测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可 | BSD |
发布最后发布 | 2017年12月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Jacob Zelek,Ray Wu 维护。
label
设置为交通源(DFP 指示 & Admob 指示);独立
媒体网络
GroundTruth 广告网络由获专利的地理位置验证和 GroundTruthBlueprints™ 技术驱动。这项技术有助于检测优质的用户位置信号,然后驱动将高性能的广告库存实时推送到合适用户的正确地方,以实现您的移动应用的货币化。
移动应用发布商可以借助 GroundTruth Display SDK 访问此广告库存。GroundTruth Display SDK 设计用于嵌入移动应用中。它提供必要的模块来服务并渲染广告,并支持流行的中介网络。
本指南包含有关如何使用 GroundTruth Display SDK 集成您应用程序的信息。它还旨在与流行的 GroundTruth 中介框架:DFP、Admob 和 Mopub 一起工作。
Display SDK 需要特定的信息以将正确的广告推送给用户。一些信息是自动收集的,其他信息由应用程序传递。
为了防止在App内进行特定产品或服务的广告,GroundTruth Display SDK支持按照RTB
规范进行封禁。
您应该提供一个表单来收集以下信息:
GroundTruth是COPPA合规的,因此我们不会向13岁以下的儿童或使用iOS和Android“不允许跟踪”功能的用户投放广告。请帮助我们收集并发送用户的年龄或出生日期。
您将获得一个access_key
。如果您的合作伙伴经理尚未提供,请发送电子邮件到[email protected]。之后,将此行添加到您的项目podfile中下载GroundTruth Display SDK:pod 'GroundTruthDisplaySDK' '~> 1.1.7'
。
给用户提供选择是否分享位置数据的选项是必须的。GroundTruth通过地理位置、水平精度和IP地址等位置数据确定最相关和表现最好的广告。
选择加入过程涉及一个弹出对话框,您也可以添加一条消息。您的应用程序可以自定义消息并调用此对话框。
您有两个位置共享选项:
在Info.plist
中添加以下密钥,与用户选择加入时显示的文本消息一起。
<key>NSLocationWhenInUseUsageDescription</key>
<string>Give some good reason why the user should opt-in</string>
<key>NSLocationAlwaysAndWhenInUsageDescription</key>
<string>Give some good reason why the user should opt-in</string>
注意:请谨慎选择消息,以说服用户这样做的好处。
在Storyboard中打开一个现有的视图控制器,并添加一个新View
,其尺寸与您要显示的横幅尺寸(320x50,300x250,320x480,728x90)相匹配。
确保将自定义类属性设置为XADBannerView
。
在Swift类中添加一个名为bannerView
的属性,并使用Control+drag
将其绑定到新创建的视图。
或者,您也可以选择在viewDidLoad
方法中添加以下代码来实例化并定位视图。
let bannerView = XADBannerView(adSize:.banner, origin: CGRect(x:0,y:0))
let birthday: Date? = ...
self.bannerView.accessKey = "<access_key>" //required
self.bannerView.trafficSource = "<traffic_source>" //required, pick a proper name for traffi source, like `300x250_banner_home_page`
self.bannerView.autoRefreshIntervalSeconds = 30 //0 means static
self.bannerView.delegate = self // Optional
let adRequest = XADRequest(gender: .male, birthday: birthday)
self.bannerView.adRequest = adRequest //required
self.bannerView.rootViewController = self //required
为了从SDK接收事件,您必须实现XADBannerDelegate。
extension ViewController: XADBannerDelegate {
func bannerViewWillLeaveApplication(withAd ad:XADBannerView) {
}
func bannerViewDidFailToReceive(withAd ad: XADBannerView, withError errorCode: XADErrorCode) {
// Occurs when there was an error retrieving ad or there was no fill
}
}
您需要调用loadAd
方法来告诉网络层从服务器请求广告。
self.bannerView.loadAd()
插屏广告不需要您修改Storyboard。您需要通过将插屏属性添加到Swift类来实例化和定位视图。
let interstitial = XADInterstitial()
let birthday: Date? = ...
self.interstitial.accessKey = "<access_key>" //required
self.interstitial.trafficSource = "<traffic_source>" //required, pick a proper name for traffi source, like `interstitial_after_level_finished`
self.interstitial.delegate = self
let adRequest = XADRequest(gender: .male, birthday: birthday)
self.interstitial.adRequest = adRequest //required
self.interstitial.rootViewController = self //required
当插屏加载并准备好显示时将调用代理方法。此示例在可用时立即调用showIntestitial
方法。其他用途可能包括在显示插屏广告之前暂停游戏或进行一些清理操作。
extension ViewController: XADInterstitialDelegate {
func interstitialDidReceiveAd(_ interstitial: XADInterstitial) {
self.interstitial.showInterstitial()
}
}
self.interstitial.loadAd()
let videoAd = XADVideoAd(vmin: 10, vmax: 60)
//vmin: minimum duration of video ad
//vmax: maximum duration of video ad
let birthday: Date? = ...
self.videoAd.accessKey = "<access_key>" //required
self.videoAd.trafficSource = "<traffic_source>" //required, pick a proper name for traffi source, like `video_after_level_finished`
self.videoAd.delegate = self
let adRequest = XADRequest(gender: .male, birthday: birthday)
self.videoAd.adRequest = adRequest //required
self.rootViewController = self //required
当视频加载完成并准备好播放时,将调用委派方法。此示例在方法可用后立即调用 playVideo
方法。其他用途可能包括暂停游戏或在进行视频广告之前执行一些清理工作。
extension ViewController: XADVideoAdDelegate {
public func videoAdDidReceived(_ videoAd: XADVideoAd) {
self.videoAd.playVideo()
}
public func videoAdFailedToReceive(withErrorCode errocCode: XADErrorCode) {
// Occurs when there was an error retrieving ad or there was no fill
}
}
self.videoAd.loadAd()
确保拥有以下库
pod 'GroundTruthDisplaySDK' '~> 1.1.7'
pod 'GroundTruthCustomEventForGoogleMobileAd' '~> 1.1.7'
注意:您可能需要在 XCode 的 构建设置
中设置 Objc 链接器标志
以集成 DFP。请参阅https://firebase.google.com/docs/ios/setup#frameworks 获取更多详细信息。
在 管理员
部分,点击 所有公司
。
点击 新建公司
并选择 广告网络
。
创建一个名为 GroundTruth 的新 广告网络
。
在 交付
选项卡下,选择 我的订单
并创建 新订单
。
在订单中将 广告主
设置为 GroundTruth。
我们建议您参考谷歌的类型和优先级以及网络文档,以更好地了解如何配置您的项目。GroundTruth 自定义事件将作为网络条目设置,并将与 AdSense 和广告交换一起考虑。
请确保将类型设置为 网络
,并将结束时间设置为 无限
以保持此配置。在此部分设置与 GroundTruth 团队商定的出价价格。
根据您的规格配置订单的其他部分。
在线条目下点击 新建创意
。
选择 SDK 中介
。
在下拉列表 选择网络
下选择 自定义事件
。
将 类名
设置为 XADCustomEventForGoogleMobileAd.XADCustomEventForDFP
用于横幅广告,或设置为 XADCustomEventForGoogleMobileAd.XADCustomEventInterstitialForDFP
用于横幅广告。
将 参数
设置为您 GroundTruth 发布者密钥。
将 标签
设置为最能描述此广告单元的任何词语,例如 "320x50_banner_on_home_page",GroundTruth 将将其用作报告目的的流量源。
将 位置数据
设置为 活动
。
https://developers.google.com/mobile-ads-sdk/docs/dfp/ios/banner
注意:如果您正在尝试实现横幅视图委派方法以接收事件通知,如 adDidRecieved..
或 adDidFailed..
,则应使用 GADBannerViewDelegate
而不是 XADBannerViewDelegate
。
确保拥有以下库
pod 'GroundTruthDisplaySDK' '~> 1.1.7'
pod 'GroundTruthCustomEventForGoogleMobileAd' '~> 1.1.7'
点击 中介
下的 广告源
以查看广告源编辑器。
点击 + 新增网络
以打开广告网络列表。
点击 + 自定义事件
以打开自定义事件编辑器。
将 类名
设置为 XADCustomEventForGoogleMobileAd.XADCustomEventForAdmob
用于横幅广告或设置为 XADCustomEventForGoogleMobileAd.XADCustomEventInterstitialForAdmob
用于横幅广告。
将 参数
设置为您的 GroundTruth 发布者密钥。
将 标签
设置为最能描述此广告单元的任何词语,例如 "320x50_banner_on_home_page",GroundTruth 将将其用作报告目的的流量源。
最后,点击 继续
然后 保存
以完成将 GroundTruth 添加为广告源的操作。
点击 AdMob 网络
并取消选中 优化 AdMob 网络
以允许 GroundTruth 的自定义事件参与拍卖。
在 eCPM 列中输入与 GroundTruth 商定的 eCPM 价格。
为了使其起作用,GroundTruth 的 eCPM 应理想地高于您的默认 AdMob eCPM。
https://developers.google.com/admob/ios/banner
注意:如果您正在尝试实现横幅视图委派方法以接收事件通知,如 adDidRecieved..
或 adDidFailed..
,则应使用 GADBannerViewDelegate
而不是 XADBannerViewDelegate
。
确保拥有以下库
pod 'GroundTruthDisplaySDK' '~> 1.1.7'
pod 'GroundTruthCustomEventForMopub' '~> 1.1.8'
将 类型 & 优先级
设置为 网络
。
将 Class
设置为横幅广告的 XADCustomEventForMopub.XADCustomEventForMopub
或插屏广告的 XADCustomEventForMopub.XADCustomEventInterstitialForMopub
。
将 Data
设置为您的 GroundTruth 发布者密钥。
{
"accesskey": "<access_key>", //required
"trafficsource" : "<traffic_source>" //required, pick a proper name for traffi source, like `300x250_banner_home_page`
}
设置持续时间、协议的预算和商定的 eCPM。
选择先前创建的,使用 GroundTruth 自定义广告网络的 广告单元
。
继续设置所有其他参数并保存。
https://www.mopub.com/resources/docs/ios-sdk-integration/integrating-banner-ads-ios/
注意:如果您试图实现横幅视图代理方法以在事件发生时通知(例如 adViewDidLoadAd..
或 adViewDidFailed..
),应该使用 MPAdViewDelegate
而不是使用 XADBannerViewDelegate
。