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

Unity

Adiz Unity

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

  • โฆษณาแบบแทรก
  • โฆษณาแบบแบนเนอร์
  • โฆษณาแบบเนทีฟ
  • โฆษณาแบบให้รางวัล
  • โฆษณาแบบแทรกที่ให้รางวัล
  • โฆษณาเปิดแอป

ในการติดตั้งและใช้งาน Adiz Unity ให้ทำตามคำแนะนำด้านล่างนี้

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

  1. ตั้งค่า สภาพแวดล้อมนักพัฒนา Adiz Unity.
  2. ดาวน์โหลดเวอร์ชันล่าสุดของ Adiz ที่นี่ และแตกไฟล์ออก.
  3. ใน Unity ให้ไปที่ Assets > Import Package > Custom Package…, เลือกไฟล์ .unitypackage และคลิก Import.

    4. ตรวจสอบว่าไฟล์และโฟลเดอร์ Adiz ได้ถูกสร้างขึ้นภายใต้โฟลเดอร์ Assets หรือไม่.

    5. ดาวน์โหลดและติดตั้งเวอร์ชันล่าสุดของ EDM4U. EDM4U รวมอยู่ใน Hive SDK v4. หากคุณใช้ Hive SDK v4 คุณไม่จำเป็นต้องติดตั้ง 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).

ในหน้าจอการตั้งค่า Player > Player > การตั้งค่าการสร้าง ให้ตรวจสอบสามรายการต่อไปนี้。

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

ตรวจสอบเวอร์ชัน Gradle ปัจจุบันของคุณ สำหรับการสร้าง Android ที่เสถียร เวอร์ชัน Gradle ควรเป็น 6.7.1 หรือสูงกว่า และเวอร์ชันปลั๊กอิน Gradle ควรเป็น 4.2.0 หรือสูงกว่า นี่คือวิธีการเปลี่ยนเวอร์ชัน Gradle และเวอร์ชันปลั๊กอิน Gradle:

  1. ใช้เทมเพลต Gradle พื้นฐานที่กำหนดเอง.

    • ตรวจสอบการตั้งค่า Build > การตั้งค่าโปรเจกต์ > ผู้เล่น > เทมเพลต Gradle พื้นฐานที่กำหนดเอง.
    • Assets/Plugins/Android/baseProjectTemplate.gradle จะถูกสร้างขึ้น.
  2. เปลี่ยนเวอร์ชันของ Gradle Plugin. เปิดไฟล์ Assets/Plugins/Android/baseProjectTemplate.gradle* และเปลี่ยนเวอร์ชันเป็น com.android.tools.build:gradle:4.2.0.

  3. ดาวน์โหลด เวอร์ชันที่ต้องการของ Gradle จากนั้นแตกไฟล์ในเส้นทางที่คุณต้องการ.
  4. เปลี่ยนเส้นทางการติดตั้ง Gradle ใน Unity.
    • ยกเลิกการเลือก Preferences > External Tools > Gradle Installed with Unity.
    • ตั้งค่าเส้นทางที่คุณแตกไฟล์ Gradle.
  5. ตรวจสอบว่า Target API Level เป็น 33 หรือสูงกว่าใน Player > Other Settings > Identification > Target API Level ก่อนที่จะสร้าง.

iOS

ยกเลิกการเลือกการตั้งค่า static_framework ใน *Assets > External Dependency Manager > iOS Resolver > Settings.

กำหนดค่า 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.0.1'
    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 เพื่อกำหนดค่าโดยอัตโนมัติ

    GADApplicationIdentifier
    ca-app-pub-XXXXX~YYYYY

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

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

Adiz อนุญาตให้คุณแสดงโฆษณาทดสอบได้สองวิธี。

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

เปิดโหมดทดสอบ

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

Note

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

    using hiveAdiz;
    // Enable test mode. Comment out the below line when distributing commercially.
    Adiz.SetTestMode(true);
    // Enable logging for the Adiz module. Logging should only be used in test mode. Comment out the below line when distributing commercially.
    Adiz.SetLogEnable(true);

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

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

  • เมื่อตรวจสอบว่า AdMob ad key ที่ลงทะเบียนใน Hive Console ทำงานได้อย่างถูกต้อง
  • เมื่อต้องการเขียน GDPR message และต้องการตรวจสอบว่า GDPR consent popup ทำงานอย่างถูกต้อง
  • เมื่อต้องการเรียกใช้ Ad Inspector เพื่อวิเคราะห์และแก้ไขปัญหาคำขอแอด

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

