跳轉至

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 類型廣告

這是一種在觀看超過一定時間後會給予獎勵的獎勵型廣告。一次只能加載一個廣告。

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