กำหนดค่าการนำส่งตามเงื่อนไข

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

ปัจจุบันกลไกการแสดงโฆษณานี้รองรับการควบคุมการดาวน์โหลดข้อบังคับ ณ เวลาติดตั้งแอปตามการกำหนดค่าอุปกรณ์ต่อไปนี้

หากอุปกรณ์ไม่เป็นไปตามข้อกําหนดทั้งหมดที่คุณระบุ ระบบจะไม่ดาวน์โหลดข้อบังคับ ณ เวลาติดตั้งแอป อย่างไรก็ตาม แอปอาจขอดาวน์โหลดโมดูลตามต้องการในภายหลังโดยใช้ Play Core SDK

ก่อนเริ่มต้น ให้ตรวจสอบว่าคุณใช้ Android Studio 3.5 ขึ้นไป ส่วนต่อไปนี้จะแสดงวิธีเพิ่มการรองรับการแสดงโฆษณาแบบมีเงื่อนไขลงในโมดูลฟีเจอร์

เพิ่มโมดูลใหม่ที่มีตัวเลือกการแสดงโฆษณาแบบมีเงื่อนไข

วิธีที่ง่ายที่สุดในการสร้างข้อบังคับของฟีเจอร์ใหม่ที่มีการแสดงผลแบบมีเงื่อนไขคือการผ่านวิซาร์ดข้อบังคับใหม่ ดังนี้

  1. หากต้องการเปิดกล่องโต้ตอบข้อบังคับใหม่ ให้เลือกไฟล์ > ใหม่ > ข้อบังคับใหม่จากแถบเมนู
  2. ในกล่องโต้ตอบ "ข้อบังคับใหม่" ให้เลือกข้อบังคับฟีเจอร์แบบไดนามิก แล้วคลิกถัดไป
  3. กำหนดค่าโมดูลตามปกติ แล้วคลิกถัดไป
  4. ในส่วนตัวเลือกการดาวน์โหลดโมดูล ให้ทำดังนี้

    1. ระบุชื่อข้อบังคับโดยใช้อักขระได้สูงสุด 50 ตัว แพลตฟอร์มจะใช้ชื่อนี้เพื่อระบุข้อบังคับต่อผู้ใช้ เช่น เมื่อยืนยันว่าผู้ใช้ต้องการดาวน์โหลดข้อบังคับหรือไม่ ด้วยเหตุนี้ โมดูลพื้นฐานของแอปจึงต้องมีชื่อโมดูลเป็นทรัพยากรสตริง ซึ่งคุณแปลได้ เมื่อสร้างโมดูลโดยใช้ Android Studio IDE จะเพิ่มทรัพยากรสตริงลงในโมดูลพื้นฐานให้คุณและแทรกรายการต่อไปนี้ในไฟล์ Manifest ของโมดูลฟีเจอร์

          ...
          dist:title="@string/feature_title">
      
      
    2. ในเมนูแบบเลื่อนลงในส่วนการรวมเวลาติดตั้ง ให้เลือกรวมเฉพาะโมดูลเมื่อติดตั้งแอปสำหรับอุปกรณ์ที่มีฟีเจอร์ที่ระบุ ซึ่งจะสร้างโมดูลที่รวมอยู่กับแอปของคุณเมื่อติดตั้งแอปในอุปกรณ์ที่มีการกำหนดค่าบางอย่างที่คุณระบุได้เท่านั้น เช่น ฟีเจอร์ของอุปกรณ์หรือประเทศ Android Studio จะแทรกข้อมูลต่อไปนี้ในไฟล์ Manifest ของโมดูลเพื่อแสดงตัวเลือกของคุณ

       ... >
        
            
                
                    
                
            
        
      
      
    3. หากต้องการจำกัดการดาวน์โหลดโมดูลโดยอัตโนมัติไปยังบางประเทศหรือระดับ API ขั้นต่ำ ให้คลิกเสร็จสิ้นเพื่อสร้างโมดูลให้เสร็จ แล้วอ่านส่วนเกี่ยวกับวิธีระบุเงื่อนไขตามประเทศหรือระดับ API ขั้นต่ำ หรือคลิก + ฟีเจอร์ของอุปกรณ์เพื่อเพิ่มฟีเจอร์ที่อุปกรณ์ต้องใช้เพื่อดาวน์โหลดโมดูล ณ เวลาที่ติดตั้ง

    4. ข้าง device-feature ให้เลือกตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้จากเมนูแบบเลื่อนลง แล้วระบุค่า

      • ชื่อ: ให้คุณระบุฟีเจอร์ฮาร์ดแวร์หรือซอฟต์แวร์ที่จำเป็นสำหรับอุปกรณ์ในการดาวน์โหลดโมดูล ณ เวลาติดตั้ง ฟีเจอร์ที่การนำส่งแบบมีเงื่อนไขรองรับจะเหมือนกับฟีเจอร์ที่แสดงเป็นFEATURE_*ค่าคงที่โดย PackageManager หากเลือกตัวเลือกนี้ ให้เริ่มพิมพ์ส่วนใดก็ได้ของค่าคงที่ของฟีเจอร์ เช่น "บลูทูธ" ในช่องข้างเมนูแบบเลื่อนลง แล้วเลือกรายการแนะนำที่ปรากฏขึ้น
      • เวอร์ชัน OpenGL ES: ช่วยให้คุณระบุเวอร์ชัน OpenGL ES ที่อุปกรณ์ต้องใช้เพื่อดาวน์โหลดโมดูล ณ เวลาติดตั้ง หากเลือกตัวเลือกนี้ ให้เริ่มพิมพ์เวอร์ชัน เช่น "0x00030001" ในช่องข้างเมนูแบบเลื่อนลง แล้วเลือกคำแนะนำที่ปรากฏขึ้น
    5. หากต้องการเพิ่มเงื่อนไขหลายรายการตามฟีเจอร์ของอุปกรณ์ที่ใช้ได้ ให้คลิก + ฟีเจอร์ของอุปกรณ์สำหรับเงื่อนไขฟีเจอร์ของอุปกรณ์แต่ละรายการที่ต้องการระบุ

    6. เลือกช่องข้างการผสานหากต้องการให้โมดูลนี้พร้อมใช้งานในอุปกรณ์ที่ใช้ Android 4.4 (API ระดับ 20) หรือต่ำกว่า และรวมอยู่ใน APK หลายรายการ ซึ่งหมายความว่าคุณสามารถเปิดใช้ลักษณะการทำงานแบบออนดีมานด์สําหรับข้อบังคับนี้ และปิดใช้การผสานเพื่อยกเว้นข้อบังคับนี้จากอุปกรณ์ที่ไม่รองรับการดาวน์โหลดและการติดตั้ง APK แบบแยก Android Studio จะแทรกข้อมูลต่อไปนี้ในไฟล์ Manifest ของโมดูลเพื่อให้สอดคล้องกับตัวเลือกของคุณ

       ...>
           dist:include="true | false" />
      
      
  5. เมื่อกําหนดค่าตัวเลือกการดาวน์โหลดข้อบังคับเสร็จแล้ว ให้คลิกเสร็จสิ้น

