Unity
Adkit สำหรับ AD(X): Unity¶
AdKit เป็นโมดูลโฆษณาที่แก้ไขข้อผิดพลาดที่เกิดขึ้นในการประมวลผลแพ็คเกจ AD(X) Unity และสนับสนุนความสะดวกสบายของผู้ใช้ อ่านหน้านี้ทีละหน้าเพื่อใช้ AdKit รวมถึง SDK ที่สนับสนุน
การติดตั้ง¶
เข้าถึง Hive Developers และดาวน์โหลดและใช้ AdKit.
- ดาวน์โหลดเวอร์ชันล่าสุดของ AdKit จาก Hive Developers และแตกไฟล์ที่นี่ ที่นี่.
- ในแถบเครื่องมือ Unity ให้เลือกไฟล์ .unitypackage ภายใต้ Assets > Import Package > Custom Package… และคลิก Import.
- หลังจากการนำเข้าสำเร็จแล้ว ให้ตรวจสอบว่าไฟล์และโฟลเดอร์ที่เกี่ยวข้องกับ AdKit และ AD(X) ถูกสร้างขึ้นภายใต้โฟลเดอร์ Assets หรือไม่
Warning
เมื่อทดสอบ AdKit ในระหว่างการพัฒนา คุณต้องใช้ กุญแจโฆษณาทดสอบ。
อัปเดต¶
ถอนการติดตั้ง AdKit ที่คุณกำลังใช้งานและติดตั้งเวอร์ชันล่าสุดเพื่อทำการอัปเดต.
วิธีการใช้งาน¶
iOS (Unity 2019.4 และสูงกว่า)¶
เมื่อสร้างโปรเจ็กต์ iOS ใน Unity 2019.4 ขึ้นไป จะมีเป้าหมายที่เรียกว่า UnityFramework ถูกสร้างขึ้น ซึ่งทำงานเป็น Dynamic Framework.
-
การตั้งค่า EDM4U (ตามเวอร์ชัน 1.2.171) ตรวจสอบให้แน่ใจว่าการตั้งค่า build static_framework ถูกเปิดใช้งานใน การตั้งค่า iOS Resolver ของ Unity (เมนู: Assets > External Dependency Manager > iOS Resolver > Settings).
-
เริ่มต้นจากเวอร์ชัน 1.5.0 ของ Hive AdKit, AppLovinSDK จะถูกจัดเตรียมเป็น Dynamic Framework ดังนั้น หากคุณใช้ static_framework คุณต้องทำตามขั้นตอนต่อไปนี้.
ในไฟล์ Assets/HIVEAdKit/Editor/AdKitPostprocess.cs ให้ยกเลิกการแสดงความคิดเห็นdynamicFramework Import
ในฟังก์ชันiOSAdd_DynamicFrameworks
ตำแหน่งที่แสดงความคิดเห็นมีดังนี้(string Name, string Source) [] dynamicFrameworks = { // หากคุณใช้ AppLovinSDK ตั้งแต่เวอร์ชัน 1.5.0 ของ Hive AdKit และตั้งค่า Pod Static ให้ยกเลิกการแสดงความคิดเห็นในบรรทัด AppLovinSDK ด้านล่าง // ("AppLovinSDK.xcframework", "Pods/AppLovinSDK/applovin-ios-sdk-12.6.1"), }
Warning
คุณต้องยกเลิกการคอมเมนต์เฉพาะเมื่อ static_framework เปิดใช้งานและคุณกำลังสร้างอยู่ การยกเลิกการคอมเมนต์ในขณะที่ใช้ Dynamic Framework อาจทำให้เกิดความขัดแย้ง
-
สร้างโปรเจกต์ เมื่อการสร้างเสร็จสมบูรณ์ ให้เปิดไฟล์ Podfile ในเส้นทางรากโปรเจกต์ที่สร้างขึ้นเพื่อตรวจสอบการตั้งค่าไฟล์.
- ดำเนินการต่อด้วยการตั้งค่า Xcode.
iOS: การแก้ไขข้อขัดแย้งระหว่าง Facebook SDK และโมดูลโฆษณา¶
ในขณะที่ Facebook SDK มีเพียง Dynamic Framework เท่านั้น โมดูลโฆษณามีเพียง Static Framework และการกำหนดค่า Podfile รองรับเพียงหนึ่งในวิธีเหล่านี้ ดังนั้น เพื่อใช้ Facebook SDK ในระหว่างการสร้างแอปใน Unity คุณต้องแก้ไขความขัดแย้งระหว่าง Facebook SDK และโมดูลโฆษณาดังนี้
ลบความคิดเห็นสำหรับ Facebook SDK ที่คุณกำลังใช้ในไฟล์ HIVEAdKit/Editor/AdKitPostprocess.cs ในฟังก์ชัน iOSAdd_DynamicFrameworks เพื่อฝัง Dynamic SDK
(string Name, string Source) [] dynamicFrameworks = {
// If you are using AppLovinSDK starting from version 1.5.0 of Hive AdKit and have set Pod Static, uncomment the AppLovinSDK line below.
// ("AppLovinSDK.xcframework", "Pods/AppLovinSDK/applovin-ios-sdk-12.6.1"),
// If you are using the Facebook SDK, uncomment the lines below according to the SDK type you are using.
// ("FBAEMKit.xcframework","Pods/FBAEMKit/XCFrameworks"),
// ("FBSDKCoreKit_Basics.xcframework","Pods/FBSDKCoreKit_Basics/XCFrameworks"),
// ("FBSDKCoreKit.xcframework","Pods/FBSDKCoreKit/XCFrameworks"),
// ("FBSDKLoginKit.xcframework","Pods/FBSDKLoginKit/XCFrameworks"),
// ("FBSDKShareKit.xcframework","Pods/FBSDKShareKit/XCFrameworks"),
// ("FBSDKGamingServicesKit.xcframework","Pods/FBSDKGamingServicesKit/XCFrameworks")
};
Warning
คุณต้องยกเลิกการคอมเมนต์เฉพาะ Facebook SDK ที่คุณกำลังใช้งานอยู่
คุณสมบัติ¶
- ประเภทที่ได้รับรางวัล
- AD(X) ไม่ได้ให้ API สำหรับการแสดงโฆษณา แต่แจ้งให้ปฏิบัติตาม คู่มือ AdMob.
- การส่งบันทึกจะถูกกำหนดขึ้นอยู่กับ API RewardVideo ที่เรียกใช้ หากใช้ AdKit API และ Hive SDK ข้อมูลบันทึกจะถูกส่งไปยังเซิร์ฟเวอร์ Analytics และเวอร์ชันขั้นต่ำที่รองรับฟีเจอร์นี้มีดังนี้
- Hive SDK v4.11.0
- ประเภท Interstital
- ประเภทแบนเนอร์ที่ปรับได้
สำหรับรายละเอียดวิธีการใช้ AdKit โปรดอ่านคู่มือต่อไปนี้
การเริ่มต้น AdKit¶
ขั้นตอนที่จำเป็นก่อนการเริ่มต้น โหลด และแสดงโฆษณาทุกประเภท (AD)
การกำหนดเป้าหมายยุโรปและสหราชอาณาจักร¶
หากเกมของคุณมุ่งเป้าไปที่ยุโรปและสหราชอาณาจักร (EEA & UK) จำเป็นต้องแสดงป๊อปอัพการยินยอม GDPR (กฎระเบียบทั่วไปว่าด้วยการคุ้มครองข้อมูล) Adkit รองรับ UMP (User Messaging Platform) ของ Google สำหรับการแสดงป๊อปอัพการยินยอม GDPR เพื่อใช้ Google UMP ก่อนอื่นให้ดูที่ คู่มือการสร้างข้อความ GDPR เพื่อจัดทำข้อความ GDPR ของคุณ
เมื่อใช้ SDK Hive AuthV4.setup
จะเปิดเผยข้อความ IDFA ดังนั้นการสร้างข้อความ IDFA จึงเป็นทางเลือกพื้นฐาน อย่างไรก็ตาม หากคุณกำลังใช้ข้อความ GDPR คุณต้องสร้างข้อความ IDFA ตาม คำอธิบายโดยละเอียดเกี่ยวกับข้อความ IDFA และการแจ้งเตือน ATT
หากคุณได้สร้างข้อความ GDPR และข้อความ IDFA ทั้งสองแล้ว ให้เริ่มต้น Hive AdKit ด้วย InitializeWithShowADXConsent
ตามที่แสดงด้านล่าง
Important
หากคุณกำลังใช้ Hive SDK คุณต้องดำเนินการ AuthV4.setup
หลังจากเสร็จสิ้นการเริ่มต้น Hive AdKit หากหน้าจอขอความยินยอม GDPR ปรากฏขึ้นหลังจากแสดงการแจ้งเตือนขอความยินยอม ATT (APP Tracking Transparency) แอปของคุณอาจถูกปฏิเสธในระหว่างการตรวจสอบแอปของ Apple
// When targeting Europe & the UK for commercial distribution
int debugState = 0;
HIVEAdKit.InitializeWithShowADXConsent(appId, debugState, null, adkitConsentState =>
{
/*
* adkitConsentState : User's personal information usage and collection status for AD(X)
* - 0 : No consent status exists
* - 1 : Region where consent is not required
* - 2 : User has refused the usage and collection of personal information
* - 3 : User has consented to the usage and collection of personal information
*/
});
/*
* To test the GDPR consent popup, set debugState to 1 and configure testDeviceId to display the GDPR test popup.
* The device ID for the Test Device (testDeviceId) can be found in the Android Logcat and Xcode console logs.
* The testDeviceId is used only for testing. You must specify testDeviceId as null during commercial distribution.
* Example Android log: Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("ABCDEFGHIJKLMNOPQRSTUVWXYZ") to set this as a debug device.
* Example Xcode log: To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[ABCDEFGHIJKLMNOPQRSTUVWXYZ]
*/
int debugState = 1;
string testDeviceId = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
List testDevices = new List();
testDevices.Add(testDeviceId);
HIVEAdKit.InitializeWithShowADXConsent(appId, debugState, testDevices, adkitConsentState =>
{
/*
* adkitConsentState : User's personal information usage and collection status for AD(X)
* - 0 : No consent status exists
* - 1 : Region where consent is not required
* - 2 : User has refused the usage and collection of personal information
* - 3 : User has consented to the usage and collection of personal information
*/
});
เมื่อเริ่มต้น Hive AdKit หากภูมิภาคที่กำหนดเป้าหมายถูกกำหนดให้เป็นยุโรปและสหราชอาณาจักร (EEA & UK) หน้าจอการยินยอม GDPR จะถูกแสดงโดยอัตโนมัติเช่นที่แสดงด้านล่าง
ในสภาพแวดล้อม iOS ข้อความอธิบาย IDFA จะถูกแสดงโดยอัตโนมัติในภูมิภาคนอกยุโรปและสหราชอาณาจักร
การตั้งค่าขั้นสูง¶
// GameData Example
[Serializable]
public class SendInfo
{
public int level;
public int gold;
}
SendInfo addtionalInfo = new SendInfo();
addtionalInfo.level = 1;
addtionalInfo.gold = 100;
// Send as a JSON Obejct format
HIVEAdKit.SetAdditionalInfo(JsonUtility.ToJson(addtionalInfo));
ประเภทที่ได้รับรางวัล¶
// Initialize Rewarded AD
// Initialize Rewarded AD
EventHandlers eventHandlers = new EventHandlers.Builder()
.OnAdLoaded(OnAdLoadedCB)
.OnAdOpening(OnAdOpeningCB)
.OnAdClosed(OnAdClosedCB)
.OnAdFailedToLoad(OnAdFailedToLoadCB)
.OnAdFailedToShow(OnAdFailedToShowCB)
.OnAdReward(OnAdRewardCB)
.OnPaidEvent(OnPaidEventCB)
.Build();
// Generate an instance
RewardVideoAd = HIVEAdKit.RewardVideo.Initialize(rewardVideoUnitId, eventHandlers);
// Load Rewarded AD
// Send AD loading information to Analytics
if( HIVEAdKit.RewardVideo.IsInitialzed(RewardVideoAd) ) {
HIVEAdKit.RewardVideo.LoadAd(RewardVideoAd, "Unity-AdaptiveBanner-Show-AdditionalInfo");
}
// Show RewardVideo type
// Send AD loading information to Analytics
if( HIVEAdKit.RewardVideo.IsLoaded(RewardVideoAd) ) {
HIVEAdKit.RewardVideo.Show(RewardVideoAd, "Unity-AdaptiveBanner-Show-AdditionalInfo");
}
ประเภทอินเตอร์สติชัล¶
EventHandlers eventHandlers = new EventHandlers.Builder()
.OnAdLoaded(OnAdLoadedCB)
.OnAdOpening(OnAdOpeningCB)
.OnAdClosed(OnAdClosedCB)
.OnAdFailedToLoad(OnAdFailedToLoadCB)
.OnAdClick(OnAdClickCB)
.OnPaidEvent(OnPaidEventCB)
.Build();
// Generate an instance
InterstitialAd = HIVEAdKit.Interstitial.Initialize(InterstitialAdUnitId, eventHandlers);
// Load
// Send AD loading information to Analytics
if( HIVEAdKit.Interstitial.IsInitialzed(InterstitialAd) ) {
HIVEAdKit.Interstitial.Load(InterstitialAd, "Unity-AdaptiveBanner-Show-AdditionalInfo");
}
// Show
// Send AD loading information to Analytics
if( HIVEAdKit.Interstitial.IsLoaded(InterstitialAd) ) {
HIVEAdKit.Interstitial.Show(InterstitialAd, "Unity-AdaptiveBanner-Show-AdditionalInfo");
}
ประเภทแบนเนอร์ที่ปรับได้¶
EventHandlers eventHandlers = new EventHandlers.Builder()
.OnAdLoaded(OnBannerAdLoadedCB)
.OnAdOpening(OnAdOpeningCB)
.OnAdClosed(OnAdClosedCB)
.OnAdFailedToLoad(OnAdFailedToLoadCB)
.OnAdClick(OnAdClickCB)
.OnPaidEvent(OnPaidEventCB)
.Build();
HIVEAdKit.AdaptiveBanner.AdPosition bannerPosition = HIVEAdKit.AdaptiveBanner.AdPosition.Top;
HIVEAdKit.AdaptiveBanner.AdSize adaptiveSize = HIVEAdKit.AdaptiveBanner.AdSize.AD_SIZE_320x50;
// Generate an instance
AdaptiveBannerAd = HIVEAdKit.AdaptiveBanner.Initialize(AdaptiveBannerAdUnitId, adaptiveSize, bannerPosition, eventHandlers);
// Load and show
// Send AD loading information to Analytics
HIVEAdKit.AdaptiveBanner.LoadAd(AdaptiveBannerAd, "Unity-AdaptiveBanner-Show-AdditionalInfo");
// Hide
HIVEAdKit.AdaptiveBanner.Destroy(AdaptiveBannerAd);
การสนับสนุน iOS 14¶
ต่อไปนี้คือรายการ SKAdNetwork ของ AD(X) ที่รองรับ iOS 14 และเวอร์ชันที่ใหม่กว่า AdKitPostprocess อิงจากการอัปเดตเมื่อวันที่ 29 มกราคม 2021 อย่าลืมตรวจสอบการอัปเดตล่าสุด
- การอัปเดต SKAdNetwork
สนับสนุน Android 11¶
แท็ก <queries> ถูกเพิ่มลงในไฟล์ AndroidManifest.xml ของไลบรารี AD(X) โดยรองรับ Android 11 หากคุณตรวจสอบบันทึกข้อผิดพลาดตามที่แสดงด้านล่างในขณะที่สร้างโปรเจกต์ของคุณบน Unity โปรดดูแนวทางในการสร้างด้วย Unity-Android 11.
- ตัวอย่างบันทึกข้อผิดพลาดใน Unity
AndroidManifest.xml: AAPT: error: unexpected element <queries> found in <manifest>.
- แนวทางการสร้างด้วย Unity-Android 11
การตั้งค่า ADX Proguard¶
ไฟล์ AAR ของไลบรารีรวมกฎของ Proguard ดังนั้นการตั้งค่าจึงดำเนินการโดยอัตโนมัติ.
การแจ้งเตือนการรวม Unity
¶หาก App ID ใน GoogleMobileAdsSettings ถูกลบออก ให้ไปที่ Unity > Assets > Google Mobile Ads > Settings และเลือกช่องทำเครื่องหมาย Delay app measurement จากนั้นให้ล้างมันอีกครั้ง.
การกำหนดค่ารุ่น Gradle & Plug-in ของ Gradle¶
เราขอแนะนำให้ใช้ Gradle 6.7.1 หรือรุ่นที่ใหม่กว่าสำหรับ Adkit 1.4.4 หรือสูงกว่า หากคุณใช้รุ่น Gradle ที่ต่ำกว่าสำหรับ Adkit 1.4.4 หรือสูงกว่า คุณอาจพบข้อผิดพลาด "ฟีเจอร์นี้ต้องการ ASM7" จาก AdMob Unity plug-in ซึ่งสามารถแก้ไขได้ด้วยหนึ่งในวิธีการต่อไปนี้
- เปลี่ยนเวอร์ชัน Gradle และ Gradle Plug-in (วิธีแก้ปัญหาที่แนะนำ)
- อัปเดตเอนจิน Unity
- เพิ่มคำอธิบาย
android.enableDexingArtifactTransform=false
สำหรับวิธีการเปลี่ยนเวอร์ชันของ Gradle และ Gradle Plug-in (เป็น Gradle 6.7.1+ และ Gradle Plugin 4.2.0+), โปรดดูขั้นตอนด้านล่าง.
- เปลี่ยนไปใช้ Custom Base Gradle Template.
- ตรวจสอบ Build Settings > Project Settings > Player > Custom Base Gradle Template.
- Assets/Plugins/Android/baseProjectTemplate.gradle จะถูกสร้างขึ้น.
- เปลี่ยนเวอร์ชันของ Gradle Plug-in. เปิดไฟล์ Assets/Plugins/Android/baseProjectTemplate.gradle และเปลี่ยนเวอร์ชันเป็นแบบนี้: com.android.tools.build:gradle:4.2.0
- ดาวน์โหลด Gradle. Gradle 6.7.1 สามารถดาวน์โหลดได้ที่ ที่นี่. หลังจากดาวน์โหลดแล้ว ให้แตกไฟล์ที่ดาวน์โหลดในที่ที่คุณต้องการ (ตัวอย่าง: ~/Users/honggd/gradle-6.7.1).
- เปลี่ยนเส้นทางการติดตั้ง Gradle ใน Unity.
- ยกเลิกการเลือก Preferences > External Tools > Gradle Installed with Unity.
- ตั้งค่าเส้นทางการติดตั้งไปยังไดเรกทอรีที่คุณแตกไฟล์ Gradle ที่ดาวน์โหลด (ตัวอย่าง: ~/Users/honggd/gradle-6.7.1).
- ตรวจสอบให้แน่ใจว่า Player > Other Settings > Identification > Target API Level เป็น 33 หรือสูงกว่า และสร้างโปรเจกต์ของคุณ.
ทดสอบโฆษณา¶
สิ่งสำคัญสำหรับผู้โฆษณาคือไม่ถูกเรียกเก็บเงินเมื่อคลิกโฆษณาทดสอบในระหว่างการพัฒนา หากคุณคลิกโฆษณามากเกินไปนอกโหมดทดสอบ จะถือว่าเป็นการกระทำที่ไม่ถูกต้อง ดังนั้นโปรดระวังอย่าให้เป็นบัญชีเป้าหมายที่ถูกแจ้งรายงาน อ้างอิงจาก Google Developers เพื่อใช้โฆษณาทดสอบ。
การถอนการติดตั้ง¶
ในการถอนการติดตั้ง AdKit สำหรับ AD(X) ให้ลบไฟล์และโฟลเดอร์ในรายการต่อไปนี้
-
- เกี่ยวกับ AdKit
- /Assets/HIVEAdKit
- /Assets/HIVEAdKit_Example
- เกี่ยวกับ AD(X)
- /Assets/ADXLibrary
- /Assets/GoogleMobilesAds
- /Assets/MoPub
- /Assets/Plugins/Android/GoogleMobileAdsPlugins
- เกี่ยวกับ AdKit
Note
รายการไฟล์ที่เกี่ยวข้องกับ AD(X) อาจแตกต่างกันไปขึ้นอยู่กับเวอร์ชัน AD(X) ที่รวมอยู่ใน AdKit.