แบนเนอร์, อินเตอร์สเตเชียล, หรือโฆษณาแบบให้รางวัล

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

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

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

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

บน iOS, รหัสอุปกรณ์ทดสอบ (เช่น, B74F6468-1516-467C-99AD-CC5973C5DB52) สามารถระบุได้โดยใช้สองวิธีต่อไปนี้:

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

การใช้เครื่องมือวิเคราะห์โฆษณา

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

ในการใช้ Ad Inspector คุณต้องปฏิบัติตามสองเงื่อนไขต่อไปนี้:

การกำหนดค่า Adiz AppID

ตั้งค่า Adiz AppID ที่ลงทะเบียนใน Hive Console AppCenter หากไม่ได้ตั้งค่า จะใช้ชื่อแพ็คเกจหรือ Bundle ID

    Adiz.SetAppId(appId);

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

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

  • เซิร์ฟเวอร์คอนโซลทดสอบ: ZoneType.TEST
  • เซิร์ฟเวอร์คอนโซลแซนด์บ็อกซ์: ZoneType.SANDBOX
  • เซิร์ฟเวอร์คอนโซลเชิงพาณิชย์: ZoneType.REAL
    ZoneType selectZone = ZoneType.REAL;    
    Adiz.SetZone((int)selectZone);

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

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

เมื่อข้อความ IDFA ถูกเผยแพร่บนแดชบอร์ด AdMob มันจะถูกแสดงโดยอัตโนมัติในระหว่างการเริ่มต้นของ 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 รองรับGoogle’s UMP (User Messaging Platform) สำหรับการแสดงป๊อปอัปการยินยอมGDPR.

หลังจากสร้าง ข้อความ GDPR ใน คอนโซล AdMob แล้ว ป๊อปอัพ GDPR จะถูกแสดงให้กับผู้ใช้ที่เข้าถึงจากยุโรปและสหราชอาณาจักรเมื่อคุณ เริ่มต้น Adiz.

Warning

แม้ว่าคุณจะมุ่งเป้าไปยังภูมิภาคนอกยุโรปและสหราชอาณาจักร คุณต้องสร้างข้อความ GDPR ในคอนโซล AdMob เพื่อให้การเริ่มต้นของ Adiz ทำงานได้อย่างถูกต้อง.

การสร้างข้อความ GDPR

เข้าถึงคอนโซล Google AdMob เพื่อสร้างข้อความ GDPR ก่อนที่จะสร้างข้อความ GDPR ให้ดูที่ คู่มือการสร้างข้อความ GDPR

หลังจากสร้างข้อความ GDPR แล้ว ป๊อปอัพการยินยอม GDPR จะถูกแสดงโดยอัตโนมัติในระหว่างการ เริ่มต้นของ Adiz

การดำเนินการตัวเลือกสำหรับการยินยอม/ถอนการยินยอมตาม GDPR

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

  1. สร้าง UI ปุ่มในแอปของคุณเพื่อโหลดหน้าต่างป๊อปอัพการยินยอม GDPR ใหม่
  2. เมื่อทำการ เริ่มต้นการใช้งาน Adiz ให้เรียกใช้ isPrivacyOptionsRequired() เพื่อแสดง UI ปุ่มด้านบนสำหรับผู้ใช้ที่เข้าถึงจากยุโรปและสหราชอาณาจักร และไม่แสดงในกรณีอื่น หากผู้ใช้จากยุโรปและสหราชอาณาจักรกดปุ่ม ให้เรียกใช้ showPrivacyOptionsForm เพื่อโหลดหน้าต่างป๊อปอัพการยินยอม GDPR ใหม่ ซึ่งอนุญาตให้ผู้ใช้ปรับเปลี่ยนการยินยอมสำหรับรายละเอียด GDPR ได้ตลอดเวลาผ่านปุ่ม "จัดการตัวเลือก" หรือปุ่มที่คล้ายกันภายในแอป วิธีการ showPrivacyOptionsForm ที่ให้ไว้ด้านล่างเป็นเพียงตัวอย่างและสามารถนำไปใช้ในรูปแบบใดก็ได้ตามที่นักพัฒนาต้องการ

    using hiveAdiz;
    
    public void Initialize() {
            // ... skipped
    
            // เริ่มต้น Adiz
            Adiz.Initialize(new CommonHandlers.Builder()
                                                                                            .OnResult(InitResultCB)
                                                                                            .Build());
    }
    
    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());
            }
    }
    
    private void CommonResultCB(AdizError error, string jsonString) {
            // Privacy options form call complete callback. No additional error handling needed
            Debug.Log(TAG + "::CommonResultCB:: errorCode : "+error.errorCode+" errorMessage : "+error.errorMessage);
    }
    

