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

Ios

Adiz iOS

Adiz iOS เป็นโมดูลโฆษณาสำหรับ iOS ที่มีให้บริการบนแพลตฟอร์ม Hive เพื่อให้ง่ายต่อการใช้ฟีเจอร์การแสดงโฆษณาที่เสนอโดย AdMob ประเภทของโฆษณาที่ให้บริการโดย Adiz iOS มีดังนี้

  • โฆษณาแบบ Interstitial
  • โฆษณาแบบ Banner
  • โฆษณาแบบ Native
  • โฆษณาแบบ Rewarded
  • โฆษณาแบบ Rewarded Interstitial
  • โฆษณาแบบ App Open

ในการติดตั้งและใช้งาน Adiz iOS กรุณาอ้างอิงจากคู่มือด้านล่างตามลำดับ

การเตรียมการ

ตั้งค่า สภาพแวดล้อมการพัฒนา iOS ของ Adiz.

การติดตั้ง

เพิ่มคีย์ GADApplicationIdentifier ลงในไฟล์ Info.plist ของโปรเจกต์ Xcode ของคุณ และใส่ค่าของ AdMobId (ในรูปแบบ ca-app-pub-XXXXX~YYYYY) เป็นค่าของคีย์นั้น

    <key>GADApplicationIdentifier</key>
    <string>ca-app-pub-XXXXX~YYYYY</string>

 

นอกจากนี้ สำหรับ 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', '3.0.0'
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 สามารถแสดงโฆษณาทดสอบได้สองวิธี

  1. เปิดโหมดทดสอบ: จะแสดงเฉพาะโฆษณาทดสอบที่ออกโดย AdMob
  2. แสดงโฆษณาหลังจากลงทะเบียนอุปกรณ์ทดสอบ: แสดงโฆษณาจริงสำหรับการทดสอบ โดยมั่นใจว่าจะไม่มีการเข้าชมที่ไม่ถูกต้อง และดำเนินการโดยการลงทะเบียนอุปกรณ์ที่จะแสดงโฆษณาทดสอบ

เปิดใช้งานโหมดทดสอบ

ในระยะพัฒนา ให้เปิดใช้งานโหมดทดสอบเพื่อที่การคลิกโฆษณาทดสอบจะไม่คิดค่าบริการแก่ผู้โฆษณา เมื่อเปิดใช้งานโหมดทดสอบ จะมีการแสดงโฆษณาทดสอบเท่านั้น ในโหมดทดสอบ โฆษณาทดสอบจะถูกแสดงแม้ว่าจะไม่ได้ป้อนคีย์โฆษณา AdMob ในคอนโซล ปิดโหมดทดสอบในระหว่างการจัดจำหน่ายเชิงพาณิชย์.

มีสองวิธีในการเปิดใช้งานโหมดทดสอบ.

Note

เมื่อไม่ได้อยู่ในโหมดทดสอบในระหว่างขั้นตอนการพัฒนา การคลิกโฆษณาอย่างมากอาจถือว่าเป็นการเข้าชมที่ไม่ถูกต้อง และบัญชี AdMob ของคุณอาจถูกแจ้งรายงาน ซึ่งจะทำให้โฆษณาไม่สามารถแสดงได้

การใช้เมธอด Adiz.setTestMode()

import HiveAdiz

// เปิดใช้งานโหมดทดสอบ คอมเมนต์บรรทัดด้านล่างสำหรับการปรับใช้ในผลิตภัณฑ์
Adiz.setTestMode(true)

// เปิดใช้งานการบันทึกโมดูล Adiz การบันทึกควรใช้เฉพาะในโหมดทดสอบ คอมเมนต์บรรทัดด้านล่างสำหรับการปรับใช้ในผลิตภัณฑ์
Adiz.setLogEnable(true)
#import <HiveAdiz/HiveAdiz-Swift.h> 

