ผสานรวม AppLovin กับสื่อกลาง

คู่มือนี้จะแสดงวิธีใช้ Google Mobile Ads SDK เพื่อโหลดและแสดงโฆษณาจาก AppLovin โดยใช้สื่อกลาง ซึ่งครอบคลุมทั้งการผสานรวมการเสนอราคาและการผสานรวม Waterfall ซึ่งจะอธิบายวิธีเพิ่ม AppLovin ลงในการกำหนดค่าสื่อกลางของหน่วยโฆษณา และวิธีผสานรวม SDK และอะแดปเตอร์ของ AppLovin ลงใน Unity แอป

การผสานรวมและรูปแบบโฆษณาที่รองรับ

AdMob Mediation Adapter สําหรับ AppLovin มีความสามารถดังต่อไปนี้

การผสานรวม
การเสนอราคา
น้ำตก
รูปแบบ
แบนเนอร์  1
โฆษณาคั่นระหว่างหน้า
ได้รับรางวัลแล้ว

ระบบรองรับโฆษณาแบนเนอร์ (ยกเว้นแบนเนอร์ MREC) ในสื่อกลางเท่านั้น การเสนอราคาไม่รองรับโฆษณาแบนเนอร์ทุกประเภท

ข้อกำหนด

  • Google Mobile Ads SDK เวอร์ชันล่าสุด
  • Unity 5.6 ขึ้นไป
  • [สําหรับการเสนอราคา]: หากต้องการผสานรวมรูปแบบโฆษณาที่รองรับทั้งหมดในการเสนอราคา ให้ใช้ปลั๊กอินสื่อกลาง Google Mobile Ads สําหรับ AppLovin 4.2.0 ขึ้นไป (แนะนําให้ใช้เวอร์ชันล่าสุด)
  • วิธีติดตั้งใช้งานใน Android
    • Android API ระดับ 21 ขึ้นไป
  • วิธีติดตั้งใช้งานใน iOS
    • เป้าหมายการติดตั้งใช้งาน iOS 12.0 ขึ้นไป
  • Unity โปรเจ็กต์ที่ทํางานได้ซึ่งกําหนดค่าด้วย SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google ดูรายละเอียดได้ที่หัวข้อเริ่มต้นใช้งาน
  • สื่อกลางเสร็จสมบูรณ์ คู่มือเริ่มต้นใช้งาน

ขั้นตอนที่ 1: ตั้งค่าการกําหนดค่าใน UI ของ AppLovin

ลงชื่อสมัครใช้หรือเข้าสู่ระบบบัญชี AppLovin

หากต้องการตั้งค่าหน่วยโฆษณา AdMob คุณจะต้องมีคีย์ SDK และคีย์รายงานของ AppLovin หากต้องการดู ให้ไปที่UI ของ AppLovin > บัญชี > คีย์เพื่อดูทั้ง 2 ค่า

หากวางแผนที่จะผสานรวมการเสนอราคาเท่านั้น ให้ดำเนินการกําหนดการตั้งค่าสื่อกลาง

เลือกแอปสําหรับสื่อกลาง

การเสนอราคา

ขั้นตอนนี้ไม่จําเป็นสำหรับการผสานรวมการเสนอราคา

น้ำตก

ใน UI ของ AppLovin ให้เลือกแอปพลิเคชันในส่วนการสร้างรายได้เพื่อไปยังแอปที่ลงทะเบียน เลือกแอปที่ต้องการใช้กับสื่อกลางจากรายการแอปที่ใช้ได้

สร้างโซน

การเสนอราคา

ขั้นตอนนี้ไม่จําเป็นสำหรับการผสานรวมการเสนอราคา

น้ำตก

ใน UI ของ AppLovin ให้เลือกโซนในส่วนการสร้างรายได้เพื่อไปยังรหัสโซนที่ลงทะเบียนไว้ หากคุณสร้างโซนที่จําเป็นสําหรับแอปแล้ว ให้ข้ามไปที่ขั้นตอนที่ 2 หากต้องการสร้างรหัสโซนใหม่ ให้คลิกสร้างโซน

ป้อนชื่อ Zone ID เลือก Android เป็นแพลตฟอร์ม แล้วเลือกประเภทโฆษณา

