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

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

\<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 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():

    ใช้ใหม่
    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() {

    // 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.

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

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)

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

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

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

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

Note

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

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

Warning

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

Warning

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

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

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

เมื่อสร้างข้อความ GDPR คุณต้องเพิ่มการไกล่เกลี่ยที่คุณต้องการใช้ลงในรายชื่อพันธมิตรด้านการโฆษณา นี่คือวิธีการเพิ่มการไกล่เกลี่ย.

1) ไปที่แท็บ ความเป็นส่วนตัวและการส่งข้อความ > กฎระเบียบของยุโรป > การตั้งค่า ในแดชบอร์ด Google AdMob จากนั้นคลิกที่ไอคอนแก้ไขสำหรับ 'การตรวจสอบพันธมิตรโฆษณา > พันธมิตรโฆษณาที่กำหนดเอง. 2) เลือกพันธมิตรการจัดการทั้งหมดที่ได้รับการรับรองโดย Google ภายใต้ GDPR เพื่อเพิ่มในปริมาณมาก หรือเลือกเฉพาะพันธมิตรการจัดการที่ต้องการและคลิก เพิ่ม.

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

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

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

  1. สร้าง UI ปุ่มในแอปที่สามารถเปิดหน้าต่างการยินยอม GDPR ใหม่ได้
  2. เมื่อทำการติดตั้ง การเริ่มต้น Adiz ให้เรียก isPrivacyOptionsRequired() เพื่อแสดง UI ปุ่มข้างต้นให้กับผู้ใช้ที่เข้าถึงจากยุโรปและสหราชอาณาจักร และไม่แสดงในกรณีอื่น หากผู้ใช้ที่เข้าถึงจากยุโรปหรือสหราชอาณาจักรกดปุ่ม ให้เรียก showPrivacyOptionsForm เพื่อเปิดหน้าต่างการยินยอม GDPR ใหม่อีกครั้ง หลังจากนั้น ผู้ใช้สามารถแก้ไขการยินยอมต่อรายละเอียด GDPR ได้ตลอดเวลาผ่านการกดปุ่มเช่น "จัดการตัวเลือก" ในแอป showPrivacyOptionsForm ด้านล่างเป็นวิธีการที่ถูกสร้างขึ้นตามอำเภอใจเพื่อวัตถุประสงค์ในการยกตัวอย่าง และบริษัทพัฒนาสามารถเปลี่ยนแปลงการดำเนินการได้ตามต้องการ
    
        // ....
    
    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 เนื้อหาด้านล่างเหมือนกับวิธีการ แสดงโฆษณาบนอุปกรณ์ทดสอบ.

  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 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) โฆษณาสิ้นสุด
  • ในการแสดงโฆษณาเดียวกันอีกครั้งหลังจากที่โฆษณาสิ้นสุด คุณต้องเรียกใช้ `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 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 หรืออยู่ในสถานะที่ไม่จำเป็นต้องแสดง

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

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

  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)) {
        // เริ่มต้นอินสแตนซ์ 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_ตัวอย่าง