// เปิดใช้งานโหมดทดสอบ คอมเมนต์บรรทัดด้านล่างสำหรับการปรับใช้ในผลิตภัณฑ์
[Adiz setTestMode: true];

// เปิดใช้งานการบันทึกโมดูล Adiz การบันทึกควรใช้เฉพาะในโหมดทดสอบ คอมเมนต์บรรทัดด้านล่างสำหรับการปรับใช้ในผลิตภัณฑ์
[Adiz setLogEnable: true];

การโฆษณาอุปกรณ์ทดสอบ

ในสถานการณ์ต่อไปนี้ คุณต้องลงทะเบียนอุปกรณ์ทดสอบเพื่อแสดงโฆษณาทดสอบ.

  • ทดสอบว่าคีย์โฆษณา AdMob ที่ลงทะเบียนในคอนโซลทำงานได้อย่างถูกต้อง
  • เขียน ข้อความ GDPR และตรวจสอบว่า popup การยินยอม GDPR ทำงานได้อย่างถูกต้อง
  • รัน ตัวตรวจสอบโฆษณา เพื่อวิเคราะห์และดีบักคำขอโฆษณา



<

มีสองวิธีในการแสดงโฆษณาบนอุปกรณ์ทดสอบ.
<

  • หลังจากลงทะเบียนอุปกรณ์ทดสอบในคอนโซล Hive ให้ตั้งค่าเป็น ใช้หมายเลขประจำหน่วยโฆษณา (แนะนำ):
    กรุณาอ้างอิงเนื้อหาของ การจัดการอุปกรณ์ทดสอบ ในคู่มือคอนโซล.

  • ใช้เมธอด setTestDevice() ของคลาส Adiz:
    กรุณาอ้างอิงไปที่ โค้ดตัวอย่าง ด้านล่าง.

Note

หากคุณทำการทดสอบที่แสดงโฆษณาจริงโดยไม่ลงทะเบียนอุปกรณ์ทดสอบ อาจถือว่าเป็นการเข้าชมที่ไม่ถูกต้อง และบัญชี AdMob ของคุณอาจถูกบล็อก ซึ่งจะทำให้ไม่สามารถแสดงโฆษณาได้อีกต่อไป เมื่อคุณลงทะเบียนอุปกรณ์ทดสอบ โหมด "ทดสอบ" หรือ "โฆษณาทดสอบ" (โฆษณาแบบเนทีฟ) จะถูกแสดงระหว่างการแสดงโฆษณา คุณต้องปิดการใช้งานอุปกรณ์ทดสอบระหว่างการจัดจำหน่ายเชิงพาณิชย์.

 

แบนเนอร์ โฆษณาทั้งหน้าจอ หรือโฆษณาที่ให้รางวัล

 

การโฆษณาแบบเนทีฟ

 

การใช้เมธอด Adiz.setTestDevice()

ในการลงทะเบียนอุปกรณ์ทดสอบ คุณจำเป็นต้องตรวจสอบ ID อุปกรณ์ทดสอบก่อน ID อุปกรณ์ทดสอบ (เช่น: B74F6468-1516-467C-99AD-CC5973C5DB52) สามารถยืนยันได้ในสองวิธีต่อไปนี้

  1. Adiz.Initialize() เรียกและตรวจสอบบันทึก Logcat:
    เพื่อเปิดใช้งานโหมดดีบักสำหรับอุปกรณ์นี้ ให้ตั้งค่า: UMPDebugSettings.testDeviceIdentifiers = @[B74F6468-1516-467C-99AD-CC5973C5DB52]
    
  2. หลังจากเรียกใช้ Adiz.Initialize() ไม่ว่าจะเป็นประเภทโฆษณาใด ให้ตรวจสอบบันทึก Logcat หลังจากเรียกใช้ initialize()load():
    GADMobileAds.sharedInstance().requestConfiguration.testDeviceIdentifiers = [ "B74F6468-1516-467C-99AD-CC5973C5DB52" ]
    

 

