Ios
Adiz iOS¶
Adiz iOS เป็นโมดูลโฆษณาสำหรับ iOS ที่ให้บริการโดยแพลตฟอร์ม Hive เพื่อให้สามารถใช้ฟังก์ชันการแสดงโฆษณาที่ให้บริการโดย AdMob ได้อย่างสะดวกยิ่งขึ้น รูปแบบโฆษณาที่ Adiz iOS มีให้บริการมีดังนี้
- โฆษณาเต็มหน้า (Interstitial)
- โฆษณาแบนเนอร์ (Banner)
- โฆษณาเนทีฟ (Native)
- โฆษณาแบบให้รางวัล (Rewarded)
- โฆษณาเต็มหน้าที่ให้รางวัล (Rewarded Interstitial)
- โฆษณาเปิดแอป (AppOpen)
โปรดดูคู่มือด้านล่างตามลำดับเพื่อทำการติดตั้งและใช้งาน Adiz iOS
การเตรียมการล่วงหน้า¶
Adiz iOS 개발 환경을 구성합니다.
การติดตั้ง¶
เพิ่มคีย์ GADApplicationIdentifier
ลงในไฟล์ Info.plist ของโปรเจกต์ Xcode และป้อนค่าของ AdMobId
(ในรูปแบบ ca-app-pub-XXXXX~YYYYY) เป็นค่าของคีย์นั้น
เพิ่มเติม, ใน iOS 14 ขึ้นไปให้ดูที่ Update your info.plist เพื่อเพิ่มรายการ SKAdNetwork
ในไฟล์ Info.plist
ถัดไป เพิ่มเนื้อหาต่อไปนี้ลงในการตั้งค่า CocoaPods ของโปรเจกต์ (Podfile) ของคุณ
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/Com2uSPlatformCorp/HiveAdiz-iOS.git'
platform :ios, '12.0'
target 'UnityFramework' do
pod 'HiveAdiz', '2.1.0'
end
target 'Unity-iPhone' do
end
use_frameworks!
# แก้ไขปัญหา dyld ใน pods เมื่อใช้ Project
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
# ปัญหา Toolchain xcode 15
xcconfig_path = config.base_configuration_reference.real_path
xcconfig = File.read(xcconfig_path)
xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR")
File.open(xcconfig_path, "w") { |file| file << xcconfig_mod }
# สิ้นสุด
config.build_settings["BUILD_LIBRARY_FOR_DISTRIBUTION"] = "YES"
if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 12.0
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
end
end
end
end
ใช้ $pod install
เพื่อปรับใช้การตั้งค่า CocoaPod
การตั้งค่าโฆษณาทดสอบ¶
Adiz สามารถแสดงโฆษณาทดสอบได้ 2 วิธี
- เปิดโหมดทดสอบ: แสดงโฆษณาทดสอบที่ออกโดย AdMob เท่านั้น
- ลงทะเบียนอุปกรณ์ทดสอบก่อนแสดงโฆษณา: แสดงโฆษณาจริงเพื่อการทดสอบ โดยไม่ให้เกิดการเข้าชมที่ไม่ถูกต้อง ลงทะเบียนอุปกรณ์ที่จะทำการแสดงโฆษณาทดสอบ
เปิดใช้งานโหมดทดสอบ¶
ในระหว่างขั้นตอนการพัฒนา จะเปิดใช้งานโหมดทดสอบเพื่อไม่ให้มีการเรียกเก็บค่าบริการจากผู้โฆษณาเมื่อคลิกโฆษณาทดสอบ เมื่อเปิดใช้งานโหมดทดสอบ จะมีการแสดงโฆษณาทดสอบเท่านั้น ในโหมดทดสอบไม่จำเป็นต้องป้อนคีย์โฆษณา AdMob ในคอนโซลเพื่อแสดงโฆษณาทดสอบ ในการเผยแพร่เชิงพาณิชย์จะต้องปิดใช้งานโหมดทดสอบ.
วิธีเปิดโหมดทดสอบมี 2 วิธี
- ลงทะเบียนอุปกรณ์ทดสอบในคอนโซลไฮฟ์แล้วตั้งค่าเป็น โฆษณาเดโม (แนะนำ):
โปรดดูเนื้อหาใน การจัดการอุปกรณ์ทดสอบ ของคู่มือคอนโซล - ใช้เมธอด
setTestMode()
ของคลาส Adiz:
โปรดดู โค้ดตัวอย่างด้านล่าง
Note
ในระหว่างการพัฒนา หากไม่อยู่ในโหมดทดสอบ การคลิกโฆษณามากเกินไปจะถูกพิจารณาว่าเป็นการเข้าชมที่ไม่ถูกต้อง และบัญชี AdMob อาจถูกแจ้งเตือนทำให้ไม่สามารถแสดงโฆษณาได้
การใช้เมธอด Adiz.setTestMode()¶
การแสดงโฆษณาบนอุปกรณ์ทดสอบ¶
ในสถานการณ์ด้านล่างนี้ คุณต้องลงทะเบียนอุปกรณ์ทดสอบเพื่อแสดงโฆษณาทดสอบ
- ทดสอบว่า AdMob โฆษณาคีย์ที่ลงทะเบียนในคอนโซลทำงานได้ดีหรือไม่
- เขียน ข้อความ GDPR และตรวจสอบว่าหน้าต่างป๊อปอัปการยินยอม GDPR ทำงานได้ดีหรือไม่
- เรียกใช้ เครื่องมือวิเคราะห์โฆษณา เพื่อวิเคราะห์และดีบักคำขอโฆษณา
<
วิธีการแสดงโฆษณาบนอุปกรณ์ทดสอบมี 2 วิธี
-
ลงทะเบียนอุปกรณ์ทดสอบในคอนโซลแล้วตั้งค่าเป็น การใช้ ID หน่วยโฆษณา (แนะนำ):
โปรดดูเนื้อหาใน การจัดการอุปกรณ์ทดสอบ ของคู่มือคอนโซล -
ใช้เมธอด
setTestDevice()
ของคลาส Adiz:
โปรดดู โค้ดตัวอย่าง ด้านล่างนี้.
Note
หากคุณทำการทดสอบโดยไม่ลงทะเบียนอุปกรณ์ทดสอบและแสดงโฆษณาจริง จะถูกพิจารณาว่าเป็นการเข้าชมที่ไม่ถูกต้อง และบัญชี AbMob ของคุณอาจถูกบล็อกและไม่สามารถแสดงโฆษณาได้อีกต่อไป การลงทะเบียนอุปกรณ์ทดสอบจะทำให้แสดง "Test Mode" หรือ "Test Ad" (โฆษณาเนทีฟ) เมื่อมีการแสดงโฆษณา ในระยะการจัดจำหน่ายเชิงพาณิชย์ คุณจะต้องปิดการใช้งานอุปกรณ์ทดสอบ
แบนเนอร์, โฆษณาหน้าแรกหรือโฆษณาแบบมีรางวัล
การใช้เมธอด Adiz.setTestDevice()¶
ในการลงทะเบียนอุปกรณ์ทดสอบ คุณต้องตรวจสอบ ID อุปกรณ์ทดสอบก่อน ID อุปกรณ์ทดสอบ (ตัวอย่าง: B74F6468-1516-467C-99AD-CC5973C5DB52
) สามารถตรวจสอบได้โดยใช้ 2 วิธีด้านล่าง
Adiz.Initialize()
호출 후 Logcat 로그 확인:Adiz.Initialize()
หลังจากเรียกใช้งาน ไม่ว่าจะเป็นประเภทโฆษณาใด ๆ ให้เรียกinitialize()
→load()
จากนั้นตรวจสอบบันทึก Logcat:
ตรวจสอบ ID อุปกรณ์ทดสอบ จากนั้นเพิ่มบรรทัด Adiz.SetTestDevice(DEVICE_ID)
ก่อนเรียกใช้ Adiz.initialize
ในรหัสการรีเซ็ต Adiz ที่มีอยู่ Hive ใส่ ID อุปกรณ์ทดสอบที่คัดลอกมาใน DEVICE_ID
การใช้เครื่องมือวิเคราะห์โฆษณา¶
เครื่องมือวิเคราะห์โฆษณาคือเครื่องมือโอเวอร์เลย์ในแอปที่วิเคราะห์กระบวนการเรียกดูโฆษณาจริงในอุปกรณ์ทดสอบแบบเรียลไทม์หลังจากที่มีการร้องขอโฆษณา มันจะแจ้งเวลาที่ใช้ในการโหลดโฆษณา และหากล้มเหลวในการแสดงผล จะบอกเหตุผลในการล้มเหลว นอกจากนี้ยังสามารถกำหนดเครือข่ายโฆษณาเฉพาะเพื่อให้แน่ใจว่าโฆษณาจะแสดงผลได้ดี และหากมีปัญหา สามารถทำการดีบักในระดับโค้ดได้ ทั้งหมดนี้จะดำเนินการพร้อมกับ UI ของเครื่องมือวิเคราะห์โฆษณา ซึ่งรวมอยู่ใน Google Mobile Ads SDK iOS 7.68.0 ขึ้นไป และสามารถใช้ได้โดยการเรียก AdizDeveloperTool.OpenAdInspector
ต้องตั้งค่า การแสดงโฆษณา บนอุปกรณ์ทดสอบเพื่อใช้เครื่องมือการตรวจสอบโฆษณา
การตั้งค่า Adiz AppID¶
ตั้งค่า Adiz AppID ที่ลงทะเบียนใน AppCenter ของ Hive หากไม่ได้ตั้งค่า จะใช้ Bundle ID
Hive การตั้งค่าเซิร์ฟเวอร์คอนโซล¶
ตั้งค่าเซิร์ฟเวอร์คอนโซล Hive ที่จะใช้ ค่าเริ่มต้นคือ real
แม้ว่าจะใช้เซิร์ฟเวอร์เชิงพาณิชย์ หากเปิดใช้งานโหมดทดสอบ จะมีการแสดงโฆษณาทดสอบเท่านั้น
- Hive เซิร์ฟเวอร์คอนโซลทดสอบ:
AdizZoneType.test
- Hive เซิร์ฟเวอร์คอนโซลแซนด์บ็อกซ์:
AdizZoneType.sandbox
- Hive เซิร์ฟเวอร์คอนโซลเชิงพาณิชย์:
AdizZoneType.real
โฆษณาที่ปรับแต่งเฉพาะผู้ใช้¶
การนำเสนอ ATT (App Tracking Transparency) ใน iOS 14.5+ ได้เสริมสร้างความเป็นส่วนตัวของข้อมูล ดังนั้น หากผู้ใช้ยินยอมในการติดตามกิจกรรมในหน้าต่างป๊อปอัป ATT จะสามารถแสดงโฆษณาที่ปรับแต่งเฉพาะผู้ใช้ได้เท่านั้น เพื่อเพิ่มรายได้จากโฆษณาให้สูงสุด จำเป็นต้องเขียนข้อความ IDFA (Identifier for Advertisers)
AdMob แนะนำให้คุณเขียนข้อความตามแนวทางด้านล่างในแดชบอร์ดและเผยแพร่ข้อความนั้น
เขียนและโพสต์ข้อความ IDFA จากนั้นตั้งค่าการเข้าถึงการติดตามผู้ใช้ ตามขั้นตอนด้านล่างเพื่อเพิ่มคีย์ใน Info.plist
- เลือกโปรเจกต์ของคุณใน Project Navigator ของหน้าต่างโปรเจกต์ Xcode.
- เลือกแอปของคุณจากรายการ TARGETS.
- คลิกที่แท็บ Info.
- คลิกที่รายการ Custom iOS Target Properties ในแท็บ Info.
- คลิกขวาที่รายการ Custom iOS Target Properties.
- คลิกที่เมนู Add Row.
- ป้อน NSUserTrackingUsageDescription ในช่อง Key และเพิ่มค่าที่ระบุใน ไฟล์การตั้งค่าหลายภาษา > โฟลเดอร์ Base.Iproj > InfoPlist.strings ในช่อง Value.
ถัดไป ให้เขียนข้อความขออนุญาตสำหรับผู้ใช้แอปที่ระบุในไฟล์การตั้งค่าหลายภาษา (การตั้งค่าทั่วไป > การตั้งค่าการขออนุญาตเข้าถึง) หากไม่ป้อนข้อความป๊อปอัปขออนุญาต การแนะนำเพิ่มเติมเกี่ยวกับสิทธิ์การเข้าถึงของผู้ใช้ที่ใช้งานอยู่จะขาดหายไปและอาจถูกปฏิเสธ (Reject) ในระหว่างการตรวจสอบแอป
หากคุณทำเสร็จสิ้นจนถึงจุดนี้แล้ว การเริ่มต้น Adiz จะทำให้ป๊อปอัปการยินยอม ATT แสดงขึ้นโดยอัตโนมัติ เมื่อผู้ใช้กด "อนุญาต" ในป๊อปอัปการยินยอม ATT IDFA จะถูกเปิดใช้งานและโฆษณาที่ปรับให้เหมาะกับผู้ใช้จะถูกแสดง
การแสดงป๊อปอัปการยินยอม GDPR (ยุโรป, สหราชอาณาจักร)¶
หากเกมของคุณมุ่งเป้าไปที่ยุโรปและสหราชอาณาจักร (EEA & UK) คุณจะต้องแสดงป๊อปอัปการยินยอม GDPR (กฎการปกป้องข้อมูลทั่วไปของสหภาพยุโรป) ป๊อปอัปการยินยอม GDPR จะปรากฏเฉพาะเมื่อที่อยู่ IP ของอุปกรณ์ผู้ใช้เป็นที่อยู่ IP ของยุโรปและสหราชอาณาจักร (EEA & UK) Adiz สนับสนุน Google UMP (User Messaging Platform) สำหรับการแสดงป๊อปอัปการยินยอม GDPR หลังจากที่คุณสร้างข้อความ GDPR ใน AdMob Console แล้ว เริ่มต้น Adiz ป๊อปอัป GDPR จะปรากฏแก่ผู้ใช้ที่เข้าถึงจากภูมิภาคยุโรปและสหราชอาณาจักร
Warning
ในการกำหนดเป้าหมายไปยังยุโรปและนอกสหราชอาณาจักร หากคุณมีแผนที่จะให้บริการเฉพาะในประเทศ การแสดงป๊อปอัพการยินยอม GDPR (ยุโรป, สหราชอาณาจักร) คุณสามารถข้ามขั้นตอนนี้และใช้ Adiz.initializeForNonGDPR()
เพื่อทำการเริ่มต้น
หากคุณใช้ Adiz.initialize()
เพื่อทำการเริ่มต้น จะต้องสร้างข้อความ GDPR ในคอนโซล AdMob เพื่อให้การเริ่มต้น Adiz ดำเนินการได้อย่างถูกต้อง
การสร้างข้อความ GDPR¶
เข้าสู่ระบบ Google AdMob Console เพื่อสร้างข้อความ GDPR ก่อนที่จะสร้างข้อความ GDPR โปรดดูที่ คู่มือการสร้างข้อความ GDPR
หากคุณได้สร้างข้อความ GDPR แล้ว การเริ่มต้น Adiz จะทำให้ป๊อปอัปการยินยอม GDPR แสดงขึ้นโดยอัตโนมัติ
Warning
หากคุณใช้ Hive SDK คุณต้องเรียกใช้ AuthV4.setup
หลังจากที่คุณทำการเริ่มต้น Hive Adiz เสร็จสิ้น หากมีการแสดงการแจ้งเตือนการยินยอม ATT (APP Tracking Transparency) และหน้าจอยินยอม GDPR ปรากฏขึ้น แอปอาจถูกปฏิเสธในการตรวจสอบแอปของ Apple
การดำเนินการยินยอม/ถอนการยินยอม GDPR¶
รายการในป๊อปอัปการยินยอม GDPR จะต้องมีฟังก์ชันการแก้ไขเพื่อให้ผู้ใช้สามารถปรับเปลี่ยนความยินยอมได้ทุกเมื่อ ตัวอย่างเช่น ผู้ใช้อาจไม่ยินยอมกับ GDPR ในตอนแรก แต่ต้องการยินยอมอีกครั้งเพื่อดูโฆษณาที่ปรับแต่ง หรือในทางกลับกัน ผู้ใช้อาจยินยอมกับ GDPR ในตอนแรก แต่ไม่ต้องการให้ข้อมูลส่วนบุคคลอีกต่อไปและต้องการถอนการยินยอม ในสถานการณ์เหล่านี้ นักพัฒนาแอปต้องดำเนินการฟังก์ชันที่ให้ผู้ใช้สามารถยินยอมอีกครั้งหรือถอนการยินยอมที่มีอยู่ได้ ฟังก์ชันการยินยอม/ถอนการยินยอม GDPR สามารถดำเนินการได้โดยทำตามขั้นตอนต่อไปนี้
- สร้าง UI ปุ่มในแอปเพื่อเรียกดูหน้าต่างป๊อปอัปการยินยอม GDPR อีกครั้ง
- เมื่อทำการ เริ่มต้น Adiz ให้เรียกใช้
isPrivacyOptionsRequired()
เพื่อแสดง UI ปุ่มดังกล่าวแก่ผู้ใช้ที่เข้าถึงจากยุโรปและสหราชอาณาจักร และไม่แสดงในกรณีอื่น หากผู้ใช้ที่เข้าถึงจากยุโรปและสหราชอาณาจักรกดปุ่มดังกล่าว ให้เรียกใช้showPrivacyOptionsForm
เพื่อเรียกดูหน้าต่างป๊อปอัปการยินยอม GDPR อีกครั้ง ผู้ใช้สามารถกดปุ่ม "Manage Options" ในแอปเพื่อปรับเปลี่ยนการยินยอมในรายละเอียด GDPR ได้ตลอดเวลาshowPrivacyOptionsForm
ด้านล่างนี้เป็นวิธีการที่สร้างขึ้นแบบสุ่มเพื่อเป็นตัวอย่าง และบริษัทพัฒนาสามารถเปลี่ยนแปลงการดำเนินการตามที่ต้องการได้
import HiveAdiz
func initialize(_ appId: String) {
// ...
// isPrivacyOptionsRequired เป็นค่าเริ่มต้น false
targetViewController.showPrivacyFormButton.isEnabled = AdizConsentManager.isPrivacyOptionsRequired()
// HiveAdiz initialize
Adiz.initialize(targetViewController) { error, json in
// ...
// showPrivacyOptionsForm button enable check
targetViewController.showPrivacyFormButton.isEnabled = AdizConsentManager.isPrivacyOptionsRequired()
// ...
}
}
func showPrivacyOptionsForm(_ targetViewController: UIViewController) {
// Show GDPR Form
if AdizConsentManager.isPrivacyOptionsRequired() {
AdizConsentManager.showPrivacyOptionsForm(targetViewController) { error in
// No need to do any error handling.
}
}
}
#import <HiveAdiz/HiveAdiz-Swift.h>
- (void)initialize: (NSString *)appId {
// ...
// isPrivacyOptionsRequired is default false
targetViewController.showPrivacyFormButton.enabled = [AdizGDPRManager isPrivacyOptionsRequired];
// HiveAdiz initialize
[Adiz initialize: targetViewController handler:^(AdizError * error, NSDictionary<NSString *,id> * json) {
// ...
// showPrivacyOptionsForm button enable check
targetViewController.showPrivacyFormButton.enabled = [AdizConsentManager isPrivacyOptionsRequired];
// ...
}];
}
- (void)showPrivacyOptionsForm: (UIViewController*) targetViewController {
// แสดงแบบฟอร์ม GDPR
if ([AdizConsentManager isPrivacyOptionsRequired]) {
[AdizConsentManager showPrivacyOptionsForm: targetViewController handler:^(AdizError *error) {
// ไม่จำเป็นต้องจัดการข้อผิดพลาดใดๆ
}];
}
}
การตั้งค่าแท็กสำหรับผู้ใช้ที่ต่ำกว่าความยินยอม GDPR (TFUA)¶
สามารถตั้งค่าแท็ก (Tag For Under the Age of Consent, TFUA) เพื่อจัดการผู้ใช้ที่อาศัยอยู่ในเขตเศรษฐกิจยุโรป (EEA), สหราชอาณาจักร และสวิตเซอร์แลนด์ให้เป็นกลุ่มที่มีการประมวลผลข้อมูลอย่างจำกัดเมื่อมีการขอข้อมูลโฆษณา สำหรับแอปที่ให้บริการแก่เด็ก สามารถใช้ AdizConsentManager.SetUserPrivacySettings
เพื่อตั้งค่าผู้ใช้ที่มีอายุต่ำกว่าช่วงอายุที่ต้องได้รับความยินยอมได้ แม้ว่าจะมีความแตกต่างกันในแต่ละประเทศในยุโรป แต่ GDPR กำหนดให้ผู้ที่มีอายุต่ำกว่า 16 ปีต้องได้รับความยินยอมจากผู้ปกครอง การตั้งค่าต่ำกว่าช่วงอายุที่ต้องได้รับความยินยอมจะต้องตั้งค่าก่อนการเรียกใช้ Adiz.initialize
Warning
หากตั้งค่าแท็กสำหรับผู้ที่ยังไม่บรรลุนิติภาวะ setTagForUnderAgeOfConsent
และการตั้งค่า COPPA สำหรับเด็ก setTagForChildDirectedTreatment
เป็น true
พร้อมกัน การตั้งค่า COPPA สำหรับเด็ก setTagForChildDirectedTreatment
จะมีผลบังคับใช้ก่อน ดังนั้นโปรดอย่าตั้งค่าทั้งสองเป็น true
พร้อมกัน
Note
Hive SDK v4 24.2.0 ขึ้นไปและ Adiz 2.0.1 ขึ้นไป เมื่อใช้ร่วมกัน Hive SDK จะใช้การตั้งค่าความยินยอมสำหรับผู้ใช้ที่อายุต่ำกว่าที่กำหนดโดยอัตโนมัติ ดังนั้นจึงไม่จำเป็นต้องเรียก AdizConsentManager.SetUserPrivacySettings
func initialize(_ appId: String) {
bool isTagForUnderAgeOfConsent = false // เปลี่ยนเป็น true หากเป็นเด็ก
let privacySet = PrivacySettings.Builder()
.setTagForUnderAgeOfConsent(isTagForUnderAgeOfConsent)
AdizConsentManager.setUserPrivacySettings(privacySet.build())
// HiveAdiz initialize
Adiz.initialize(targetViewController) { error, json in
// ...
}
}
- (void)initialize: (NSString *)appId {
bool isTagForUnderAgeOfConsent = false; // หากเป็นเด็กให้เปลี่ยนเป็น true
PrivacySettingsBuilder* privacySet = [[PrivacySettingsBuilder alloc] init];
privacySet = [builder setTagForUnderAgeOfConsent: isTagForUnderAgeOfConsent];
[AdizConsentManager setUserPrivacySettings: [privacySet build]];
// HiveAdiz เริ่มต้น
[Adiz เริ่มต้น: targetViewController handler:^(AdizError * error, NSDictionary<NSString *,id> * json) {
// ...
}];
}
การตั้งค่าอุปกรณ์ทดสอบ GDPR¶
ป๊อปอัปการยินยอม GDPR จะแสดงเฉพาะเมื่อที่อยู่ IP ของอุปกรณ์เป็นที่อยู่ IP ในยุโรปและสหราชอาณาจักร ในระยะพัฒนาจะสามารถบังคับให้แสดงป๊อปอัปการยินยอม GDPR โดยไม่คำนึงถึงที่อยู่ IP เพื่อทดสอบการแสดงป๊อปอัป และเพื่อสิ่งนี้จะต้องตั้งค่าอุปกรณ์ทดสอบ GDPR โปรดทำตามขั้นตอนด้านล่างเพื่อการตั้งค่าอุปกรณ์ทดสอบ GDPR
- ทำการเริ่มต้น Adiz นี่คือการเริ่มต้นเพื่อตรวจสอบ ID อุปกรณ์ทดสอบ และไม่จำเป็นต้องเขียนข้อความขอความยินยอม GDPR
ตรวจสอบข้อความในบันทึกดีบักที่สามารถยืนยัน ID อุปกรณ์ได้ ข้อความด้านล่างเป็นตัวอย่าง
ในการเปิดใช้งานโหมดดีบักสำหรับอุปกรณ์นี้ ให้ตั้งค่า: UMPDebugSettings.testDeviceIdentifiers = @[B74F6468-1516-467C-99AD-CC5973C5DB52] ตรวจสอบ ID อุปกรณ์ในข้อความ (ตัวอย่าง:
B74F6468-1516-467C-99AD-CC5973C5DB52
)- คัดลอก ID อุปกรณ์
- เพิ่ม
Adiz.setTestDevice(DEVICE_ID)
ก่อนที่จะเรียกใช้Adiz.initialize
ในโค้ดเริ่มต้น Adiz ที่มีอยู่ - เขียนข้อความขอความยินยอม GDPR และเริ่มต้น Adiz ใหม่เพื่อตรวจสอบว่าป๊อปอัพขอความยินยอม GDPR แสดงขึ้นอย่างถูกต้อง
```swift
func initialize(_ appId: String) {
// ...
// Set TestDevice before Adiz.initialize. example @"B74F6468-1516-467C-99AD-CC5973C5DB52"
Adiz.setTestDevice("B74F6468-1516-467C-99AD-CC5973C5DB52")
// HiveAdiz เริ่มต้น
Adiz.initialize(targetViewController) { error, json in
// ...
}
}
```
```obj
- (void)initialize: (NSString *)appId {
// ...
// Set TestDevice before Adiz.initialize. example @"B74F6468-1516-467C-99AD-CC5973C5DB52"
[Adiz setTestDevice: @"B74F6468-1516-467C-99AD-CC5973C5DB52"];
// HiveAdiz เริ่มต้น
[Adiz เริ่มต้น: targetViewController handler:^(AdizError * error, NSDictionary<NSString *,id> * json) {
// ...
}];
}
```
การตั้งค่าแท็กการจัดการสำหรับเด็ก COPPA¶
ตามกฎหมายการปกป้องข้อมูลส่วนบุคคลออนไลน์ของเด็ก (COPPA) นักพัฒนาแอปสามารถกำหนดได้ว่า Google จะจัดการเนื้อหาเป็นเนื้อหาสำหรับเด็กหรือไม่ โดยใช้การตั้งค่าแท็กการจัดการสำหรับเด็ก (tagForChildDirectedTreatment, TFCD) เมื่อมีการขอโฆษณา หากต้องการให้จัดการเป็นเนื้อหาสำหรับเด็ก จะต้องเรียกใช้ AdizConsentManager.SetUserPrivacySettings
ก่อนการเรียก Adiz.initialize
เมื่อใช้ Adiz และ Hive SDK ร่วมกัน แท็กการจัดการสำหรับเด็กจะถูกนำไปใช้โดยอัตโนมัติ ดังนั้นจึงไม่จำเป็นต้องตั้งค่าเพิ่มเติม
```swift
func initialize(_ appId: String) {
bool isTagForChildDirectedTreatment = false // เปลี่ยนเป็น true หากเป็นเด็ก
let privacySet = PrivacySettings.Builder()
.setTagForChildDirectedTreatment(isTagForUnderAgeOfConsent)
AdizConsentManager.setUserPrivacySettings(privacySet.build())
// HiveAdiz เริ่มต้น
Adiz.initialize(targetViewController) { error, json in
// ...
}
}
```
```obj
- (void)initialize: (NSString *)appId {
bool isTagForChildDirectedTreatment = false; // เปลี่ยนเป็น true หากเป็นเด็ก
PrivacySettingsBuilder* privacySet = [[PrivacySettingsBuilder alloc] init];
privacySet = [builder setTagForChildDirectedTreatment: isTagForChildDirectedTreatment];
[AdizConsentManager setUserPrivacySettings: [privacySet build]];
// HiveAdiz เริ่มต้น
[Adiz initialize: targetViewController handler:^(AdizError * error, NSDictionary<NSString *,id> * json) {
// ...
}];
}
```
การเพิ่มการจัดการโฆษณา¶
Adiz สามารถแสดงโฆษณาโดยใช้การจัดการโฆษณาของ AdMob ได้ เพื่อเพิ่มการจัดการโฆษณาของ AdMob ให้ทำตามขั้นตอนด้านล่าง
เพิ่มการประสานงาน AdMob¶
ดำเนินการเชื่อมต่อแหล่งโฆษณาในคอนโซล AdMob ตามตารางด้านล่าง
AppLovin | Pangle | Unity Ads | Meta | |
---|---|---|---|---|
ขั้นตอนที่ 1 | ตั้งค่า AppLovin | ตั้งค่า Pangle | ตั้งค่า Unity Ads | ตั้งค่า Meta |
ขั้นตอนที่ 2 | เพิ่มแหล่งโฆษณา AppLovin ลงใน AdMob | เพิ่มแหล่งโฆษณา Pangle ลงใน AdMob | เพิ่มแหล่งโฆษณา Unity Ads ลงใน AdMob | เพิ่มแหล่งโฆษณา Meta ลงใน AdMob |
ขั้นตอนที่ 3 | เพิ่ม Adiz Adapter |
เพิ่ม Adiz อแดปเตอร์¶
เพิ่มการพึ่งพาใน CocoaPods Podfile
# ...
$HIVE_ADIZ_VERSION = '2.1.0'
def adiz
pod 'HiveAdiz', $HIVE_ADIZ_VERSION
end
def adizAdapter
pod 'HiveAdizAdapterAppLovin', $HIVE_ADIZ_VERSION
pod 'HiveAdizAdapterPangle', $HIVE_ADIZ_VERSION
pod 'HiveAdizAdapterUnityAds', $HIVE_ADIZ_VERSION
pod 'HiveAdizAdapterMeta', $HIVE_ADIZ_VERSION
end
target 'MyGame-mobile' do
adiz
adizAdapter
end
# ...
เพื่อยืนยันว่าการกำหนดค่า Adiz อนุกรมถูกต้อง ให้เรียกใช้แอปและตรวจสอบรายการการกำหนดค่าในหน้าจอ การตรวจสอบโฆษณา。
การเริ่มต้น Adiz¶
เป็นขั้นตอนที่จำเป็นต้องดำเนินการก่อนที่จะเปิดเผยโฆษณาทุกประเภท หากเริ่มต้น Adiz จะได้รับโฆษณาคีย์ที่จำเป็นสำหรับการแสดงโฆษณา หากเปิดใช้งานโหมดทดสอบ จะได้รับคีย์ทดสอบ หากใช้ Hive SDK ให้ดำเนินการเริ่มต้น Adiz หลังจากเรียก AuthV4.setup
Warning
หากคุณใช้การตั้งค่า GDPR คุณต้องเรียกใช้ AuthV4.setup
หลังจากที่เสร็จสิ้นการเริ่มต้น Hive Adiz หากหน้าจอขอความยินยอม GDPR ปรากฏขึ้นหลังจากแสดงการแจ้งเตือนความยินยอม ATT (APP Tracking Transparency) แอปอาจถูกปฏิเสธในการตรวจสอบแอปของ Apple
import HiveAdiz
// กำลังเริ่มต้น Hive Adiz
Adiz.initialize(targetViewController) { error, json in
if error.isSuccess,
let responseList = json?["keys"] as? [[String:Any]] {
var interstitialKeyList = [String]()
var bannerKeyList = [String]()
var nativeKeyList = [String]()
var rewardedKeyList = [String]()
var rewardedInterstitialKeyList = [String]()
var appOpenKeyList = [String]()
for response in responseList {
if let isDefault = response["is_default"] as? Bool,
isDefault == false {
let hiveAdKey = response["key"] as? String ?? ""
let hiveForm = response["form"] as? String ?? ""
switch hiveForm {
case "interstitial": interstitialKeyList.append(hiveAdKey)
case "banner": bannerKeyList.append(hiveAdKey)
case "native": nativeKeyList.append(hiveAdKey)
case "rewarded": rewardedKeyList.append(hiveAdKey)
case "rewarded_interstitial": rewardedInterstitialKeyList.append(hiveAdKey)
case "app_open": appOpenKeyList.append(hiveAdKey)
default: break
}
}
}
print("interstitialKeyList \(interstitialKeyList)");
print("bannerKeyList \(bannerKeyList)");
print("nativeKeyList \(nativeKeyList)");
print("rewardedKeyList \(rewardedKeyList)");
print("rewardedInterstitialKeyList \(rewardedInterstitialKeyList)");
print("appOpenKeyList \(appOpenKeyList)");
}
}
#import <HiveAdiz/HiveAdiz-Swift.h>
// กำลังเริ่มต้น Hive Adiz
[Adiz initialize: targetViewController handler:^(AdizError * error, NSDictionary<NSString *,id> * json) {
if([error isSuccess] && json[@"keys"] != nil) {
NSArray* responseList = json[@"keys"];
NSMutableArray<NSString*> *interstitialKeyList = [[NSMutableArray alloc] init];
NSMutableArray<NSString*> *bannerKeyList = [[NSMutableArray alloc] init];
NSMutableArray<NSString*> *nativeKeyList = [[NSMutableArray alloc] init];
NSMutableArray<NSString*> *rewardedKeyList = [[NSMutableArray alloc] init];
NSMutableArray<NSString*> *rewardedInterstitialKeyList = [[NSMutableArray alloc] init];
NSMutableArray<NSString*> *appOpenKeyList = [[NSMutableArray alloc] init];
for (NSDictionary* response in responseList) {
// นี่คือตัวอย่างการตั้งค่ารายการคีย์โฆษณา (is_default = false) เมื่อคุณต้องการใส่คีย์โฆษณาโดยตรง
if (response[@"is_default"] != nil && [response[@"is_default"] boolValue] == false) {
NSString* hiveAdKey = response[@"key"];
NSString* hiveForm = response[@"form"];
if ([hiveForm isEqualToString: @"interstitial"]) {
[interstitialKeyList addObject: hiveAdKey];
} else if ([hiveForm isEqualToString: @"banner"]) {
[bannerKeyList addObject: hiveAdKey];
} else if ([hiveForm isEqualToString: @"native"]) {
[nativeKeyList addObject: hiveAdKey];
} else if ([hiveForm isEqualToString: @"rewarded"]) {
[rewardedKeyList addObject: hiveAdKey];
} else if ([hiveForm isEqualToString: @"rewarded_interstitial"]) {
[rewardedInterstitialKeyList addObject: hiveAdKey];
} else if ([hiveForm isEqualToString: @"app_open"]) {
[appOpenKeyList addObject: hiveAdKey];
}
}
}
NSLog(@"interstitialKeyList %@", interstitialKeyList);
NSLog(@"bannerKeyList %@", bannerKeyList);
NSLog(@"nativeKeyList %@", nativeKeyList);
NSLog(@"rewardedKeyList %@", rewardedKeyList);
NSLog(@"rewardedInterstitialKeyList %@", rewardedInterstitialKeyList);
NSLog(@"appOpenKeyList %@", appOpenKeyList);
}
}];
ไฟล์ JSON ที่ได้รับจากการเรียกใช้ฟังก์ชันเริ่มต้นจะมีรายการคีย์โฆษณาอยู่ รายการคีย์โฆษณามีรูปแบบดังต่อไปนี้
{
"keys":[
{
"mediation_id":5,
"key":"ca-app-pub-3940256099942544/5354046379",
"form":"rewarded_interstitial",
"is_default":true,
"placement_id":"lobby01"
},
{
"mediation_id":4,
"key":"ca-app-pub-3940256099942544/5224354917",
"form":"rewarded",
"is_default":true,
"placement_id":"game02"
},
{
"mediation_id":3,
"key":"ca-app-pub-3940256099942544/2247696110",
"form":"native",
"is_default":true,
"placement_id":"event01"
},
{
"mediation_id":1,
"key":"ca-app-pub-3940256099942544/1033173712",
"form":"interstitial",
"is_default":true,
"placement_id":"mission01"
},
{
"mediation_id":2,
"key":"ca-app-pub-3940256099942544/6300978111",
"form":"banner",
"is_default":true,
"placement_id":"main01"
},
{
"mediation_id":6,
"key":"ca-app-pub-3940256099942544/9257395921",
"form":"app_open",
"is_default":true,
"placement_id":"appopen01"
}
]
}
หากคุณทำการเริ่มต้นในโหมดทดสอบ คุณจะได้รับรายการคีย์โฆษณาทดสอบแม้ว่าจะไม่ได้ลงทะเบียนคีย์โฆษณา AdMob ในคอนโซล เมื่อเริ่มต้นในโหมดเชิงพาณิชย์ คุณจะได้รับรายการคีย์โฆษณา AdMob ที่ลงทะเบียนในคอนโซล
โฆษณาแต่ละประเภท (form
) จะมีโฆษณาหนึ่งรายการที่ใช้เป็น โฆษณาหลัก (โฆษณาที่มี "is_default":true
) เมื่อมีการลงทะเบียนโฆษณาประเภทใดประเภทหนึ่งเป็นครั้งแรก โฆษณาที่ลงทะเบียนครั้งแรกจะกลายเป็นโฆษณาหลัก โฆษณาหลักไม่จำเป็นต้องป้อนคีย์โฆษณา (hiveAdKey
) เมื่อสร้างอินสแตนซ์โฆษณา (initialize()
) หากต้องการเปลี่ยนโฆษณาหลัก จะต้องลบโฆษณาหลักเดิมในคอนโซลและลงทะเบียนโฆษณาใหม่
การตั้งค่า Listener การเรียกกลับโฆษณา¶
เมื่อสร้างอินสแตนซ์โฆษณาแต่ละรายการ คุณสามารถรับการเรียกกลับตามการเปลี่ยนแปลงสถานะโฆษณาได้โดยการใช้ AdizListener
ชื่อ | คำอธิบาย | การใช้งานที่จำเป็น |
---|---|---|
onLoad() | โหลดโฆษณาสำเร็จ | O |
onFail(error: AdizError) | ความล้มเหลว(error.getCode() และ error.getMessage() สามารถทราบเหตุผลของความล้มเหลว) | O |
onShow() | ความสำเร็จในการแสดงโฆษณา | O |
onClick() | คลิกโฆษณา | O |
onPaidEvent(_ revenueData: AdRevenueData) | จุดเวลาที่ได้รับ paid event หลังจากการแสดงโฆษณา โดยข้อมูลรายได้จากโฆษณาจะถูกส่งมอบ | O |
onClose() | ปิดโฆษณา
| X |
onRewarded(_ rewardItem: RewardItem) | จุดที่ผู้ใช้ได้รับรางวัลหลังจากการแสดงโฆษณาแบบให้รางวัล (rewarded , rewarded interstitial ) | X |
import HiveAdiz
class TestAdizListener: AdizListener {
func onLoad() {
// Called when the ad is loaded.
// If the ad load is successful, you need to call the ad instance's .show() at the desired point to display the ad.
print("[\(delegateTypeName)] onLoad")
}
func onFail(_ error: AdizError) {
// Called if the ad load failed or the ad display failed for some other reason.
print("[\(delegateTypeName)] onFail: ")
print("(\(error.getCode())) \(error.getMessage() ?? "")")
}
func onShow() {
// Called when the ad is displayed.
print("[\(delegateTypeName)] onShow")
}
func onClick() {
// Called when the ad is clicked.
print("[\(delegateTypeName)] onClick")
}
func onPaidEvent(_ revenueData: AdRevenueData) {
// Called when the revenue for the ad is generated.
print("[\(delegateTypeName)] onPaidEvent: \(revenueData.getCurrency()) \(revenueData.getRevenue().description)")
var revenue = revenueData.getRevenue() // revenue when ad is exposed
var currency = revenueData.getCurrency() // currency code for revenue when ad is exposed
}
func onClose() {
// Called when the ad is closed.
// Banner, Native ads do not have an onClose callback.
print("[\(delegateTypeName)] onClose")
}
func onRewarded(_ rewardItem: RewardItem) {
// Called when a reward occurs for watching the ad in rewarded, rewarded interstitial ads.
print("[\(delegateTypeName)] onRewarded")
print("amount: \(rewardItem.getItemAmount()) type: \(rewardItem.getItemType())")
var itemType = rewardItem.getItemType() // ประเภทของรางวัล
var itemAmount = rewardItem.getItemAmount() // จำนวนของรางวัล }}
#import <HiveAdiz/HiveAdiz-Swift.h>
@interface TestAdizListener : NSObject<AdizListener>
@end
@implementation TestAdizListener
- (void) onLoad {
// ถูกเรียกเมื่อโฆษณาถูกโหลด
// หากการโหลดโฆษณาสำเร็จ คุณต้องเรียกใช้ .show() ของอินสแตนซ์โฆษณาในจุดที่ต้องการเพื่อแสดงโฆษณา
NSLog(@"[TestAdizListener] onLoad");
}
- (void) onFail:(AdizError *)error {
// ถูกเรียกเมื่อการโหลดโฆษณาล้มเหลวหรือการแสดงโฆษณาล้มเหลวด้วยเหตุผลอื่น
NSLog(@"[TestAdizListener] onFail: ");
NSLog(@"errorCode: %ld, errorMessage: %@", (long)[error getCode], [error getMessage]);
}
- (void) onShow {
// แสดงเมื่อโฆษณาถูกแสดง.
NSLog(@"[TestAdizListener] onShow");
}
- (void) onClick {
// Called when the ad is clicked.
NSLog(@"[TestAdizListener] onClick");
}
- (void) onPaidEvent:(AdRevenueData *)revenueData {
// โดนเรียกเมื่อรายได้จากโฆษณาถูกสร้างขึ้น
NSLog(@"[TestAdizListener] onPaidEvent: %@ %f", [revenueData getCurrency], [revenueData getRevenue]);
double revenue = [revenueData getRevenue]; // รายได้เมื่อโฆษณาแสดง
NSString* currency = [revenueData getCurrency]; // รหัสสกุลเงินสำหรับรายได้เมื่อโฆษณาแสดง
}
- (void) onClose {
// ถูกเรียกเมื่อโฆษณาถูกปิด
// แบนเนอร์, โฆษณาเนทีฟไม่มีการเรียกกลับ onClose
NSLog(@"[TestAdizListener] onClose");
}
- (void) onRewarded:(RewardItem *)rewardItem {
// เรียกเมื่อมีการให้รางวัลสำหรับการดูโฆษณาในโฆษณาที่ให้รางวัล, โฆษณาแบบอินเตอร์สเตเชียลที่ให้รางวัล。
NSLog(@"[TestAdizListener] onRewarded");
NSLog(@"amount: %ld type: %@", (long)[rewardItem getItemAmount], [rewardItem getItemType]);
NSString* itemType = [rewardItem getItemType]; // ประเภทของรางวัล
NSInteger itemAmount = [rewardItem getItemAmount]; // จำนวนประเภทของรางวัล
}
@end
รหัสข้อผิดพลาด¶
เมื่อได้รับ onFail()
จาก Adiz.Initialize
และ AdizListener
รหัสข้อผิดพลาด AdizError
และข้อความข้อผิดพลาดมีดังนี้
โค้ดทั่วไป¶
หมายเลข | กรณี | คำอธิบาย |
---|---|---|
0 | สำเร็จ | สำเร็จ |
รหัสข้อผิดพลาด Adiz¶
หมายเลข | กรณี | คำอธิบาย |
---|---|---|
-1 | InvalidParam | พารามิเตอร์ไม่ถูกต้อง |
-2 | NotSupported | ไม่รองรับ |
-3 | InProgress | สถานะกำลังดำเนินการ |
-4 | Network | ข้อผิดพลาดเครือข่าย |
-5 | NeedInitialize | ต้องการการเริ่มต้น |
-6 | ResponseFail | การตอบสนองล้มเหลว |
-7 | Timeout | หมดเวลาของเครือข่าย |
-99 | Unknown | ข้อผิดพลาดที่ไม่รู้จัก |
รหัสข้อผิดพลาดแพลตฟอร์มโฆษณา¶
หมายเลข | กรณี | คำอธิบาย |
---|---|---|
-101 | NeedLoad | โฆษณาไม่ได้โหลด |
-102 | NeedReload | ต้องโหลดใหม่เนื่องจากเวลาการแสดงโฆษณาหมดอายุ |
-103 | NotEnoughInventory | การตอบสนองของการจัดการสำเร็จ แต่ไม่มีโฆษณาที่เติมเต็มเนื่องจากขาดแคลนสินค้า |
-104 | MissingAppId | ข้อผิดพลาด AppID สำหรับคำขอการจัดการ |
-105 | InternalNetworkError | ข้อผิดพลาดเกี่ยวกับเครือข่ายการจัดการ |
-106 | InvalidUnitId | Unit Id ไม่ถูกต้อง |
-107 | MediationNoFill | ตัวปรับการจัดการไม่สามารถจัดการคำขอโฆษณาได้ |
-108 | AlreadyLoaded | อยู่ในสถานะที่โหลดแล้ว |
-109 | CannotRequestAds | ไม่สามารถขอโฆษณาได้ |
-201 | GdprConsentError | ข้อผิดพลาดการยินยอม GDPR |
-202 | IsNotPrivacyOptionsRequired | ไม่สามารถแสดงป๊อปอัปการยินยอม GDPR หรืออยู่ในสถานะที่ไม่ต้องแสดง |
การแสดงโฆษณาและการสิ้นสุดโฆษณา¶
ในการแสดงและสิ้นสุดโฆษณา ให้ทำตามขั้นตอนต่อไปนี้
- สร้างอินสแตนซ์โฆษณาจากคลาสโฆษณาตามประเภทโฆษณาที่ต้องการแสดง หากโฆษณาที่ต้องการแสดงไม่ใช่ โฆษณาพื้นฐาน จะต้องป้อนคีย์โฆษณาหรือ ID ตำแหน่งที่ได้รับจาก การเริ่มต้น หากไม่ป้อนคีย์โฆษณา (
hiveAdKey
) หรือ ID ตำแหน่ง (placementId
) จะสร้างอินสแตนซ์โฆษณาพื้นฐาน ID ตำแหน่งสามารถตั้งค่าได้ใน Hive Console และสำหรับรายละเอียดเพิ่มเติมโปรดดูที่หน้า การตั้งค่า Admob ในคู่มือคอนโซล - โหลดโฆษณาที่ต้องการแสดง (
load()
) - แสดงโฆษณาที่โหลดแล้ว (
show()
) หากต้องการแสดงโฆษณาอีกครั้งจะต้องเรียกload()
อีกครั้งจากนั้นเรียกshow()
- หากต้องการสิ้นสุดโฆษณาให้เรียก
destroy()
โฆษณาเต็มหน้าจอ (Interstitial)¶
โฆษณาที่ครอบคลุมทั้งหน้าจอ
import UIKit
import HiveAdiz
class InitViewController: UIViewController {
// สร้างอินสแตนซ์โฆษณาแบบระหว่าง
var interstitialAd: AdizInterstitial?
func requestInitAd(hiveAdKey: String?) {
if let adKey = hiveAdKey,
adKey.count > 0 {
// Initialize AdizInterstitial Instance (ViewController, hiveAdKey, AdizListener)
self.interstitialAd = AdizInterstitial.initialize(self, hiveAdKey: adKey, adizListener: self)
}
else {
// Initialize Default AdizInterstitial Instance (ViewController, AdizListener)
self.interstitialAd = AdizInterstitial.initialize(self, adizListener: self)
}
}
func requestInitAdWithPlacementId(placementId: String?) {
if let placementId = placementId,
placementId.count > 0 {
// Initialize AdizInterstitial Instance (ViewController, placementId, AdizListener)
self.interstitialAd = AdizInterstitial.initializeWithPlacementId(self, placementId: placementId, adizListener: self)
}
else {
// Initialize Default AdizInterstitial Instance (ViewController, AdizListener)
self.interstitialAd = AdizInterstitial.initialize(self, adizListener: self)
}
}
func requestLoadAd() {
// Load AdizInterstitial
if let ad = self.interstitialAd,
ad.isInitialized() {
ad.load()
}
}
func requestShowAd() {
// แสดง AdizInterstitial
if let ad = self.interstitialAd,
ad.isLoaded() {
ad.show()
}
}
func requestDestroyAd() {
// ทำลาย AdizInterstitial
self.interstitialAd?.destroy()
self.interstitialAd = nil
}
}
extension InitViewController: AdizListener {
func onLoad() {
// requestShowAd()
}
func onFail(_ error: AdizError) {
}
func onShow() {
}
func onClick() {
}
func onPaidEvent(_ revenueData: AdRevenueData) {
}
func onClose() {
// requestDestroyAd()
}
}
#import <UIKit/UIKit.h>
#import <HiveAdiz/HiveAdiz-Swift.h>
@interface InitViewController : UIViewController<AdizListener>
@property (nonatomic, strong) AdizInterstitial* interstitialAd;
@end
@implementation InitViewController
- (void) requestInitAd: (NSString*)hiveAdKey {
if (hiveAdKey != nil && ![hiveAdKey isEqualToString:@""]) {
// เริ่มต้น AdizInterstitial Instance (ViewController, hiveAdKey, AdizListener)
// สร้างอินสแตนซ์โฆษณาแบบเต็มหน้าจอ
self.interstitialAd = [AdizInterstitial initialize:self hiveAdKey:hiveAdKey adizListener:self];
}
else {
// เริ่มต้น Default AdizInterstitial Instance (ViewController, AdizListener)
self.interstitialAd = [AdizInterstitial initialize:self adizListener:self];
}
}
- (void) requestInitAdWithPlacementId: (NSString*)placementId {
if (placementId != nil && ![placementId isEqualToString:@""]) {
// เริ่มต้น AdizInterstitial Instance (ViewController, placementId, AdizListener)
// สร้างอินสแตนซ์โฆษณาแบบเต็มหน้าจอ
self.interstitialAd = [AdizInterstitial initializeWithPlacementId:self placementId:placementId adizListener:self];
}
else {
// เริ่มต้น AdizInterstitial Instance เริ่มต้น (ViewController, AdizListener)
self.interstitialAd = [AdizInterstitial initialize:self adizListener:self];
}
}
- (void) requestLoadAd {
// โหลด AdizInterstitial
if (self.interstitialAd != nil && [self.interstitialAd isInitialized]) {
[self.interstitialAd load];
}
}
- (void) requestShowAd {
// แสดง AdizInterstitial
if (self.interstitialAd != nil && [self.interstitialAd isLoaded]) {
[self.interstitialAd show];
}
}
- (void) requestDestroyAd {
// ทำลาย AdizInterstitial
if (self.interstitialAd != nil) {
[self.interstitialAd destroy];
self.interstitialAd = nil;
}
}
#pragma mark - AdizListener
- (void) onLoad {
// [self requestShowAd];
}
- (void) onFail:(AdizError *)error {
}
- (void) onShow {
}
- (void) onClick {
}
- (void) onPaidEvent:(AdRevenueData *)revenueData {
}
- (void) onClose {
// [self requestDestroyAd];
}
@end
โฆษณาแบนเนอร์ (Banner)¶
นี่คือโฆษณาแบนเนอร์ที่แสดงแบนเนอร์ขนาดเฉพาะ โฆษณาแบนเนอร์จะไม่รับ onClose()
callback ดังนั้นคุณต้องเรียกใช้ destroy()
จากตำแหน่งอื่นเพื่อสิ้นสุดโฆษณา
BannerSize
เป็นขนาดแบนเนอร์มาตรฐาน
ขนาดพอยต์ (กว้างxสูง) | คำอธิบาย | กลุ่มเป้าหมาย | ค่าคงที่ BannerSize |
---|---|---|---|
320x50 | แบนเนอร์ | โทรศัพท์มือถือและแท็บเล็ต | BannerSize.normal |
320x100 | แบนเนอร์ขนาดใหญ่ | โทรศัพท์มือถือและแท็บเล็ต | BannerSize.medium |
300x250 | IAB ขนาดกลางสี่เหลี่ยมผืนผ้า | โทรศัพท์มือถือและแท็บเล็ต | BannerSize.large |
468 x 60 | IAB แบนเนอร์ขนาดเต็ม | แท็บเล็ต | BannerSize.full |
PositionType
คือด้านบนสุดหรือล่างสุด ค่าเริ่มต้นคือด้านล่างสุด
การจัดเรียง | คำอธิบาย | ค่าคงที่ PositionType |
---|---|---|
การจัดเรียงที่ด้านบนสุด | กำหนดการจัดเรียงที่ด้านบนสุดของหน้าจออิงจาก SafeArea | PositionType.top |
การจัดเรียงที่ด้านล่างสุด (ค่าเริ่มต้น) | กำหนดการจัดเรียงที่ด้านล่างสุดของหน้าจออิงจาก SafeArea | PositionType.bottom |
import UIKit
import HiveAdiz
class BannerViewController: UIViewController {
// สร้าง AdizBanner Instance
// สร้างตัวอย่างโฆษณาแบนเนอร์
var bannerAd: AdizBanner?
func requestInitAd(hiveAdKey: String?) { // ตั้งค่าขนาดแบนเนอร์
var bannerSize: BannerSize = .normal
if let adKey = hiveAdKey,
adKey.count > 0 {
// เริ่มต้น AdizBanner Instance (ViewController, hiveAdKey, BannerSize, AdizListener)
self.bannerAd = AdizBanner.initialize(self, hiveAdKey: adKey, size: bannerSize, adizListener: self)
}
else {
// เริ่มต้น Default AdizBanner Instance (ViewController, BannerSize, AdizListener)
self.bannerAd = AdizBanner.initialize(self, size: bannerSize, adizListener: self)
}
}
func requestInitAdWithPlacementId(placementId: String?) { // ตั้งค่าขนาดแบนเนอร์
var bannerSize: BannerSize = .normal
if let placementId = placementId,
placementId.count > 0 {
// เริ่มต้น AdizBanner Instance (ViewController, placementId, BannerSize, AdizListener)
self.bannerAd = AdizBanner.initializeWithPlacementId(self, placementId: placementId, size: bannerSize, adizListener: self)
}
else {
// เริ่มต้น Default AdizBanner Instance (ViewController, BannerSize, AdizListener)
self.bannerAd = AdizBanner.initialize(self, size: bannerSize, adizListener: self)
}
}
func requestLoadAd() {
// โหลด AdizBanner
if let ad = self.bannerAd,
ad.isInitialized() {
ad.load()
}
}
func requestShowAd() {
// ตั้งค่าประเภทตำแหน่ง
var position: PositionType = .top
// แสดง AdizBanner
if let ad = self.bannerAd,
ad.isLoaded() {
ad.show(position)
}
}
func requestDestroyAd() {
// ทำลาย AdizBanner
self.bannerAd?.destroy()
self.bannerAd = nil
}
}
extension BannerViewController: AdizListener {
func onLoad() {
// requestShowAd()
}
func onFail(_ error: AdizError) {
}
func onShow() {
}
func onClick() {
}
func onPaidEvent(_ revenueData: AdRevenueData) {
}
}
#import <UIKit/UIKit.h>
#import <HiveAdiz/HiveAdiz-Swift.h>
@interface BannerViewController : UIViewController<AdizListener>
@property (nonatomic, strong) AdizBanner* bannerAd;
@end
@implementation BannerViewController
- (void) requestInitAd: (NSString*)hiveAdKey {
// ตั้งค่าขนาดแบนเนอร์
BannerSize bannerSize = BannerSizeNormal;
if (hiveAdKey != nil && ![hiveAdKey isEqualToString:@""]) {
// Initialize AdizBanner Instance (ViewController, hiveAdKey, BannerSize, AdizListener)
self.bannerAd = [AdizBanner initialize:self hiveAdKey:hiveAdKey size: bannerSize adizListener:self];
} else {
// Initialize Default AdizBanner Instance (ViewController, BannerSize, AdizListener)
self.bannerAd = [AdizBanner initialize:self size:bannerSize adizListener:self];
}
}
- (void) requestInitAdWithPlacementId: (NSString*)placementId {
// ตั้งค่าขนาดแบนเนอร์
BannerSize bannerSize = BannerSizeNormal;
if (placementId != nil && ![placementId isEqualToString:@""]) {
// Initialize AdizBanner Instance (ViewController, placementId, BannerSize, AdizListener)
self.bannerAd = [AdizBanner initializeWithPlacementId:self placementId:placementId size: bannerSize adizListener:self];
} else {
// Initialize Default AdizBanner Instance (ViewController, BannerSize, AdizListener)
self.bannerAd = [AdizBanner initialize:self size:bannerSize adizListener:self];
}
}
- (void) requestLoadAd {
// โหลด AdizBanner
if (self.bannerAd != nil && [self.bannerAd isInitialized]) {
[self.bannerAd load];
}
}
- (void) requestShowAd {
// ตั้งค่าประเภทตำแหน่ง
PositionType position = PositionTypeTop;
// แสดง AdizBanner
if (self.bannerAd != nil && [self.bannerAd isLoaded]) {
[self.bannerAd show: position];
}
}
- (void) requestDestroyAd {
// ทำลาย AdizBanner
if (self.bannerAd != nil) {
[self.bannerAd destroy];
self.bannerAd = nil;
}
}
#pragma mark - AdizListener
- (void) onLoad {
// [self requestShowAd];
}
- (void) onFail:(AdizError *)error {
}
- (void) onShow {
}
- (void) onClick {
}
- (void) onPaidEvent:(AdRevenueData *)revenueData {
}
@end
โฆษณาเนทีฟ (Native)¶
โฆษณาเนทีฟที่แสดงเทมเพลตเนทีฟขนาดเฉพาะ โฆษณาเนทีฟได้รับการปรับให้เหมาะสมสำหรับหน้าจอแนวตั้ง ดังนั้นจึงแนะนำให้ใช้ในเกมแนวตั้ง (เกมหน้าจอแนวตั้ง) โฆษณาเนทีฟจะไม่รับ onClose()
คอลแบ็ก ดังนั้นคุณต้องเรียก destroy()
จากตำแหน่งอื่นเพื่อสิ้นสุดโฆษณา
เทมเพลตปัจจุบันรองรับขนาด small
หรือ medium
ขนาดพ้อย (กว้างxสูง) | เทมเพลต | การจัดเรียง | ค่าคงที่ BannerSize |
---|---|---|---|
355x91 (ปรับอัตราส่วน) | ขนาดเล็ก | บน / ล่าง | BannerSize.normal |
355x370 (ปรับอัตราส่วน) | ขนาดกลาง | กลาง (คงที่) | BannerSize.medium, BannerSize.large, BannerSize.full |
ในเทมเพลต small
PositionType
จะอยู่ที่ด้านบนสุดหรือล่างสุด โดยค่าเริ่มต้นคือด้านล่างสุด
การจัดเรียง | คำอธิบาย | ค่าคงที่ PositionType |
---|---|---|
การจัดเรียงที่ด้านบนสุด | กำหนดการจัดเรียงที่ด้านบนสุดของหน้าจอ | PositionType.top |
การจัดเรียงที่ด้านล่างสุด (ค่าเริ่มต้น) | กำหนดการจัดเรียงที่ด้านล่างสุดของหน้าจอ | PositionType.bottom |
เทมเพลต medium
ไม่สามารถเลือกการจัดเรียงได้ และจะใช้การจัดเรียงกลางเป็นค่าเริ่มต้น
import UIKit
import HiveAdiz
class NativeViewController: UIViewController {
// สร้างอินสแตนซ์ AdizNative
var nativeAd: AdizNative?
func requestInitAd(hiveAdKey: String?) {
// ตั้งค่าขนาดแบนเนอร์
var bannerSize: BannerSize = .normal
if let adKey = hiveAdKey,
adKey.count > 0 {
// เริ่มต้น AdizNative Instance (ViewController, hiveAdKey, BannerSize, AdizListener)
self.nativeAd = AdizNative.initialize(self, hiveAdKey: adKey, size: bannerSize, adizListener: self)
}
else {
// เริ่มต้น Default AdizNative Instance (ViewController, BannerSize, AdizListener)
self.nativeAd = AdizNative.initialize(self, size: bannerSize, adizListener: self)
}
}
func requestInitAdWithPlacementId(placementId: String?) {
// ตั้งค่าขนาดแบนเนอร์
var bannerSize: BannerSize = .normal
if let placementId = placementId,
placementId.count > 0 {
// เริ่มต้น AdizNative Instance (ViewController, placementId, BannerSize, AdizListener)
self.nativeAd = AdizNative.initializeWithPlacementId(self, placementId: placementId, size: bannerSize, adizListener: self)
}
else {
// เริ่มต้น Default AdizNative Instance (ViewController, BannerSize, AdizListener)
self.nativeAd = AdizNative.initialize(self, size: bannerSize, adizListener: self)
}
}
func requestLoadAd() {
// Load AdizNative
if let ad = self.nativeAd,
ad.isInitialized() {
ad.load()
}
}
func requestShowAd() {
// ตั้งค่าประเภทตำแหน่ง
var position: PositionType = .top
// แสดง AdizNative
if let ad = self.nativeAd,
ad.isLoaded() {
ad.show(position)
}
}
func requestDestroyAd() {
// ทำลาย AdizNative
self.nativeAd?.destroy()
self.nativeAd = nil
}
}
extension NativeViewController: AdizListener {
func onLoad() {
// requestShowAd()
}
func onFail(_ error: AdizError) {
}
func onShow() {
}
func onClick() {
}
func onPaidEvent(_ revenueData: AdRevenueData) {
}
}
#import <UIKit/UIKit.h>
#import <HiveAdiz/HiveAdiz-Swift.h>
@interface NativeViewController : UIViewController<AdizListener>
@property (nonatomic, strong) AdizNative* nativeAd;
@end
@implementation NativeViewController
- (void) requestInitAd: (NSString*)hiveAdKey {
// ตั้งค่าขนาดแบนเนอร์
BannerSize bannerSize = BannerSizeNormal;
if (hiveAdKey != nil && ![hiveAdKey isEqualToString:@""]) {
// เริ่มต้น AdizNative Instance (ViewController, hiveAdKey, BannerSize, AdizListener)
self.nativeAd = [AdizNative initialize:self hiveAdKey:hiveAdKey size: bannerSize adizListener:self];
}
else {
// เริ่มต้น Default AdizNative Instance (ViewController, BannerSize, AdizListener)
self.nativeAd = [AdizNative initialize:self size:bannerSize adizListener:self];
}
}
- (void) requestInitAdWithPlacementId: (NSString*)placementId {
// ตั้งค่าขนาดแบนเนอร์
BannerSize bannerSize = BannerSizeNormal;
if (placementId != nil && ![placementId isEqualToString:@""]) {
// เริ่มต้น AdizNative Instance (ViewController, placementId, BannerSize, AdizListener)
self.nativeAd = [AdizNative initializeWithPlacementId:self placementId:placementId size: bannerSize adizListener:self];
}
else {
// เริ่มต้น AdizNative Instance เริ่มต้น (ViewController, BannerSize, AdizListener)
self.nativeAd = [AdizNative initialize:self size:bannerSize adizListener:self];
}
}
- (void) requestLoadAd {
// โหลด AdizNative
if (self.nativeAd != nil && [self.nativeAd isInitialized]) {
[self.nativeAd load];
}
}
- (void) requestShowAd {
// ตั้งค่าประเภทตำแหน่ง
PositionType position = PositionTypeTop;
// แสดง AdizNative
if (self.nativeAd != nil && [self.nativeAd isLoaded]) {
[self.nativeAd show: position];
}
}
- (void) requestDestroyAd {
// ทำลาย AdizNative
if (self.nativeAd != nil) {
[self.nativeAd destroy];
self.nativeAd = nil;
}
}
#pragma mark - AdizListener
- (void) onLoad {
// [self requestShowAd];
}
- (void) onFail:(AdizError *)error {
}
- (void) onShow {
}
- (void) onClick {
}
- (void) onPaidEvent:(AdRevenueData *)revenueData {
}
@end
โฆษณาแบบให้รางวัล (Rewarded)¶
โฆษณาแบบให้รางวัลที่ผู้ใช้จะได้รับรางวัลเมื่อดูโฆษณานานกว่าที่กำหนด เมื่อการจ่ายรางวัลเสร็จสิ้น จะได้รับข้อมูลไอเท็มรางวัลผ่าน onRewarded()
คอลแบ็ก
import UIKit
import HiveAdiz
class RewardViewController: UIViewController {
// สร้าง AdizRewarded Instance
var rewardAd: AdizRewarded?
func requestInitAd(hiveAdKey: String?) {
if let adKey = hiveAdKey,
adKey.count > 0 {
// Initialize AdizRewarded Instance (ViewController, hiveAdKey, AdizListener)
self.rewardAd = AdizRewarded.initialize(self, hiveAdKey: adKey, adizListener: self)
}
else {
// Initialize Default AdizRewarded Instance (ViewController, AdizListener)
self.rewardAd = AdizRewarded.initialize(self, adizListener: self)
}
}
func requestInitAdWithPlacementId(placementId: String?) {
if let placementId = placementId,
placementId.count > 0 {
// Initialize AdizRewarded Instance (ViewController, placementId, AdizListener)
self.rewardAd = AdizRewarded.initializeWithPlacementId(self, placementId: placementId, adizListener: self)
}
else {
// Initialize Default AdizRewarded Instance (ViewController, AdizListener)
self.rewardAd = AdizRewarded.initialize(self, adizListener: self)
}
}
func requestLoadAd() {
// โหลด AdizRewarded
if let ad = self.rewardAd,
ad.isInitialized() {
ad.load()
}
}
func requestShowAd() {
// แสดง AdizRewarded
if let ad = self.rewardAd,
ad.isLoaded() {
ad.show()
}
}
func requestDestroyAd() {
// ทำลาย AdizRewarded
self.rewardAd?.destroy()
self.rewardAd = nil
}
}
extension RewardViewController: AdizListener {
func onLoad() {
// requestShowAd()
}
func onFail(_ error: AdizError) {
}
func onShow() {
}
func onClick() {
}
func onPaidEvent(_ revenueData: AdRevenueData) {
}
func onClose() {
// requestDestroyAd()
}
func onRewarded(_ rewardItem: RewardItem) {
}
}
#import <UIKit/UIKit.h>
#import <HiveAdiz/HiveAdiz-Swift.h>
@interface RewardedViewController : UIViewController<AdizListener>
@property (nonatomic, strong) AdizRewarded* rewardedAd;
@end
@implementation RewardedViewController
- (void) requestInitAd: (NSString*)hiveAdKey {
if (hiveAdKey != nil && ![hiveAdKey isEqualToString:@""]) {
// Initialize AdizRewarded Instance (ViewController, hiveAdKey, AdizListener)
self.rewardedAd = [AdizRewarded initialize:self hiveAdKey:hiveAdKey adizListener:self];
}
else {
// Initialize Default AdizRewarded Instance (ViewController, AdizListener)
self.rewardedAd = [AdizRewarded initialize:self adizListener:self];
}
}
- (void) requestInitAdWithPlacementId: (NSString*)placementId {
if (placementId != nil && ![placementId isEqualToString:@""]) {
// เริ่มต้น AdizRewarded Instance (ViewController, placementId, AdizListener)
self.rewardedAd = [AdizRewarded initializeWithPlacementId:self placementId:placementId adizListener:self];
}
else {
// เริ่มต้น Default AdizRewarded Instance (ViewController, AdizListener)
self.rewardedAd = [AdizRewarded initialize:self adizListener:self];
}
}
- (void) requestLoadAd {
// โหลด AdizRewarded
if (self.rewardedAd != nil && [self.rewardedAd isInitialized]) {
[self.rewardedAd load];
}
}
- (void) requestShowAd {
// แสดง AdizRewarded
if (self.rewardedAd != nil && [self.rewardedAd isLoaded]) {
[self.rewardedAd show];
}
}
- (void) requestDestroyAd {
// ทำลาย AdizRewarded
if (self.rewardedAd != nil) {
[self.rewardedAd destroy];
self.rewardedAd = nil;
}
}
#pragma mark - AdizListener
- (void) onLoad {
// [self requestShowAd];
}
- (void) onFail:(AdizError *)error {
}
- (void) onShow {
}
- (void) onClick {
}
- (void) onPaidEvent:(AdRevenueData *)revenueData {
}
- (void) onClose {
// [self requestDestroyAd];
}
- (void) onRewarded:(RewardItem *)rewardItem {
}
@end
โฆษณาแบบเต็มหน้าจอที่มีรางวัล (Rewarded Interstitial)¶
โฆษณาแบบเต็มหน้าจอที่ผู้ใช้จะได้รับรางวัลเมื่อดูโฆษณานานกว่าที่กำหนด เมื่อการจ่ายรางวัลเสร็จสิ้น จะได้รับข้อมูลรายการรางวัลผ่านการเรียกกลับ onRewarded()
import UIKit
import HiveAdiz
class RewardInterstitialViewController: UIViewController {
// สร้างอินสแตนซ์ AdizRewardedInterstitial
var rewardInterstitialAd: AdizRewardedInterstitial?
func requestInitAd(hiveAdKey: String?) {
if let adKey = hiveAdKey,
adKey.count > 0 {
// เริ่มต้น AdizRewardedInterstitial Instance (ViewController, hiveAdKey, AdizListener)
self.rewardInterstitialAd = AdizRewardedInterstitial.initialize(self, hiveAdKey: adKey, adizListener: self)
}
else {
// เริ่มต้น Default AdizRewardedInterstitial Instance (ViewController, AdizListener)
self.rewardInterstitialAd = AdizRewardedInterstitial.initialize(self, adizListener: self)
}
}
func requestInitAdWithPlacementId(placementId: String?) {
if let placementId = placementId,
placementId.count > 0 {
// Initialize AdizRewardedInterstitial Instance (ViewController, placementId, AdizListener)
self.rewardInterstitialAd = AdizRewardedInterstitial.initializeWithPlacementId(self, placementId: placementId, adizListener: self)
}
else {
// Initialize Default AdizRewardedInterstitial Instance (ViewController, AdizListener)
self.rewardInterstitialAd = AdizRewardedInterstitial.initialize(self, adizListener: self)
}
}
func requestLoadAd() {
// โหลด AdizRewardedInterstitial
if let ad = self.rewardInterstitialAd,
ad.isInitialized() {
ad.load()
}
}
func requestShowAd() {
// แสดง AdizRewardedInterstitial
if let ad = self.rewardInterstitialAd,
ad.isLoaded() {
ad.show()
}
}
func requestDestroyAd() {
// ทำลาย AdizRewardedInterstitial
self.rewardInterstitialAd?.destroy()
self.rewardInterstitialAd = nil
}
}
extension RewardInterstitialViewController: AdizListener {
func onLoad() {
// requestShowAd()
}
func onFail(_ error: AdizError) {
}
func onShow() {
}
func onClick() {
}
func onPaidEvent(_ revenueData: AdRevenueData) {
}
func onClose() {
// requestDestroyAd()
}
func onRewarded(_ rewardItem: RewardItem) {
}
}
#import <UIKit/UIKit.h>
#import <HiveAdiz/HiveAdiz-Swift.h>
@interface RewardedInterstitialViewController : UIViewController<AdizListener>
@property (nonatomic, strong) AdizRewardedInterstitial* rewardedInterstitialAd;
@end
@implementation RewardedInterstitialViewController
- (void) requestInitAd: (NSString*)hiveAdKey {
if (hiveAdKey != nil && ![hiveAdKey isEqualToString:@""]) {
// เริ่มต้น AdizRewardedInterstitial Instance (ViewController, hiveAdKey, AdizListener)
self.rewardedInterstitialAd = [AdizRewardedInterstitial initialize:self hiveAdKey:hiveAdKey adizListener:self];
}
else {
// เริ่มต้น Default AdizRewardedInterstitial Instance (ViewController, AdizListener)
self.rewardedInterstitialAd = [AdizRewardedInterstitial initialize:self adizListener:self];
}
}
- (void) requestInitAdWithPlacementId: (NSString*)placementId {
if (placementId != nil && ![placementId isEqualToString:@""]) {
// เริ่มต้น AdizRewardedInterstitial Instance (ViewController, placementId, AdizListener)
self.rewardedInterstitialAd = [AdizRewardedInterstitial initializeWithPlacementId:self placementId:placementId adizListener:self];
}
else {
// เริ่มต้น Default AdizRewardedInterstitial Instance (ViewController, AdizListener)
self.rewardedInterstitialAd = [AdizRewardedInterstitial initialize:self adizListener:self];
}
}
- (void) requestLoadAd {
// โหลด AdizRewardedInterstitial
if (self.rewardedInterstitialAd != nil && [self.rewardedInterstitialAd isInitialized]) {
[self.rewardedInterstitialAd load];
}
}
- (void) requestShowAd {
// แสดง AdizRewardedInterstitial
if (self.rewardedInterstitialAd != nil && [self.rewardedInterstitialAd isLoaded]) {
[self.rewardedInterstitialAd show];
}
}
- (void) requestDestroyAd {
// ทำลาย AdizRewardedInterstitial
if (self.rewardedInterstitialAd != nil) {
[self.rewardedInterstitialAd destroy];
self.rewardedInterstitialAd = nil;
}
}
#pragma mark - AdizListener
- (void) onLoad {
// [self requestShowAd];
}
- (void) onFail:(AdizError *)error {
}
- (void) onShow {
}
- (void) onClick {
}
- (void) onPaidEvent:(AdRevenueData *)revenueData {
}
- (void) onClose {
// [self requestDestroyAd];
}
- (void) onRewarded:(RewardItem *)rewardItem {
}
@end
โฆษณาเปิดแอป (AppOpen)¶
โฆษณาเปิดแอปคือโฆษณาที่แสดงเมื่อสถานะของแอปเปลี่ยนจากเบื้องหลังไปยังเบื้องหน้า โดยจะมีการโหลดโฆษณาล่วงหน้า (load()
) เมื่อโหลดโฆษณาเสร็จแล้ว หากเรียก show()
หลังจากผ่านไป 3 ชั่วโมง โฆษณาจะถูกโหลดใหม่โดยอัตโนมัติและแสดงผล อย่างไรก็ตาม หลังจากที่แสดงโฆษณาอย่างน้อยหนึ่งครั้งแล้ว โฆษณาจะไม่ถูกโหลดโดยอัตโนมัติอีกต่อไป
import UIKit
import HiveAdiz
class AppOpenViewController: UIViewController {
// สร้าง AdizAppOpen Instance
var appOpenAd: AdizAppOpen?
func requestInitAd(hiveAdKey: String?) {
if let adKey = hiveAdKey,
adKey.count > 0 {
// เริ่มต้น AdizAppOpen Instance (ViewController, hiveAdKey, AdizListener)
self.appOpenAd = AdizAppOpen.initialize(self, hiveAdKey: adKey, adizListener: self)
}
else {
// เริ่มต้น Default AdizAppOpen Instance (ViewController, AdizListener)
self.appOpenAd = AdizAppOpen.initialize(self, adizListener: self)
}
}
func requestInitAdWithPlacementId(placementId: String?) {
if let placementId = placementId,
placementId.count > 0 {
// Initialize AdizAppOpen Instance (ViewController, placementId, AdizListener)
self.appOpenAd = AdizAppOpen.initializeWithPlacementId(self, placementId: placementId, adizListener: self)
}
else {
// Initialize Default AdizAppOpen Instance (ViewController, AdizListener)
self.appOpenAd = AdizAppOpen.initialize(self, adizListener: self)
}
}
func requestLoadAd() {
// โหลด AdizAppOpen
if let ad = self.appOpenAd,
ad.isInitialized() {
ad.load()
}
}
func requestShowAd() {
print("[appOpenAd] appOpenAd don't request Show")
}
func requestDestroyAd() {
// ทำลาย AdizAppOpen
self.appOpenAd?.destroy()
self.appOpenAd = nil
}
}
extension AppOpenViewController: AdizListener {
func onLoad() {
}
func onFail(_ error: AdizError) {
}
func onShow() {
}
func onClick() {
}
func onPaidEvent(_ revenueData: AdRevenueData) {
}
func onClose() {
// requestDestroyAd()
}
}
#import <UIKit/UIKit.h>
#import <HiveAdiz/HiveAdiz-Swift.h>
@interface AppOpenViewController : UIViewController<AdizListener>
@property (nonatomic, strong) AdizAppOpen* appOpenAd;
@end
@implementation AppOpenViewController
- (void) requestInitAd: (NSString*)hiveAdKey {
if (hiveAdKey != nil && ![hiveAdKey isEqualToString:@""]) {
// Initialize AdizAppOpen Instance (ViewController, hiveAdKey, AdizListener)
self.appOpenAd = [AdizAppOpen initialize:self hiveAdKey:hiveAdKey adizListener:self];
}
else {
// Initialize Default AdizAppOpen Instance (ViewController, AdizListener)
self.appOpenAd = [AdizAppOpen initialize:self adizListener:self];
}
}
- (void) requestInitAdWithPlacementId: (NSString*)placementId {
if (placementId != nil && ![placementId isEqualToString:@""]) {
// Initialize AdizAppOpen Instance (ViewController, placementId, AdizListener)
self.appOpenAd = [AdizAppOpen initializeWithPlacementId:self placementId:placementId adizListener:self];
}
else {
// Initialize Default AdizAppOpen Instance (ViewController, AdizListener)
self.appOpenAd = [AdizAppOpen initialize:self adizListener:self];
}
}
- (void) requestLoadAd {
// โหลด AdizAppOpen
if (self.appOpenAd != nil && [self.appOpenAd isInitialized]) {
[self.appOpenAd load];
}
}
- (void) requestShowAd {
NSLog(@"[appOpenAd] appOpenAd don't request Show");
}
- (void) requestDestroyAd {
// ทำลาย AdizAppOpen
if (self.appOpenAd != nil) {
[self.appOpenAd destroy];
self.appOpenAd = nil;
}
}
#pragma mark - AdizListener
- (void) onLoad {
}
- (void) onFail:(AdizError *)error {
}
- (void) onShow {
}
- (void) onClick {
}
- (void) onPaidEvent:(AdRevenueData *)revenueData {
}
- (void) onClose {
// [self requestDestroyAd];
}
@end