GroundTruthDisplaySDK 1.1.9

GroundTruthDisplaySDK 1.1.9

测试已测试
Lang语言 SwiftSwift
许可 BSD
发布最后发布2017年12月
SwiftSwift 版本3.0
SPM支持 SPM

Jacob ZelekRay Wu 维护。



  • GroundTruth

GroundTruth 展示 SDK - iOS

1.1.5 版本更新

  1. 支持报告目的的交通源设置,请参阅独立集成部分以获取详细信息;
  2. 在 DFP/Admob 配置中将 label 设置为交通源(DFP 指示 & Admob 指示);
  3. 修复了一个可能导致创意包含双验证 JavaScript 和 celtra JavaScript 时无法渲染的 bug;

目录

概述

集成

独立

媒体网络

概述

GroundTruth 广告网络由获专利的地理位置验证和 GroundTruthBlueprints™ 技术驱动。这项技术有助于检测优质的用户位置信号,然后驱动将高性能的广告库存实时推送到合适用户的正确地方,以实现您的移动应用的货币化。

移动应用发布商可以借助 GroundTruth Display SDK 访问此广告库存。GroundTruth Display SDK 设计用于嵌入移动应用中。它提供必要的模块来服务并渲染广告,并支持流行的中介网络。

本指南包含有关如何使用 GroundTruth Display SDK 集成您应用程序的信息。它还旨在与流行的 GroundTruth 中介框架:DFP、Admob 和 Mopub 一起工作。

功能

  • 支持 Swift 和 Objective-C
  • 支持标准横幅广告
  • 支持插页广告
  • 支持 MRAID v2.0(移动丰富媒体广告界面定义)
  • 支持 VAST v2.0 线性(视频广告投送模板)
  • 中介支持以便退回到以下广告网络:
    • DFP
    • Admob
    • Mopub

要求

  • iOS 8+
  • GroundTruth 提供的发布者密钥

数据收集

Display SDK 需要特定的信息以将正确的广告推送给用户。一些信息是自动收集的,其他信息由应用程序传递。

1) 自动收集的数据

  • 用户代理
  • 位置(当可用时)
    • 纬度
    • 经度
    • 海拔
    • 楼层
    • 水平精度
    • 垂直精度
  • 设备 ID(iOS 上的 IDFA)
  • IP 地址
  • 应用程序信息
    • 名称
    • 包名
    • 版本
  • 设备信息
    • 语言
    • 操作系统
    • 操作系统版本

2) 应用程序提供的数据

为了防止在App内进行特定产品或服务的广告,GroundTruth Display SDK支持按照RTB规范进行封禁。

  • 封禁类别(以逗号分隔的IAB代码或产品或服务或公司列表)
  • 封禁广告主(您想封禁的广告主顶级域名逗号分隔列表)

您应该提供一个表单来收集以下信息:

  • 性别
  • 年龄 - 我们不会向13岁或以下的用户投放任何广告,也不会向21岁或以下用户投放任何酒精广告
  • 位置 - 当您作为发布者拒绝启用GPS位置获取时的替代位置信息。您可以选择发送用户的邮政编码、城市以及自动收集的IP地址
COPPA合规性

GroundTruth是COPPA合规的,因此我们不会向13岁以下的儿童或使用iOS和Android“不允许跟踪”功能的用户投放广告。请帮助我们收集并发送用户的年龄或出生日期。

集成说明

步骤1 - 请求发布者密钥并下载Display SDK

您将获得一个access_key。如果您的合作伙伴经理尚未提供,请发送电子邮件到[email protected]。之后,将此行添加到您的项目podfile中下载GroundTruth Display SDK:pod 'GroundTruthDisplaySDK' '~> 1.1.7'

步骤2 - 启用位置

给用户提供选择是否分享位置数据的选项是必须的。GroundTruth通过地理位置、水平精度和IP地址等位置数据确定最相关和表现最好的广告。

选择加入过程涉及一个弹出对话框,您也可以添加一条消息。您的应用程序可以自定义消息并调用此对话框。

您有两个位置共享选项:

  1. 使用使用时位置
  2. 始终使用位置

步骤3 - 指定位置选择加入消息

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>

注意:请谨慎选择消息,以说服用户这样做的好处。

步骤4 - 选择使用Display SDK独立使用或与DFP/AdMob/MoPub集成

选项1 - 独立使用

横幅

步骤1a - 向Storyboard添加横幅视图

在Storyboard中打开一个现有的视图控制器,并添加一个新View,其尺寸与您要显示的横幅尺寸(320x50,300x250,320x480,728x90)相匹配。

确保将自定义类属性设置为XADBannerView

在Swift类中添加一个名为bannerView的属性,并使用Control+drag将其绑定到新创建的视图。

步骤1b - 编程添加横幅视图

或者,您也可以选择在viewDidLoad方法中添加以下代码来实例化并定位视图。

let bannerView = XADBannerView(adSize:.banner, origin: CGRect(x:0,y:0))

步骤2 - 配置横幅视图

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

步骤3 - 实现代理方法(可选,仅当独立使用时)

为了从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
    }
}

步骤4 - 请求广告

您需要调用loadAd方法来告诉网络层从服务器请求广告。

self.bannerView.loadAd()

插页

步骤1 - 配置插屏视图

插屏广告不需要您修改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

步骤2 - 实现代理方法(仅当独立使用时)

当插屏加载并准备好显示时将调用代理方法。此示例在可用时立即调用showIntestitial方法。其他用途可能包括在显示插屏广告之前暂停游戏或进行一些清理操作。

