1.AdTiming聚合平台SDK
AdTiming聚合平台提供多样化的变现功能,包括支持原生广告、插屏广告、横幅广告、激励视频广告和互动广告共五种广告形式,聚合多家主流Ad Networks的广告流量。
SDK支持Android和iOS操作系统,同时提供Unity插件集成Unity应用。具体来说,目前支持版本4.1(API Level
16+)及以上的Android系统,和版本9及以上的iOS系统。Unity插件要求Unity版本为4.6.8或以上。
需注意的是,Unity插件不能单独使用,应与Android版或iOS版AdTiming SDK配合使用,即在Unity
Editor上将插件导入到工程中,然后将工程导出为Android或iOS工程进行编译打包。
AdTiming SDK包括一个核心组件库,并配合不同的适配器(adapter)与第三方广告平台的SDK来交互访问其全部广告库存。这种架构既能增加灵活性又能降低包大小。
通常,我们提供两种SDK的下载选项:Maven/Cocoapods库下载或手动zip下载。为获得更好的构建体验,我们推荐库自动下载方式,在Android中使用Gradle,在iOS中使用CocoaPods。用Unity发布到Android时,建议在Unity
Editor中使用Gradle;发布到iOS时,建议导出到Xcode并使用CocoaPods。
在接下来的文章中,我们将以库自动下载方式为例进行说明。另一个下载方式参见
Help Center.
2.集成AdTiming 聚合SDK集成到应用中
让我们一起来看看如何将AdTiming聚合SDK集成到您的应用中。在这期,我们将通过6个简单的步骤来演示如何让您的应用能展示来自AdTiming平台的广告。
6个步骤分别是:
a) 获取AdTiming平台凭证
在https://publisher.adtiming.com上创建一个帐户,并添加您的应用:
AppKey是您的应用在AdTming上的唯一标识符:
根据自身需求创建广告位,每一个广告位有五种广告形式可选:原生、插屏、激励视频、互动及横幅。其中,插屏、激励视频、互动形式的广告位需要配置对应多个触发场景(Scene),后期在应用中可通过SceneName来触发对应的广告位。原生及横幅形式的广告位使用Placement
ID来引用。
b) 将AdTiming SDK添加到您的项目中
Android
在Android应用程序的build.gradle文件中的repositories及dependencies处添加AdTiming SDK:
repositories {
maven {
url
"https://dl.adtiming.com/android-sdk"
}
}
dependencies {
implementation 'com.aiming.mdt:adtimingsdk:'
}
将以下权限添加到您的AndroidManifest.xml文件中,位于manifest标签内,
<application> 标签外:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
IOS
在iOS应用程序的podfile中加上下面一行:
pod 'ADTiming','3.6.9'
增加–ObjC'到Target➣BuildSettings➣ Linking ➣ Other Linker
Flags.
在info.plist的'Top Level Key'部分添加一个名'NSAppTransportSecurity'
的字典,在这个字典里添加一个名'NSAllowsArbitraryLoads'的Boolean变
量并设它的值为YES.
c) 初始化SDK
现在可开始初始化SDK,即在应用程序启动后,以AppKey为参数调用SDK的init()方法。在Android系统中,最好的调用位置是在Activity的onCreate()事件中;而在iOS系统中,可以是didFinishLaunchingWithOptions()之类的系统函数中,它们在应用程序启动后会立即被调用。
d) 遵守GDPR和COPPA
AdTiming严格遵守IAB欧洲发布的移动应用CMPAPI
v1.0:透明度与同意框架。在您的应用程序中集成一个同意管理平台(CMP),并将收集到的终端用户的同意信息存储在PreferenceManager.getDefaultSharedPreferences中。
为保护儿童,AdTiming不向年纪小于13岁的用户投放广告。因此,也提醒您必须勾选遵守COPPA规范选项:
e) 配置广告单元
好,接下来可以开始您的应用的第一个广告单元的配置了。一般来说,所有五种类型的广告都需要以下A,B,C,D四步,有些步骤可能在Android或iOS上不是必须的。
1) 初始化一个广告对象并注册回调
AdTiming
SDK通过不同的事件来传递广告活动的信息。首先,你需要为广告位创建一个全新的Ad对象,配置它的Listener/Delegate来接收广告事件。以Android上的激励视频广告为例,在RewardedVideoListener接口中实现以下的回调让您的应用程序对相应的广告事件做出响应:
onRewardedVideoAvailabilityChanged()
onRewardedVideoAdShowed()
onRewardedVideoAdShowFailed()
onRewardedVideoAdClicked()
onRewardedVideoAdClosed()
onRewardedVideoAdStarted()
onRewardedVideoAdEnded()
onRewardedVideoAdEnded()
2) 加载广告
这一步很容易理解,在将广告展示给用户之前,必须调用您的广告对象的loadAd()方法加载广告并缓存。一个广告的加载时间取决于广告的大小以及您的网络连接,比较安全的做法是给广告加载留出足够的时间。
最新版的SDK对激励视频、插屏和互动广告可以做到自动加载广告了,所以这一步已经不是必须。当然对于banner和原生广告,您还是需要手动加载以确保有广告展示。
3) 展示广告
在调用广告对象的showAd()之前,让我们检查一下广告是否准备就绪。您可以通过第1步中提到的onRewardedVideoAvailabilityChanged()回调得到广告准备就绪的通知,另外一种方法是任何时候调用广告对象的isReady()方法来判断。最保险的是总是检查一下isReady()是不是返回True:
if (AdTimingRewardedVideo.isReady()) {
AdTimingRewardedVideo.showAd(“scene name”);
}
对于插屏、激励视频和互动形式广告,您需要把代表广告场景的Scenename作为showAd()方法的参数来触发对应的广告位。如果您没有在广告位配置Scene,则可以忽略该参数。关于Scene的具体使用请参见Help
Center。
4) 销毁广告(仅适用于横幅和原生广告)
在Android上,建议在Activity的onDestroy()回调中调用广告对象的destroy()方法来释放将要销毁的广告对象。
@Override
public void onDestroy() {
if (bannerAd!= null) {
bannerAd.destroy();
}
super.onDestroy();
}
对您的应用程序中的所有广告单元都重复以上这四步进行配置。
f) 在测试模式下测试您的应用集成
最后一步!让我们看看上面做的集成是否有效。首先,到https://publisher.adtiming.com上添加你的设备作为测试设备:
然后打开测试模式接收测试广告(测试模式有效时间一小时,可以反复打开):
恭喜!您的应用程序现在已经可以实时展示AdTiming平台的广告了!