การตั้งค่า tag สำหรับผู้ใช้ under อายุ consent (TFUA)

คุณสามารถใช้ Tag สำหรับ Under อายุ Consent (TFUA) เพื่อจัดการผู้ใช้ที่อาศัยอยู่ในเขตเศรษฐกิจยุโรป (EEA), UK และสวิตเซอร์แลนด์ในฐานะที่เป็นหัวข้อของการประมวลผลข้อมูลที่จำกัดเมื่อทำการขอโฆษณา สำหรับแอปที่ให้บริการเด็ก คุณสามารถตั้งค่าผู้ใช้ให้ต่ำกว่าจำนวนอายุตามกฎหมายโดยใช้ AdizConsentManager.SetUserPrivacySettings แม้ว่าจะมีความแตกต่างกันระหว่างประเทศในยุโรป แต่ GDPR กำหนดอายุที่ต่ำกว่า 16 ปีต้องได้รับความยินยอมจากผู้ปกครอง การตั้งค่า under-age-of-consent จะต้องถูกกำหนดก่อนที่จะดำเนินการ Adiz.initialize.

Warning

หากทั้งแท็ก GDPR under-age-of-consent 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; // Change to true if user is a child

    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: 33BE2250B43518CCDA7DE426D04EE231 ใน ใช้ใหม่ ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") เพื่อตั้งค่านี้เป็นอุปกรณ์ดีบัก.

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

  3. คัดลอก ID อุปกรณ์

  4. เพิ่ม Adiz.setTestDevice(DEVICE_ID) ก่อนที่จะดำเนินการ Adiz.initialize ในโค้ดการเริ่มต้น Adiz ที่มีอยู่
  5. สร้างข้อความขอความยินยอม GDPR และเริ่มต้น Adiz ใหม่เพื่อให้แน่ใจว่าป๊อปอัปขอความยินยอม GDPR ปรากฏอย่างถูกต้อง

        using hiveAdiz;
    
        public void Initialize() {
    
                // การตั้งค่าอุปกรณ์ทดสอบ GDPR
                Adiz.SetTestDevice("33BE2250B43518CCDA7DE426D04EE231");
    
                Adiz.Initialize(new CommonHandlers.Builder()
                                                                                                .OnResult(InitResultCB)
                                                                                                .Build());
        }
    

การตั้งค่า COPPA tag สำหรับการดูแลที่มุ่งเป้าไปที่เด็ก

ตามที่พระราชบัญญัติคุ้มครองความเป็นส่วนตัวออนไลน์ของเด็ก (COPPA) นักพัฒนาแอปสามารถระบุได้ว่า Google ควรจัดการเนื้อหาเป็นเนื้อหาที่มุ่งเป้าไปที่เด็กเมื่อทำการขอโฆษณาโดยการตั้งค่า tagForChildDirectedTreatment (TFCD) หากคุณต้องการจัดการเนื้อหาเป็นเนื้อหาที่มุ่งเป้าไปที่เด็ก คุณต้องเรียกใช้ AdizConsentManager.SetUserPrivacySettings ก่อนที่จะดำเนินการ Adiz.initialize เมื่อใช้ Adiz กับ Hive SDK แท็กสำหรับการจัดการเนื้อหาที่มุ่งเป้าไปที่เด็กจะถูกนำไปใช้โดยอัตโนมัติ ดังนั้นจึงไม่จำเป็นต้องตั้งค่าเพิ่มเติม


using hiveAdiz;

