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

Unity

Adiz Unity

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

  • โฆษณาแบบ Interstitial
  • โฆษณาแบบ Banner
  • โฆษณาแบบ Native
  • โฆษณาแบบ Rewarded
  • โฆษณาแบบ Interstitial ที่ให้รางวัล
  • โฆษณาแบบ App Open

โปรดดูที่คู่มือด้านล่างเพื่อทำการติดตั้งและใช้งาน Adiz Unity.

การติดตั้งหรืออัปเดต

  1. ตั้งค่าสภาพแวดล้อมการพัฒนา Adiz Unity.
  2. ดาวน์โหลดเวอร์ชันล่าสุดของ Adiz จาก ที่นี่ และแตกไฟล์ออก.
  3. ใน Unity ให้เลือกตัวเลือก Assets > Import Package > Custom Package… เลือกไฟล์ .unitypackage และคลิก Import.
  4. ตรวจสอบว่าไฟล์และโฟลเดอร์ของ Adiz ได้ถูกสร้างขึ้นภายใต้โฟลเดอร์ Assets.
  5. ดาวน์โหลดและติดตั้งเวอร์ชันล่าสุดของ 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 ของ Unity (Assets > External Dependency Manager > Android Resolver > Settings).

 

การตั้งค่าเพลเยอร์ > เพลเยอร์ > การสร้าง หน้าจอการตั้งค่า ตรวจสอบสี่รายการต่อไปนี้

 

เมื่อใช้ Proguard กฎ ProGuard สำหรับโมดูล Adiz จะถูกนำเข้าไปด้วย ดังนั้นจึงไม่จำเป็นต้องเพิ่มกฎ ProGuard ลงในโปรเจกต์

iOS

ใน Assets > External Dependency Manager > iOS Resolver > Settings ให้ปิดการตั้งค่า static_framework build setting.

 

เปิดไฟล์ 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.1
end
target 'Unity-iPhone' do
end
use_frameworks!

# แก้ไขปัญหา dyld ใน pods เมื่อใช้ Project
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      # ปัญหา Toolchain xcode 15
      xcconfig_path = config.base_configuration_reference.real_path
      xcconfig = File.read(xcconfig_path)
      xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR")
      File.open(xcconfig_path, "w") { |file| file << xcconfig_mod }
      # สิ้นสุด

      config.build_settings["BUILD_LIBRARY_FOR_DISTRIBUTION"] = "YES"
      if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 12.0
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
      end
    end
  end
end

 

เพิ่มคีย์ GADApplicationIdentifier ลงในไฟล์ Info.plist ของโปรเจกต์ Xcode ที่สร้างขึ้นระหว่างการสร้าง Unity และใส่ค่า AdMobId (ในรูปแบบ ca-app-pub-XXXXX~YYYYY) เป็นค่าคีย์ นอกจากนี้คุณยังสามารถยกเลิกการคอมเมนต์บรรทัดการตั้งค่า GADApplicationIdentifier ภายในไฟล์ Assets/HiveAdiz/Editor/AdizPostProcess.cs และเพิ่ม AdMobId ซึ่งจะถูกตั้งค่าโดยอัตโนมัติ

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

 

นอกจากนี้ สำหรับ iOS 14 ขึ้นไป โปรดดูที่ คู่มือการอัปเดต info.plist ของคุณ เพื่อเพิ่มรายการ SKAdNetwork ลงในไฟล์ Info.plist ไฟล์ Assets/HiveAdiz/Editor/AdizPostProcess.cs จะเพิ่มมันลงในไฟล์ Info.plist โดยอัตโนมัติในระหว่างกระบวนการสร้าง

การตั้งค่าโฆษณาทดสอบ

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

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

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

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

Warning

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


การใช้วิธี Adiz.SetTestMode()


using hiveAdiz; // Activate test mode. Comment out this line for production deployment.
Adiz.SetTestMode(true);

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

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

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

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

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

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

  • ใช้ Adiz คลาส's setTestDevice() วิธีการ:
    โปรดดูที่ ตัวอย่างโค้ด ด้านล่าง.

