跳转至

iOS 版

Hive AdKit for ADOP: iOS

设置

Warning

从 AdKit 1.5.1 版本开始,之前使用的 AppKey 已更改为 AppDomain。AppDomain 与之前的 AppKey 不兼容,因此为了初始化 Hive AdKit,您需要重新申请 AppDomain。 有关 AppDomain 的信息,请联系 TechLabs 平台业务部运营团队。

  1. 修改 Xcode 项目的 Info.plist 文件如下:

    • 添加 GADApplicationIdentifier
    • 将 AdMobId 值(ca-app-pub-XXXXX~YYYYY 格式)输入为键值
    • BidmadAppDomain 键的值输入为 ADOP APP_DOMAIN
    <key>GADApplicationIdentifier</key>
    <string>ca-app-pub-XXXXX~YYYYY</string>
    <key>BidmadAppDomain</key>
    <string>common-serving-bidmad.adop.co.kr</string>
    
  2. 在 iOS 14 及以上版本中,请参考Preparing for iOS 14 指南,将ADOP 的 SKAdNetwork 列表添加到Info.plist文件中。

  3. 在项目应用的 CocoaPods 设置中添加以下内容。

    source 'https://github.com/CocoaPods/Specs.git'
    source 'https://github.com/Com2uSPlatformCorp/HiveAdKit-iOS.git'
    
    platform :ios, '12.0'
    use_frameworks!
    inhibit_all_warnings!
    
    target 'MyGame-mobile' do
        pod 'HiveAdKit_ADOP', '1.5.1'
    end
    

  4. 应用CocoaPod设置。

    $pod install
    
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开发者网站上查看。