public void Initialize() {

    bool isTagForChildDirectedTreatment = false; // Change to true if child-directed

    PrivacySettings settings = new PrivacySettings.Builder()
                                .SetTagForChildDirectedTreatment(isTagForChildDirectedTreatment)
                                .Build();

    AdizConsentManager.SetUserPrivacySettings(settings);

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

การเพิ่ม ad mediation

Adiz สามารถให้บริการโฆษณาโดยใช้ AdMob mediation ได้ ทำตามขั้นตอนด้านล่างเพื่อเพิ่ม AdMob mediation.

การเพิ่ม AdMob mediation

รวมแหล่งโฆษณาในคอนโซล AdMob โดยทำตามตารางด้านล่าง

AppLovin Pangle Unity Ads Meta
ขั้นตอนที่ 1: ตั้งค่า Android iOS Android iOS Android iOS Android iOS
ขั้นตอนที่ 2: เพิ่มแหล่งโฆษณา Android iOS Android iOS Android iOS Android iOS
ขั้นตอนที่ 3 เพิ่ม Adiz Adapter

เพิ่ม Adiz adapter

เพิ่มการพึ่งพาห้องสมุดใน 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.0.1"/>
        <!-- AppLovin -->
        <androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-applovin:2.0.1"/>
        <!-- Pangle -->
        <androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-pangle:2.0.1"/>
        <!-- Unity Ads -->
        <androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-unityads:2.0.1"/>
        <!-- Meta -->
        <androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-meta:2.0.1"/>

    </androidPackages>
    <iosPods>
        <sources>
            <source>https://github.com/Com2uSPlatformCorp/HiveAdiz-iOS.git</source>
        </sources>

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

    </iosPods>
    </dependencies>

 

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

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

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

using hiveAdiz;

public void Start() {
    /* omitted */

    // To use Adiz callbacks, you need to register AdizCallbackManager as a GameObject.    
    Adiz.InitPlugin();
}

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

// Initialize Callback listener
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");

                // This is an example of constructing a list of keys where is_default is false, in case you want to enter the ad keys directly in the game.
                if(isDefault) {
                    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
            },
            {
                "mediation_id":4,
                "key":"ca-app-pub-3940256099942544/5224354917",
                "form":"rewarded",
                "is_default":true
            },
            {
                "mediation_id":3,
                "key":"ca-app-pub-3940256099942544/2247696110",
                "form":"native",
                "is_default":true
            },
            {
                "mediation_id":1,
                "key":"ca-app-pub-3940256099942544/1033173712",
                "form":"interstitial",
                "is_default":true
            },
            {
                "mediation_id":2,
                "key":"ca-app-pub-3940256099942544/6300978111",
                "form":"banner",
                "is_default":true
            },
            {
                "mediation_id":6,
                "key":"ca-app-pub-3940256099942544/9257395921",
                "form":"app_open",
                "is_default":true
            }
        ]
    }

เมื่อเริ่มต้นในโหมดทดสอบ คุณจะได้รับรายการของคีย์โฆษณาทดสอบ แม้ว่าคุณจะยังไม่ได้ลงทะเบียนคีย์โฆษณา AdMob ใน Hive Console เมื่อเริ่มต้นในโหมดเชิงพาณิชย์ คุณจะได้รับรายการของคีย์โฆษณา AdMob ที่ลงทะเบียนใน Hive Console.

สำหรับแต่ละประเภทโฆษณา (form), โฆษณาหนึ่งรายการจะถูกใช้เป็นโฆษณาเริ่มต้น (โฆษณาที่มี "is_default":true). เมื่อคุณลงทะเบียนประเภทโฆษณาใด ๆ เป็นครั้งแรก, โฆษณาที่ลงทะเบียนแรกจะกลายเป็นโฆษณาเริ่มต้น. คุณไม่จำเป็นต้องป้อนคีย์โฆษณา (hiveAdKey) เมื่อสร้างอินสแตนซ์โฆษณา (initialize()) สำหรับโฆษณาเริ่มต้น. เพื่อเปลี่ยนโฆษณาเริ่มต้น, คุณต้องลบโฆษณาเริ่มต้นที่มีอยู่ใน Hive Console และลงทะเบียนโฆษณาใหม่.

