Unity
Adiz Unity¶
Adiz Unity เป็นโมดูลโฆษณาสำหรับ Unity ที่จัดทำโดย Hive เพื่อทำให้การใช้ฟีเจอร์การแสดงโฆษณาที่เสนอโดย AdMob ง่ายขึ้น ประเภทของโฆษณาที่จัดทำโดย Adiz Unity มีดังนี้
- โฆษณาแบบ Interstitial
- โฆษณาแบบ Banner
- โฆษณาแบบ Native
- โฆษณาแบบ Rewarded
- โฆษณาแบบ Interstitial ที่ให้รางวัล
- โฆษณาแบบ App open
โปรดดูคู่มือด้านล่างเพื่อทำการติดตั้งและใช้งาน Adiz Unity.
การติดตั้งหรืออัปเดต¶
- ตั้งค่า สภาพแวดล้อมการพัฒนา Adiz Unity.
- ดาวน์โหลดเวอร์ชันล่าสุดของ Adiz จาก ที่นี่ และแตกไฟล์ออก.
- ใน Unity ให้เลือกตัวเลือก Assets > Import Package > Custom Package… เลือกไฟล์ .unitypackage และคลิก Import.
- ตรวจสอบว่าไฟล์และโฟลเดอร์ Adiz ถูกสร้างขึ้นภายใต้โฟลเดอร์ Assets.
- ดาวน์โหลดและติดตั้งเวอร์ชันล่าสุดของ EDM4U. SDK v4 ของ Hive รวม EDM4U. หากคุณใช้ SDK v4 ของ Hive จะไม่จำเป็นต้องติดตั้ง EDM4U แยกต่างหาก.
ในการอัปเดตเวอร์ชันที่ใช้งานอยู่ของ Adiz ให้ถอนการติดตั้ง Adiz โดยคลิก ที่นี่ จากนั้นดาวน์โหลดและติดตั้งเวอร์ชันล่าสุด
การตั้งค่า Unity¶
Android¶
เพิ่มค่า AdMobId
ในรูปแบบ ca-app-pub-XXXXX~YYYYY ลงในไฟล์ Assets/Plugins/Android/AndroidManifest.xml ที่สร้างขึ้นในโปรเจกต์ Unity.
<manifest>
<application>
<!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
ในการแสดงโฆษณาวิดีโอ คุณต้องเปิดใช้งานการเร่งความเร็วฮาร์ดแวร์ เพิ่มการตั้งค่าสำหรับการเร่งความเร็วฮาร์ดแวร์ในไฟล์ AndroidManifest.xml หากคุณเพิ่มลงในแท็ก application
การเร่งความเร็วฮาร์ดแวร์จะถูกใช้สำหรับทั้งแอปพลิเคชัน หากคุณเพิ่มลงในแท็ก activity
การเร่งความเร็วฮาร์ดแวร์จะถูกใช้เฉพาะสำหรับ Activity
ที่คุณต้องการแสดงโฆษณาเท่านั้น
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
</application>
ตรวจสอบ ใช้ Jetifier. ใน การตั้งค่า Android Resolver (Assets > External Dependency Manager > Android Resolver > Settings) ของ Unity.
การตั้งค่าเพลเยอร์ > เพลเยอร์ > การสร้าง หน้าจอการตั้งค่า ให้ตรวจสอบสี่รายการต่อไปนี้
เมื่อใช้ Proguard กฎ ProGuard สำหรับโมดูล Adiz จะถูกนำเข้ามา ดังนั้นจึงไม่จำเป็นต้องเพิ่มกฎ ProGuard ในโปรเจกต์
iOS¶
ใน Assets > External Dependency Manager > iOS Resolver > Settings ให้ยกเลิกการเลือกการตั้งค่า static_framework
build.
เปิดไฟล์ Podfile ที่สร้างขึ้นระหว่างการสร้าง Unity และกำหนดค่าตามด้านล่างนี้
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/Com2uSPlatformCorp/HiveAdiz-iOS.git'
platform :ios, '12.0'
target 'UnityFramework' do
pod 'HiveAdizUnityPlugin', '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
เพิ่มคีย์ GADApplicationIdentifier
ลงในไฟล์ Info.plist ของโปรเจ็กต์ Xcode ที่สร้างขึ้นระหว่างการสร้าง Unity และใส่ค่า AdMobId
(ในรูปแบบ ca-app-pub-XXXXX~YYYYY) เป็นค่าคีย์ นอกจากนี้คุณยังสามารถตั้งค่าโดยอัตโนมัติโดยการลบคอมเมนต์ในบรรทัดการตั้งค่า GADApplicationIdentifier
ในไฟล์ Assets/HiveAdiz/Editor/AdizPostProcess.cs และเพิ่ม AdMobId
นอกจากนี้ สำหรับ iOS 14 ขึ้นไป โปรดดูที่ คู่มือการอัปเดต info.plist ของคุณ เพื่อเพิ่มรายการ SKAdNetwork
ลงในไฟล์ Info.plist ไฟล์ Assets/HiveAdiz/Editor/AdizPostProcess.cs จะเพิ่มรายการนี้โดยอัตโนมัติลงในไฟล์ Info.plist ในระหว่างกระบวนการสร้าง
การตั้งค่าโฆษณาทดสอบ¶
Adiz สามารถแสดงโฆษณาทดสอบได้สองวิธี 1. เปิดใช้งานโหมดทดสอบ: แสดงเฉพาะโฆษณาทดสอบที่ออกโดย AdMob 2. แสดงโฆษณาหลังจากลงทะเบียนอุปกรณ์ทดสอบ: แสดงโฆษณาจริงสำหรับการทดสอบ โดยมั่นใจว่าจะไม่มีการเข้าชมที่ไม่ถูกต้องเกิดขึ้น และดำเนินการโดยการลงทะเบียนอุปกรณ์เพื่อแสดงโฆษณาทดสอบ
เปิดโหมดทดสอบ¶
ในระยะพัฒนา โหมดทดสอบจะถูกเปิดใช้งานเพื่อให้การคลิกโฆษณาทดสอบไม่คิดค่าใช้จ่ายกับผู้โฆษณา เมื่อเปิดโหมดทดสอบ โฆษณาทดสอบเท่านั้นที่จะถูกแสดง ในโหมดทดสอบ โฆษณาทดสอบจะถูกแสดงแม้จะไม่ได้ป้อนคีย์โฆษณา AdMob ในคอนโซล โหมดทดสอบจะถูกปิดใช้งานในระหว่างการจัดจำหน่ายเชิงพาณิชย์.
มีสองวิธีในการเปิดใช้งานโหมดทดสอบ.
<
- หลังจากลงทะเบียนอุปกรณ์ทดสอบในคอนโซล Hive ให้ตั้งค่าด้วย โฆษณาสาธิต (แนะนำ):
โปรดดูที่ส่วน การจัดการอุปกรณ์ทดสอบ ของคู่มือคอนโซล - ใช้ คลาส Adiz และเมธอด
setTestMode()
:
โปรดดูที่ โค้ดตัวอย่างด้านล่าง
Warning
การคลิกโฆษณามากเกินไปในขณะที่ไม่ได้อยู่ในโหมดทดสอบในระหว่างขั้นตอนการพัฒนาอาจถือว่าเป็นการเข้าชมที่ไม่ถูกต้อง และบัญชี AdMob ของคุณอาจถูกแจ้งรายงาน ส่งผลให้โฆษณาไม่แสดง
การใช้วิธี Adiz.SetTestMode()¶
using hiveAdiz; // Activate test mode. Comment out the line below for production deployment.
Adiz.SetTestMode(true);
// เปิดใช้งานการบันทึกโมดูล Adiz การบันทึกควรใช้เฉพาะในโหมดทดสอบ เท่านั้น คอมเมนต์บรรทัดด้านล่างสำหรับการปรับใช้ในสภาพแวดล้อมการผลิต.
Adiz.SetLogEnable(true);
การโฆษณาอุปกรณ์ทดสอบ¶
คุณต้องลงทะเบียนอุปกรณ์ทดสอบเพื่อแสดงโฆษณาทดสอบในสถานการณ์ต่อไปนี้
- ทดสอบว่า AdMob ad key ที่ลงทะเบียนในคอนโซล Hive ทำงานได้อย่างถูกต้อง
- เขียนข้อความ GDPR และตรวจสอบว่าหน้าต่างขอความยินยอม GDPR ทำงานได้อย่างถูกต้อง
- รัน ad inspector เพื่อวิเคราะห์และแก้ไขข้อผิดพลาดในการขอแอด
มีสองวิธีในการแสดงโฆษณาบนอุปกรณ์ทดสอบ.
<
-
หลังจากลงทะเบียนอุปกรณ์ทดสอบใน Hive console ให้ตั้งค่าเป็น ใช้หมายเลข ID หน่วยโฆษณา (แนะนำ):
กรุณาอ้างอิงไปที่ส่วน การจัดการอุปกรณ์ทดสอบ ของคู่มือคอนโซล. -
ใช้ Adiz class's
setTestDevice()
method:
ดูที่ example code ด้านล่าง.
Note
หากคุณทำการทดสอบโดยแสดงโฆษณาจริงโดยไม่ลงทะเบียนอุปกรณ์ทดสอบ อาจถือว่าเป็นการเข้าชมที่ไม่ถูกต้อง และบัญชี AdMob ของคุณอาจถูกบล็อก ทำให้ไม่สามารถแสดงโฆษณาได้อีกต่อไป เมื่อคุณลงทะเบียนอุปกรณ์ทดสอบ โหมด "ทดสอบ" หรือ "โฆษณาทดสอบ" (โฆษณาเนทีฟ) จะถูกแสดงระหว่างการแสดงโฆษณา คุณต้องปิดการใช้งานอุปกรณ์ทดสอบระหว่างการจัดจำหน่ายเชิงพาณิชย์.
แบนเนอร์, โฆษณาแบบเต็มหน้าจอ, หรือโฆษณาที่ให้รางวัล
การโฆษณาแบบเนทีฟ
การใช้วิธี Adiz.setTestDevice()¶
ในการลงทะเบียนอุปกรณ์ทดสอบ คุณต้องตรวจสอบ ID อุปกรณ์ทดสอบก่อน ในสภาพแวดล้อม Android ของเอนจิน Unity ID อุปกรณ์ทดสอบ (เช่น: 33BE2250B43518CCDA7DE426D04EE231
) สามารถตรวจสอบได้ในสองวิธีดังต่อไปนี้
-
ตรวจสอบบันทึก Logcat หลังจากเรียกใช้
Adiz.Initialize()
: -
หลังจากเรียกใช้
Adiz.Initialize()
ไม่ว่าจะเป็นประเภทโฆษณาใด ให้เรียกใช้initialize()
→load()
และตรวจสอบบันทึก Logcat:
รหัสอุปกรณ์ทดสอบในสภาพแวดล้อม iOS ของเอนจิน Unity (เช่น B74F6468-1516-467C-99AD-CC5973C5DB52
) สามารถตรวจสอบได้ในสองวิธีดังต่อไปนี้
-
ตรวจสอบบันทึก Logcat หลังจากเรียกใช้
Adiz.Initialize()
: -
หลังจากเรียกใช้
Adiz.Initialize()
ไม่ว่าจะเป็นประเภทโฆษณาใด ให้เรียกใช้initialize()
→load()
และตรวจสอบบันทึก Logcat:
หลังจากตรวจสอบ ID อุปกรณ์ทดสอบแล้ว ให้เพิ่มบรรทัด Adiz.setTestDevice(DEVICE_ID)
ก่อนที่จะเรียกใช้ Adiz.initialize
ในโค้ดการเริ่มต้น Adiz ที่มีอยู่ ใส่ ID อุปกรณ์ทดสอบที่คัดลอกมาใน DEVICE_ID
using hiveAdiz;
public void Initialize() {
// set test device
Adiz.SetTestDevice("33BE2250B43518CCDA7DE426D04EE231");
Adiz.Initialize(new CommonHandlers.Builder()
.OnResult(InitResultCB)
.Build());
}
การใช้งาน Ad Inspector¶
Ad Inspector เป็นเครื่องมือซ้อนทับในแอปที่วิเคราะห์กระบวนการขอและแสดงโฆษณาจริงบนอุปกรณ์ทดสอบแบบเรียลไทม์ มันจะแจ้งให้คุณทราบถึงเวลาที่ใช้ในการโหลดโฆษณาและให้เหตุผลสำหรับความล้มเหลวในการแสดงผล คุณยังสามารถระบุเครือข่ายโฆษณาเฉพาะเพื่อตรวจสอบว่าโฆษณาถูกแสดงอย่างถูกต้องหรือไม่ และหากมีปัญหา คุณสามารถดีบักที่ระดับโค้ดได้ กระบวนการทั้งหมดนี้จะดำเนินการควบคู่ไปกับ UI ของ Ad Inspector มันรวมอยู่ใน Google Mobile Ads SDK Android 20.0.0 และ Google Mobile Ads SDK iOS 7.68.0 หรือเวอร์ชันที่ใหม่กว่า และสามารถใช้งานได้โดยการเรียก AdizDeveloperTool.OpenAdInspector
.
ในการใช้ตัวตรวจสอบโฆษณา คุณต้องลงทะเบียนอุปกรณ์ทดสอบ
การตั้งค่า Adiz AppID¶
ตั้งค่า Adiz AppID ที่คุณลงทะเบียนในคอนโซล Hive AppCenter หากไม่ได้ตั้งค่า จะใช้ชื่อแพ็คเกจหรือ Bundle ID แทน
Adiz.SetAppId(appId);
Hive การตั้งค่าเซิร์ฟเวอร์คอนโซล¶
ตั้งค่าเซิร์ฟเวอร์คอนโซล Hive ที่จะใช้ ค่าเริ่มต้นคือ REAL
แม้ว่าคุณจะใช้เซิร์ฟเวอร์การผลิต การเปิดใช้งานโหมดทดสอบจะทำให้แสดงโฆษณาทดสอบเท่านั้น
- Hive เซิร์ฟเวอร์คอนโซลทดสอบ:
ZoneType.TEST
- Hive เซิร์ฟเวอร์คอนโซลแซนด์บ็อกซ์:
ZoneType.SANDBOX
- Hive เซิร์ฟเวอร์คอนโซลการผลิต:
ZoneType.REAL
ZoneType selectZone = ZoneType.REAL;
Adiz.SetZone((int)selectZone);
การเปิดเผยโฆษณาที่เฉพาะเจาะจงสำหรับผู้ใช้¶
ด้วยการแนะนำ ATT (App Tracking Transparency) ใน iOS 14.5+ ความเป็นส่วนตัวได้รับการปรับปรุง ดังนั้นโฆษณาที่เฉพาะเจาะจงสำหรับผู้ใช้จะถูกแสดงเฉพาะเมื่อผู้ใช้ยินยอมให้ติดตามกิจกรรมในหน้าต่างยินยอม ATT เพื่อเพิ่มรายได้จากโฆษณาโดยการแสดงโฆษณาที่เฉพาะเจาะจงสำหรับผู้ใช้ คุณจำเป็นต้องสร้างข้อความ IDFA (Identifier for Advertisers)
เขียนและเผยแพร่ข้อความ IDFA บน แดชบอร์ด Google AdMob ตามที่แสดงด้านล่าง
เมื่อเขียนข้อความ IDFA คุณสามารถอ้างอิงจากคู่มือด้านล่าง
เมื่อคุณโพสต์ข้อความ IDFA บนแดชบอร์ด AdMob ข้อความ IDFA จะถูกแสดงโดยอัตโนมัติระหว่างการเริ่มต้น Adiz บน iOS 14.5+ เมื่อผู้ใช้คลิก "ดำเนินการต่อ" ในหน้าต่างข้อความ IDFA ป๊อปอัปการยินยอม ATT จะถูกแสดงขึ้น
เมื่อผู้ใช้คลิก "อนุญาต" บนป๊อปอัปความยินยอม ATT IDFA จะถูกเปิดใช้งาน และโฆษณาที่เฉพาะสำหรับผู้ใช้จะถูกแสดงผล
Note
ผู้ใช้ที่เข้าถึงจากยุโรปและสหราชอาณาจักรจะเห็นป๊อปอัปการยินยอม GDPR หากผู้ใช้ไม่เคยยินยอมต่อรายการ GDPR ป๊อปอัปการยินยอม ATT จะถูกแสดงทันทีหลังจากป๊อปอัปการยินยอม GDPR โดยไม่แสดงข้อความ IDFA หากผู้ใช้เคยยินยอมต่อรายการ GDPR ข้อความ IDFA จะถูกแสดงตามปกติก่อนที่จะมีการแสดงป๊อปอัปการยินยอม ATT
การเปิดเผยป๊อปอัปความยินยอม 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
ด้านล่างเป็นวิธีการที่ถูกสร้างขึ้นตามอำเภอใจเพื่อวัตถุประสงค์ในการยกตัวอย่าง และบริษัทพัฒนาสามารถเปลี่ยนแปลงการดำเนินการได้ตามต้องการ// .... private void InitResultCB(AdizError error, string jsonString) { // ฟังก์ชัน callback เมื่อการเริ่มต้นเสร็จสมบูรณ์ Debug.Log(TAG + "::InitResultCB:: errorCode : "+error.errorCode+" errorMessage : "+error.errorMessage+" json : "+jsonString); if(error.isSuccess()) { bool isPrivacyOptionsRequired = AdizConsentManager.IsPrivacyOptionsRequired(); if(isPrivacyOptionsRequired) { // แสดงปุ่มตัวเลือกความเป็นส่วนตัว เรียกใช้ ShowPrivacyOptionsForm เมื่อคลิก } else { // ซ่อนปุ่มตัวเลือกความเป็นส่วนตัว } } } private void ShowPrivacyOptionsForm() { // เรียกใช้แบบฟอร์มตัวเลือกความเป็นส่วนตัว if(AdizConsentManager.IsPrivacyOptionsRequired()) { AdizConsentManager.ShowPrivacyOptionsForm(new CommonHandlers.Builder() .OnResult(CommonResultCB) .Build()); } } // ....
การตั้งค่าแท็กสำหรับผู้ใช้ที่อยู่ภายใต้ช่วงอายุที่ต้องได้รับความยินยอมตาม 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
จะมีความสำคัญมากกว่า
using hiveAdiz;
public void Initialize() {
bool isTagForUnderAgeOfConsent = false; // 어린이인 경우 true로 변경
PrivacySettings settings = new PrivacySettings.Builder()
.SetTagForUnderAgeOfConsent(isTagForUnderAgeOfConsent)
.Build();
AdizConsentManager.SetUserPrivacySettings(settings);
Adiz.Initialize(new CommonHandlers.Builder()
.OnResult(InitResultCB)
.Build());
}
การตั้งค่าอุปกรณ์ทดสอบ GDPR¶
ป๊อปอัพการยินยอม GDPR จะถูกแสดงเฉพาะเมื่อที่อยู่ IP ของอุปกรณ์มาจากยุโรปหรือสหราชอาณาจักร ในระหว่างขั้นตอนการพัฒนา ป๊อปอัพการยินยอม GDPR สามารถแสดงได้โดยบังคับไม่ว่าจะเป็นที่อยู่ IP เพื่อทดสอบการแสดงป๊อปอัพ และเพื่อทำเช่นนี้ คุณต้องตั้งค่าอุปกรณ์ทดสอบ GDPR ทำตามขั้นตอนด้านล่างเพื่อตั้งค่าอุปกรณ์ทดสอบ GDPR เนื้อหาด้านล่างเหมือนกับวิธีการ แสดงโฆษณาบนอุปกรณ์ทดสอบ.
- เริ่มต้น Adiz โดย เริ่มต้น การเริ่มต้นนี้เพื่อเช็ค ID อุปกรณ์ทดสอบและไม่ต้องเขียนข้อความการยินยอม GDPR.
ส่งออกบันทึก Android Studio หรือ Xcode เพื่อตรวจสอบ ID อุปกรณ์ ตัวอย่างบันทึกมีดังนี้.
- Android: from
ใช้ ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") เพื่อกำหนดอุปกรณ์นี้เป็นอุปกรณ์ดีบัก
33BE2250B43518CCDA7DE426D04EE231
- iOS: ที่
<UMP SDK>เพื่อเปิดใช้งานโหมดดีบักสำหรับอุปกรณ์นี้ ให้ตั้งค่า: UMPDebugSettings.testDeviceIdentifiers = @[B74F6468-1516-467C-99AD-CC5973C5DB52]
B74F6468-1516-467C-99AD-CC5973C5DB52
- คัดลอก ID ของอุปกรณ์.
- เพิ่ม
AdizGDPRManager.setTestDevice(DEVICE_ID)
ก่อนที่จะดำเนินการAdiz.initialize
ในโค้ดการเริ่มต้น Adiz ที่มีอยู่. - เขียนข้อความการยินยอม GDPR และเริ่มต้น Adiz ใหม่เพื่อให้แน่ใจว่าหน้าต่างป๊อปอัพการยินยอม GDPR ปรากฏขึ้นอย่างถูกต้อง.
using hiveAdiz; public void Initialize() { // การตั้งค่าอุปกรณ์ทดสอบ GDPR AdizGDPRManager.SetTestDevice("33BE2250B43518CCDA7DE426D04EE231"); Adiz.Initialize(new CommonHandlers.Builder() .OnResult(InitResultCB) .Build()); }
การตั้งค่าแท็กการรักษาเด็กที่กำหนดโดย COPPA¶
ตามพระราชบัญญัติคุ้มครองความเป็นส่วนตัวออนไลน์ของเด็ก (COPPA) นักพัฒนาแอปสามารถกำหนดว่า Google ควรจัดการเนื้อหาเป็นการกำหนดสำหรับเด็กหรือไม่โดยการตั้งค่าแท็กการรักษาเด็กที่กำหนด (tagForChildDirectedTreatment, TFCD) เมื่อขอรับโฆษณา หากคุณต้องการให้มันถูกจัดการเป็นการกำหนดสำหรับเด็ก คุณต้องเรียกใช้ AdizConsentManager.SetUserPrivacySettings
ก่อนที่จะดำเนินการ Adiz.initialize
เมื่อใช้ Adiz กับ SDK Hive แท็กการรักษาเด็กจะถูกนำไปใช้โดยอัตโนมัติ ดังนั้นจึงไม่จำเป็นต้องมีการกำหนดค่าแยกต่างหาก
using hiveAdiz;
public void Initialize() {
bool isTagForChildDirectedTreatment = false; // Change to true if it is for children
PrivacySettings settings = new PrivacySettings.Builder()
.SetTagForChildDirectedTreatment(isTagForChildDirectedTreatment)
.Build();
AdizConsentManager.SetUserPrivacySettings(settings);
Adiz.Initialize(new CommonHandlers.Builder()
.OnResult(InitResultCB)
.Build());
}
เพิ่มการจัดการโฆษณา¶
Adiz สามารถแสดงโฆษณาโดยใช้การจัดการโฆษณาของ AdMob เพื่อเพิ่มการจัดการโฆษณาของ AdMob ให้ทำตามขั้นตอนด้านล่าง
การเพิ่มการไกล่เกลี่ย AdMob¶
เราจะดำเนินการรวมแหล่งโฆษณาในคอนโซล AdMob โปรดทำตามตารางด้านล่างเพื่อดำเนินการต่อ
AppLovin | Liftoff Monetize | Meta Audience Network | Pangle | Unity Ads | ironSource | |
---|---|---|---|---|---|---|
ขั้นตอนที่ 1: ตั้งค่า | Android iOS | Android iOS | Android iOS | Android iOS | Android iOS | Android iOS |
ขั้นตอนที่ 2: เพิ่มแหล่งโฆษณา | Android iOS | Android iOS | Android iOS | Android iOS | Android iOS | Android iOS |
ขั้นตอนที่ 3 | เพิ่ม Adiz Adapter |
การเพิ่มอะแดปเตอร์ Adiz¶
Assets/HiveAdiz/Editor/Adiz_DefaultDependencies.xml เพิ่มการพึ่งพาห้องสมุด.
<dependencies>
<androidPackages>
<repositories>
<repository>https://repo.maven.apache.org/maven2</repository>
<repository>https://artifact.bytedance.com/repository/pangle/</repository>
</repositories>
<androidPackage spec="com.com2us.android.adiz:hive-adiz:2.1.3"/>
<!-- AppLovin -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-applovin:2.1.3"/>
<!-- Liftoff -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-liftoff:2.1.3"/>
<!-- Meta -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-meta:2.1.3"/>
<!-- Pangle -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-pangle:2.1.3"/>
<!-- Unity Ads -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-unityads:2.1.3"/>
<!-- ironSource -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-ironsource:2.1.3"/>
</androidPackages>
<iosPods>
<sources>
<source>https://github.com/Com2uSPlatformCorp/HiveAdiz-iOS.git</source>
</sources>
<iosPod name="HiveAdizUnityPlugin" version="2.1.3"/>
<iosPod name="HiveAdizAdapterAppLovin" version="2.1.3"/>
<iosPod name="HiveAdizAdapterLiftoff" version="2.1.3"/>
<iosPod name="HiveAdizAdapterMeta" version="2.1.3"/>
<iosPod name="HiveAdizAdapterPangle" version="2.1.3"/>
<iosPod name="HiveAdizAdapterUnityAds" version="2.1.3"/>
<iosPod name="HiveAdizAdapterIronSource" version="2.1.3"/>
</iosPods>
</dependencies>
เพื่อตรวจสอบว่าการกำหนดค่า Adiz adapter ได้ถูกนำไปใช้ถูกต้องหรือไม่ ให้เรียกใช้แอปและตรวจสอบรายการการกำหนดค่าบนหน้าจอ Ad Inspector.
การเริ่มต้น Adiz¶
นี่เป็นขั้นตอนที่จำเป็นต้องดำเนินการก่อนที่จะมีการแสดงโฆษณาประเภทใดๆ โดยการเริ่มต้น Adiz คุณจะได้รับกุญแจโฆษณาที่จำเป็นสำหรับการแสดงโฆษณา หากคุณได้เปิดใช้งานโหมดทดสอบ คุณจะได้รับกุญแจทดสอบ
Warning
หากคุณกำลังใช้การตั้งค่า GDPR คุณต้องเรียกใช้ AuthV4.setup
หลังจากเสร็จสิ้นการเริ่มต้น Hive Adiz หากหน้าจอการยินยอม GDPR ปรากฏขึ้นหลังจากแสดงการแจ้งเตือนการยินยอม ATT (App Tracking Transparency แอป) แอปของคุณอาจถูกปฏิเสธระหว่างการตรวจสอบแอปของ Apple
using hiveAdiz;
public void Start() {
/* omitted */
// เพื่อใช้การเรียกกลับ HiveAdiz คุณต้องลงทะเบียน AdizCallbackManager เป็น GameObject.
Adiz.InitPlugin();
}
Adiz.Initialize(new CommonHandlers.Builder()
.OnResult(InitResultCB)
.Build());
// เริ่มต้นฟังผลลัพธ์
private void InitResultCB(AdizError error, string jsonString) {
Debug.Log(TAG + "::InitResultCB:: errorCode : "+error.errorCode+" errorMessage : "+error.errorMessage+" json : "+jsonString);
if(error.isSuccess()) {
JSONObject resJsonObject = new JSONObject (jsonString);
JSONObject jsonArray = resJsonObject.GetField ("keys");
if (jsonArray != null && jsonArray.count > 0) {
List interstitialKeyList = new List();
List bannerKeyList = new List();
List nativeKeyList = new List();
List rewardedKeyList = new List();
List rewardedInterstitialKeyList = new List();
List appOpenKeyList = new List();
List jsonList = jsonArray.list;
foreach (JSONObject jsonItem in jsonList) {
bool isDefault = false;
jsonItem.GetField(ref isDefault, "is_default");
// นี่คือตัวอย่างของการสร้างรายการของคีย์ที่ is_default เป็น false เมื่อป้อนคีย์โฆษณาโดยตรงในเกม
if(isDefault == false) {
string hiveAdKey = null;
jsonItem.GetField(ref hiveAdKey, "key");
string form = null;
jsonItem.GetField(ref form, "form");
switch (form) {
case "interstitial":
interstitialKeyList.Add(hiveAdKey);
break;
case "banner":
bannerKeyList.Add(hiveAdKey);
break;
case "native":
nativeKeyList.Add(hiveAdKey);
break;
case "rewarded":
rewardedKeyList.Add(hiveAdKey);
break;
case "rewarded_interstitial":
rewardedInterstitialKeyList.Add(hiveAdKey);
break;
case "app_open":
appOpenKeyList.Add(hiveAdKey);
break;
}
}
}
foreach(string hiveAdKey in interstitialKeyList) {
Debug.Log("onSdkInitialize interstitialKeyList "+hiveAdKey);
}
foreach(string hiveAdKey in bannerKeyList) {
Debug.Log("onSdkInitialize bannerKeyList "+hiveAdKey);
}
foreach(string hiveAdKey in nativeKeyList) {
Debug.Log("onSdkInitialize nativeKeyList "+hiveAdKey);
}
foreach(string hiveAdKey in rewardedKeyList) {
Debug.Log("onSdkInitialize rewardedKeyList "+hiveAdKey);
}
foreach(string hiveAdKey in rewardedInterstitialKeyList) {
Debug.Log("onSdkInitialize rewardedInterstitialKeyList "+hiveAdKey);
}
foreach(string hiveAdKey in appOpenKeyList) {
Debug.Log("onSdkInitialize appOpenKeyList "+hiveAdKey);
}
}
}
}
ไฟล์ 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 ในคอนโซล Hive เมื่อเริ่มต้นในโหมดการผลิต คุณจะได้รับรายการกุญแจโฆษณา AdMob ที่ลงทะเบียนในคอนโซล Hive
สำหรับแต่ละประเภทของโฆษณา (form
), โฆษณาหนึ่งรายการจะถูกใช้เป็น โฆษณาเริ่มต้น (โฆษณาที่มี "is_default":true
). เมื่อโฆษณาแรกของประเภทใด ๆ ถูกลงทะเบียน, โฆษณานั้นจะกลายเป็นโฆษณาเริ่มต้น. โฆษณาเริ่มต้นไม่ต้องการให้ป้อนคีย์โฆษณา (hiveAdKey
) เมื่อสร้างอินสแตนซ์โฆษณา (initialize()
). เพื่อเปลี่ยนโฆษณาเริ่มต้น, คุณต้องลบโฆษณาเริ่มต้นที่มีอยู่จาก HiveHive คอนโซลและลงทะเบียนโฆษณาใหม่.
การตั้งค่าฟังการเรียกกลับโฆษณา¶
โดยการใช้งาน AdizListener
เมื่อสร้างอินสแตนซ์โฆษณาแต่ละรายการ คุณสามารถรับการเรียกกลับตามการเปลี่ยนแปลงในสถานะของโฆษณา
ชื่อ | คำอธิบาย | การดำเนินการที่จำเป็น |
---|---|---|
.OnAdLoad(OnAdLoadCB) | โหลดโฆษณาสำเร็จ | O |
.OnAdFail(OnAdLoadFailedCB) | ความล้มเหลว (เหตุผลของความล้มเหลวสามารถทราบได้ผ่าน `error.errorCode()` และ `error.errorMessage()`) | O |
.OnAdShow(OnAdShowCB) | การแสดงโฆษณาสำเร็จ | O |
.OnAdClick(OnAdClickCB) | คลิกโฆษณา | O |
.OnAdPaidEvent(OnAdPaidEventCB) | มันคือจุดที่ได้รับเหตุการณ์ที่ชำระเงินหลังจากการแสดงโฆษณา และข้อมูลรายได้จากโฆษณาจะถูกส่งต่อ | O |
.OnAdClose(OnAdCloseCB) | โฆษณาสิ้นสุด
| X |
.OnAdReward(OnAdRewardCB) | จุดที่ผู้ใช้ได้รับรางวัลหลังจากการแสดงโฆษณาในโฆษณาที่มีรางวัล (`rewarded`, `rewarded interstitial`) | X |
private void OnAdLoadCB()
{
// This will be called when the ad is loaded.
// If the ad load is successful, you should call the ad instance's .show() at the desired time to display the ad.
Debug.Log(TAG + "::OnAdLoadCB");
// AdizInterstitial โหลดและพร้อมที่จะแสดง
// requestShowAd();
}
private void OnAdLoadFailedCB(AdizError error) {
// This is called when the ad load fails or fails to display for other reasons.
Debug.Log(TAG + "::OnAdLoadFailedCB errorCode "+error.errorCode);
Debug.Log(TAG + "::OnAdLoadFailedCB errorMessage "+error.errorMessage);
}
private void OnAdShowCB()
{
// This is called when the ad is displayed.
Debug.Log(TAG + "::OnAdShowCB");
}
private void OnAdCloseCB()
{
// This is called when the ad is closed.
Debug.Log(TAG + "::OnAdCloseCB");
// ลบหลังจากแสดงโฆษณา AdizInterstitial
// requestDestroyAd();
}
private void OnAdClickCB()
{
// This is called when the ad is clicked.
Debug.Log(TAG + "::OnAdClickCB");
}
private void OnAdRewardCB(RewardItem rewardItem)
{
// นี่คือเมื่อมีการให้รางวัลสำหรับการดูโฆษณาในโฆษณาที่มีรางวัลหรือโฆษณาแบบอินเตอร์สเตเชียลที่มีรางวัล
Debug.Log(TAG + "::OnAdRewardCB:: rewardItem.itemType : " + rewardItem.getItemType() + " rewardItem.itemAmount : " + rewardItem.getItemAmount());
// เฉพาะที่ส่งในโฆษณาที่มีรางวัล, โฆษณาแบบ rewardedInterstitial
}
private void OnAdPaidEventCB(AdRevenueData adRevenueData)
{
// นี่คือเมื่อมีรายได้เกิดจากโฆษณา
Debug.Log(TAG + "::OnAdPaidEventCB:: adRevenueData.revenue : " + adRevenueData.getRevenue() + " adRevenueData.currency : " + adRevenueData.getCurrency());
}
รหัสข้อผิดพลาด¶
เมื่อได้รับ OnAdFail()
จาก 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()
). - โหลดโฆษณาที่คุณต้องการแสดง (
load()
). - แสดงโฆษณาที่โหลดแล้ว (
show()
). เพื่อแสดงโฆษณาอีกครั้งคุณต้องเรียกload()
อีกครั้งแล้วจึงเรียกshow()
. - เพื่อสิ้นสุดโฆษณาให้เรียก
destroy()
.
โฆษณาแบบแทรก¶
โฆษณาทั้งหน้าจอที่ใช้พื้นที่ทั้งหมดของหน้าจอ.
// Create AdizInterstitial Instance
private AdizInterstitial InterstitialAd = null;
public void requestInitAd(string interstitialAdKey) {
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(interstitialAdKey)) {
// เริ่มต้นอินสแตนซ์ AdizInterstitial เริ่มต้น (AdEventHandlers)
InterstitialAd = AdizInterstitial.Initialize(eventHandlers);
} else {
// เริ่มต้นอินสแตนซ์ AdizInterstitial (hiveAdKey, AdEventHandlers)
InterstitialAd = AdizInterstitial.Initialize(interstitialAdKey, eventHandlers);
}
}
public void requestInitAdWithPlacementId(string interstitialPlacementId) {
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(interstitialPlacementId)) {
// เริ่มต้น AdizInterstitial Instance เริ่มต้น (AdEventHandlers)
InterstitialAd = AdizInterstitial.Initialize(eventHandlers);
} else {
// เริ่มต้น AdizInterstitial Instance (placementId, AdEventHandlers)
InterstitialAd = AdizInterstitial.InitializeWithPlacementId(interstitialPlacementId, eventHandlers);
}
}
public void requestLoadAd() {
// Load AdizInterstitial
if(InterstitialAd != null && InterstitialAd.IsInitialized()) InterstitialAd.Load();
}
public void requestShowAd() {
// แสดง AdizInterstitial
if(InterstitialAd != null && InterstitialAd.IsLoaded()) InterstitialAd.Show();
}
public void requestDestroyAd() {
// ทำลาย AdizInterstitial
if(InterstitialAd != null) InterstitialAd.Destroy();
InterstitialAd = null;
}
โฆษณาแบนเนอร์¶
นี่คือโฆษณาแบนเนอร์ที่แสดงแบนเนอร์ขนาดเฉพาะ โฆษณาแบนเนอร์จะไม่รับการเรียกกลับ OnAdClose()
ดังนั้นคุณต้องเรียก destroy()
จากตำแหน่งอื่นเพื่อยุติโฆษณา
BannerSize
ปฏิบัติตามขนาดแบนเนอร์มาตรฐาน.
ขนาดจุด (ความกว้าง x ความสูง) | คำอธิบาย | เป้าหมายที่รองรับ | ค่าคงที่ขนาดแบนเนอร์ |
---|---|---|---|
320x50 | แบนเนอร์ | โทรศัพท์มือถือและแท็บเล็ต | BannerSize.NORMAL |
320x100 | แบนเนอร์ขนาดใหญ่ | โทรศัพท์มือถือและแท็บเล็ต | BannerSize.MEDIUM |
300x250 | IAB ขนาดกลางสี่เหลี่ยมผืนผ้า | โทรศัพท์มือถือและแท็บเล็ต | BannerSize.LARGE |
468 x 60 | IAB แบนเนอร์ขนาดเต็ม | แท็บเล็ต | BannerSize.FULL |
PositionType
คือค่าที่อยู่ด้านบนสุดหรือด้านล่างสุด ค่าเริ่มต้นคือด้านล่างสุด。
การจัดตำแหน่ง | คำอธิบาย | ค่าคงที่ประเภทตำแหน่ง |
---|---|---|
การจัดตำแหน่งด้านบน | ระบุการจัดตำแหน่งที่ด้านบนของหน้าจอ (iOS ระบุการจัดตำแหน่งด้านบนตาม SafeArea) | PositionType.TOP |
การจัดตำแหน่งด้านล่าง (ค่าเริ่มต้น) | ระบุการจัดตำแหน่งที่ด้านล่างของหน้าจอ (iOS ระบุการจัดตำแหน่งด้านล่างตาม SafeArea) | PositionType.BOTTOM |
// Create AdizBanner Instance
private AdizBanner BannerAd = null;
public void requestInitAd(string bannerAdKey) {
// Set banner size
private BannerSize bannerSize = BannerSize.NORMAL;
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(bannerAdKey)) {
// Initialize Default AdizBanner Instance (AdEventHandlers)
BannerAd = AdizBanner.Initialize(bannerSize, eventHandlers);
} else {
// Initialize AdizBanner Instance (hiveAdKey, AdEventHandlers)
BannerAd = AdizBanner.Initialize(bannerAdKey, bannerSize, eventHandlers);
}
}
public void requestInitAdWithPlacementId(string bannerPlacementId) {
// Set banner size
private BannerSize bannerSize = BannerSize.NORMAL;
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(bannerPlacementId)) {
// Initialize Default AdizBanner Instance (AdEventHandlers)
BannerAd = AdizBanner.Initialize(bannerSize, eventHandlers);
} else {
// Initialize AdizBanner Instance (placementId, AdEventHandlers)
BannerAd = AdizBanner.InitializeWithPlacementId(bannerPlacementId, bannerSize, eventHandlers);
}
}
public void requestLoadAd() {
// Load AdizBanner
if(BannerAd != null && BannerAd.IsInitialized()) BannerAd.Load();
}
public void requestShowAd() {
// Set position type
private PositionType bannerPosition = PositionType.TOP;
// แสดง AdizBanner
if(BannerAd != null && BannerAd.IsLoaded()) BannerAd.Show(bannerPosition);
}
public void requestDestroyAd() {
// ทำลาย AdizBanner
if(BannerAd != null) BannerAd.Destroy();
BannerAd = null;
}
การโฆษณาแบบเนทีฟ¶
นี่คือโฆษณาเนทีฟที่แสดงเทมเพลตเนทีฟขนาดเฉพาะ โฆษณาเนทีฟได้รับการปรับให้เหมาะสมสำหรับหน้าจอแนวตั้ง ดังนั้นจึงแนะนำให้ใช้ในเกมแนวตั้ง (เกมหน้าจอแนวตั้ง) โฆษณาเนทีฟจะไม่ได้รับการเรียกคืน OnAdClose()
ดังนั้นคุณจึงต้องเรียก destroy()
จากตำแหน่งอื่นเพื่อปิดโฆษณา
เทมเพลตปัจจุบันรองรับขนาด small
หรือ medium
ขนาดจุด (ความกว้าง x ความสูง) | เทมเพลต | การจัดตำแหน่ง | ค่าคงที่ BannerSize |
---|---|---|---|
355x91 (ปรับอัตราส่วน) | ขนาดเล็ก | บน / ล่าง | BannerSize.NORMAL |
355x370 (ปรับอัตราส่วน) | ขนาดกลาง | กลาง (คงที่) | BannerSize.MEDIUM, BannerSize.LARGE, BannerSize.FULL |
ในเทมเพลต small
PositionType
จะเป็นตำแหน่งสูงสุดหรือต่ำสุด และค่าเริ่มต้นคือต่ำสุด。
การจัดตำแหน่ง | คำอธิบาย | ค่าคงที่ประเภทตำแหน่ง |
---|---|---|
การจัดตำแหน่งด้านบน | ระบุการจัดตำแหน่งที่ด้านบนของหน้าจอ (iOS ระบุการจัดตำแหน่งด้านบนตาม SafeArea) | PositionType.TOP |
การจัดตำแหน่งด้านล่าง (ค่าเริ่มต้น) | ระบุการจัดตำแหน่งที่ด้านล่างของหน้าจอ (iOS ระบุการจัดตำแหน่งด้านล่างตาม SafeArea) | PositionType.BOTTOM |
เทมเพลต medium
ไม่อนุญาตให้เลือกการจัดแนวและใช้การจัดแนกลางตามค่าเริ่มต้น
// สร้าง AdizNative Instance
private AdizNative NativeAd = null;
public void requestInitAd(string nativeAdKey) {
// ตั้งค่าขนาดแบนเนอร์
private BannerSize bannerSize = BannerSize.NORMAL;
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(nativeAdKey)) {
// เริ่มต้นอินสแตนซ์ AdizNative เริ่มต้น (AdEventHandlers)
NativeAd = AdizNative.Initialize(bannerSize, eventHandlers);
} else {
// เริ่มต้นอินสแตนซ์ AdizNative (hiveAdKey, AdEventHandlers)
NativeAd = AdizNative.Initialize(nativeAdKey, bannerSize, eventHandlers);
}
}
public void requestInitAdWithPlacementId(string nativePlacementId) {
// Set banner size
private BannerSize bannerSize = BannerSize.NORMAL;
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(nativePlacementId)) {
// เริ่มต้น AdizNative Instance เริ่มต้น (AdEventHandlers)
NativeAd = AdizNative.Initialize(bannerSize, eventHandlers);
} else {
// เริ่มต้น AdizNative Instance (placementId, AdEventHandlers)
NativeAd = AdizNative.InitializeWithPlacementId(nativePlacementId, bannerSize, eventHandlers);
}
}
public void requestLoadAd() {
// Load AdizNative
if(NativeAd != null && NativeAd.IsInitialized()) NativeAd.Load();
}
public void requestShowAd() {
// Set position type
private PositionType bannerPosition = PositionType.TOP;
// แสดง AdizNative
if(NativeAd != null && NativeAd.IsLoaded()) NativeAd.Show(bannerPosition);
}
public void requestDestroyAd() {
// ทำลาย AdizNative
if(NativeAd != null) NativeAd.Destroy();
NativeAd = null;
}
โฆษณาที่ได้รับรางวัล¶
นี่คือโฆษณาที่ได้รับรางวัลซึ่งผู้ใช้จะได้รับรางวัลสำหรับการดูโฆษณาเป็นระยะเวลาหนึ่ง เมื่อได้รับรางวัล ข้อมูลรายการรางวัลจะถูกส่งผ่านทางการเรียกกลับ OnAdReward()
// Create AdizRewarded Instance
private AdizRewarded RewardVideoAd = null;
public void requestInitAd(string rewardedAdKey) {
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdReward(OnAdRewardCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(rewardedAdKey)) {
// Initialize Default AdizRewarded Instance (AdEventHandlers)
RewardVideoAd = AdizRewarded.Initialize(eventHandlers);
} else {
// Initialize AdizRewarded Instance (hiveAdKey, AdEventHandlers)
RewardVideoAd = AdizRewarded.Initialize(rewardedAdKey, eventHandlers);
}
}
public void requestInitAdWithPlacementId(string rewardedPlacementId) {
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdReward(OnAdRewardCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(rewardedPlacementId)) {
// เริ่มต้น AdizRewarded Instance เริ่มต้น (AdEventHandlers)
RewardVideoAd = AdizRewarded.Initialize(eventHandlers);
} else {
// เริ่มต้น AdizRewarded Instance (placementId, AdEventHandlers)
RewardVideoAd = AdizRewarded.InitializeWithPlacementId(rewardedPlacementId, eventHandlers);
}
}
public void requestLoadAd() {
// Load AdizRewarded
if(RewardVideoAd != null && RewardVideoAd.IsInitialized()) RewardVideoAd.Load();
}
public void requestShowAd() {
// Show AdizRewarded
if(RewardVideoAd != null && RewardVideoAd.IsLoaded()) RewardVideoAd.Show();
}
public void requestDestroyAd() {
// ทำลาย AdizRewarded
if(RewardVideoAd != null) RewardVideoAd.Destroy();
RewardVideoAd = null;
}
โฆษณาแบบอินเตอร์สเตเชียลที่ได้รับรางวัล¶
นี่คือโฆษณาแบบอินเตอร์สเตเชียลที่ผู้ใช้จะได้รับรางวัลเมื่อดูโฆษณาเป็นระยะเวลาหนึ่ง เมื่อได้รับรางวัล ข้อมูลรายการรางวัลจะถูกส่งผ่านการเรียกกลับ OnAdReward()
// Create AdizRewardedInterstitial Instance
private AdizRewardedInterstitial RewardedInterstitialAd = null;
public void requestInitAd(string rewardedInterstitialAdKey) {
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdReward(OnAdRewardCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(rewardedInterstitialAdKey)) {
// Initialize Default AdizRewardedInterstitial Instance (AdEventHandlers)
RewardedInterstitialAd = AdizRewardedInterstitial.Initialize(eventHandlers);
} else {
// Initialize AdizRewardedInterstitial Instance (hiveAdKey, AdEventHandlers)
RewardedInterstitialAd = AdizRewardedInterstitial.Initialize(rewardedInterstitialAdKey, eventHandlers);
}
}
public void requestInitAdWithPlacementId(string rewardedInterstitialPlacementId) {
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdReward(OnAdRewardCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(rewardedInterstitialPlacementId)) {
// Initialize Default AdizRewardedInterstitial Instance (AdEventHandlers)
RewardedInterstitialAd = AdizRewardedInterstitial.Initialize(eventHandlers);
} else {
// Initialize AdizRewardedInterstitial Instance (placementId, AdEventHandlers)
RewardedInterstitialAd = AdizRewardedInterstitial.InitializeWithPlacementId(rewardedInterstitialPlacementId, eventHandlers);
}
}
public void requestLoadAd() {
// Load AdizRewardedInterstitial
if(RewardedInterstitialAd != null && RewardedInterstitialAd.IsInitialized()) RewardedInterstitialAd.Load();
}
public void requestShowAd() {
// Show AdizRewardedInterstitial
if(RewardedInterstitialAd != null && RewardedInterstitialAd.IsLoaded()) RewardedInterstitialAd.Show();
}
public void requestDestroyAd() {
// ทำลาย AdizRewardedInterstitial
if(RewardedInterstitialAd != null) RewardedInterstitialAd.Destroy();
RewardedInterstitialAd = null;
}
โฆษณาเปิดแอป (AppOpen)¶
นี่คือโฆษณาเปิดแอปที่แสดงโฆษณาที่โหลดล่วงหน้า (load()
) เมื่อสถานะแอปเปลี่ยนจากพื้นหลังไปยังพื้นหน้า หากเรียกใช้ show()
หลังจากที่ผ่านไป 3 ชั่วโมงนับตั้งแต่โหลดโฆษณา โฆษณาจะโหลดใหม่โดยอัตโนมัติและจะแสดงผล จากนั้นเมื่อมีการแสดงโฆษณาอย่างน้อยหนึ่งครั้ง จะไม่โหลดใหม่โดยอัตโนมัติ
// Create AdizAppOpen Instance
private AdizAppOpen AppOpenAd = null;
public void requestInitAd(string appOpenAdKey) {
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdClick(OnAdClickCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(appOpenAdKey)) {
// Initialize Default AdizAppOpen Instance (AdEventHandlers)
AppOpenAd = AdizAppOpen.Initialize(eventHandlers);
} else {
// Initialize AdizAppOpen Instance (hiveAdKey, AdEventHandlers)
AppOpenAd = AdizAppOpen.Initialize(appOpenAdKey, eventHandlers);
}
}
public void requestInitAdWithPlacementId(string appOpenPlacementId) {
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdClick(OnAdClickCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(appOpenPlacementId)) {
// เริ่มต้น AdizAppOpen Instance เริ่มต้น (AdEventHandlers)
AppOpenAd = AdizAppOpen.Initialize(eventHandlers);
} else {
// เริ่มต้น AdizAppOpen Instance (placementId, AdEventHandlers)
AppOpenAd = AdizAppOpen.InitializeWithPlacementId(appOpenPlacementId, eventHandlers);
}
}
public void requestLoadAd() {
// Load AdizAppOpen
if(AppOpenAd != null && AppOpenAd.IsInitialized()) AppOpenAd.Load();
}
public void requestShowAd() {
// Show AdizAppOpen
Debug.Log("[appOpenAd] appOpenAd don't request Show");
}
public void requestDestroyAd() {
// ทำลาย AdizAppOpen
if(AppOpenAd != null) AppOpenAd.Destroy();
AppOpenAd = null;
}
ถอนการติดตั้ง HiveAdiz¶
ในการถอนการติดตั้ง HiveAdiz ให้ลบโฟลเดอร์ด้านล่างภายในโปรเจกต์ Unity ของคุณ.
- ทรัพย์สิน/HiveAdiz
- ทรัพย์สิน/HiveAdiz_ตัวอย่าง