เมื่อผู้ใช้ค้นหาหรือเรียกดูแอปที่จะดาวน์โหลดใน Google Play ระบบจะกรองผลการค้นหาตามแอปพลิเคชันที่เข้ากันได้กับอุปกรณ์ ตัวอย่างเช่น หากแอปต้องใช้กล้อง Google Play จะไม่แสดงแอปนั้นในอุปกรณ์ที่ไม่มีกล้อง การกรองนี้ช่วยให้นักพัฒนาแอปจัดการการเผยแพร่แอปของตนได้ และช่วยให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ดีที่สุด
การกรองใน Google Play จะอิงตามข้อมูลเมตาของแอปและการตั้งค่าการกําหนดค่าหลายประเภท ซึ่งรวมถึงการประกาศไฟล์ Manifest, ไลบรารีที่จําเป็น, Dependency ของสถาปัตยกรรม และการควบคุมการเผยแพร่ที่ตั้งค่าไว้ใน Google Play Console เช่น การกำหนดเป้าหมายตามภูมิศาสตร์ การกำหนดราคา และอื่นๆ
การกรองของ Google Play ส่วนหนึ่งอิงตามการประกาศไฟล์ Manifest และด้านอื่นๆ ของเฟรมเวิร์ก Android แต่ลักษณะการกรองจริงจะแตกต่างจากเฟรมเวิร์กและไม่ผูกอยู่กับระดับ API ที่เจาะจง เอกสารนี้ระบุกฎการกรองปัจจุบันที่ Google Play ใช้
วิธีการทํางานของตัวกรองใน Google Play
Google Play ใช้ข้อจำกัดของตัวกรองที่อธิบายไว้ด้านล่างเพื่อพิจารณาว่าจะแสดงแอปพลิเคชันของคุณต่อผู้ใช้ที่กำลังเรียกดูหรือค้นหาแอปพลิเคชันจากแอป Google Play หรือไม่
เมื่อพิจารณาว่าจะแสดงแอปของคุณหรือไม่ Google Play จะตรวจสอบข้อกำหนดด้านฮาร์ดแวร์และซอฟต์แวร์ของอุปกรณ์ รวมถึงผู้ให้บริการ ตำแหน่ง และลักษณะอื่นๆ ของอุปกรณ์ จากนั้นจะเปรียบเทียบกับข้อจำกัดและข้อกำหนดที่แสดงโดยไฟล์ Manifest ของแอปพลิเคชันและรายละเอียดการเผยแพร่
หากแอปพลิเคชันใช้งานร่วมกับอุปกรณ์ได้ตามกฎตัวกรอง Google Play จะแสดงแอปพลิเคชันต่อผู้ใช้ มิเช่นนั้น Google Play จะซ่อนแอปพลิเคชันของคุณจากผลการค้นหาและการเรียกดูหมวดหมู่ แม้ว่าผู้ใช้จะขอแอปโดยเฉพาะโดยคลิก Deep Link ที่ชี้ไปยังรหัสของแอปใน Google Play โดยตรงก็ตาม
คุณสามารถใช้ฟิลเตอร์ที่มีให้สำหรับแอปของคุณร่วมกันได้ เช่น คุณอาจตั้งค่าminSdkVersion
ข้อกำหนดเป็น "4"
และตั้งค่า smallScreens="false"
ในแอป จากนั้นเมื่ออัปโหลดแอปไปยัง Google Play คุณจะกำหนดเป้าหมายไปยังประเทศ (ผู้ให้บริการ) ในยุโรปเท่านั้นได้ ดังนั้นตัวกรองของ Google Play จะป้องกันไม่ให้แอปพลิเคชันพร้อมให้บริการในอุปกรณ์ใดก็ตามที่ไม่ตรงกับข้อกำหนดทั้ง 3 ข้อนี้
ข้อจำกัดการกรองทั้งหมดจะเชื่อมโยงกับเวอร์ชันของแอปพลิเคชันและอาจเปลี่ยนแปลงไปในแต่ละเวอร์ชัน ตัวอย่างเช่น หากผู้ใช้ติดตั้งแอปพลิเคชันของคุณไว้แล้ว และคุณเผยแพร่การอัปเดตที่ทำให้ผู้ใช้ไม่เห็นแอป ผู้ใช้ก็จะไม่เห็นการอัปเดต
การกรองในเว็บไซต์ Google Play
เมื่อเรียกดูเว็บไซต์ Google Play ผู้ใช้จะเห็นแอปพลิเคชันที่เผยแพร่ทั้งหมด อย่างไรก็ตาม เว็บไซต์ Google Play จะเปรียบเทียบข้อกำหนดของแอปพลิเคชันกับอุปกรณ์ที่ลงทะเบียนของผู้ใช้แต่ละรายเพื่อดูความเข้ากันได้ และอนุญาตให้ผู้ใช้ติดตั้งแอปพลิเคชันได้ก็ต่อเมื่อแอปพลิเคชันนั้นเข้ากันได้กับอุปกรณ์ของผู้ใช้
การกรองตามไฟล์ Manifest ของแอป
ตัวกรองส่วนใหญ่จะทริกเกอร์โดยองค์ประกอบภายในไฟล์ Manifest ของแอปพลิเคชัน ซึ่งก็คือ AndroidManifest.xml (แม้ว่าทุกอย่างในไฟล์ Manifest จะทริกเกอร์การกรองไม่ได้) ตารางที่ 1 แสดงองค์ประกอบของไฟล์ Manifest ที่คุณควรใช้เพื่อทริกเกอร์การกรอง และอธิบายวิธีการทํางานของการกรองสําหรับแต่ละองค์ประกอบ
ตารางที่ 1 องค์ประกอบไฟล์ Manifest ที่ทริกเกอร์การกรองใน Google Play
องค์ประกอบไฟล์ Manifest | ชื่อตัวกรอง | วิธีการทำงาน |
---|---|---|
<supports-screens>
|
ขนาดหน้าจอ |
แอปพลิเคชันจะระบุขนาดหน้าจอที่รองรับโดยการตั้งค่าแอตทริบิวต์ขององค์ประกอบ โดยทั่วไป Google Play จะถือว่าแพลตฟอร์มในอุปกรณ์สามารถปรับเลย์เอาต์ขนาดเล็กให้เหมาะกับหน้าจอขนาดใหญ่ได้ แต่จะปรับเลย์เอาต์ขนาดใหญ่ให้เหมาะกับหน้าจอขนาดเล็กไม่ได้ ดังนั้น หากแอปพลิเคชันประกาศว่ารองรับหน้าจอขนาด "ปกติ" เท่านั้น Google Play จะทําให้แอปพลิเคชันพร้อมให้บริการในอุปกรณ์ทั้งแบบหน้าจอปกติและแบบหน้าจอขนาดใหญ่ แต่กรองแอปพลิเคชันดังกล่าวไม่ให้พร้อมให้บริการในอุปกรณ์หน้าจอขนาดเล็ก หากแอปพลิเคชันไม่ได้ประกาศแอตทริบิวต์สำหรับ
ตัวอย่างที่ 1 ตัวอย่างที่ 2 ตัวอย่างที่ 3 ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีประกาศการรองรับขนาดหน้าจอในแอปพลิเคชันได้ที่ |
<uses-configuration>
|
อุปกรณ์
การกําหนดค่า: แป้นพิมพ์ การนําทาง หน้าจอสัมผัส |
แอปพลิเคชันสามารถขอใช้ฟีเจอร์บางอย่างของฮาร์ดแวร์ได้ และ Google Play จะแสดงแอปในอุปกรณ์ที่มีฮาร์ดแวร์ที่จำเป็นเท่านั้น ตัวอย่างที่ 1 ตัวอย่างที่ 2 ดูรายละเอียดเพิ่มเติมได้ที่ |
<uses-feature>
|
ฟีเจอร์ของอุปกรณ์ ( name ) |
แอปพลิเคชันอาจกำหนดให้อุปกรณ์มีฟีเจอร์บางอย่าง ฟังก์ชันการทำงานนี้เปิดตัวใน Android 2.0 (API ระดับ 5) ตัวอย่างที่ 1 ตัวอย่างที่ 2 ดูข้อมูลทั้งหมดได้ที่ การกรองตามฟีเจอร์โดยนัย: ในบางกรณี Google Play จะตีความสิทธิ์ที่ขอผ่านองค์ประกอบ |
OpenGL-ES
เวอร์ชัน ( openGlEsVersion ) |
แอปพลิเคชันกำหนดให้อุปกรณ์รองรับเวอร์ชัน OpenGL-ES ที่เฉพาะเจาะจงได้โดยใช้แอตทริบิวต์ ตัวอย่างที่ 1 ตัวอย่างที่ 2 ตัวอย่างที่ 3 ตัวอย่างที่ 4 ดูรายละเอียดเพิ่มเติมได้ที่ |
|
<uses-library> |
ไลบรารีซอฟต์แวร์ | แอปพลิเคชันอาจกำหนดให้ต้องมีคลังที่ใช้ร่วมกันที่เฉพาะเจาะจงในอุปกรณ์ ตัวอย่างที่ 1 ตัวอย่างที่ 2 ดูรายละเอียดเพิ่มเติมได้ที่ |
<uses-permission> |
จริงๆ แล้ว Google Play ไม่ได้กรองตามองค์ประกอบ โดยทั่วไป หากแอปพลิเคชันขอสิทธิ์ที่เกี่ยวข้องกับฮาร์ดแวร์ Google Play จะถือว่าแอปพลิเคชันต้องใช้ฟีเจอร์ฮาร์ดแวร์ที่เกี่ยวข้อง แม้ว่าอาจไม่มีการประกาศ โปรดดูรายการสิทธิ์ที่บ่งบอกถึงฟีเจอร์ฮาร์ดแวร์ในเอกสารประกอบขององค์ประกอบ |
|
<uses-sdk> |
เวอร์ชันเฟรมเวิร์กต่ำสุด (minSdkVersion ) |
แอปพลิเคชันกำหนดระดับ API ขั้นต่ำได้ ตัวอย่างที่ 1 ตัวอย่างที่ 2 เนื่องจากคุณต้องการหลีกเลี่ยงสถานการณ์ที่ 2 นี้ เราจึงขอแนะนำให้คุณประกาศ |
เวอร์ชันเฟรมเวิร์กสูงสุด (maxSdkVersion ) |
เลิกใช้งานแล้ว Android 2.1 ขึ้นไปจะไม่ตรวจสอบหรือบังคับใช้แอตทริบิวต์ เราไม่แนะนำให้ประกาศ |
ตัวกรองไฟล์ Manifest ขั้นสูง
นอกจากองค์ประกอบไฟล์ Manifest ในตารางที่ 1 แล้ว Google Play ยังกรองแอปพลิเคชันตามองค์ประกอบไฟล์ Manifest ขั้นสูงในตารางที่ 2 ได้ด้วย
องค์ประกอบไฟล์ Manifest เหล่านี้และการกรองที่เรียกใช้มีไว้สำหรับ Use Case พิเศษเท่านั้น ฟีเจอร์เหล่านี้ออกแบบมาสำหรับเกมที่มีประสิทธิภาพสูงบางประเภทและแอปพลิเคชันที่คล้ายกันซึ่งต้องใช้การควบคุมที่เข้มงวดในการเผยแพร่แอปพลิเคชัน แอปพลิเคชันส่วนใหญ่ไม่ควรใช้ตัวกรองเหล่านี้
ตารางที่ 2 องค์ประกอบไฟล์ Manifest ขั้นสูงสำหรับการกรองของ Google Play
องค์ประกอบไฟล์ Manifest | สรุป |
---|---|
<compatible-screens> |
Google Play จะกรองแอปพลิเคชันหากขนาดและความหนาแน่นของหน้าจออุปกรณ์ไม่ตรงกับการกำหนดค่าหน้าจอใดๆ (ที่ประกาศโดยองค์ประกอบ ข้อควรระวัง: ปกติแล้วคุณไม่ควรใช้องค์ประกอบไฟล์ Manifest นี้ การใช้องค์ประกอบนี้อาจทำให้ฐานผู้ใช้ที่มีโอกาสเป็นลูกค้าของแอปพลิเคชันลดลงอย่างมาก เนื่องจากจะยกเว้นชุดค่าผสมขนาดและความละเอียดของหน้าจอทั้งหมดที่คุณไม่ได้ระบุไว้ คุณควรใช้องค์ประกอบไฟล์ Manifest |
<supports-gl-texture> |
Google Play จะกรองแอปพลิเคชัน เว้นแต่อุปกรณ์จะรองรับรูปแบบการบีบอัดพื้นผิว GL อย่างน้อย 1 รูปแบบที่แอปพลิเคชันรองรับ |
ตัวกรองอื่นๆ
Google Play ใช้ลักษณะอื่นๆ ของแอปพลิเคชันเพื่อพิจารณาว่าจะแสดงหรือซ่อนแอปพลิเคชันสำหรับผู้ใช้รายใดรายหนึ่งในอุปกรณ์หนึ่งๆ หรือไม่ ตามที่อธิบายไว้ในตารางด้านล่าง
ตารางที่ 3 ลักษณะของแอปพลิเคชันและลักษณะการเผยแพร่ที่ส่งผลต่อตัวกรองใน Google Play
ชื่อตัวกรอง | วิธีการทำงาน |
---|---|
สถานะการเผยแพร่ | เฉพาะแอปพลิเคชันที่เผยแพร่แล้วเท่านั้นที่จะปรากฏในการค้นหาและการเรียกดูภายใน Google Play แม้ว่าแอปจะเลิกเผยแพร่แล้ว แต่ผู้ใช้จะยังติดตั้งแอปได้หากเห็นแอปดังกล่าวในพื้นที่ดาวน์โหลดท่ามกลางแอปที่ซื้อ ติดตั้ง หรือถอนการติดตั้งไปเมื่อเร็วๆ นี้ หากแอปพลิเคชันถูกระงับ ผู้ใช้จะติดตั้งหรืออัปเดตแอปพลิเคชันนั้นไม่ได้ แม้ว่าแอปพลิเคชันจะปรากฏในส่วนดาวน์โหลดก็ตาม |
ราคา สถานะ | ผู้ใช้บางรายจะไม่เห็นแอปที่ต้องซื้อ หากต้องการแสดงแอปที่ต้องซื้อ อุปกรณ์ต้องใช้ Android 1.1 ขึ้นไปและต้องอยู่ในประเทศที่แอปที่ต้องซื้อพร้อมให้บริการ หากอุปกรณ์มีซิมการ์ด ผู้ให้บริการซิมการ์ดจะเป็นผู้กำหนดว่าแอปที่ต้องซื้อจะพร้อมให้บริการหรือไม่ หากอุปกรณ์ไม่มีซิมการ์ด ระบบจะใช้ที่อยู่ IP ของอุปกรณ์เพื่อระบุว่าอุปกรณ์อยู่ในประเทศที่แอปที่ต้องซื้อพร้อมให้บริการหรือไม่ |
การกำหนดเป้าหมายตามประเทศ | เมื่ออัปโหลดแอปไปยัง Google Play คุณจะเลือกประเทศที่จะเผยแพร่แอปได้ในส่วนการกำหนดราคาและการเผยแพร่ จากนั้นแอปจะพร้อมให้บริการแก่ผู้ใช้ในประเทศที่คุณเลือกเท่านั้น |
สถาปัตยกรรม CPU (ABI) | แอปพลิเคชันที่มีไลบรารีแบบเนทีฟที่กำหนดเป้าหมายสถาปัตยกรรม CPU ที่เจาะจง (เช่น ARM EABI v7 หรือ x86) จะแสดงในอุปกรณ์ที่รองรับสถาปัตยกรรมนั้นเท่านั้น โปรดดูรายละเอียดเกี่ยวกับ NDK และการใช้ไลบรารีที่มาพร้อมเครื่องที่หัวข้อAndroid NDK คืออะไร |
แอปพลิเคชันที่มีการป้องกันการคัดลอก | Google Play ไม่รองรับฟีเจอร์การป้องกันการคัดลอกใน Play Console อีกต่อไป และไม่กรองแอปตามฟีเจอร์ดังกล่าวอีกต่อไป โปรดใช้ การอนุญาตให้ใช้แอปพลิเคชันแทนเพื่อรักษาความปลอดภัยให้แอป ดูข้อมูลเพิ่มเติมได้ที่ การเปลี่ยนทดแทนสำหรับการป้องกันการคัดลอก |
การเผยแพร่ APK หลายรายการด้วยตัวกรองที่แตกต่างกัน
ตัวกรองบางอย่างของ Google Play ช่วยให้คุณเผยแพร่ APK หลายรายการสำหรับแอปพลิเคชันเดียวกันได้ เพื่อให้บริการ APK ที่แตกต่างกันสำหรับการกำหนดค่าอุปกรณ์ที่แตกต่างกัน ตัวอย่างเช่น หากกำลังสร้างวิดีโอเกมที่ใช้ชิ้นงานกราฟิกที่มีความละเอียดสูง คุณอาจต้องสร้าง APK 2 รายการที่รองรับรูปแบบการบีบอัดพื้นผิวที่แตกต่างกัน วิธีนี้จะช่วยให้คุณลดขนาดไฟล์ APK ได้ด้วยการรวมเฉพาะพื้นผิวที่จําเป็นสําหรับการกําหนดค่าอุปกรณ์แต่ละรายการ Google Play จะส่ง APK ที่คุณประกาศว่ารองรับอุปกรณ์นั้นให้กับอุปกรณ์ โดยขึ้นอยู่กับการรองรับรูปแบบการบีบอัดพื้นผิวของอุปกรณ์แต่ละเครื่อง
ปัจจุบัน Google Play อนุญาตให้คุณเผยแพร่ APK หลายรายการสําหรับแอปพลิเคชันเดียวกันได้ก็ต่อเมื่อ APK แต่ละรายการมีตัวกรองที่แตกต่างกันตามการกําหนดค่าต่อไปนี้
- รูปแบบการบีบอัดพื้นผิว OpenGL
โดยใช้องค์ประกอบ
<supports-gl-texture>
- ขนาดหน้าจอ (และความหนาแน่นของหน้าจอ หากต้องการ)
โดยใช้องค์ประกอบ
<supports-screens>
หรือ<compatible-screens>
- ระดับ API
โดยใช้องค์ประกอบ
<uses-sdk>
- สถาปัตยกรรม CPU (ABI)
โดยการรวมไลบรารีเนทีฟที่สร้างขึ้นด้วย Android NDK ซึ่งกำหนดเป้าหมายไปยังสถาปัตยกรรม CPU ที่เฉพาะเจาะจง (เช่น ARM EABI v7 หรือ x86)
ตัวกรองอื่นๆ ทั้งหมดจะยังคงทำงานเหมือนเดิม แต่ตัวกรอง 4 รายการนี้เป็นตัวกรองเพียงรายการเดียวที่สามารถแยก APK รายการหนึ่งออกจากอีกรายการหนึ่งภายในข้อมูลแอปพลิเคชันเดียวกันใน Google Play ตัวอย่างเช่น คุณจะไม่สามารถเผยแพร่ APK หลายรายการสำหรับแอปพลิเคชันเดียวกันได้หาก APK แตกต่างกันเพียงตรงที่อุปกรณ์มีกล้องหรือไม่
ข้อควรระวัง: การเผยแพร่ APK หลายรายการสำหรับแอปพลิเคชันเดียวกันถือเป็นฟีเจอร์ขั้นสูง และแอปพลิเคชันส่วนใหญ่ควรเผยแพร่ APK เพียงรายการเดียวที่รองรับการกำหนดค่าอุปกรณ์ที่หลากหลาย การเผยแพร่ APK หลายรายการกำหนดให้คุณต้องทำตามกฎที่เฉพาะเจาะจงภายในตัวกรองและให้ความสำคัญเป็นพิเศษกับรหัสเวอร์ชันของ APK แต่ละรายการเพื่อให้แน่ใจว่าเส้นทางการอัปเดตสำหรับการกำหนดค่าแต่ละรายการถูกต้อง
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับวิธีเผยแพร่ APK หลายรายการใน Google Play โปรดอ่านการรองรับ APK หลายรายการ