Note

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


แบนเนอร์, โฆษณาแบบเต็มหน้าจอ, หรือโฆษณาแบบให้รางวัล

การโฆษณาพื้นเมือง

การใช้วิธี Adiz.setTestDevice()

ในการลงทะเบียนอุปกรณ์ทดสอบ คุณต้องตรวจสอบ ID อุปกรณ์ทดสอบก่อน ในสภาพแวดล้อม Android ของเอนจิน Unity ID อุปกรณ์ทดสอบ (เช่น: 33BE2250B43518CCDA7DE426D04EE231) สามารถตรวจสอบได้ในสองวิธีดังต่อไปนี้

  • ตรวจสอบบันทึก Logcat หลังจากเรียกใช้ Adiz.Initialize():

    ใช้ใหม่
    ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") เพื่อกำหนดสิ่งนี้เป็นอุปกรณ์ดีบัก
    
  • หลังจากเรียกใช้ Adiz.Initialize() ไม่ว่าจะเป็นประเภทโฆษณาใด ให้เรียกใช้ initialize()load() และตรวจสอบบันทึก Logcat:

    `I/Ads: ใช้ RequestConfiguration.Builder.setTestDeviceIds(Arrays.asList("33BE2250B43518CCDA7DE426D04EE231")) เพื่อรับโฆษณาทดสอบบนอุปกรณ์นี้.
    


รหัสอุปกรณ์ทดสอบในสภาพแวดล้อม iOS ของเอนจิน Unity (เช่น B74F6468-1516-467C-99AD-CC5973C5DB52) สามารถตรวจสอบได้ในสองวิธีดังต่อไปนี้

  • ตรวจสอบบันทึก Logcat หลังจากเรียกใช้ Adiz.Initialize():

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

    GADMobileAds.sharedInstance().requestConfiguration.testDeviceIdentifiers = [ "B74F6468-1516-467C-99AD-CC5973C5DB52" ]
    


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

using hiveAdiz;

public void Initialize() {

    // 테스트 디바이스 설정
    Adiz.SetTestDevice("33BE2250B43518CCDA7DE426D04EE231");

    Adiz.Initialize(new CommonHandlers.Builder()
                                            .OnResult(InitResultCB)
                                            .Build());
}

การใช้งาน Ad Inspector

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

ในการใช้ตัวตรวจสอบโฆษณา ต้องตั้งค่าการลงทะเบียนอุปกรณ์ทดสอบ

using hiveAdiz;

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)

AdMob โปรดติดตามคู่มือการเขียนข้อความ IDFA ด้านล่างบนแดชบอร์ดเพื่อสร้างและเผยแพร่ข้อความของคุณ.

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

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

Note

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

หากเกมมีเป้าหมายที่ยุโรปและสหราชอาณาจักร (EEA & สหราชอาณาจักร) จะต้องแสดงป๊อปอัพการยินยอม GDPR (กฎระเบียบการคุ้มครองข้อมูลทั่วไป) ป๊อปอัพการยินยอม GDPR จะแสดงเฉพาะเมื่อที่อยู่ IP ของอุปกรณ์ของผู้ใช้มาจากยุโรปหรือสหราชอาณาจักร (EEA & สหราชอาณาจักร) Adiz รองรับการแสดงป๊อปอัพการยินยอม GDPR ผ่าน Google UMP (User Messaging Platform) หลังจากสร้างข้อความ GDPR ในคอนโซล AdMob ให้ เริ่มต้น Adiz เพื่อแสดงป๊อปอัพ GDPR ให้กับผู้ใช้ที่เข้าถึงจากยุโรปและสหราชอาณาจักร.

Warning

หากคุณกำลังมุ่งเป้าไปยังพื้นที่นอกยุโรปและสหราชอาณาจักร เช่น หากคุณวางแผนที่จะให้บริการภายในประเทศเท่านั้น คุณสามารถข้ามขั้นตอน การเปิดเผยป๊อปอัปความยินยอม GDPR (ยุโรป, สหราชอาณาจักร) และดำเนินการเริ่มต้นด้วยวิธี Adiz.InitializeForNonGDPR() ได้.
หากคุณดำเนินการเริ่มต้นด้วยวิธี Adiz.Initialize() คุณต้องสร้างข้อความ GDPR ในคอนโซล AdMob เพื่อให้การเริ่มต้น Adiz ดำเนินการตามปกติ

การเขียนข้อความ GDPR

เข้าถึงคอนโซล Google AdMob เพื่อเขียนข้อความ GDPR ของคุณ ก่อนที่จะเขียนข้อความ GDPR โปรดดูที่ คู่มือการเขียนข้อความ GDPR.

หากคุณได้เขียนข้อความ GDPR แล้ว ป๊อปอัปการยินยอม GDPR จะปรากฏขึ้นโดยอัตโนมัติเมื่อ Adiz ถูกเริ่มต้น.

Warning

หากคุณกำลังใช้ SDK ของ Hive คุณต้องเรียกใช้ AuthV4.setup หลังจากเสร็จสิ้นการเริ่มต้น Hive Adiz หากหน้าจอการยินยอม GDPR ปรากฏขึ้นหลังจากแสดงการแจ้งเตือนการยินยอม ATT (App Tracking Transparency) แอปของคุณอาจถูกปฏิเสธระหว่างการตรวจสอบแอปของ Apple.

การดำเนินการฟังก์ชันการยินยอมและการถอนการยินยอมตาม GDPR

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

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

คุณสามารถใช้ Tag For Under the Age of Consent (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 จะถูกนำไปใช้โดยอัตโนมัติ และไม่จำเป็นต้องเรียกใช้ 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 เนื้อหาต่อไปนี้เหมือนกับวิธีการ แสดงโฆษณาบนอุปกรณ์ทดสอบ.

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

    • Android:
      ใช้ ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") เพื่อกำหนดอุปกรณ์นี้เป็นอุปกรณ์ดีบัก
      
      from 33BE2250B43518CCDA7DE426D04EE231
    • iOS:
      <UMP SDK>เพื่อเปิดใช้งานโหมดดีบักสำหรับอุปกรณ์นี้ ให้ตั้งค่า: UMPDebugSettings.testDeviceIdentifiers = @[B74F6468-1516-467C-99AD-CC5973C5DB52]
      
      ที่ B74F6468-1516-467C-99AD-CC5973C5DB52
  3. คัดลอก ID ของอุปกรณ์.
  4. เพิ่ม AdizGDPRManager.setTestDevice(DEVICE_ID) ก่อนที่จะดำเนินการ Adiz.initialize ในโค้ดการเริ่มต้น Adiz ที่มีอยู่.
  5. เขียน ข้อความยินยอม 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 Pangle Unity Ads
ขั้นตอนที่ 1: การตั้งค่า Android iOS Android iOS Android iOS Android iOS Android iOS
ขั้นตอนที่ 2: เพิ่มแหล่งโฆษณา 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.1"/>
    <!-- AppLovin -->
    <androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-applovin:2.1.1"/>
        <!-- Liftoff -->
    <androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-liftoff:2.1.1"/>
    <!-- Meta -->
    <androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-meta:2.1.1"/>
    <!-- Pangle -->
    <androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-pangle:2.1.1"/>
    <!-- Unity Ads -->
    <androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-unityads:2.1.1"/>
  </androidPackages>
  <iosPods>
      <sources>
          <source>https://github.com/Com2uSPlatformCorp/HiveAdiz-iOS.git</source>
      </sources>

      <iosPod name="HiveAdizUnityPlugin" version="2.1.1"/>
      <iosPod name="HiveAdizAdapterAppLovin" version="2.1.1"/>
            <iosPod name="HiveAdizAdapterLiftoff" version="2.1.1"/>
      <iosPod name="HiveAdizAdapterMeta" version="2.1.1"/>
      <iosPod name="HiveAdizAdapterPangle" version="2.1.1"/>
      <iosPod name="HiveAdizAdapterUnityAds" version="2.1.1"/>

  </iosPods>
</dependencies>

 

เพื่อตรวจสอบว่าการตั้งค่าอะแดปเตอร์ Adiz ได้ถูกนำไปใช้ถูกต้องหรือไม่ ให้เรียกใช้แอปและตรวจสอบรายการการตั้งค่าบนหน้าจอ Ad Inspector.

การเริ่มต้น Adiz

นี่คือขั้นตอนที่ต้องดำเนินการก่อนแสดงโฆษณาทุกประเภท โดยการเริ่มต้น Adiz คุณจะได้รับคีย์โฆษณาที่จำเป็นสำหรับการแสดงโฆษณา หากคุณอยู่ในโหมดทดสอบ คุณจะได้รับคีย์ทดสอบ หากคุณกำลังใช้ SDK Hive ให้ดำเนินการเริ่มต้น Adiz หลังจากเรียกใช้ AuthV4.setup

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());

// เริ่มต้นตัวฟัง Callback
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) โฆษณาสิ้นสุด
  • หากต้องการแสดงโฆษณาเดียวกันอีกครั้งหลังจากที่โฆษณาสิ้นสุด คุณต้องเรียกใช้ `load()` อีกครั้งแล้วจึงเรียกใช้ `show()`。
  • หากต้องการหยุดการแสดงโฆษณา ให้เรียกใช้ `destroy()` เพื่อลบอินสแตนซ์โฆษณา。
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 when the ad fails to show for other reasons.
    Debug.Log(TAG + "::OnAdLoadFailedCB errorCode "+error.errorCode);
    Debug.Log(TAG + "::OnAdLoadFailedCB errorMessage "+error.errorMessage);
}

private void OnAdShowCB()
{   
    // This will be called when the ad is displayed.
    Debug.Log(TAG + "::OnAdShowCB");
}

private void OnAdCloseCB()
{   
    // นี่คือการเรียกเมื่อโฆษณาถูกปิด.
    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 หรืออยู่ในสถานะที่ไม่จำเป็นต้องแสดง

การเปิดเผยโฆษณาและการยุติโฆษณา\nปฏิบัติตามขั้นตอนเหล่านี้เพื่อเปิดเผยและยุติโฆษณา.

  1. สร้างอินสแตนซ์โฆษณาในคลาสโฆษณาสำหรับแต่ละประเภทของโฆษณาที่คุณต้องการแสดง หากโฆษณาที่คุณต้องการแสดงไม่ใช่ โฆษณาเริ่มต้น คุณต้องป้อนคีย์โฆษณาหรือ ID การวางที่ได้รับจาก การเริ่มต้น หากคุณไม่ป้อนคีย์โฆษณา (hiveAdKey) หรือ ID การวาง (placementId) จะมีการสร้างอินสแตนซ์โฆษณาเริ่มต้นขึ้น ID การวางสามารถตั้งค่าได้ในคอนโซล Hive และสำหรับรายละเอียดเพิ่มเติมโปรดดูที่ หน้าการตั้งค่า Admob ในคู่มือคอนโซล
  2. โหลดโฆษณาที่คุณต้องการแสดง (load()).
  3. โหลดโฆษณาที่คุณต้องการแสดง (load()).
  4. แสดงโฆษณาที่โหลดแล้ว (show()) หากต้องการแสดงโฆษณาอีกครั้งคุณต้องเรียก load() อีกครั้งแล้วจึงเรียก show().
  5. หากต้องการปิดโฆษณาให้เรียก 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)) {
        // Initialize Default AdizInterstitial Instance (AdEventHandlers)
        InterstitialAd = AdizInterstitial.Initialize(eventHandlers);
    } else {
        // Initialize AdizInterstitial Instance (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)) {
        // Initialize Default AdizInterstitial Instance (AdEventHandlers)
        InterstitialAd = AdizInterstitial.Initialize(eventHandlers);
    } else {
        // Initialize 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 สูง) คำอธิบาย อุปกรณ์ที่รองรับ ค่าคงที่ BannerSize
320x50 แบนเนอร์ โทรศัพท์มือถือและแท็บเล็ต BannerSize.NORMAL
320x100 แบนเนอร์ขนาดใหญ่ โทรศัพท์มือถือและแท็บเล็ต BannerSize.MEDIUM
300x250 IAB Medium Rectangle โทรศัพท์มือถือและแท็บเล็ต BannerSize.LARGE
468 x 60 IAB Full-Size Banner แท็บเล็ต BannerSize.FULL

 

PositionType คือค่าที่อยู่ด้านบนสุดหรือด้านล่างสุด ค่าเริ่มต้นคือด้านล่างสุด

การจัดตำแหน่ง คำอธิบาย ค่าคงที่ประเภทตำแหน่ง
การจัดตำแหน่งด้านบน ระบุการจัดตำแหน่งที่ด้านบนของหน้าจอ (iOS ระบุการจัดตำแหน่งด้านบนตาม SafeArea) PositionType.TOP
การจัดตำแหน่งด้านล่าง (ค่าเริ่มต้น) ระบุการจัดตำแหน่งที่ด้านล่างของหน้าจอ (iOS ระบุการจัดตำแหน่งด้านล่างตาม SafeArea) PositionType.BOTTOM

// สร้าง AdizBanner Instance
private AdizBanner BannerAd = null;

public void requestInitAd(string bannerAdKey) {
    // ตั้งค่าขนาดแบนเนอร์
    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) {
    // กำหนดขนาดแบนเนอร์
    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() {
    // ตั้งค่าประเภทตำแหน่ง
    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;
}

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

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

 

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

ขนาดจุด (ความกว้าง x ความสูง) แม่แบบ การจัดตำแหน่ง ค่าคงที่ขนาดแบนเนอร์
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) {
    // 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(nativeAdKey)) {
        // Initialize Default AdizNative Instance (AdEventHandlers)
        NativeAd = AdizNative.Initialize(bannerSize, eventHandlers);
    } else {
        // Initialize AdizNative Instance (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() {
    // ตั้งค่าประเภทตำแหน่ง
    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()


// สร้าง 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)) {
        // เริ่มต้น AdizRewarded Instance เริ่มต้น (AdEventHandlers)
        RewardVideoAd = AdizRewarded.Initialize(eventHandlers);
    } else {
        // เริ่มต้น 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)) {
        // Initialize Default AdizRewarded Instance (AdEventHandlers)
        RewardVideoAd = AdizRewarded.Initialize(eventHandlers);
    } else {
        // Initialize AdizRewarded Instance (placementId, AdEventHandlers)
        RewardVideoAd = AdizRewarded.InitializeWithPlacementId(rewardedPlacementId, eventHandlers);
    }
}

public void requestLoadAd() {
    // Load AdizRewarded
    if(RewardVideoAd != null && RewardVideoAd.IsInitialized()) RewardVideoAd.Load();
}

public void requestShowAd() {
    // แสดง 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)) {
        // เริ่มต้น AdizRewardedInterstitial เริ่มต้น (AdEventHandlers)
        RewardedInterstitialAd = AdizRewardedInterstitial.Initialize(eventHandlers);
    } else {
        // เริ่มต้น AdizRewardedInterstitial (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 ชั่วโมงนับตั้งแต่โหลดโฆษณา โฆษณาจะถูกโหลดใหม่โดยอัตโนมัติก่อนที่จะแสดง Once an ad has been displayed at least once, it will not reload automatically.


// 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)) {
        // เริ่มต้น AdizAppOpen Instance เริ่มต้น (AdEventHandlers)
        AppOpenAd = AdizAppOpen.Initialize(eventHandlers);
    } else {
        // เริ่มต้น 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)) {
        // Initialize Default AdizAppOpen Instance (AdEventHandlers)
        AppOpenAd = AdizAppOpen.Initialize(eventHandlers);
    } else {
        // Initialize 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 ของคุณ.

  • Assets/HiveAdiz
  • Assets/HiveAdiz_Example