กำหนดค่าการกำหนดราคาสำหรับโซนโดยเลือก CPM แบบคงที่ หรือเพิ่มประสิทธิภาพโดย AppLovin คุณกําหนดค่า CPM ตามประเทศได้สําหรับตัวเลือก CPM แบบคงที่ จากนั้นคลิกบันทึก

Android

iOS

เมื่อสร้างโซนแล้ว คุณจะดูรหัสโซนได้ในส่วนคอลัมน์รหัสโซน

Android

iOS

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

ทําตามวิธีการในคู่มือโหมดทดสอบ MAX ของ AppLovin เกี่ยวกับวิธีเปิดใช้โฆษณาทดสอบของ AppLovin

ขั้นตอนที่ 2: ตั้งค่าดีมานด์ AppLovin ใน AdMob UI

กำหนดการตั้งค่าสื่อกลางสําหรับหน่วยโฆษณา

Android

โปรดดูวิธีการที่ขั้นตอนที่ 2 ในคู่มือสำหรับ Android

iOS

ดูวิธีการได้ที่ขั้นตอนที่ 2 ในคู่มือสำหรับ iOS

เพิ่ม AppLovin Corp. ลงในรายชื่อพาร์ทเนอร์โฆษณาตาม GDPR และกฎระเบียบของรัฐในสหรัฐอเมริกา

ทําตามขั้นตอนในการตั้งค่า GDPR และการตั้งค่ากฎระเบียบของรัฐในสหรัฐอเมริกาเพื่อเพิ่ม Applovin Corp. ลงในรายชื่อพาร์ทเนอร์โฆษณา GDPR และกฎระเบียบของรัฐในสหรัฐอเมริกาใน UI ของ AdMob

ขั้นตอนที่ 3: นําเข้า SDK และอะแดปเตอร์ AppLovin

OpenUPM-CLI

หากติดตั้ง OpenUPM-CLI แล้ว คุณจะติดตั้งปลั๊กอินสื่อกลาง AppLovin ของ Google Mobile Ads สําหรับ Unity ลงในโปรเจ็กต์ได้โดยเรียกใช้คําสั่งต่อไปนี้จากไดเรกทอรีรูทของโปรเจ็กต์

openupm add com.google.ads.mobile.mediation.applovin

OpenUPM

ในเครื่องมือแก้ไขโปรเจ็กต์ Unity ให้เลือกแก้ไข > การตั้งค่าโปรเจ็กต์ > เครื่องมือจัดการแพ็กเกจเพื่อเปิดการตั้งค่าเครื่องมือจัดการแพ็กเกจ Unity

ในแท็บรีจิสทรีที่มีขอบเขต ให้เพิ่ม OpenUPM เป็นรีจิสทรีที่มีขอบเขตพร้อมรายละเอียดต่อไปนี้

  • ชื่อ: OpenUPM
  • URL: https://package.openupm.com
  • ขอบเขต: com.google

รายละเอียด OpenUPM

จากนั้นไปที่หน้าต่าง > เครื่องมือจัดการแพ็กเกจเพื่อเปิดเครื่องมือจัดการแพ็กเกจ Unity แล้วเลือกที่เก็บของฉันจากเมนูแบบเลื่อนลง

รีจิสทรีของ Unity

เลือกแพ็กเกจ Google Mobile Ads AppLovin Mediation แล้วคลิกติดตั้ง

ติดตั้งจาก OpenUPM

แพ็กเกจ Unity

ดาวน์โหลดปลั๊กอินสื่อกลางโฆษณา Google Mobile เวอร์ชันล่าสุดสําหรับ AppLovin จากลิงก์ดาวน์โหลดในบันทึกการเปลี่ยนแปลง และแตกไฟล์ GoogleMobileAdsAppLovinMediation.unitypackage จากไฟล์ ZIP

ในเครื่องมือแก้ไขโปรเจ็กต์ Unity ให้เลือกเนื้อหา > นําเข้าแพ็กเกจ > แพ็กเกจที่กําหนดเอง แล้วค้นหาไฟล์ GoogleMobileAdsAppLovinMediation.unitypackage ที่ดาวน์โหลด ตรวจสอบว่าได้เลือกไฟล์ทั้งหมดแล้ว แล้วคลิกนําเข้า

