Ios
Adiz iOS¶
Adiz iOS เป็นโมดูลโฆษณาสำหรับ iOS ที่มีให้บริการบนแพลตฟอร์ม Hive เพื่อให้ง่ายต่อการใช้ฟีเจอร์การแสดงโฆษณาที่เสนอโดย AdMob ประเภทของโฆษณาที่ให้บริการโดย Adiz iOS มีดังนี้
- โฆษณาแบบ Interstitial
- โฆษณาแบบ Banner
- โฆษณาแบบ Native
- โฆษณาแบบ Rewarded
- โฆษณาแบบ Interstitial ที่ให้รางวัล
- โฆษณาแบบ App Open
ในการติดตั้งและใช้งาน Adiz iOS กรุณาอ้างอิงจากคู่มือด้านล่างตามลำดับ
การเตรียมการ¶
ตั้งค่าพื้นที่พัฒนาของ Adiz iOS.
การติดตั้ง¶
เพิ่มคีย์ GADApplicationIdentifier
ลงในไฟล์ Info.plist ของโปรเจกต์ Xcode ของคุณ และใส่ค่า AdMobId
(ในรูปแบบ ca-app-pub-XXXXX~YYYYY) เป็นค่าของคีย์นั้น
นอกจากนี้ สำหรับ iOS 14 ขึ้นไป โปรดดูที่ คู่มือการอัปเดต 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.3'
end
target 'Unity-iPhone' do
end
use_frameworks!
# fix for dyld issue in pods when using Project
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
# xcode 15 Toolchain Issue
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 }
# end
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
ใช้การตั้งค่า CocoaPod ด้วย $pod install
การตั้งค่าโฆษณาทดสอบ¶
Adiz สามารถแสดงโฆษณาทดสอบได้สองวิธี
- เปิดโหมดทดสอบ: จะแสดงเฉพาะโฆษณาทดสอบที่ออกโดย AdMob
- แสดงโฆษณาหลังจากลงทะเบียนอุปกรณ์ทดสอบ: แสดงโฆษณาจริงสำหรับการทดสอบ โดยมั่นใจว่าจะไม่มีการเข้าชมที่ไม่ถูกต้อง และดำเนินการโดยการลงทะเบียนอุปกรณ์ที่จะแสดงโฆษณาทดสอบ
เปิดโหมดทดสอบ¶
ในระยะการพัฒนา เปิดโหมดทดสอบเพื่อให้การคลิกโฆษณาทดสอบไม่คิดค่าใช้จ่ายกับผู้โฆษณา เมื่อเปิดโหมดทดสอบ จะมีเพียงโฆษณาทดสอบเท่านั้นที่จะแสดง ในโหมดทดสอบ โฆษณาทดสอบจะแสดงแม้ว่าจะไม่มีการป้อนคีย์โฆษณา AdMob ในคอนโซล ปิดโหมดทดสอบในระหว่างการจัดจำหน่ายเชิงพาณิชย์.
มีสองวิธีในการเปิดใช้งานโหมดทดสอบ.
<
- หลังจากลงทะเบียนอุปกรณ์ทดสอบในคอนโซล Hive ให้ตั้งค่าเป็น โฆษณาสาธิต (แนะนำ):
โปรดดูที่ส่วน การจัดการอุปกรณ์ทดสอบ ของคู่มือคอนโซล - ใช้ Adiz คลาส's
setTestMode()
เมธอด:
ดูที่ ตัวอย่างโค้ดด้านล่าง.
Note
เมื่อไม่ได้อยู่ในโหมดทดสอบในระหว่างขั้นตอนการพัฒนา การคลิกโฆษณาอย่างมากอาจถือว่าเป็นการเข้าชมที่ไม่ถูกต้อง และบัญชี AdMob ของคุณอาจถูกแจ้งรายงาน ซึ่งจะทำให้ไม่สามารถแสดงโฆษณาได้
การใช้เมธอด Adiz.setTestMode()¶
การโฆษณาอุปกรณ์ทดสอบ¶
ในสถานการณ์ต่อไปนี้ คุณต้องลงทะเบียนอุปกรณ์ทดสอบเพื่อแสดงโฆษณาทดสอบ.
- ทดสอบว่า AdMob ad key ที่ลงทะเบียนในคอนโซลทำงานได้อย่างถูกต้อง
- เขียน ข้อความ GDPR และตรวจสอบว่า popup การยินยอม GDPR ทำงานถูกต้องหรือไม่
- รัน เครื่องมือวิเคราะห์โฆษณา เพื่อวิเคราะห์และแก้ไขข้อผิดพลาดในการร้องขอโฆษณา
<
มีสองวิธีในการแสดงโฆษณาบนอุปกรณ์ทดสอบ.
-
หลังจากลงทะเบียนอุปกรณ์ทดสอบในคอนโซล Hive ให้ตั้งค่าเป็น ใช้หมายเลขประจำหน่วยโฆษณา (แนะนำ):
กรุณาอ้างอิงเนื้อหาของ การจัดการอุปกรณ์ทดสอบ ในคู่มือคอนโซล. -
ใช้ Adiz คลาส's
setTestDevice()
วิธีการ:
กรุณาอ้างอิงไปที่ ตัวอย่างโค้ด ด้านล่าง.
Note
หากคุณทำการทดสอบที่แสดงโฆษณาจริงโดยไม่ลงทะเบียนอุปกรณ์ทดสอบ อาจถือว่าเป็นการเข้าชมที่ไม่ถูกต้อง และบัญชี AdMob ของคุณอาจถูกบล็อก ซึ่งจะป้องกันไม่ให้มีการแสดงโฆษณาเพิ่มเติม เมื่อคุณลงทะเบียนอุปกรณ์ทดสอบ โหมดทดสอบหรือโฆษณาทดสอบ (โฆษณาแบบเนทีฟ) จะถูกแสดงระหว่างการแสดงโฆษณา คุณต้องปิดการใช้งานอุปกรณ์ทดสอบระหว่างการจัดจำหน่ายเชิงพาณิชย์.
แบนเนอร์ โฆษณาเต็มหน้าจอ หรือโฆษณาแบบให้รางวัล
การใช้เมธอด Adiz.setTestDevice()¶
ในการลงทะเบียนอุปกรณ์ทดสอบ คุณต้องตรวจสอบ ID ของอุปกรณ์ทดสอบก่อน ID ของอุปกรณ์ทดสอบ (เช่น: B74F6468-1516-467C-99AD-CC5973C5DB52
) สามารถยืนยันได้ในสองวิธีดังต่อไปนี้
Adiz.Initialize()
เรียกและตรวจสอบบันทึก Logcat:- หลังจากเรียกใช้
Adiz.Initialize()
ไม่ว่าจะเป็นประเภทโฆษณาใด ให้ตรวจสอบบันทึก Logcat หลังจากเรียกใช้initialize()
→load()
:
หลังจากตรวจสอบ ID อุปกรณ์ทดสอบแล้ว ให้เพิ่มบรรทัด Adiz.SetTestDevice(DEVICE_ID)
ก่อนที่จะดำเนินการ Adiz.initialize
ในโค้ดการเริ่มต้น Adiz Hive ที่มีอยู่ ใส่ ID อุปกรณ์ทดสอบที่คัดลอกมาใน DEVICE_ID
การใช้งาน Ad Inspector¶
Ad Inspector เป็นเครื่องมือแบบ overlay ในแอปที่วิเคราะห์กระบวนการขอและแสดงโฆษณาจริงบนอุปกรณ์ทดสอบแบบเรียลไทม์ มันจะแจ้งให้คุณทราบถึงเวลาที่ใช้ในการโหลดโฆษณาและให้เหตุผลสำหรับความล้มเหลวในการแสดงผล คุณยังสามารถระบุเครือข่ายโฆษณาเฉพาะเพื่อตรวจสอบว่าโฆษณาแสดงผลถูกต้องหรือไม่ และหากมีปัญหา คุณสามารถดีบักในระดับโค้ด ทั้งหมดนี้ทำร่วมกับ UI ของ Ad Inspector มันรวมอยู่ใน Google Mobile Ads SDK เวอร์ชัน 7.68.0 ขึ้นไปสำหรับ iOS และสามารถใช้งานได้โดยการเรียก AdizDeveloperTool.OpenAdInspector
.
ในการใช้ตัวตรวจสอบโฆษณา, การแสดงโฆษณาบนอุปกรณ์ทดสอบ จะต้องถูกตั้งค่า.
การตั้งค่า Adiz AppID¶
ตั้งค่า Adiz AppID ที่คุณลงทะเบียนในคอนโซล Hive AppCenter หากไม่ได้ตั้งค่า จะใช้ Bundle ID แทน
Hive การกำหนดค่าคอนโซลเซิร์ฟเวอร์¶
การตั้งค่าเซิร์ฟเวอร์คอนโซล Hive เพื่อใช้งาน ค่าเริ่มต้นคือ real
แม้ว่าคุณจะใช้เซิร์ฟเวอร์การผลิต การเปิดใช้งานโหมดทดสอบจะทำให้แสดงโฆษณาทดสอบเท่านั้น
- Hive เซิร์ฟเวอร์คอนโซลทดสอบ:
AdizZoneType.test
- Hive เซิร์ฟเวอร์คอนโซลSandbox:
AdizZoneType.sandbox
- Hive เซิร์ฟเวอร์คอนโซลการผลิต:
AdizZoneType.real
การแสดงโฆษณาที่เฉพาะเจาะจงสำหรับผู้ใช้¶
ด้วยการนำเสนอ ATT (App Tracking Transparency) ใน iOS 14.5+ ความเป็นส่วนตัวได้รับการเสริมสร้างขึ้น ดังนั้นโฆษณาที่เฉพาะเจาะจงสำหรับผู้ใช้สามารถแสดงได้เฉพาะเมื่อผู้ใช้ยินยอมให้ติดตามกิจกรรมในหน้าต่างยินยอมของ ATT เพื่อเพิ่มรายได้จากโฆษณาโดยการแสดงโฆษณาที่เฉพาะเจาะจงสำหรับผู้ใช้ คุณต้องเขียนข้อความ IDFA (Identifier for Advertisers)
เขียนและเผยแพร่ข้อความ IDFA บน แดชบอร์ด Google AdMob ตามที่แสดงด้านล่าง
คุณสามารถอ้างอิงจากคู่มือด้านล่างเมื่อเขียนข้อความ IDFA
ตัวอย่างของข้อความที่โพสต์มีดังนี้
หลังจากเขียนและโพสต์ข้อความ IDFA แล้ว ให้ตั้งค่าการเข้าถึงการติดตามผู้ใช้ตามสิทธิ์ อ้างอิงตามขั้นตอนด้านล่างเพื่อเพิ่มคีย์ใน Info.plist。
- เลือกโปรเจกต์ของคุณในตัวนำทางโปรเจกต์ของหน้าต่างโปรเจกต์ Xcode.
- เลือกแอปของคุณจากรายการ TARGETS.
- คลิกที่แท็บ Info.
- คลิกที่รายการ Custom iOS Target Properties ในแท็บ Info.
- คลิกขวาในรายการ Custom iOS Target Properties.
- คลิกที่เมนู Add Row.
- ป้อน NSUserTrackingUsageDescription ในช่อง Key และเพิ่มค่าที่ระบุใน ไฟล์ Localization > โฟลเดอร์ Base.Iproj > InfoPlist.strings ในช่อง Value.
ถัดไป เขียนข้อความขออนุญาตจากผู้ใช้แอปที่ระบุในไฟล์การกำหนดค่าหลายภาษา (การตั้งค่าทั่วไป > การตั้งค่าคำขออนุญาตเข้าถึง) หากคุณไม่ป้อนข้อความป๊อปอัปขออนุญาต การแนะนำเพิ่มเติมเกี่ยวกับสิทธิ์การเข้าถึงของผู้ใช้ที่ใช้งานจะหายไป ทำให้เกิดการปฏิเสธระหว่างการตรวจสอบแอป
หากคุณได้ทำจนถึงจุดนี้แล้ว ป๊อปอัปการยินยอม ATT จะถูกแสดงโดยอัตโนมัติในระหว่างการ เริ่มต้น Adiz เมื่อผู้ใช้คลิก "อนุญาต" บนป๊อปอัปการยินยอม ATT IDFA จะถูกเปิดใช้งาน และโฆษณาที่ปรับให้เหมาะสมจะถูกแสดง
การแสดงป๊อปอัปการยินยอม GDPR (ยุโรป, สหราชอาณาจักร)¶
หากเกมมีเป้าหมายที่ยุโรปและสหราชอาณาจักร (EEA & UK) จะต้องแสดงป๊อปอัปการยินยอม GDPR (กฎทั่วไปว่าด้วยการคุ้มครองข้อมูล) ป๊อปอัปการยินยอม GDPR จะถูกแสดงเฉพาะเมื่อที่อยู่ IP ของอุปกรณ์ของผู้ใช้มาจากยุโรปและสหราชอาณาจักร (EEA & UK) Adiz รองรับการแสดงป๊อปอัปการยินยอม GDPR ผ่าน Google UMP (User Messaging Platform) หลังจากสร้างข้อความ GDPR ในคอนโซล AdMob ให้ เริ่มต้น Adiz เพื่อแสดงป๊อปอัป GDPR ให้กับผู้ใช้ที่เข้าถึงจากยุโรปและสหราชอาณาจักร.
Warning
เมื่อกำหนดเป้าหมายไปยังภูมิภาคนอกยุโรปและสหราชอาณาจักร เช่น หากคุณวางแผนที่จะให้บริการเฉพาะในประเทศ คุณสามารถข้ามขั้นตอน การแสดงป๊อปอัปการยินยอม GDPR (ยุโรป, สหราชอาณาจักร) และดำเนินการเริ่มต้นด้วยวิธี Adiz.initializeForNonGDPR()
ได้
หากคุณดำเนินการเริ่มต้นด้วยวิธี Adiz.initialize()
คุณต้องสร้างข้อความ GDPR ในคอนโซล AdMob เพื่อให้การเริ่มต้น Adiz ดำเนินการตามปกติ
Warning
หากคุณกำลังใช้ SDK ของ Hive คุณต้องเรียกใช้ AuthV4.setup
หลังจากเสร็จสิ้นการเริ่มต้น Hive Adiz หากหน้าจอการยินยอม GDPR ปรากฏขึ้นหลังจากแสดงการแจ้งเตือนการยินยอม ATT (APP Tracking Transparency) แอปของคุณอาจถูกปฏิเสธระหว่างการตรวจสอบแอปของ Apple.
การเขียนข้อความ GDPR¶
เข้าถึงคอนโซล Google AdMob เพื่อเขียนข้อความ GDPR ก่อนเขียนข้อความ GDPR โปรดดูที่ คู่มือการเขียนข้อความ GDPR.
เมื่อร่างข้อความ GDPR คุณต้องเพิ่มการไกล่เกลี่ยที่คุณต้องการใช้ลงในรายชื่อพันธมิตรด้านการโฆษณา
นี่คือวิธีการเพิ่มการไกล่เกลี่ย
1) ไปที่แท็บ ความเป็นส่วนตัวและการส่งข้อความ > กฎระเบียบของยุโรป > การตั้งค่า ในแดชบอร์ด Google AdMob จากนั้นคลิกที่ไอคอนแก้ไขสำหรับ 'การตรวจสอบพันธมิตรโฆษณา > พันธมิตรโฆษณาที่กำหนดเอง 2) ตรวจสอบพันธมิตรการจัดการทั้งหมดที่ได้รับการรับรองโดย Google ภายใต้ GDPR เพื่อเพิ่มในจำนวนมาก หรือเลือกเฉพาะพันธมิตรการจัดการที่ต้องการและคลิก เพิ่ม.
หากคุณได้เขียนข้อความ GDPR แล้ว ป๊อปอัปการยินยอม GDPR จะปรากฏขึ้นโดยอัตโนมัติเมื่อ Adiz ถูกเริ่มต้น.
การดำเนินการฟังก์ชันการยินยอม/ถอนการยินยอมของ GDPR¶
รายการในป๊อปอัปการยินยอมของ GDPR ต้องให้ผู้ใช้สามารถปรับเปลี่ยนสถานะการยินยอมของตนได้ตลอดเวลา ตัวอย่างเช่น ผู้ใช้อาจไม่ได้ยินยอมต่อ GDPR ในตอนแรก แต่ต้องการยินยอมอีกครั้งเพื่อดูโฆษณาที่ปรับให้เหมาะสม หรือในทางกลับกัน ผู้ใช้อาจได้ยินยอมต่อ GDPR ในตอนแรก แต่ไม่ต้องการให้ข้อมูลส่วนบุคคลอีกต่อไปและต้องการถอนการยินยอมของตน เพื่อจัดการกับสถานการณ์เหล่านี้ นักพัฒนาแอปต้องดำเนินการฟังก์ชันที่อนุญาตให้ผู้ใช้ยินยอมอีกครั้งต่อแต่ละรายการหรือถอนการยินยอมที่มีอยู่ของตน เพื่อดำเนินการฟังก์ชันการยินยอม/ถอนการยินยอมของ GDPR ให้ทำตามขั้นตอนเหล่านี้
- สร้าง UI ปุ่มในแอปที่สามารถเปิดหน้าต่างขอความยินยอม GDPR ใหม่ได้
- เมื่อทำการ เริ่มต้น Adiz ให้เรียกใช้
isPrivacyOptionsRequired()
เพื่อแสดง UI ปุ่มให้กับผู้ใช้ที่เข้าถึงจากยุโรปและสหราชอาณาจักร และไม่แสดงในกรณีอื่น หากผู้ใช้ที่เข้าถึงจากยุโรปหรือสหราชอาณาจักรกดปุ่ม ให้เรียกใช้showPrivacyOptionsForm
เพื่อเปิดหน้าต่างขอความยินยอม GDPR ใหม่อีกครั้ง ซึ่งจะช่วยให้ผู้ใช้สามารถแก้ไขความยินยอมสำหรับรายละเอียด GDPR ได้ตลอดเวลาผ่านการกดปุ่มเช่น "จัดการตัวเลือก" ในแอปshowPrivacyOptionsForm
ด้านล่างเป็นวิธีการที่ถูกนำไปใช้โดยพลการเพื่อวัตถุประสงค์ในการยกตัวอย่าง และนักพัฒนาสามารถเปลี่ยนแปลงการใช้งานได้ตามต้องการ
import HiveAdiz
func initialize(_ appId: String) {
// ...
// isPrivacyOptionsRequired is default false
targetViewController.showPrivacyFormButton.isEnabled = AdizConsentManager.isPrivacyOptionsRequired()
// HiveAdiz เริ่มต้น
Adiz.initialize(targetViewController) { error, json in
// ...
// ตรวจสอบการเปิดใช้งานปุ่ม showPrivacyOptionsForm
targetViewController.showPrivacyFormButton.isEnabled = AdizConsentManager.isPrivacyOptionsRequired()
// ...
}
}
func showPrivacyOptionsForm(_ targetViewController: UIViewController) {
// แสดงแบบฟอร์ม GDPR
if AdizConsentManager.isPrivacyOptionsRequired() {
AdizConsentManager.showPrivacyOptionsForm(targetViewController) { error in
// ไม่จำเป็นต้องจัดการข้อผิดพลาดใดๆ
}
}
}
#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)¶
คุณสามารถใช้แท็กสำหรับผู้ที่อายุต่ำกว่าความยินยอม (TFUA) เพื่อจัดการผู้ใช้ที่อาศัยอยู่ในเขตเศรษฐกิจยุโรป (EEA), สหราชอาณาจักร และสวิตเซอร์แลนด์ในฐานะที่เป็นหัวข้อของการประมวลผลข้อมูลที่จำกัดเมื่อทำการขอการโฆษณา สำหรับแอปที่มุ่งเป้าไปที่เด็ก คุณสามารถตั้งค่าผู้ใช้ให้ต่ำกว่าความยินยอมโดยใช้ AdizConsentManager.SetUserPrivacySettings
ในขณะที่มีความแตกต่างบางประการในประเทศยุโรป GDPR กำหนดอายุที่ต้องการความยินยอมจากผู้ปกครองว่าอยู่ที่ต่ำกว่า 16 ปี การตั้งค่าความยินยอมของผู้เยาว์ต้องถูกกำหนดค่าก่อนที่จะดำเนินการ Adiz.initialize
Warning
การตั้งค่าแท็กอายุความยินยอม GDPR setTagForUnderAgeOfConsent
และการตั้งค่า COPPA ที่มุ่งเป้าไปที่เด็ก setTagForChildDirectedTreatment
เป็น true
พร้อมกันจะทำให้การตั้งค่า COPPA ที่มุ่งเป้าไปที่เด็ก setTagForChildDirectedTreatment
มีความสำคัญมากกว่า ดังนั้นอย่าตั้งค่าทั้งสองเป็น true
และใช้พร้อมกัน
Note
Hive SDK v4 24.2.0 หรือสูงกว่า เมื่อใช้ร่วมกับ Adiz 2.0.1 หรือสูงกว่า การตั้งค่าวัยที่ต้องได้รับความยินยอมจาก Hive SDK จะถูกนำไปใช้โดยอัตโนมัติสำหรับผู้ใช้ที่มีอายุต่ำกว่าที่ต้องได้รับความยินยอม
อย่างไรก็ตาม หากผู้ใช้เรียกใช้ API AdizConsentManager.setUserPrivacySettings
โดยตรงก่อนที่จะดำเนินการ Adiz.initialize
การตั้งค่าอายุการยินยอมที่กำหนดโดย Hive SDK จะไม่ถูกนำมาใช้ และค่าที่ตั้งไว้ในระหว่างการเรียก API AdizConsentManager.setUserPrivacySettings
จะมีความสำคัญมากกว่า
func initialize(_ appId: String) {
bool isTagForUnderAgeOfConsent = false // Change to true if underage
let privacySet = PrivacySettings.Builder()
.setTagForUnderAgeOfConsent(isTagForUnderAgeOfConsent)
AdizConsentManager.setUserPrivacySettings(privacySet.build())
// HiveAdiz initialization
Adiz.initialize(targetViewController) { error, json in
// ...
}
}
- (void)initialize: (NSString *)appId {
bool isTagForUnderAgeOfConsent = false; // Change to true if underage
PrivacySettingsBuilder* privacySet = [[PrivacySettingsBuilder alloc] init];
privacySet = [builder setTagForUnderAgeOfConsent: isTagForUnderAgeOfConsent];
[AdizConsentManager setUserPrivacySettings: [privacySet build]];
// HiveAdiz เริ่มต้น
[Adiz initialize: targetViewController handler:^(AdizError * error, NSDictionary<NSString *,id> * json) {
// ...
}];
}
การตั้งค่าอุปกรณ์ทดสอบ GDPR¶
ป๊อปอัพการยินยอม GDPR จะถูกแสดงเฉพาะเมื่อที่อยู่ 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 ปรากฏขึ้นอย่างถูกต้อง
- (void)initialize: (NSString *)appId {
// ...
// ตั้งค่า TestDevice ก่อน Adiz.initialize. ตัวอย่าง @"B74F6468-1516-467C-99AD-CC5973C5DB52"
[Adiz setTestDevice: @"B74F6468-1516-467C-99AD-CC5973C5DB52"];
// HiveAdiz initialization
[Adiz initialize: targetViewController handler:^(AdizError * error, NSDictionary<NSString *,id> * json) {
// ...
}];
}
การตั้งค่าแท็กการรักษาที่มุ่งเป้าไปยังเด็กตาม COPPA¶
ตามพระราชบัญญัติคุ้มครองความเป็นส่วนตัวออนไลน์สำหรับเด็ก (COPPA) นักพัฒนาแอปสามารถระบุได้ว่า Google ควรจัดการเนื้อหาเป็นการมุ่งเป้าไปยังเด็กโดยใช้การตั้งค่าแท็กการรักษาที่มุ่งเป้าไปยังเด็ก (tagForChildDirectedTreatment, TFCD) เมื่อทำการขอโฆษณา หากคุณต้องการให้ถือว่าเป็นการมุ่งเป้าไปยังเด็ก คุณต้องเรียกใช้ AdizConsentManager.SetUserPrivacySettings
ก่อนที่จะดำเนินการ Adiz.initialize
เมื่อใช้ Adiz กับ SDK ของ Hive แท็กการรักษาที่มุ่งเป้าไปยังเด็กจะถูกนำไปใช้โดยอัตโนมัติ ดังนั้นจึงไม่จำเป็นต้องตั้งค่าเพิ่มเติม
func initialize(_ appId: String) {
bool isTagForChildDirectedTreatment = false // Change to true if it's for children
let privacySet = PrivacySettings.Builder()
.setTagForChildDirectedTreatment(isTagForUnderAgeOfConsent)
AdizConsentManager.setUserPrivacySettings(privacySet.build())
// HiveAdiz เริ่มต้น
Adiz.initialize(targetViewController) { error, json in
// ...
}
}
(void)initialize: (NSString *)appId {
bool isTagForChildDirectedTreatment = false; // Change to true if it is for children
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 โปรดทำตามตารางด้านล่างเพื่อดำเนินการต่อ
การเพิ่มอะแดปเตอร์ Adiz¶
เพิ่มการพึ่งพาไปยัง CocoaPods Podfile.
# ...
$HIVE_ADIZ_VERSION = '2.1.3'
def adiz
pod 'HiveAdiz', $HIVE_ADIZ_VERSION
end
def adizAdapter
pod 'HiveAdizAdapterAppLovin', $HIVE_ADIZ_VERSION
pod 'HiveAdizAdapterLiftoff', $HIVE_ADIZ_VERSION
pod 'HiveAdizAdapterMeta', $HIVE_ADIZ_VERSION
pod 'HiveAdizAdapterPangle', $HIVE_ADIZ_VERSION
pod 'HiveAdizAdapterUnityAds', $HIVE_ADIZ_VERSION
pod 'HiveAdizAdapterIronSource', $HIVE_ADIZ_VERSION
end
target 'MyGame-mobile' do
adiz
adizAdapter
end
# ...
เพื่อตรวจสอบว่าการกำหนดค่าตัวปรับ Adiz ได้ถูกนำไปใช้ถูกต้องหรือไม่ ให้เรียกใช้งานแอปและตรวจสอบรายการการกำหนดค่าบนหน้าจอ Ad Inspector
การเพิ่ม SKAdNetwork¶
สำหรับ iOS 14 ขึ้นไป โปรดดูที่ คู่มือการอัปเดต info.plist ของคุณ เพื่อเพิ่มรายการ SKAdNetwork
ลงในไฟล์ Info.plist ของคุณ.
รายการของ SKAdNetwork
ที่แต่ละการประสานงานสนับสนุนจะแตกต่างกันและอาจมีค่าซ้ำกัน ดังนั้นจึงจำเป็นต้องลบค่าซ้ำจากการตั้งค่า SKAdNetwork
การโฆษณาทั้งหมดที่ปัจจุบันได้รับการสนับสนุนโดย Adiz ตามที่แสดงในรายการด้านล่าง
(Adiz 2.1.3 - ณ วันที่ 2025/01/21: 165)
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cstr6suwn9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4fzdc2evr5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>2fnua5tdw4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ydx93a7ass.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>p78axxw29g.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v72qych5uu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ludvb6z3bs.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cp8zw746q7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3sh42y64q3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>c6k4g5qg8m.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>s39g8k73mm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qy4746246.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>hs6bdukanm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mlmmfzh3r3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v4nxqhlyqp.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>wzmmz9fp6w.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>su67r6k2v3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>yclnxrl5pm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7ug5zh24hu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>gta9lk7p23.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>vutu7akeur.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>y5ghdn5j9k.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v9wttpbfk9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n38lu8286q.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>47vhws6wlr.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>kbd757ywx3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9t245vhmpl.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>a2p9lx4jpn.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>22mmun2rn5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4468km3ulz.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>2u9pt9hc89.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8s468mfl3y.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ppxm28t8ap.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>uw77j35x4d.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>pwa73g5rt2.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>578prtvx9j.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4dzt52r2t5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>tl55sbb4fm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>e5fvkxwrpn.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8c4e2ghe7u.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3rd42ekr43.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qcr597p9d.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>238da6jt44.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>24t9a8vw3c.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>24zw6aqk47.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>252b5q8x7y.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>275upjj5gd.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>294l99pt4k.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>32z4fx6l9h.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3l6bd9hu43.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>424m5254lk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>44jx6755aq.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>44n7hlldy6.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>488r3q3dtq.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4mn522wn87.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4pfyvq9l8r.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4w7y6s5ca2.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>523jb4fst2.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>52fl2v3hgk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>54nzkqm89y.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5a6flpkh64.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5l3tpt7t6e.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5lm9lj6jb7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5tjdwbrq8w.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6964rsfnh4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6g9af3uyq4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6p4ks3rnbw.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6v7lgmsu45.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6xzpu9s2p8.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>737z793b9f.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>74b6s63p6l.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>79pbpufp6p.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7fmhfwg9en.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7rz58n8ntl.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>84993kbrcf.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>89z7zv988g.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8m87ys6875.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8r8llnkz5a.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>97r2b46745.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9b89h5y424.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9nlqeag3gk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9rd848q2bz.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9vvzujtq5s.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9yg77x724h.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>a7xqa6mtl2.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>a8cz6cu7e5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>av6w8kgt66.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>b9bk5wbcq9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>bxvub5ada5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>c3frkrj4fj.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cg4yq2srnc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cj5566h2ga.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cs644xg564.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cwn433xbcr.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>dbu4b84rxf.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>dkc879ngq3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>dzg6xy7pwj.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ecpz2srf59.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>eh6m2bh4zr.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ejvt5qm6ak.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>f38h382jlk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>f73kdq92p3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>f7s53z58qe.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>feyaarzu9v.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>g28c52eehv.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>g2y4y55b64.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>g6gcrrvk4p.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ggvn48r87g.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>glqzh8vgby.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>gta8lk7p23.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>hb56zgv37p.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>hdw39hrw9y.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>k674qkevps.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>kbmxgpxpgc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>klf5c3l5u5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>krvm3zuq6h.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>lr83yxwka7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>m297p6643m.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>m5mvw97r93.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>m8dbw4sv7c.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mls7yz5dvl.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mp6xlyr22a.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mqn7fxpca7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mtkv5xtk9e.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n66cz3y3bx.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n6fk4nfna4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n9x2a789qt.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>nzq8sh4pbs.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>prcb7njmu6.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>pwdxu55a5a.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>qqp299437r.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>qu637u8glc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>r45fhb6rf7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>rvh3l7un93.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>rx5hdcabgc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>s69wq72ugq.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>t38b2kh725.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>u679fj5vs4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v79kvwwj4g.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>vcra2ehyfk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>vhf287vqwu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>w9q455wk68.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>wg4vff78zm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>x44k69ngh6.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>x5l83yy675.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>x8jxxk4ff5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>x8uqf25wch.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>xga6mpmplv.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>xy9t38ct57.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>y45688jllp.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>z24wtl6j62.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>zmvfpc5aq8.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>zq492l623r.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>k6y4y55b64.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6yxyv74ff7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mj797d8u6f.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5f5u5tfb26.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>apzhy3va96.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>t6d3zquu66.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>zmmz9fp6w.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ns5j362hk7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9g2aggbj52.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>r26jy69rpl.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>nu4557a4je.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cdkw7geqsh.skadnetwork</string>
</dict>
การเริ่มต้น Adiz¶
นี่เป็นขั้นตอนที่จำเป็นที่จะต้องดำเนินการก่อนที่จะมีการแสดงโฆษณาทุกประเภท โดยการเริ่มต้น Adiz คุณจะได้รับกุญแจโฆษณาที่จำเป็นสำหรับการแสดงโฆษณา หากคุณได้เปิดใช้งานโหมดทดสอบ คุณจะได้รับกุญแจทดสอบ
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()`). เพื่อเปลี่ยนโฆษณาเริ่มต้น, คุณต้องลบโฆษณาเริ่มต้นที่มีอยู่จากคอนโซลและลงทะเบียนโฆษณาใหม่.
การตั้งค่าฟังการเรียกกลับโฆษณา¶
โดยการใช้ AdizListener
เมื่อสร้างอินสแตนซ์โฆษณาแต่ละตัว คุณสามารถรับการเรียกกลับตามการเปลี่ยนแปลงในสถานะโฆษณา.
ชื่อ | คำอธิบาย | การดำเนินการที่จำเป็น |
---|---|---|
onLoad() | โหลดโฆษณาสำเร็จ | O |
onFail(error: AdizError) | ความล้มเหลว (สาเหตุของความล้มเหลวสามารถทราบได้จาก error.getCode() และ error.getMessage() ) | O |
onShow() | การแสดงโฆษณาสำเร็จ | O |
onClick() | คลิกโฆษณา | O |
onPaidEvent(_ revenueData: AdRevenueData) | จุดที่ได้รับเหตุการณ์ที่ชำระเงินหลังจากการแสดงโฆษณา และข้อมูลรายได้จากโฆษณาจะถูกถ่ายทอด | 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() // Reward item type
var itemAmount = rewardItem.getItemAmount() // Reward item quantity }}
#import <HiveAdiz/HiveAdiz-Swift.h>
@interface TestAdizListener : NSObject<AdizListener>
@end
@implementation TestAdizListener
- (void) onLoad {
// โดนเรียกเมื่อโฆษณาถูกโหลด
// หากการโหลดโฆษณาสำเร็จ คุณต้องเรียกใช้ .show() ของอินสแตนซ์โฆษณาที่จุดที่ต้องการเพื่อแสดงโฆษณา
NSLog(@"[TestAdizListener] onLoad");
}
- (void) onFail:(AdizError *)error {
// Called if the ad load failed or the ad display failed for some other reason.
NSLog(@"[TestAdizListener] onFail: ");
NSLog(@"errorCode: %ld, errorMessage: %@", (long)[error getCode], [error getMessage]);
}
- (void) onShow {
// Called when the ad is displayed.
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]; // Reward item type
NSInteger itemAmount = [rewardItem getItemAmount]; // Reward item type quantity
}
@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 | หมายเลขหน่วยไม่ถูกต้อง |
-107 | MediationNoFill | ตัวปรับการจัดการล้มเหลวในการประมวลผลคำขอโฆษณา |
-108 | AlreadyLoaded | อยู่ในสถานะที่โหลดแล้ว |
-109 | CannotRequestAds | ไม่สามารถขอโฆษณาได้ |
-201 | GdprConsentError | ข้อผิดพลาดความยินยอม GDPR |
-202 | IsNotPrivacyOptionsRequired | ไม่สามารถแสดงป๊อปอัปความยินยอม GDPR หรืออยู่ในสถานะที่ไม่จำเป็นต้องแสดง |
การแสดงโฆษณาและการสิ้นสุดโฆษณา¶
ในการแสดงและสิ้นสุดโฆษณา ให้ทำตามขั้นตอนด้านล่าง
- สร้างอินสแตนซ์โฆษณาในคลาสโฆษณาสำหรับแต่ละประเภทของโฆษณาที่คุณต้องการแสดง หากโฆษณาที่คุณต้องการแสดงไม่ใช่ โฆษณาเริ่มต้น คุณต้องป้อนคีย์โฆษณาหรือ ID การวางที่ได้รับจาก การเริ่มต้น หากคุณไม่ป้อนคีย์โฆษณา (
hiveAdKey
) หรือ ID การวาง (placementId
) จะมีการสร้างอินสแตนซ์โฆษณาเริ่มต้น คำจำกัดความ ID การวางสามารถตั้งค่าได้ในคอนโซล Hive และสำหรับรายละเอียดเพิ่มเติมโปรดดูที่ หน้าการตั้งค่า Admob ในคู่มือคอนโซล - โหลดโฆษณาที่คุณต้องการแสดง (
load()
). - แสดงโฆษณาที่โหลดแล้ว (
show()
). หากต้องการแสดงโฆษณาอีกครั้งคุณต้องเรียกload()
อีกครั้งแล้วจึงเรียกshow()
. - หากต้องการปิดโฆษณาให้เรียก
destroy()
.
โฆษณาแบบแทรก¶
โฆษณาทั้งหน้าจอที่ใช้พื้นที่ทั้งหมดของหน้าจอ.
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 {
// เริ่มต้น AdizInterstitial Instance (ViewController, placementId, AdizListener)
self.interstitialAd = AdizInterstitial.initializeWithPlacementId(self, placementId: placementId, adizListener: self)
}
else {
// เริ่มต้น Default AdizInterstitial Instance (ViewController, AdizListener)
self.interstitialAd = AdizInterstitial.initialize(self, adizListener: self)
}
}
func requestLoadAd() {
// โหลด 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 {
// เริ่มต้น 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()
ดังนั้นคุณต้องเรียก destroy()
จากตำแหน่งอื่นเพื่อยุติโฆษณา
BannerSize
ปฏิบัติตามขนาดแบนเนอร์มาตรฐาน.
ขนาดจุด (ความกว้าง x ความสูง) | คำอธิบาย | อุปกรณ์ที่รองรับ | ค่าคงที่ขนาดแบนเนอร์ |
---|---|---|---|
320x50 | แบนเนอร์ | โทรศัพท์มือถือและแท็บเล็ต | BannerSize.normal |
320x100 | แบนเนอร์ขนาดใหญ่ | โทรศัพท์มือถือและแท็บเล็ต | BannerSize.medium |
300x250 | IAB Medium Rectangle | โทรศัพท์มือถือและแท็บเล็ต | BannerSize.large |
468 x 60 | IAB Full-Size Banner | แท็บเล็ต | BannerSize.full |
PositionType
คือค่าที่อยู่ด้านบนสุดหรือด้านล่างสุด ค่าเริ่มต้นคือด้านล่างสุด.
การจัดตำแหน่ง | คำอธิบาย | ค่าคงที่ประเภทตำแหน่ง |
---|---|---|
การจัดตำแหน่งด้านบน | ระบุการจัดตำแหน่งด้านบนตาม SafeArea | PositionType.top |
การจัดตำแหน่งด้านล่าง (ค่าเริ่มต้น) | ระบุการจัดตำแหน่งด้านล่างตาม SafeArea | PositionType.bottom |
import UIKit
import HiveAdiz
class BannerViewController: UIViewController {
// สร้างอินสแตนซ์ AdizBanner
// สร้างอินสแตนซ์โฆษณาแบนเนอร์
var bannerAd: AdizBanner?
func requestInitAd(hiveAdKey: String?) { // ตั้งค่าขนาดแบนเนอร์
var bannerSize: BannerSize = .normal
if let adKey = hiveAdKey,
adKey.count > 0 {
// Initialize AdizBanner Instance (ViewController, hiveAdKey, BannerSize, AdizListener)
self.bannerAd = AdizBanner.initialize(self, hiveAdKey: adKey, size: bannerSize, adizListener: self)
}
else {
// Initialize 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 {
// เริ่มต้น 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
โฆษณาเนทีฟ¶
นี่คือโฆษณาเนทีฟที่แสดงเทมเพลตเนทีฟขนาดเฉพาะ โฆษณาเนทีฟได้รับการปรับให้เหมาะสมสำหรับหน้าจอแนวตั้ง ดังนั้นจึงแนะนำให้ใช้ในเกมแนวตั้ง (เกมโหมดแนวตั้ง) โฆษณาเนทีฟจะไม่ได้รับการเรียกกลับ onClose()
ดังนั้นคุณจึงต้องเรียก destroy()
จากที่อื่นเพื่อปิดโฆษณา
เทมเพลตปัจจุบันรองรับขนาด เล็ก
หรือ กลาง
ขนาดจุด (ความกว้าง x ความสูง) | แม่แบบ | การจัดตำแหน่ง | ค่าคงที่ขนาดแบนเนอร์ |
---|---|---|---|
355x91 (ปรับอัตราส่วน) | ขนาดเล็ก | บน / ล่าง | BannerSize.normal |
355x370 (ปรับอัตราส่วน) | ขนาดกลาง | กลาง (คงที่) | BannerSize.medium, BannerSize.large, BannerSize.full |
ในเทมเพลต small
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() {
// โหลด 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:@""]) {
// Initialize AdizNative Instance (ViewController, hiveAdKey, BannerSize, AdizListener)
self.nativeAd = [AdizNative initialize:self hiveAdKey:hiveAdKey size: bannerSize adizListener:self];
}
else {
// Initialize 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 {
// เริ่มต้น Default 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
โฆษณาที่ได้รับรางวัล¶
นี่คือโฆษณาที่ได้รับรางวัลซึ่งผู้ใช้จะได้รับรางวัลเมื่อดูโฆษณาเป็นระยะเวลาหนึ่ง เมื่อได้รับรางวัล ข้อมูลรายการรางวัลจะถูกส่งผ่านการเรียกกลับ 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:@""]) {
// เริ่มต้น AdizRewarded Instance (ViewController, hiveAdKey, AdizListener)
self.rewardedAd = [AdizRewarded initialize:self hiveAdKey:hiveAdKey adizListener:self];
}
else {
// เริ่มต้น 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
โฆษณาแบบระหว่างที่ได้รับรางวัล¶
นี่คือโฆษณาแบบระหว่างที่ได้รับรางวัลซึ่งผู้ใช้จะได้รับรางวัลสำหรับการดูโฆษณาเป็นระยะเวลาหนึ่ง เมื่อได้รับรางวัลแล้ว ข้อมูลรายการรางวัลจะถูกส่งผ่านการเรียกกลับ onRewarded()
import UIKit
import HiveAdiz
class RewardInterstitialViewController: UIViewController {
// สร้างอินสแตนซ์ AdizRewardedInterstitial
var rewardInterstitialAd: AdizRewardedInterstitial?
func requestInitAd(hiveAdKey: String?) {
if let adKey = hiveAdKey,
adKey.count > 0 {
// Initialize AdizRewardedInterstitial Instance (ViewController, hiveAdKey, AdizListener)
self.rewardInterstitialAd = AdizRewardedInterstitial.initialize(self, hiveAdKey: adKey, adizListener: self)
}
else {
// Initialize Default AdizRewardedInterstitial Instance (ViewController, AdizListener)
self.rewardInterstitialAd = AdizRewardedInterstitial.initialize(self, adizListener: self)
}
}
func requestInitAdWithPlacementId(placementId: String?) {
if let placementId = placementId,
placementId.count > 0 {
// เริ่มต้น AdizRewardedInterstitial Instance (ViewController, placementId, AdizListener)
self.rewardInterstitialAd = AdizRewardedInterstitial.initializeWithPlacementId(self, placementId: placementId, adizListener: self)
}
else {
// เริ่มต้น 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()
) เมื่อสถานะแอปเปลี่ยนจากพื้นหลังเป็นพื้นหน้า หลังจากที่ผ่านไป 3 ชั่วโมงนับตั้งแต่โฆษณาถูกโหลด การเรียกใช้ show()
จะทำการโหลดโฆษณาใหม่โดยอัตโนมัติและจากนั้นจะแสดงมัน เมื่อโฆษณาแสดงอย่างน้อยหนึ่งครั้ง จะไม่ถูกโหลดใหม่โดยอัตโนมัติอีก
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() {
// Load 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:@""]) {
// เริ่มต้น AdizAppOpen Instance (ViewController, hiveAdKey, AdizListener)
self.appOpenAd = [AdizAppOpen initialize:self hiveAdKey:hiveAdKey adizListener:self];
}
else {
// เริ่มต้น Default AdizAppOpen Instance (ViewController, AdizListener)
self.appOpenAd = [AdizAppOpen initialize:self adizListener:self];
}
}
- (void) requestInitAdWithPlacementId: (NSString*)placementId {
if (placementId != nil && ![placementId isEqualToString:@""]) {
// เริ่มต้น AdizAppOpen Instance (ViewController, placementId, AdizListener)
self.appOpenAd = [AdizAppOpen initializeWithPlacementId:self placementId:placementId adizListener:self];
}
else {
// เริ่มต้น 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