iOS 版
Hive AdKit for ADOP: iOS¶
设置¶
Warning
从 AdKit 1.5.1 版本开始,之前使用的 AppKey 已更改为 AppDomain。AppDomain 与之前的 AppKey 不兼容,因此为了初始化 Hive AdKit,您需要重新申请 AppDomain。 有关 AppDomain 的信息,请联系 TechLabs 平台业务部运营团队。
-
修改 Xcode 项目的 Info.plist 文件如下:
- 添加
GADApplicationIdentifier
键 - 将 AdMobId 值(ca-app-pub-XXXXX~YYYYY 格式)输入为键值
- 将
BidmadAppDomain
键的值输入为 ADOP APP_DOMAIN
- 添加
-
在 iOS 14 及以上版本中,请参考Preparing for iOS 14 指南,将ADOP 的 SKAdNetwork 列表添加到Info.plist文件中。
-
在项目应用的 CocoaPods 设置中添加以下内容。
-
应用CocoaPod设置。
Note
要获取有关填写个人信息调查表的信息,请参考隐私调查指南。
应用指南¶
ADOP 测试广告键¶
必须使用ADOP发放的广告密钥而不是AdMob。
let rewardVideoUnitId: String = "29e1ef67-98d2-47b3-9fa2-9192327dd75d"
let InterstitialAdUnitId: String = "228b95a9-6f42-46d8-a40d-60f17f751eb1"
let AdaptiveBannerAdUnitId: String = "1c3e3085-333f-45af-8427-2810c26a72fc"
let AppOpenAdUnitId: String = "0ddd6401-0f19-49ee-b1f9-63e910f92e77"
Hive AdKit 初始化¶
要初始化 ADOP 广告,必须颁发 adopAppDomain
。颁发的 adopAppDomain
必须作为 ADOP 广告初始化方法的参数使用。
Warning
从 AdKit 1.5.1 版本开始,之前使用的 AppKey 已更改为 AppDomain。AppKey 与现有 AppDomain 不兼容,因此为了初始化,您需要重新申请 AppDomain。 有关 AppDomain 的信息,请联系 TechLabs 平台业务部门运营团队。
Note
在执行初始化时,如果是欧洲和英国(EEA & UK)地区,将自动显示GDPR同意弹窗。在其他地区将直接执行初始化。
Warning
如果使用Hive SDK,则必须在完成Hive AdKit初始化后执行AuthV4.setup
。如果在显示ATT(应用追踪透明度)同意通知后出现GDPR同意屏幕,应用可能会在Apple应用审核中被拒绝。
- 如果游戏针对欧洲和英国(EEA & UK)地区,请确保GDPR同意弹窗符合GDPR消息编写指南的要求。
import AdKit
// 상용
AdKit.InitializeWithShowGDPRConsent(appDomain: appDomain, vc: self, bLog: false, gdprTestDeviceId: nil) { consentState in
/*
동의 = 1, 비동의 = 0, 알수없음 = -1, 필요없음 = -2
초기화 완료 콜백으로 GDPR 동의 상태 결과 값 consentState가 전달됩니다. 결과값에 따른 별도 처리가 필요하지 않습니다.
*/
print("InitializeWithShowGDPRConsent consentState : \(consentState)")
}
// GDPR EEA 테스트모드
AdKit.InitializeWithShowGDPRConsent(appDomain: appDomain, vc: self, bLog: true, gdprTestDeviceId: gdprTestDeviceId) { consentState in
/*
동의 = 1, 비동의 = 0, 알수없음 = -1, 필요없음 = -2
초기화 완료 콜백으로 GDPR 동의 상태 결과 값 consentState가 전달됩니다. 결과값에 따른 별도 처리가 필요하지 않습니다.
*/
print("InitializeWithShowGDPRConsent consentState : \(consentState)")
}
奖励视频类型广告¶
这是一个在观看超过一定时间后会给予奖励的奖励型广告。一次只能加载一个广告。
// RewardVideo Instance Create
var rewardVideo:RewardVideo? = nil
rewardVideo = RewardVideo.initialize(vc: self, adUnitId: rewardVideoUnitId, eventHandler: self)
// RewardVideo Load
rewardVideo?.LoadAd(adPlacementInfo: "Native-RewardVideo-Load")
// RewardVideo Show
rewardVideo?.Show(adPlacementInfo: "Native-RewardVideo-Show")
可以传递包括广告位置数据在内的信息。在Load
成功时刻和通过Show
展示时刻传递设置的字符串。
插屏广告¶
这是一个占据整个屏幕的全屏广告。
// Interstitial Instance Create
var interstitialAd:Interstitial? = nil
interstitialAd = Interstitial.initialize(vc: self, adUnitId: InterstitialAdUnitId, eventHandler: self)
// Interstitial Load
interstitialAd?.LoadAd(adPlacementInfo: "Native-Interstitial-Load")
// Interstitial Show
interstitialAd?.Show(adPlacementInfo: "Native-Interstitial-Show")
可以传递包含广告位置数据的内容。在Load
成功时刻和通过Show
展示的时刻传递设置的字符串。
自适应横幅类型广告¶
这是一个占据屏幕部分的滚动横幅。您可以输入 BannerPosition 值或特定的 yPos 值来调整横幅位置。 当输入 yPos 值以调整横幅位置时,横幅位置将从底部对齐状态向上移动指定的 yPos 值。
// Create AdaptiveBanner Instance
var adaptiveBanner:AdaptiveBanner? = nil
// Initialize AdaptiveBanner Instance at the Top of View
adaptiveBanner = AdaptiveBanner.initialize(vc: self, adUnitId: AdaptiveBannerAdUnitId, bannerPosition: BannerPosition.Top, eventHandler: self)
// Initialize AdaptiveBanner Instance at the Bottom of View
adaptiveBanner = AdaptiveBanner.initialize(vc: self, adUnitId: AdaptiveBannerAdUnitId, bannerPosition: BannerPosition.Bottom, eventHandler: self)
// Load AdaptiveBanner
adaptiveBanner?.LoadAd(adPlacementInfo: "Native-AdaptiveBanner-Load")
// Destroy AdaptiveBanner
adaptiveBanner?.Destroy()
// yPos 값을 지정하여 사용하는 예제입니다.
// Banner Instance Create
var adaptiveBanner: AdaptiveBanner? = null
adaptiveBanner = AdaptiveBanner.initialize(vc: self, adUnitId: AdaptiveBannerAdUnitId, yPos: yPos, eventHandler: self)
// Load AdaptiveBanner
adaptiveBanner?.LoadAd(adPlacementInfo: "Native-AdaptiveBanner-Load")
// yPos값에 따라 위치 변경
adaptiveBanner?.setPosition(yPosition:yPos)
可以传递包括广告位置数据在内的信息。成功时刻通过Load
传递,并通过Show
传递设置的字符串。
AppOpen 类型广告¶
当应用状态从后台切换到前台时显示的应用打开广告。
// Create AppOpenAd Instance
var appOpen: AppOpen? = nil
appOpen = AppOpen.initialize(vc: self, adUnitId: AppOpenAdUnitId, eventHandler: self, adPlacementInfo: "Native-AppOpen-LoadInfo")
// Automatically load & show AppOpenAd when the app comes to the foreground
appOpen?.LoadAd(adPlacementInfo: "Native-AppOpen-LoadInfo")
// Destroy AppOpenAd
appOpen?.Destroy()
测试广告¶
在开发过程中,设置测试广告点击不会向广告主收费是很重要的。如果在非测试模式下过多点击广告,可能会因无效活动而导致账户被举报,从而阻止广告接收。测试广告的使用方法可以在Google开发者网站上查看。