นำเข้าจาก Unity

จากนั้นเลือกชิ้นงาน > เครื่องมือจัดการทรัพยากรภายนอก > เครื่องมือแก้ไขของ Android > บังคับแก้ไข ไลบรารีเครื่องมือจัดการทรัพยากร Dependency ภายนอกจะทำการแก้ไข Dependency ตั้งแต่ต้นและคัดลอก Dependency ที่ประกาศไว้ไปยังไดเรกทอรี Assets/Plugins/Android ของแอป Unity

บังคับแก้ไข

ขั้นตอนที่ 4: ใช้การตั้งค่าความเป็นส่วนตัวใน AppLovin SDK

ภายใต้นโยบายความยินยอมของผู้ใช้ EU ของ Google คุณต้องเปิดเผยข้อมูลบางอย่างแก่ผู้ใช้ในเขตเศรษฐกิจยุโรป (EEA) และต้องได้รับความยินยอมจากผู้ใช้เกี่ยวกับการใช้ตัวระบุอุปกรณ์และข้อมูลส่วนตัว นโยบายนี้เป็นผลมาจากข้อกำหนดด้าน ePrivacy และกฎระเบียบให้ความคุ้มครองข้อมูลส่วนบุคคลของผู้บริโภค (GDPR) ของสหภาพยุโรป เมื่อขอความยินยอม คุณต้องระบุเครือข่ายโฆษณาแต่ละเครือข่ายในเชนสื่อกลางที่อาจรวบรวม รับ หรือใช้ข้อมูลส่วนตัว และให้ข้อมูลเกี่ยวกับการใช้ของแต่ละเครือข่าย ปัจจุบัน Google ไม่สามารถส่งตัวเลือกความยินยอมของผู้ใช้ไปยังเครือข่ายดังกล่าวโดยอัตโนมัติ

ตั้งแต่ปลั๊กอินสื่อกลางของ Google Ads บนอุปกรณ์เคลื่อนที่เวอร์ชัน 7.0.0 AppLovin รองรับการอ่านสตริงความยินยอมจากค่ากําหนดที่ใช้ร่วมกันและการตั้งค่าสถานะความยินยอมตามความเหมาะสม

หากคุณ ไม่ได้ใช้ปลั๊กอินสื่อกลาง Google Mobile Ads สําหรับ Applovin เวอร์ชัน 7.0.0 ขึ้นไป หรือ ไม่ได้ใช้ CMP ที่เขียนสตริงความยินยอมลงในค่ากําหนดที่ใช้ร่วมกัน คุณสามารถใช้วิธีของ AppLovin.SetHasUserConsent() และ AppLovin.SetIsAgeRestrictedUser() โค้ดตัวอย่างต่อไปนี้แสดงวิธีส่งข้อมูลความยินยอมไปยัง AppLovin SDK คุณต้องตั้งค่าตัวเลือกเหล่านี้ก่อนเริ่มต้นใช้งาน SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google เพื่อให้ระบบส่งต่อตัวเลือกไปยัง SDK ของ AppLovin อย่างถูกต้อง

using GoogleMobileAds.Api.Mediation.AppLovin;
// ...

AppLovin.SetHasUserConsent(true);

นอกจากนี้ หากทราบว่าผู้ใช้อยู่ในหมวดหมู่ที่มีการจำกัดอายุ คุณยังตั้งค่า Flag ด้านล่างเป็น true ได้ด้วย

AppLovin.SetIsAgeRestrictedUser(true);

ดูข้อมูลเพิ่มเติมได้ที่การตั้งค่าความเป็นส่วนตัวของ AppLovin

กฎหมายคุ้มครองความเป็นส่วนตัวของรัฐในสหรัฐอเมริกา

