iOS
Hive AdKit สำหรับ ADOP: iOS¶
การตั้งค่า¶
Warning
ตั้งแต่เวอร์ชัน AdKit 1.5.1 เป็นต้นไป AppKey ที่ใช้ก่อนหน้านี้ได้เปลี่ยนเป็น AppDomain แล้ว AppDomain ไม่สามารถใช้งานร่วมกับ AppKey เดิมได้ ดังนั้นเพื่อทำการเริ่มต้น Hive AdKit คุณจะต้องขอรับ AppDomain ใหม่ สำหรับข้อมูลเกี่ยวกับ AppDomain กรุณาติดต่อทีมงานฝ่ายดำเนินงานของแพลตฟอร์ม TechLabs
-
แก้ไขไฟล์ Info.plist ของโปรเจกต์ Xcode ดังนี้
- เพิ่มคีย์
GADApplicationIdentifier
- ใส่ค่า AdMobId (ในรูปแบบ ca-app-pub-XXXXX~YYYYY) เป็นค่าของคีย์
- ใส่ค่า
BidmadAppDomain
เป็น ADOP APP_DOMAIN
- เพิ่มคีย์
-
ใน iOS 14 ขึ้นไปให้ดูที่ คู่มือการเตรียมสำหรับ iOS 14 เพื่อเพิ่ม รายการ SKAdNetwork ของ ADOP ลงในไฟล์ 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¶
ต้องออก 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。