การกำหนดค่าผู้ฟังการเรียกกลับโฆษณา

โดยการใช้ 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()
{   
    // Called when the ad is loaded.
    // If the ad load is successful, you should call .show() of the ad instance at the desired moment to display the ad.
    Debug.Log(TAG + "::OnAdLoadCB");

    // Expose after AdizInterstitial is loaded
    // requestShowAd();
}

private void OnAdLoadFailedCB(AdizError error) {
    // Called when the ad load fails or the ad exposure fails for another reason.
    Debug.Log(TAG + "::OnAdLoadFailedCB errorCode " + error.errorCode);
    Debug.Log(TAG + "::OnAdLoadFailedCB errorMessage " + error.errorMessage);
}

private void OnAdShowCB()
{   
    // Called when the ad is exposed.
    Debug.Log(TAG + "::OnAdShowCB");
}

private void OnAdCloseCB()
{   
    // Called when the ad is closed.
    Debug.Log(TAG + "::OnAdCloseCB");

    // Remove AdizInterstitial ad after exposure
    // requestDestroyAd();
}

private void OnAdClickCB()
{   
    // Called when the ad is clicked.
    Debug.Log(TAG + "::OnAdClickCB");
}

private void OnAdRewardCB(RewardItem rewardItem)
{   
    // Called when a reward is granted for watching an ad in rewarded or rewarded interstitial ads.
    Debug.Log(TAG + "::OnAdRewardCB:: rewardItem.itemType : " + rewardItem.getItemType() + " rewardItem.itemAmount : " + rewardItem.getItemAmount());
    // Delivered only in rewarded, rewardedInterstitial ads
}

private void OnAdPaidEventCB(AdRevenueData adRevenueData)
{   
    // Called when revenue is generated for the ad.
    Debug.Log(TAG + "::OnAdPaidEventCB:: adRevenueData.revenue : " + adRevenueData.getRevenue() + " adRevenueData.currency : " + adRevenueData.getCurrency());
}

รหัสข้อผิดพลาด

รหัสข้อผิดพลาดและข้อความ AdizError ที่ได้รับจาก Adiz.Initialize และ AdizListener สำหรับ OnAdFail() มีดังนี้:

รหัสทั่วไป

หมายเลข กรณี คำอธิบาย
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. สร้างอินสแตนซ์โฆษณาจากคลาสโฆษณาสำหรับแต่ละประเภทโฆษณาที่คุณต้องการแสดง หากโฆษณาที่คุณต้องการแสดงไม่ใช่ โฆษณาเริ่มต้น คุณต้องป้อนคีย์โฆษณาที่ได้รับจาก การเริ่มต้น หากคุณไม่ป้อนคีย์โฆษณา (hiveAdKey) จะมีการสร้างอินสแตนซ์โฆษณาเริ่มต้น
  2. โหลด (load()) โฆษณาที่คุณต้องการแสดง
  3. แสดง (show()) โฆษณาที่โหลดแล้ว เพื่อแสดงโฆษณาอีกครั้ง คุณต้องเรียก load() อีกครั้งแล้วจึงเรียก show()
  4. เพื่อยุติโฆษณา ให้เรียก 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 requestLoadAd() {
    // Load AdizInterstitial
    if(InterstitialAd != null) InterstitialAd.Load();
}

public void requestShowAd() {
    // Show AdizInterstitial
    if(InterstitialAd != null) InterstitialAd.Show();
}

public void requestDestroyAd() {
    // Destroy AdizInterstitial
    if(InterstitialAd != null) InterstitialAd.Destroy();
    InterstitialAd = null;
}

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

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

ขนาดจุด (ความกว้าง x ความสูง) คำอธิบาย อุปกรณ์ที่รองรับ ค่าขนาดแบนเนอร์
320x50 แบนเนอร์ โทรศัพท์และแท็บเล็ต BannerSize.NORMAL
320x100 แบนเนอร์ขนาดใหญ่ โทรศัพท์และแท็บเล็ต BannerSize.MEDIUM
300x250 IAB ขนาดกลางสี่เหลี่ยม โทรศัพท์และแท็บเล็ต BannerSize.LARGE
468x60 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 requestLoadAd() {
    // Load AdizBanner
    if(BannerAd != null) BannerAd.Load();
}