กฎหมายคุ้มครองความเป็นส่วนตัวของรัฐในสหรัฐอเมริกา กำหนดให้ผู้ใช้มีสิทธิเลือกไม่รับ "การขาย" "ข้อมูลส่วนบุคคล" (ตามที่กฎหมายให้คำจำกัดความไว้) โดยเว็บไซต์จะต้องให้ตัวเลือกไม่รับการขายผ่านลิงก์ "ไม่อนุญาตให้ขายข้อมูลส่วนบุคคลของฉัน" ที่แสดงไว้อย่างชัดเจนบนหน้าแรกของฝ่ายที่ทำ "การขาย" คู่มือการปฏิบัติตามกฎหมายคุ้มครองความเป็นส่วนตัวของรัฐในสหรัฐอเมริกาช่วยให้คุณเปิดใช้การประมวลผลข้อมูลแบบจำกัดสําหรับการแสดงโฆษณาของ Google ได้ แต่ Google ไม่สามารถใช้การตั้งค่านี้กับเครือข่ายโฆษณาแต่ละเครือข่ายในเชนสื่อกลาง ดังนั้น คุณต้องระบุเครือข่ายโฆษณาแต่ละเครือข่ายในเชนสื่อกลางที่อาจมีส่วนร่วมในการขายข้อมูลส่วนบุคคล และทำตามคำแนะนำจากเครือข่ายแต่ละเครือข่ายเพื่อให้เป็นไปตามข้อกําหนด

ปลั๊กอินสื่อกลาง Google Mobile Ads สําหรับ AppLovin เวอร์ชัน 6.3.1 มีวิธี AppLovin.SetDoNotSell() โค้ดตัวอย่างต่อไปนี้แสดงวิธีส่งข้อมูลความยินยอมไปยัง AppLovin SDK คุณต้องตั้งค่าตัวเลือกเหล่านี้ก่อนเริ่มต้นใช้งาน SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google เพื่อให้มั่นใจว่าระบบจะส่งต่อตัวเลือกเหล่านี้ไปยัง SDK ของ AppLovin อย่างถูกต้อง

using GoogleMobileAds.Api.Mediation.AppLovin;
// ...

AppLovin.SetDoNotSell(true);

ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบเกี่ยวกับความเป็นส่วนตัวของ AppLovin

ขั้นตอนที่ 5: เพิ่มโค้ดที่จำเป็น

Android

คุณไม่จำเป็นต้องใช้โค้ดเพิ่มเติมสำหรับการผสานรวม AppLovin

iOS

การผสานรวม SKAdNetwork

ทำตามเอกสารประกอบของ AppLovin เพื่อเพิ่มตัวระบุ SKAdNetwork ลงในไฟล์ Info.plist ของโปรเจ็กต์

ขั้นตอนที่ 6: ทดสอบการใช้งาน

เปิดใช้โฆษณาทดสอบ

ตรวจสอบว่าคุณได้ลงทะเบียนอุปกรณ์ทดสอบสำหรับ AdMob และเปิดใช้โหมดทดสอบใน UI ของ Applovin แล้ว

ยืนยันโฆษณาทดสอบ

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

ขั้นตอนที่ไม่บังคับ

การเพิ่มประสิทธิภาพ

การเพิ่มคำกระตุ้นให้ดำเนินการ (Call-To-Action) AppLovin.Initialize() ลงในกิจกรรมการเปิดตัวจะช่วยให้ AppLovin ติดตามเหตุการณ์ได้ทันทีที่แอปเริ่มทํางาน

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

หากอะแดปเตอร์ไม่ได้รับโฆษณาจาก AppLovin ผู้เผยแพร่โฆษณาจะตรวจสอบข้อผิดพลาดพื้นฐานจากการตอบกลับโฆษณาได้โดยใช้ ResponseInfo ในส่วนคลาสต่อไปนี้

Android

com.google.ads.mediation.applovin.mediation.ApplovinAdapter
com.google.ads.mediation.applovin.AppLovinMediationAdapter

iOS

GADMAdapterAppLovin
GADMAdapterAppLovinRewardBasedVideoAd
GADMediationAdapterAppLovin

รหัสและข้อความที่แสดงพร้อมกับข้อผิดพลาดที่อะแดปเตอร์ AppLovin แสดงเมื่อโหลดโฆษณาไม่สําเร็จมีดังนี้

Android