โปรดทราบว่าปลั๊กอิน Gradle ของ Android ไม่รองรับการเรียกใช้ lint จากโมดูลฟีเจอร์แบบไดนามิก การเรียกใช้ Lint จากข้อบังคับของแอปพลิเคชันที่เกี่ยวข้องจะเรียกใช้ Lint ในข้อบังคับของฟีเจอร์แบบไดนามิกและรวมปัญหาทั้งหมดไว้ในรายงาน Lint ของแอป

เพิ่มตัวเลือกการแสดงผลแบบมีเงื่อนไขลงในโมดูลฟีเจอร์ที่มีอยู่

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

หากต้องการเริ่มต้นใช้งาน คุณต้องย้ายข้อมูลไฟล์ Manifest ไปยังองค์ประกอบ ใหม่ก่อน ข้อมูลโค้ดด้านล่างแสดงตัวอย่างรูปแบบคำสั่งเก่า


  dist:title="@string/feature_title" dist:onDemand="true">
   dist:include="true"/>

ตอนนี้ตัวเลือกการแสดงโฆษณาข้างต้นจะระบุดังนี้

  dist:title="@string/feature_title">
  
      
  
   dist:include="true"/>

จากนั้นคุณสามารถรวมตัวเลือกการแสดงโฆษณาแบบมีเงื่อนไขตามฟีเจอร์ของอุปกรณ์ ดังนี้

    dist:title="@string/feature_title">
    
      
      
        
          
           dist:name="android.hardware.camera.ar"/>
        
      
    
     dist:include="true"/>