public void requestShowAd() {
    // Set position type
    private PositionType bannerPosition = PositionType.TOP;

    // Show AdizBanner
    if(BannerAd != null) BannerAd.Show(bannerPosition);
}

public void requestDestroyAd() {
    // Destroy AdizBanner
    if(BannerAd != null) BannerAd.Destroy();
    BannerAd = null;
}

โฆษณาพื้นเมือง (Native)

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

ขณะนี้ เทมเพลตสนับสนุนขนาด เล็ก หรือ กลาง

ขนาดจุด (ความกว้าง x ความสูง) เทมเพลต การจัดตำแหน่ง ค่าคงที่ BannerSize
355x91 (ปรับอัตราส่วน) ขนาดเล็ก ด้านบน / ด้านล่าง BannerSize.NORMAL
355x370 (ปรับอัตราส่วน) ขนาดกลาง ตรงกลาง (คงที่) BannerSize.MEDIUM, BannerSize.LARGE, BannerSize.FULL

ในเทมเพลต small ประเภท PositionType จะอยู่ที่ด้านบนหรือล่าง โดยค่าเริ่มต้นคือด้านล่าง

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

เทมเพลต medium ไม่อนุญาตให้เลือกการจัดแนวและจัดแนกลางโดยค่าเริ่มต้น

// Create 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 requestLoadAd() {
    // Load AdizNative
    if(NativeAd != null) NativeAd.Load();
}

public void requestShowAd() {
    // Set position type
    private PositionType bannerPosition = PositionType.TOP;

    // Show AdizNative
    if(NativeAd != null) NativeAd.Show(bannerPosition);
}

public void requestDestroyAd() {
    // Destroy AdizNative
    if(NativeAd != null) NativeAd.Destroy();
    NativeAd = null;
}

โฆษณาที่ได้รับรางวัล (Rewarded)

โฆษณาที่ได้รับรางวัลคือโฆษณาที่ผู้ใช้ได้รับรางวัลสำหรับการดูโฆษณาเป็นระยะเวลาหนึ่ง เมื่อมีการแจกจ่ายรางวัล คุณจะได้รับข้อมูลรายการรางวัลผ่านการเรียกกลับ 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 requestLoadAd() {
    // Load AdizRewarded
    if(RewardVideoAd != null) RewardVideoAd.Load();
}

public void requestShowAd() {
    // Show AdizRewarded
    if(RewardVideoAd != null) RewardVideoAd.Show();
}

public void requestDestroyAd() {
    // Destroy AdizRewarded
    if(RewardVideoAd != null) RewardVideoAd.Destroy();
    RewardVideoAd = null;
}

โฆษณาแบบเต็มหน้าจอที่ได้รับรางวัล (Rewarded interstitial)

โฆษณาแบบเต็มหน้าจอที่ได้รับรางวัลคือโฆษณาที่ผู้ใช้ได้รับรางวัลเมื่อดูโฆษณาเป็นระยะเวลาหนึ่ง เมื่อมีการแจกจ่ายรางวัล คุณจะได้รับข้อมูลรายการรางวัลผ่านทางการเรียกกลับ 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 requestLoadAd() {
    // Load AdizRewardedInterstitial
    if(RewardedInterstitialAd != null) RewardedInterstitialAd.Load();
}

public void requestShowAd() {
    // Show AdizRewardedInterstitial
    if(RewardedInterstitialAd != null) RewardedInterstitialAd.Show();
}

public void requestDestroyAd() {
    // Destroy 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 requestLoadAd() {
    // Load AdizAppOpen
    if(AppOpenAd != null) AppOpenAd.Load();
}

public void requestShowAd() {
    // Show AdizAppOpen
    Debug.Log("[appOpenAd] appOpenAd don't request Show");
}

public void requestDestroyAd() {
    // Destroy AdizAppOpen
    if(AppOpenAd != null) AppOpenAd.Destroy();
    AppOpenAd = null;
}

การถอนการติดตั้ง

ในการถอนการติดตั้ง Adiz ให้ลบโฟลเดอร์ต่อไปนี้ออกจากโปรเจกต์ Unity ของคุณ:

  • สินทรัพย์/HiveAdiz
  • สินทรัพย์/HiveAdiz_Example