extension ViewController: XADInterstitialDelegate {
    func interstitialDidReceiveAd(_ interstitial: XADInterstitial) {
        self.interstitial.showInterstitial()
    }
}

步骤3 - 请求广告

self.interstitial.loadAd()

视频

步骤 1 - 配置视频广告

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

步骤2 - 实现代理方法(仅当独立使用时)

当视频加载完成并准备好播放时,将调用委派方法。此示例在方法可用后立即调用 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
    }
}

步骤3 - 请求广告

self.videoAd.loadAd()

选项 2 - DFP

步骤 1 - 添加提供的 DFP 框架

确保拥有以下库

pod 'GroundTruthDisplaySDK' '~> 1.1.7'
pod 'GroundTruthCustomEventForGoogleMobileAd' '~> 1.1.7'

注意:您可能需要在 XCode 的 构建设置 中设置 Objc 链接器标志 以集成 DFP。请参阅https://firebase.google.com/docs/ios/setup#frameworks 获取更多详细信息。

步骤 2 - 将 GroundTruth 添加为广告网络

管理员 部分,点击 所有公司

点击 新建公司 并选择 广告网络

DFP

创建一个名为 GroundTruth 的新 广告网络

DFP

步骤 3 - 创建新的订单

交付 选项卡下,选择 我的订单 并创建 新订单

DFP

在订单中将 广告主 设置为 GroundTruth。

DFP

我们建议您参考谷歌的类型和优先级以及网络文档,以更好地了解如何配置您的项目。GroundTruth 自定义事件将作为网络条目设置,并将与 AdSense 和广告交换一起考虑。

请确保将类型设置为 网络,并将结束时间设置为 无限 以保持此配置。在此部分设置与 GroundTruth 团队商定的出价价格。

根据您的规格配置订单的其他部分。

步骤 4 - 创建新的创意

在线条目下点击 新建创意

DFP

选择 SDK 中介

DFP

在下拉列表 选择网络 下选择 自定义事件

类名 设置为 XADCustomEventForGoogleMobileAd.XADCustomEventForDFP 用于横幅广告,或设置为 XADCustomEventForGoogleMobileAd.XADCustomEventInterstitialForDFP 用于横幅广告。

参数 设置为您 GroundTruth 发布者密钥。


标签 设置为最能描述此广告单元的任何词语,例如 "320x50_banner_on_home_page",GroundTruth 将将其用作报告目的的流量源。

位置数据 设置为 活动

DFP

步骤 5 集成 DFP

https://developers.google.com/mobile-ads-sdk/docs/dfp/ios/banner

注意:如果您正在尝试实现横幅视图委派方法以接收事件通知,如 adDidRecieved..adDidFailed..,则应使用 GADBannerViewDelegate 而不是 XADBannerViewDelegate

选项 3 - AdMob

步骤 1 - 添加提供的 AdMob 框架

确保拥有以下库

pod 'GroundTruthDisplaySDK' '~> 1.1.7'
pod 'GroundTruthCustomEventForGoogleMobileAd' '~> 1.1.7'

步骤 2 - 配置 GroundTruth 作为广告源

点击 中介 下的 广告源 以查看广告源编辑器。

AdMob

点击 + 新增网络 以打开广告网络列表。

AdMob

点击 + 自定义事件 以打开自定义事件编辑器。

AdMob

类名 设置为 XADCustomEventForGoogleMobileAd.XADCustomEventForAdmob 用于横幅广告或设置为 XADCustomEventForGoogleMobileAd.XADCustomEventInterstitialForAdmob 用于横幅广告。

参数 设置为您的 GroundTruth 发布者密钥。


标签 设置为最能描述此广告单元的任何词语,例如 "320x50_banner_on_home_page",GroundTruth 将将其用作报告目的的流量源。

AdMob

最后,点击 继续 然后 保存 以完成将 GroundTruth 添加为广告源的操作。

AdMob

步骤 3 - 配置 eCPM 价格

点击 AdMob 网络 并取消选中 优化 AdMob 网络 以允许 GroundTruth 的自定义事件参与拍卖。

在 eCPM 列中输入与 GroundTruth 商定的 eCPM 价格。

AdMob

为了使其起作用,GroundTruth 的 eCPM 应理想地高于您的默认 AdMob eCPM。

步骤 4 集成 Admob

https://developers.google.com/admob/ios/banner

注意:如果您正在尝试实现横幅视图委派方法以接收事件通知,如 adDidRecieved..adDidFailed..,则应使用 GADBannerViewDelegate 而不是 XADBannerViewDelegate

选项 4 - MoPub

步骤 1 - 添加提供的 MoPub 框架

确保拥有以下库

pod 'GroundTruthDisplaySDK' '~> 1.1.7'
pod 'GroundTruthCustomEventForMopub' '~> 1.1.8'

步骤 2 - 添加 GroundTruth 作为本机网络

AdMob

AdMob

AdMob

步骤 3 - 创建新的订单

AdMob

AdMob

步骤 4 - 创建新的线条项目

AdMob

类型 & 优先级 设置为 网络

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` 
}

第 5 步 - 设置 eCPM

设置持续时间、协议的预算和商定的 eCPM。

选择先前创建的,使用 GroundTruth 自定义广告网络的 广告单元

AdMob

继续设置所有其他参数并保存。

第 6 步 整合 Mopub

https://www.mopub.com/resources/docs/ios-sdk-integration/integrating-banner-ads-ios/

注意:如果您试图实现横幅视图代理方法以在事件发生时通知(例如 adViewDidLoadAd..adViewDidFailed..),应该使用 MPAdViewDelegate 而不是使用 XADBannerViewDelegate