ส่วนด้านล่างจะอธิบายตัวเลือกอื่นๆ สำหรับการแสดงโฆษณาแบบมีเงื่อนไข เช่น ตามประเทศหรือระดับ API ขั้นต่ำ

ความสามารถในการใช้งานร่วมกับตัวเลือกการดาวน์โหลดโมดูลอื่นๆ

เนื่องจากโมดูลฟีเจอร์มีตัวเลือกหลายรายการในการกําหนดค่าวิธีแสดงฟีเจอร์แต่ละรายการในอุปกรณ์ของผู้ใช้ คุณจึงควรทําความเข้าใจว่าการตั้งค่าอื่นๆ ส่งผลต่อตัวเลือกการแสดงโฆษณาแบบมีเงื่อนไขอย่างไร ตารางต่อไปนี้สรุปความเข้ากันได้ของการแสดงโฆษณาแบบมีเงื่อนไขกับตัวเลือกการดาวน์โหลดข้อบังคับอื่นๆ

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

ระบุเงื่อนไขตามประเทศ

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

ในบริบทนี้ ประเทศของอุปกรณ์มักจะกำหนดโดยที่อยู่สำหรับการเรียกเก็บเงินของผู้ใช้ที่ลงทะเบียนไว้ในบัญชี Google Play

หากต้องการระบุประเทศสำหรับโมดูล ให้ใส่ข้อมูลต่อไปนี้ในไฟล์ Manifest ของฟีเจอร์ในโมดูล


   
   dist:exclude="true">
    
     dist:code="CN"/>
     dist:code="HK"/>
  

ระบุเงื่อนไขสําหรับระดับ API

การระบุเงื่อนไขตามระดับ API ของอุปกรณ์อาจมีประโยชน์หากโมดูลฟีเจอร์ใช้ API ที่มีให้บริการในแพลตฟอร์ม Android บางเวอร์ชันเท่านั้น

หากต้องการตั้งค่าเงื่อนไขตามระดับ API ของอุปกรณ์ขั้นต่ำหรือสูงสุด ให้ใส่ข้อมูลต่อไปนี้ในไฟล์ Manifest ของข้อบังคับ


    
    dist:value="21"/>
    
    dist:value="24"/>

ระบุเงื่อนไขสำหรับพร็อพเพอร์ตี้อุปกรณ์อื่นๆ (เบต้า)

หากต้องการระบุเงื่อนไขสำหรับพร็อพเพอร์ตี้อื่นๆ ของอุปกรณ์ เช่น ชื่อรุ่น, RAM, ฟีเจอร์ของระบบ และระบบบนชิป คุณสามารถใช้ไฟล์การกําหนดค่าการกําหนดเป้าหมายอุปกรณ์

หากต้องการสร้างไฟล์การกําหนดค่าการกําหนดอุปกรณ์เป้าหมาย โปรดดูเอกสารประกอบสําหรับการกําหนดอุปกรณ์เป้าหมาย

เมื่อสร้างไฟล์การกําหนดค่าแล้ว คุณสามารถระบุกลุ่มอุปกรณ์สําหรับโมดูลได้โดยใส่ข้อมูลต่อไปนี้ในไฟล์ Manifest ของโมดูลฟีเจอร์


   
       dist:name="myCustomGroup1"/>
       dist:name="myCustomGroup2"/>