รหัสข้อผิดพลาด เหตุผล
-1009 ถึง -1, 204 AppLovin SDK แสดงข้อผิดพลาด ดูรายละเอียดเพิ่มเติมได้ในเอกสารประกอบของ AppLovin
101 ขนาดโฆษณาที่ขอไม่ตรงกับขนาดแบนเนอร์ที่ AppLovin รองรับ
103 บริบทเป็นค่าว่าง
104 โทเค็นราคาเสนอ AppLovin ว่างเปล่า
105 ขอโฆษณาหลายรายการสำหรับโซนเดียวกัน AppLovin จะโหลดโฆษณาได้ครั้งละ 1 รายการต่อโซน
106 โฆษณาไม่พร้อมแสดง
108 AppLovin Adapter ไม่รองรับรูปแบบโฆษณาที่ขอ

iOS

รหัสข้อผิดพลาด เหตุผล
-1009 ถึง -1, 204 AppLovin SDK แสดงข้อผิดพลาด ดูรายละเอียดเพิ่มเติมได้ในเอกสารประกอบของ AppLovin
101 ขนาดโฆษณาที่ขอไม่ตรงกับขนาดแบนเนอร์ที่ AppLovin รองรับ
102 พารามิเตอร์เซิร์ฟเวอร์ AppLovin ที่กําหนดค่าไว้ใน AdMob UI ไม่มีอยู่/ไม่ถูกต้อง
103 แสดงโฆษณา AppLovin ไม่สำเร็จ
104 ขอโฆษณาหลายรายการสำหรับโซนเดียวกัน AppLovin จะโหลดโฆษณาได้ครั้งละ 1 รายการต่อโซน
105 ไม่พบคีย์ AppLovin SDK
107 โทเค็นราคาเสนอว่างเปล่า
108 AppLovin Adapter ไม่รองรับรูปแบบโฆษณาที่ขอ
110 AppLovin ส่งการเรียกกลับการโหลดที่สำเร็จแต่โหลดโฆษณา 0 รายการ
111 เรียกอินสแตนซ์ของ AppLovin SDK ไม่ได้
112 ผู้ใช้เป็นเด็ก

บันทึกการเปลี่ยนแปลงของปลั๊กอินสื่อกลาง Unity ของ AppLovin

เวอร์ชัน 8.0.3

เวอร์ชัน 8.0.2

เวอร์ชัน 7.4.1

เวอร์ชัน 7.4.0

เวอร์ชัน 7.3.1

เวอร์ชัน 7.3.0

เวอร์ชัน 7.2.2

เวอร์ชัน 7.2.1

เวอร์ชัน 7.2.0

เวอร์ชัน 7.1.0

เวอร์ชัน 7.0.1

เวอร์ชัน 7.0.0

เวอร์ชัน 6.9.1

เวอร์ชัน 6.9.0

เวอร์ชัน 6.8.0

เวอร์ชัน 6.7.0

เวอร์ชัน 6.6.0

เวอร์ชัน 6.5.1

เวอร์ชัน 6.5.0

เวอร์ชัน 6.4.3

เวอร์ชัน 6.4.2

เวอร์ชัน 6.4.1

เวอร์ชัน 6.4.0

เวอร์ชัน 6.3.1

เวอร์ชัน 6.3.0

เวอร์ชัน 6.2.1

เวอร์ชัน 6.2.0

เวอร์ชัน 6.1.0

เวอร์ชัน 6.0.0

เวอร์ชัน 5.1.3

เวอร์ชัน 5.1.2

เวอร์ชัน 5.1.1

เวอร์ชัน 5.1.0

เวอร์ชัน 5.0.0

เวอร์ชัน 4.8.1

เวอร์ชัน 4.8.0

เวอร์ชัน 4.7.0

เวอร์ชัน 4.6.2

เวอร์ชัน 4.6.1

เวอร์ชัน 4.6.0

เวอร์ชัน 4.5.8

เวอร์ชัน 4.5.7

เวอร์ชัน 4.5.6

เวอร์ชัน 4.5.5

เวอร์ชัน 4.5.4

เวอร์ชัน 4.5.3

เวอร์ชัน 4.5.2

เวอร์ชัน 4.5.1

เวอร์ชัน 4.5.0

เวอร์ชัน 4.4.1

เวอร์ชัน 4.4.0