หลังจากตรวจสอบ ID อุปกรณ์ทดสอบแล้ว ให้เพิ่มบรรทัด Adiz.SetTestDevice(DEVICE_ID) ก่อนที่จะดำเนินการ Adiz.initialize ในโค้ดการเริ่มต้น Adiz Hive ที่มีอยู่ ใส่ ID อุปกรณ์ทดสอบที่คัดลอกมาใน DEVICE_ID

 

func setTestDevice(testId: String) {
        Adiz.setTestDevice(testId)
}
- (void)setTestDevice: (NSString *)testId {
        [Adiz setTestDevice: testId];
}


การใช้งาน Ad Inspector

Ad Inspector เป็นเครื่องมือ overlay ในแอปที่วิเคราะห์กระบวนการขอและแสดงโฆษณาจริงบนอุปกรณ์ทดสอบแบบเรียลไทม์ มันจะแจ้งให้คุณทราบถึงเวลาที่ใช้ในการโหลดโฆษณาและให้เหตุผลสำหรับความล้มเหลวในการแสดงผล คุณยังสามารถระบุเครือข่ายโฆษณาเฉพาะเพื่อเช็คว่าโฆษณาแสดงผลถูกต้องหรือไม่ และหากมีปัญหา คุณสามารถดีบักที่ระดับโค้ดได้ ทั้งหมดนี้ทำร่วมกับ UI ของ Ad Inspector มันรวมอยู่ใน Google Mobile Ads SDK เวอร์ชัน 7.68.0 ขึ้นไปสำหรับ iOS และสามารถใช้งานได้โดยการเรียก AdizDeveloperTool.OpenAdInspector.

 

ในการใช้ตัวตรวจสอบโฆษณา, การแสดงโฆษณาบนอุปกรณ์ทดสอบ จะต้องถูกตั้งค่า.

func openAdInspector(viewController: UIViewController) {
        AdizDeveloperTool.openAdInspector(viewController)
}
- (void)openAdInspector: (UIViewController *)viewController {
        [AdizDeveloperTool openAdInspector: viewController];
}

การตั้งค่า Adiz AppID

ตั้งค่า Adiz AppID ที่คุณลงทะเบียนในคอนโซล Hive AppCenter หากไม่ได้ตั้งค่า จะใช้ Bundle ID แทน

Adiz.setAppId(appId)
[Adiz setAppId: appId];

Hive การกำหนดค่าคอนโซลเซิร์ฟเวอร์

การตั้งค่าเซิร์ฟเวอร์คอนโซล Hive เพื่อใช้งาน ค่าเริ่มต้นคือ real แม้ว่าคุณจะใช้เซิร์ฟเวอร์การผลิต การเปิดใช้งานโหมดทดสอบจะทำให้แสดงโฆษณาทดสอบเท่านั้น

  • Hive เซิร์ฟเวอร์คอนโซลทดสอบ: AdizZoneType.test
  • Hive เซิร์ฟเวอร์คอนโซลแซนด์บ็อกซ์: AdizZoneType.sandbox
  • Hive เซิร์ฟเวอร์คอนโซลการผลิต: AdizZoneType.real
Adiz.setZone(AdizZoneType.real)
[Adiz setZone: AdizZoneTypeReal];

การแสดงโฆษณาที่เฉพาะเจาะจงสำหรับผู้ใช้

ด้วยการแนะนำ ATT (App Tracking Transparency) ใน iOS 14.5+ ความเป็นส่วนตัวได้รับการเสริมสร้างขึ้น ดังนั้น โฆษณาที่เฉพาะเจาะจงสำหรับผู้ใช้จะสามารถแสดงได้ก็ต่อเมื่อผู้ใช้ยินยอมให้ติดตามกิจกรรมในหน้าต่างยินยอม ATT เพื่อเพิ่มรายได้จากโฆษณาโดยการแสดงโฆษณาที่เฉพาะเจาะจงสำหรับผู้ใช้ คุณจำเป็นต้องเขียนข้อความ IDFA (Identifier for Advertisers)

