ข้ามไปที่เนื้อหา

iOS

Hive AdKit สำหรับ ADOP: iOS

การตั้งค่า

Warning

ตั้งแต่เวอร์ชัน AdKit 1.5.1 เป็นต้นไป AppKey ที่ใช้ก่อนหน้านี้ได้เปลี่ยนเป็น AppDomain แล้ว AppDomain ไม่สามารถใช้งานร่วมกับ AppKey เดิมได้ ดังนั้นเพื่อทำการเริ่มต้น Hive AdKit คุณจะต้องขอรับ AppDomain ใหม่ สำหรับข้อมูลเกี่ยวกับ AppDomain กรุณาติดต่อทีมงานฝ่ายดำเนินงานของแพลตฟอร์ม TechLabs

  1. แก้ไขไฟล์ Info.plist ของโปรเจกต์ Xcode ดังนี้

    • เพิ่มคีย์ 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 ขึ้นไปให้ดูที่ คู่มือการเตรียมสำหรับ iOS 14 เพื่อเพิ่ม รายการ SKAdNetwork ของ ADOP ลงในไฟล์ 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

ต้องออก adopAppDomain เพื่อเริ่มต้นโฆษณา ADOP โดยจำเป็นต้องใช้ adopAppDomain ที่ออกให้เป็นพารามิเตอร์สำหรับวิธีการเริ่มต้นโฆษณา ADOP

Warning

ตั้งแต่เวอร์ชัน AdKit 1.5.1 เป็นต้นไป AppKey ที่เคยใช้งานจะถูกเปลี่ยนเป็น AppDomain AppKey จะไม่สามารถใช้งานร่วมกับ AppDomain เดิมได้ ดังนั้นเพื่อการเริ่มต้นใหม่คุณจะต้องขอรับ AppDomain ใหม่ สำหรับข้อมูลเกี่ยวกับ AppDomain กรุณาติดต่อทีมงานฝ่ายดำเนินงานแพลตฟอร์ม TechLabs

Note

เมื่อทำการรีเซ็ต หากอยู่ในพื้นที่ยุโรปและสหราชอาณาจักร (EEA & UK) จะมีการแสดงป๊อปอัปการยินยอม GDPR อัตโนมัติ ในพื้นที่อื่นจะทำการรีเซ็ตทันที

Warning

หากคุณใช้ Hive SDK คุณต้องเรียกใช้ AuthV4.setup หลังจากที่คุณทำการเริ่มต้น Hive AdKit เสร็จสิ้น หากมีการแสดงการแจ้งเตือนการยินยอม ATT (APP Tracking Transparency) และหน้าจอยินยอม 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

โฆษณาหน้าจอเต็มรูปแบบ

// 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