เวอร์ชัน 4.3.0

เวอร์ชัน 4.2.0

  • รองรับอะแดปเตอร์ Android ของ AppLovin เวอร์ชัน 9.4.2.0
  • รองรับอะแดปเตอร์ iOS ของ AppLovin เวอร์ชัน 6.6.1.0

เวอร์ชัน 4.1.0

  • อัปเดตปลั๊กอินให้รองรับ Rewarded API เวอร์ชันเบต้าแบบเปิดใหม่
  • รองรับอะแดปเตอร์ Android ของ AppLovin เวอร์ชัน 9.2.1.1
  • รองรับอะแดปเตอร์ iOS เวอร์ชัน 6.3.0.0 ของ AppLovin

เวอร์ชัน 4.0.0

  • รองรับอะแดปเตอร์ Android ของ AppLovin เวอร์ชัน 9.2.1.0
  • รองรับอะแดปเตอร์ iOS ของ AppLovin เวอร์ชัน 6.2.0.0

เวอร์ชัน 3.1.2

  • รองรับอะแดปเตอร์ Android เวอร์ชัน 8.1.4.0 ของ AppLovin
  • รองรับอะแดปเตอร์ iOS ของ AppLovin เวอร์ชัน 5.1.2.0

เวอร์ชัน 3.1.1

  • รองรับอะแดปเตอร์ Android เวอร์ชัน 8.1.0.0 ของ AppLovin
  • รองรับอะแดปเตอร์ iOS เวอร์ชัน 5.1.1.0 ของ AppLovin

เวอร์ชัน 3.1.0

  • รองรับอะแดปเตอร์ Android เวอร์ชัน 8.1.0.0 ของ AppLovin
  • รองรับอะแดปเตอร์ iOS ของ AppLovin เวอร์ชัน 5.1.0.0

เวอร์ชัน 3.0.3

  • รองรับอะแดปเตอร์ Android ของ AppLovin เวอร์ชัน 8.0.2.1
  • รองรับ AppLovin iOS Adapter เวอร์ชัน 5.0.2.0

เวอร์ชัน 3.0.2

  • รองรับ AppLovin Android SDK เวอร์ชัน 8.0.1
  • รองรับ AppLovin iOS SDK เวอร์ชัน 5.0.1

เวอร์ชัน 3.0.1

  • รองรับ AppLovin Android SDK เวอร์ชัน 8.0.0
  • รองรับ AppLovin iOS SDK เวอร์ชัน 5.0.1
  • เพิ่มเมธอด AppLovin.SetIsAgeRestrictedUser() เพื่อระบุว่าระบบทราบว่าผู้ใช้อยู่ในหมวดหมู่ที่มีการจำกัดอายุหรือไม่

เวอร์ชัน 3.0.0

  • รองรับ AppLovin Android SDK เวอร์ชัน 8.0.0
  • รองรับ AppLovin iOS SDK เวอร์ชัน 5.0.1
  • เพิ่มเมธอด AppLovin.SetHasUserConsent() เพื่อส่งต่อ Flag แสดงความยินยอมของผู้ใช้ไปยัง AppLovin SDK

เวอร์ชัน 2.0.0

  • รองรับ AppLovin Android SDK เวอร์ชัน 7.8.6
  • รองรับ AppLovin iOS SDK เวอร์ชัน 5.0.1

เวอร์ชัน 1.2.1

  • รองรับ AppLovin Android SDK เวอร์ชัน 7.8.6
  • รองรับ AppLovin iOS SDK เวอร์ชัน 4.8.3

เวอร์ชัน 1.2.0

  • รองรับ AppLovin Android SDK เวอร์ชัน 7.8.5
  • รองรับ AppLovin iOS SDK เวอร์ชัน 4.8.3

เวอร์ชัน 1.1.0

  • รองรับ AppLovin Android SDK เวอร์ชัน 7.7.0
  • รองรับ AppLovin iOS SDK เวอร์ชัน 4.7.0

เวอร์ชัน 1.0.0

  • ฉบับแรก
  • รองรับ AppLovin Android SDK เวอร์ชัน 7.4.1
  • รองรับ AppLovin iOS SDK เวอร์ชัน 4.4.1