เขียนและเผยแพร่ข้อความ IDFA บน แดชบอร์ด Google AdMob ตามที่แสดงด้านล่าง

คุณสามารถอ้างอิงจากคู่มือด้านล่างเมื่อเขียนข้อความ IDFA

ตัวอย่างของข้อความที่โพสต์มีดังนี้.

หลังจากเขียนและโพสต์ข้อความ IDFA แล้ว ให้ตั้งค่าการเข้าถึงสิทธิ์การติดตามผู้ใช้ ปฏิบัติตามขั้นตอนด้านล่างเพื่อเพิ่มคีย์ใน Info.plist

  1. เลือกโปรเจกต์ของคุณในตัวนำทางโปรเจกต์ของหน้าต่างโปรเจกต์ Xcode.
  2. เลือกแอปของคุณจากรายการ TARGETS.
  3. คลิกที่แท็บ Info.
  4. คลิกที่รายการ Custom iOS Target Properties ในแท็บ Info.
  5. คลิกขวาในรายการ Custom iOS Target Properties.
  6. คลิกที่เมนู Add Row.
  7. ป้อน NSUserTrackingUsageDescription ในฟิลด์ Key และเพิ่มค่าที่ระบุใน ไฟล์ Localization > โฟลเดอร์ Base.Iproj > InfoPlist.strings ในฟิลด์ Value.

 

ถัดไป ให้เขียนข้อความขออนุมัติสิทธิ์จากผู้ใช้แอปที่ระบุในไฟล์การกำหนดค่าหลายภาษา (การตั้งค่าทั่วไป > การตั้งค่าสิทธิ์การเข้าถึง) หากคุณไม่ป้อนข้อความป๊อปอัปขออนุมัติสิทธิ์ ข้อความแนะนำเพิ่มเติมเกี่ยวกับสิทธิ์การเข้าถึงของผู้ใช้ที่ใช้งานอยู่จะขาดหายไป ทำให้ถูกปฏิเสธระหว่างการตรวจสอบแอป

 

หากคุณได้ทำจนถึงจุดนี้แล้ว ป๊อปอัปการยินยอม ATT จะถูกแสดงโดยอัตโนมัติในระหว่างการ เริ่มต้น Adiz เมื่อผู้ใช้คลิก "อนุญาต" บนป๊อปอัปการยินยอม ATT IDFA จะถูกเปิดใช้งาน และโฆษณาที่ปรับแต่งจะถูกแสดง

หากเกมมีเป้าหมายที่ยุโรปและสหราชอาณาจักร (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 ให้ทำตามขั้นตอนเหล่านี้

  1. สร้าง UI ปุ่มในแอปที่สามารถเปิดหน้าต่างการยินยอม GDPR ใหม่ได้
  2. เมื่อทำการติดตั้ง การเริ่มต้น 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.

  1. เริ่มต้น Adiz โดย เริ่มต้น นี่คือการเริ่มต้นเพื่อตรวจสอบ ID อุปกรณ์ทดสอบ และไม่มีความจำเป็นต้องเขียนข้อความยินยอม GDPR.
  2. ตรวจสอบบันทึกการดีบักเพื่อหาข้อความที่ยืนยัน ID อุปกรณ์ ข้อความด้านล่างเป็นตัวอย่าง.

    ในการเปิดใช้งานโหมดดีบักสำหรับอุปกรณ์นี้ ให้ตั้งค่า: UMPDebugSettings.testDeviceIdentifiers = @[B74F6468-1516-467C-99AD-CC5973C5DB52]

    ตรวจสอบ ID อุปกรณ์ในข้อความ (ตัวอย่าง: B74F6468-1516-467C-99AD-CC5973C5DB52).

  3. คัดลอก ID อุปกรณ์.
  4. เพิ่ม Adiz.setTestDevice(DEVICE_ID) ก่อนที่จะเรียกใช้ Adiz.initialize ในโค้ดการเริ่มต้น Adiz ที่มีอยู่.
  5. เขียนข้อความยินยอม GDPR และเริ่มต้น Adiz ใหม่เพื่อให้แน่ใจว่าหน้าต่างยินยอม GDPR ปรากฏขึ้นอย่างถูกต้อง.
func initialize(_ appId: String) {
    // ...
    // ตั้งค่า TestDevice ก่อน Adiz.initialize. ตัวอย่าง @"B74F6468-1516-467C-99AD-CC5973C5DB52"
    Adiz.setTestDevice("B74F6468-1516-467C-99AD-CC5973C5DB52")

    // HiveAdiz เริ่มต้น
    Adiz.initialize(targetViewController) { error, json in
            // ...
    }
}
- (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 โปรดทำตามตารางด้านล่างเพื่อดำเนินการต่อ

AppLovin Liftoff Monetize Meta Audience Network Pangle Unity Ads ironSource
ขั้นตอนที่ 1 ตั้งค่าการกำหนดค่า AppLovin ตั้งค่าการกำหนดค่า Liftoff Monetize ตั้งค่าการกำหนดค่า Meta Audience Network ตั้งค่าการกำหนดค่า Pangle ตั้งค่าการกำหนดค่า Unity Ads ตั้งค่าการกำหนดค่า ironSource
ขั้นตอนที่ 2 เพิ่มแหล่งโฆษณา AppLovin ลงใน AdMob เพิ่มแหล่งโฆษณา Liftoff Monetize ลงใน AdMob เพิ่มแหล่งโฆษณา Meta Audience Network ลงใน AdMob เพิ่มแหล่งโฆษณา Pangle ลงใน AdMob เพิ่มแหล่งโฆษณา Unity Ads ลงใน AdMob เพิ่มแหล่งโฆษณา ironSource ลงใน AdMob
ขั้นตอนที่ 3 เพิ่ม Adiz adapter
ขั้นตอนที่ 4 เพิ่ม AppLovin SKAdNetwork เพิ่ม Liftoff SKAdNetwork เพิ่ม Meta Audience Network SKAdNetwork เพิ่ม Pangle SKAdNetwork เพิ่ม Unity Ads SKAdNetwork เพิ่ม ironSource SKAdNetwork

การเพิ่มอะแดปเตอร์ Adiz

เพิ่มการพึ่งพาไปยังไฟล์ Podfile ของ CocoaPods.

# ...

$HIVE_ADIZ_VERSION = '3.0.0'

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 รองรับในปัจจุบัน ตามที่แสดงในรายการด้านล่าง

<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>qwpu75vrh2.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ns5j362hk7.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>z959bm4gru.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>fz2k2k5tej.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>bvpn9ufa9b.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>6rd35atwn8.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ln5gz23vtd.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>tmhh9296z4.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>sczv5946wb.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>87u5trcl3r.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>fq6vru337s.skadnetwork</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>thzdn4h5nc.adattributionkit</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>raa6f494kr.adattributionkit</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>6lz2ygh3q6.adattributionkit</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>m2jqnlggk3.adattributionkit</string>
</dict>
<dict>
    <key>SKAdNetworkIdentifier</key>
    <string>f2zub97jtl.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() โฆษณาหมดอายุ
  • หากต้องการแสดงโฆษณาเดิมอีกครั้งหลังจากที่โฆษณาหมดอายุ คุณต้องเรียก load() อีกครั้งแล้วจึงเรียก show()
  • หากต้องการหยุดแสดงโฆษณา ให้เรียก destroy() เพื่อลบอินสแตนซ์โฆษณา。
X
onRewarded(_ rewardItem: RewardItem) จุดที่ผู้ใช้ได้รับรางวัลหลังจากการแสดงโฆษณาในโฆษณาที่มีรางวัล (rewarded, rewarded interstitial) X
import HiveAdiz

class TestAdizListener: AdizListener {
        func onLoad() {
                // ถูกเรียกเมื่อโฆษณาถูกโหลด
                // หากการโหลดโฆษณาสำเร็จ คุณต้องเรียกใช้ .show() ของอินสแตนซ์โฆษณาที่จุดที่ต้องการเพื่อแสดงโฆษณา
                print("[\(delegateTypeName)] onLoad")
        }
        func onFail(_ error: AdizError) {
                // ถูกเรียกหากการโหลดโฆษณาล้มเหลวหรือการแสดงโฆษณาล้มเหลวด้วยเหตุผลอื่น
                print("[\(delegateTypeName)] onFail: ")
                print("(\(error.getCode())) \(error.getMessage() ?? "")")
        }
        func onShow() {
                // ถูกเรียกเมื่อโฆษณาถูกแสดง
                print("[\(delegateTypeName)] onShow")
        }
        func onClick() {
                // ถูกเรียกเมื่อโฆษณาถูกคลิก
                print("[\(delegateTypeName)] onClick")
        }
        func onPaidEvent(_ revenueData: AdRevenueData) {
                // ถูกเรียกเมื่อรายได้จากโฆษณาถูกสร้างขึ้น
                print("[\(delegateTypeName)] onPaidEvent: \(revenueData.getCurrency()) \(revenueData.getRevenue().description)")
                var revenue = revenueData.getRevenue() // รายได้เมื่อโฆษณาถูกแสดง
                var currency = revenueData.getCurrency() // รหัสสกุลเงินสำหรับรายได้เมื่อโฆษณาถูกแสดง
        }
        func onClose() {
                // ถูกเรียกเมื่อโฆษณาถูกปิด
                // แบนเนอร์และโฆษณาเนทีฟไม่มีการเรียกกลับ onClose
                print("[\(delegateTypeName)] onClose")
        }
        func onRewarded(_ rewardItem: RewardItem) {
                // ถูกเรียกเมื่อมีการให้รางวัลสำหรับการดูโฆษณาในโฆษณาที่ให้รางวัลและโฆษณาแบบอินเตอร์สเตเชียลที่ให้รางวัล
                print("[\(delegateTypeName)] onRewarded")
                print("จำนวน: \(rewardItem.getItemAmount()) ประเภท: \(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 {
        // ถูกเรียกเมื่อโฆษณาถูกคลิก
        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 หรืออยู่ในสถานะที่ไม่จำเป็นต้องแสดง

การแสดงโฆษณาและการยกเลิกโฆษณา

ในการแสดงและยกเลิกโฆษณา ให้ทำตามขั้นตอนด้านล่าง

  1. สร้างอินสแตนซ์โฆษณาในคลาสโฆษณาสำหรับแต่ละประเภทของโฆษณาที่คุณต้องการแสดง หากโฆษณาที่คุณต้องการแสดงไม่ใช่ โฆษณาเริ่มต้น คุณจะต้องป้อนคีย์โฆษณาหรือ ID การวางที่ได้รับจาก การเริ่มต้น หากคุณไม่ป้อนคีย์โฆษณา (hiveAdKey) หรือ ID การวาง (placementId) จะมีการสร้างอินสแตนซ์โฆษณาเริ่มต้นขึ้น ID การวางสามารถตั้งค่าได้ในคอนโซล Hive และสำหรับรายละเอียดเพิ่มเติมโปรดดูที่ หน้าการตั้งค่า Admob ในคู่มือคอนโซล
  2. โหลดโฆษณาที่คุณต้องการแสดง (load()).
  3. แสดงโฆษณาที่โหลดแล้ว (show()). เพื่อแสดงโฆษณาอีกครั้งคุณต้องเรียก load() อีกครั้งแล้วจึงเรียก show().
  4. เพื่อปิดโฆษณาให้เรียก 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 {
                        // 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() {
                // โหลด 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

นี่คือโฆษณาแบนเนอร์ที่แสดงแบนเนอร์ขนาดเฉพาะ โฆษณาแบนเนอร์จะไม่ได้รับการเรียกคืน onClose() ดังนั้นคุณต้องเรียก destroy() จากตำแหน่งอื่นเพื่อยุติโฆษณา

 

BannerSize ปฏิบัติตามขนาดแบนเนอร์มาตรฐาน.

ขนาดจุด (ความกว้าง x ความสูง) คำอธิบาย อุปกรณ์ที่รองรับ ค่าคงที่ขนาดแบนเนอร์
320x50 แบนเนอร์ โทรศัพท์มือถือและแท็บเล็ต BannerSize.normal
320x100 แบนเนอร์ขนาดใหญ่ โทรศัพท์มือถือและแท็บเล็ต BannerSize.medium
300x250 IAB ขนาดกลางสี่เหลี่ยมผืนผ้า โทรศัพท์มือถือและแท็บเล็ต BannerSize.large
468 x 60 IAB แบนเนอร์ขนาดเต็ม แท็บเล็ต BannerSize.full

 

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

โฆษณาเนทีฟ

นี่คือโฆษณาเนทีฟที่แสดงเทมเพลตเนทีฟขนาดเฉพาะ โฆษณาเนทีฟได้รับการปรับให้เหมาะสมสำหรับหน้าจอแนวตั้ง ดังนั้นจึงแนะนำให้ใช้ในเกมแนวตั้ง (เกมโหมดแนวตั้ง) โฆษณาเนทีฟจะไม่รับการเรียกกลับ onClose() ดังนั้นคุณต้องเรียก destroy() จากตำแหน่งอื่นเพื่อปิดโฆษณา

 

เทมเพลตปัจจุบันรองรับขนาด small หรือ medium

ขนาดจุด (ความกว้าง 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:@""]) {
                // Initialize AdizNative Instance (ViewController, placementId, BannerSize, AdizListener)
                self.nativeAd = [AdizNative initializeWithPlacementId:self placementId:placementId size: bannerSize adizListener:self];
        }
        else {
                // Initialize 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 {
                        // เริ่มต้น AdizRewarded Instance (ViewController, placementId, AdizListener)
                        self.rewardAd = AdizRewarded.initializeWithPlacementId(self, placementId: placementId, adizListener: self)
                }
                else {
                        // เริ่มต้น 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 {
                        // 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() หากเวลาผ่านไปมากกว่า 3 ชั่วโมงนับตั้งแต่โหลดโฆษณา โฆษณาจะไม่แสดงและจะโหลดใหม่โดยอัตโนมัติ โฆษณาจะถูกแสดงในครั้งถัดไปที่แอปเคลื่อนที่ไปยังพื้นหน้า หลังจากที่โฆษณาแสดงครั้งหนึ่งแล้ว จะไม่โหลดใหม่โดยอัตโนมัติ ดังนั้นคุณต้องเรียก load() อีกครั้งเพื่อโหลดโฆษณาใหม่

import UIKit
import HiveAdiz  

class AppOpenViewController: UIViewController {

        // สร้าง AdizAppOpen Instance
        var appOpenAd: AdizAppOpen?

        func requestInitAd(hiveAdKey: String?) {
                if let adKey = hiveAdKey,
                        adKey.count > 0 {
                        // Initialize AdizAppOpen Instance (ViewController, hiveAdKey, AdizListener)
                        self.appOpenAd = AdizAppOpen.initialize(self, hiveAdKey: adKey, adizListener: self)
                }
                else {
                        // Initialize 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:@""]) {
                // เริ่มต้น 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:@""]) {
                // 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