การใช้ Play Age Signals API (เบต้า) หมายความว่าคุณยอมรับข้อกำหนดในการให้บริการ และตกลงที่จะปฏิบัติตามนโยบายนักพัฒนาแอปของ Google Play ทั้งหมด หากต้องการขอสถานะและช่วงอายุของผู้ใช้ คุณต้องเรียกใช้ API จากแอปขณะรันไทม์ Play Age Signals API จะแสดงข้อมูลสำหรับผู้ใช้ที่อยู่ในภูมิภาคที่กฎหมายกำหนดให้ Google Play ต้องระบุข้อมูลหมวดหมู่อายุเท่านั้น
Play จะแสดงช่วงอายุตามช่วงอายุที่กำหนดโดยเขตอำนาจศาลและภูมิภาคที่เกี่ยวข้อง อายุเริ่มต้นที่ API แสดงในเขตอำนาจศาลและภูมิภาคที่เกี่ยวข้องคือ 0-12, 13-15, 16-17 และ 18 ปีขึ้นไป แต่คุณอาจได้รับช่วงอายุที่กำหนดเอง Google Play จะอัปเดตสัญญาณอายุที่แคชไว้ สำหรับผู้ใช้โดยอัตโนมัติภายใน 2-8 สัปดาห์หลังจากวันเกิดของผู้ใช้
ผสานรวม Play Age Signals API เข้ากับแอป
Play Age Signals API รองรับในโทรศัพท์ อุปกรณ์พับได้ และแท็บเล็ตที่ใช้ Android 6.0 (ระดับ API 23) ขึ้นไป หากต้องการผสานรวม Play Age Signals API
เข้ากับแอป ให้เพิ่มทรัพยากร Dependency ต่อไปนี้ลงในไฟล์ build.gradle ของแอป
implementation 'com.google.android.play:age-signals:0.0.3'
ขอสัญญาณอายุ
ต่อไปนี้เป็นตัวอย่างการส่งคำขอสัญญาณอายุ
Kotlin
// Create an instance of a manager val ageSignalsManager = AgeSignalsManagerFactory.create(ApplicationProvider.getApplicationContext()) // Request an age signals check ageSignalsManager .checkAgeSignals(AgeSignalsRequest.builder().build()) .addOnSuccessListener { ageSignalsResult -> // Store the install ID for later... val installId = ageSignalsResult.installId() if (ageSignalsResult.userStatus() == AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_DENIED) { // Disallow access... } else { // Do something else if the user is VERIFIED, DECLARED, SUPERVISED, etc. } }
Java
// Create an instance of a manager AgeSignalsManager ageSignalsManager = AgeSignalsManagerFactory.create(ApplicationProvider.getApplicationContext()); // Request an age signals check ageSignalsManager .checkAgeSignals(AgeSignalsRequest.builder().build()) .addOnSuccessListener( ageSignalsResult -> { // Store the install ID for later... String installId = ageSignalsResult.installId(); if (ageSignalsResult .userStatus() .equals(AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_DENIED)) { // Disallow access ... } else { // Do something else if the user is SUPERVISED, VERIFIED, etc. } });
(ไม่บังคับ) รับช่วงอายุที่กำหนดเอง
ช่วงอายุเริ่มต้นที่ API แสดงในเขตอำนาจศาลและภูมิภาคที่เกี่ยวข้องคือ 0-12, 13-15, 16-17 และ 18 ปีขึ้นไป
หรือหากต้องการปรับแต่งช่วงอายุเริ่มต้นตามอายุขั้นต่ำของแอป คุณสามารถระบุอายุขั้นต่ำเหล่านี้สำหรับแอปได้ในหน้าสัญญาณอายุใน Google Play Console
- ไปที่หน้าสัญญาณอายุใน Play Console
- ในแท็บช่วงอายุที่กำหนดเอง ให้ป้อนอายุขั้นต่ำสำหรับแอปของคุณได้สูงสุด 3 รายการ อายุขั้นต่ำต้องห่างกันอย่างน้อย 2 ปี และสามารถเปลี่ยนแปลงได้ปีละครั้ง
- คลิกบันทึก
ช่วงอายุที่แสดงจะลบล้างการตอบกลับจาก API เริ่มต้น เช่น
หากคุณกำหนดอายุขั้นต่ำ 15 ปีใน Google Play Console
- หากอายุ 0-14 ปี ระบบจะแสดงผล
ageLower = 0และageUpper = 14 - หากอายุ 15 ปีขึ้นไป ฟังก์ชันจะแสดงผล
ageLower = 15
- หากอายุ 0-14 ปี ระบบจะแสดงผล
หากกำหนดอายุขั้นต่ำ 2 รายการ (13 และ 17 ปี)
- เด็กอายุ 0-12 ปีจะแสดงผล
ageLower = 0และageUpper = 12 - ผู้ที่มีอายุ 13-16 ปีจะได้รับค่า
ageLower = 13และageUpper = 16 - อายุ 17 ปีขึ้นไปจะแสดงผล
ageLower = 17
- เด็กอายุ 0-12 ปีจะแสดงผล
หากคุณตั้งค่าอายุขั้นต่ำ 3 รายการ (11, 13 และ 15 ปี)
- หากอายุ 0-10 ปี ระบบจะแสดงผล
ageLower = 0และageUpper = 10 - เด็กอายุ 11 หรือ 12 ปีจะแสดงผล
ageLower = 11และageUpper = 12 - ส่วนผู้ที่มีอายุ 13 หรือ 14 ปีจะแสดงผล
ageLower = 13และageUpper = 14 - หากอายุ 15 ปีขึ้นไป ฟังก์ชันจะแสดงผล
ageLower = 15
- หากอายุ 0-10 ปี ระบบจะแสดงผล
การตอบกลับสัญญาณอายุ
การตอบกลับของ Play Age Signals API (เบต้า) มีช่องและค่าต่อไปนี้ ค่าเหล่านี้อาจมีการเปลี่ยนแปลง หากต้องการค่าล่าสุด ให้ขอการตอบกลับจาก API เมื่อแอปเปิดขึ้น คุณมีหน้าที่รับผิดชอบในการมอบประสบการณ์ที่เหมาะสมกับอายุโดยใช้สัญญาณเหล่านี้
| ฟิลด์การตอบกลับ | ค่า | คำอธิบาย |
|---|---|---|
userStatus |
ยืนยันแล้ว | Google ยืนยันอายุของผู้ใช้โดยใช้วิธีการที่สมเหตุสมผลในเชิงพาณิชย์ เช่น บัตรประจำตัวที่ออกโดยหน่วยงานราชการ บัตรเครดิต หรือการคาดคะเนอายุจากใบหน้า หาก userStatus เป็น VERIFIED คุณสามารถละเว้นฟิลด์อื่นๆ ได้
ใช้ ageLower และ ageUpper เพื่อกำหนดช่วงอายุของผู้ใช้
|
| ประกาศ | ผู้ใช้ บิดามารดา หรือผู้ปกครองตามกฎหมายของผู้ใช้เป็นผู้ประกาศอายุของผู้ใช้
ใช้ ageLower และ ageUpper เพื่อกำหนดช่วงอายุของผู้ใช้ |
|
| มีการควบคุมดูแล | ผู้ใช้มีบัญชี Google ที่มีการควบคุมดูแลซึ่งจัดการโดยผู้ปกครองที่กำหนดอายุของผู้ใช้
ใช้ ageLower และ ageUpper เพื่อกำหนดช่วงอายุของผู้ใช้
ใช้ mostRecentApprovalDate เพื่อพิจารณาการเปลี่ยนแปลงที่สำคัญครั้งล่าสุดที่ได้รับอนุมัติ |
|
| SUPERVISED_APPROVAL_PENDING | ผู้ใช้มีบัญชี Google ภายใต้การควบคุมดูแล และผู้ปกครองที่ควบคุมดูแลยังไม่ได้อนุมัติการเปลี่ยนแปลงที่สำคัญที่รอดำเนินการอย่างน้อย 1 รายการ
ใช้ ageLower และ ageUpper เพื่อกำหนดช่วงอายุของผู้ใช้
ใช้ mostRecentApprovalDate เพื่อพิจารณาการเปลี่ยนแปลงที่สำคัญครั้งล่าสุดที่ได้รับอนุมัติ |
|
| SUPERVISED_APPROVAL_DENIED | ผู้ใช้มีบัญชี Google ภายใต้การควบคุมดูแล และผู้ปกครองที่ควบคุมดูแลปฏิเสธการอนุมัติการเปลี่ยนแปลงที่สำคัญอย่างน้อย 1 รายการ
ใช้ ageLower และ ageUpper เพื่อกำหนดช่วงอายุของผู้ใช้
ใช้ mostRecentApprovalDate เพื่อพิจารณาการเปลี่ยนแปลงที่สำคัญครั้งล่าสุดที่ได้รับอนุมัติ |
|
| ไม่ทราบ | ไม่ทราบอายุของผู้ใช้และผู้ใช้อยู่ในเขตอำนาจศาลหรือภูมิภาคที่เกี่ยวข้อง
ใช้ได้กับรัฐในสหรัฐอเมริกาเท่านั้น: หากต้องการรับสัญญาณอายุจาก Google Play ให้ขอให้ผู้ใช้ไปที่ Play Store เพื่อแก้ไขสถานะ |
|
null |
ผู้ใช้ไม่ได้อยู่ในเขตอำนาจศาลและภูมิภาคที่เกี่ยวข้อง
หรือผู้ใช้ไม่ได้แชร์อายุกับแอป |
|
ageLower |
0 ถึง 18 | ขอบเขตล่าง (รวม) ของช่วงอายุของผู้ใช้ภายใต้การควบคุมดูแล
ใช้ ageLower และ ageUpper เพื่อกำหนดช่วงอายุของผู้ใช้ |
null |
userStatus ไม่รู้จักหรือ null |
|
ageUpper |
2-18 ปี | ขอบเขตบน (รวม) ของช่วงอายุของผู้ใช้ภายใต้การควบคุมดูแล
ใช้ ageLower และ ageUpper เพื่อกำหนดช่วงอายุของผู้ใช้ |
null |
ทั้งuserStatusได้รับการควบคุมดูแลและผู้ปกครองของผู้ใช้รับรองว่าผู้ใช้มีอายุมากกว่า 18 ปี
หรือไม่ทราบ userStatus หรือ null |
|
mostRecentApprovalDate |
การประทับวันที่ | effective from วันที่ของการเปลี่ยนแปลงที่สำคัญล่าสุดที่ได้รับอนุมัติ เมื่อติดตั้งแอป ระบบจะใช้วันที่ของการเปลี่ยนแปลงที่สำคัญล่าสุดก่อนการติดตั้ง |
null |
userStatus ได้รับการควบคุมดูแลและไม่มีการส่งการเปลี่ยนแปลงที่สำคัญ
หรือ userStatus ได้รับการยืนยัน ไม่รู้จัก หรือ null |
|
installID |
รหัสตัวอักษรและตัวเลขที่ Play สร้างขึ้น | รหัสที่ Google Play มอบหมายให้แก่การติดตั้งของผู้ใช้ภายใต้การควบคุมดูแล ซึ่งใช้เพื่อวัตถุประสงค์ในการแจ้งเตือนการเพิกถอนการอนุมัติแอป โปรดอ่านเอกสารประกอบสำหรับการอนุมัติแอปที่ถูกเพิกถอน |
null |
userStatus ได้รับการยืนยัน ไม่รู้จัก หรือ null |
ตัวอย่างการตอบกลับสำหรับผู้ใช้ในบราซิล
ในบราซิล userStatus จะเป็น DECLARED
UNKNOWN หรือ null เท่านั้น
สำหรับผู้ใช้ที่ประกาศอายุและแชร์กับแอป คุณจะได้รับข้อมูลต่อไปนี้
userStatusจะเป็นAgeSignalsVerificationStatus.DECLAREDageLowerจะเป็นตัวเลข (เช่น 13)ageUpperจะเป็นตัวเลขหรือnull(เช่น 15)- ช่องคำตอบอื่นๆ จะเป็น
null
สำหรับผู้ใช้ที่ไม่ทราบอายุ คุณจะได้รับข้อมูลต่อไปนี้
userStatusจะเป็นAgeSignalsVerificationStatus.UNKNOWN- ช่องคำตอบอื่นๆ จะเป็น
null
สำหรับผู้ใช้ที่ไม่ได้แชร์อายุกับแอป คุณจะได้รับข้อมูลต่อไปนี้
userStatusจะเป็นnull- ช่องคำตอบอื่นๆ จะเป็น
null
สถานะของผู้ใช้จะเปลี่ยนเป็น DECLARED เมื่อแชร์อายุของผู้ใช้ได้แล้ว
ตัวอย่างคำตอบสำหรับผู้ใช้ในรัฐต่างๆ ของสหรัฐอเมริกา
ในรัฐที่เกี่ยวข้องของสหรัฐอเมริกา userStatus อาจเป็น VERIFIED,
SUPERVISED, SUPERVISED_APPROVAL_PENDING,
SUPERVISED_APPROVAL_DENIED, UNKNOWN หรือ
null
สำหรับผู้ใช้ที่ได้รับการยืนยัน คุณจะได้รับสิ่งต่อไปนี้
userStatusจะเป็นAgeSignalsVerificationStatus.VERIFIEDageLowerจะเป็นตัวเลข (เช่น 18)ageUpperจะเป็นตัวเลขหรือnull(เช่นnull)- ช่องคำตอบอื่นๆ จะเป็น
null
สำหรับผู้ใช้ภายใต้การควบคุมดูแล คุณจะได้รับสิ่งต่อไปนี้
userStatusจะเป็นAgeSignalsVerificationStatus.SUPERVISEDageLowerจะเป็นตัวเลข (เช่น 13)ageUpperจะเป็นตัวเลขหรือnull(เช่น 15)mostRecentApprovalDateจะเป็นออบเจ็กต์วันที่ของ Java (เช่น2026-01-01) หรือnull(หากไม่มีการอนุมัติการเปลี่ยนแปลงที่สำคัญ)installIDจะเป็นรหัสตัวอักษรและตัวเลขที่ Play สร้างขึ้น (เช่น550e8400-e29b-41d4-a716-446655441111)
สำหรับผู้ใช้ภายใต้การควบคุมดูแลที่มีการอนุมัติการเปลี่ยนแปลงที่สำคัญที่รอดำเนินการ คุณจะได้รับข้อมูลต่อไปนี้
userStatusจะเป็นAgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDINGageLowerจะเป็นตัวเลข (เช่น 13)ageUpperจะเป็นตัวเลขหรือnull(เช่น 15)mostRecentApprovalDateจะเป็นออบเจ็กต์วันที่ของ Java (เช่น2026-01-01) หรือnull(หากไม่มีการอนุมัติการเปลี่ยนแปลงที่สำคัญ)installIDจะเป็นรหัสตัวอักษรและตัวเลขที่ Play สร้างขึ้น (เช่น550e8400-e29b-41d4-a716-446655441111)
จัดการรหัสข้อผิดพลาดของ API
หากแอปของคุณส่งคำขอ Play Age Signals API และการเรียกใช้ไม่สำเร็จ แอปจะได้รับรหัสข้อผิดพลาด ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นได้จากหลายสาเหตุ เช่น แอป Play Store ล้าสมัย
กลยุทธ์การลองใหม่
ในกรณีที่ผู้ใช้อยู่ในเซสชัน เราขอแนะนำให้ใช้กลยุทธ์การลองใหม่ โดยมีจำนวนครั้งที่พยายามสูงสุดเป็นเงื่อนไขการออก เพื่อให้ข้อผิดพลาด รบกวนประสบการณ์ของผู้ใช้น้อยที่สุด
| ค่าตัวเลขของรหัสข้อผิดพลาด | รหัสข้อผิดพลาด | คำอธิบาย | ลองใหม่ได้ |
|---|---|---|---|
| -1 | API_NOT_AVAILABLE | Play Age Signals API ไม่พร้อมใช้งาน แอป Play Store เวอร์ชันที่ติดตั้งในอุปกรณ์อาจเป็นเวอร์ชันเก่า วิธีแก้ไขที่เป็นไปได้
|
ใช่ |
| -2 | PLAY_STORE_NOT_FOUND | ไม่พบแอป Play Store ในอุปกรณ์ ขอให้ผู้ใช้ติดตั้งหรือเปิดใช้ Play Store | ใช่ |
| -3 | NETWORK_ERROR | ไม่พบเครือข่ายที่พร้อมใช้งาน ขอให้ผู้ใช้ตรวจสอบการเชื่อมต่อ | ใช่ |
| -4 | PLAY_SERVICES_NOT_FOUND | บริการ Google Play ไม่พร้อมใช้งานหรือเวอร์ชันเก่าเกินไป ขอให้ผู้ใช้ติดตั้ง อัปเดต หรือเปิดใช้บริการ Google Play | ใช่ |
| -5 | CANNOT_BIND_TO_SERVICE | การเชื่อมโยงกับบริการใน Play Store ไม่สำเร็จ ปัญหานี้อาจเกิดจากการติดตั้ง Play Store เวอร์ชันเก่าในอุปกรณ์หรือหน่วยความจำของอุปกรณ์ทำงานหนักเกินไป ขอให้ผู้ใช้อัปเดตแอป Play Store ลองอีกครั้งโดยใช้ Exponential Backoff | ใช่ |
| -6 | PLAY_STORE_VERSION_OUTDATED | ต้องอัปเดตแอป Play Store ขอให้ผู้ใช้อัปเดตแอป Play Store | ใช่ |
| -7 | PLAY_SERVICES_VERSION_OUTDATED | ต้องอัปเดตบริการ Google Play ขอให้ผู้ใช้อัปเดตบริการ Google Play | ใช่ |
| -8 | CLIENT_TRANSIENT_ERROR | เกิดข้อผิดพลาดชั่วคราวในอุปกรณ์ไคลเอ็นต์ ใช้กลยุทธ์การลองใหม่โดยกำหนดจำนวนครั้งสูงสุดในการลองเป็นเงื่อนไขการออก หากยังแก้ปัญหาไม่ได้ ให้ขอให้ผู้ใช้ลองอีกครั้งในภายหลัง | ใช่ |
| -9 | APP_NOT_OWNED | Google Play ไม่ได้ติดตั้งแอป ขอให้ผู้ใช้ดาวน์โหลดแอปของคุณจาก Google Play | ไม่ |
| -10 | SDK_VERSION_OUTDATED | ระบบไม่รองรับ SDK เวอร์ชันสัญญาณอายุใน Play อีกต่อไป ขอให้ผู้ใช้อัปเดตแอปเป็นเวอร์ชันที่ใหม่กว่าซึ่งใช้ SDK สัญญาณอายุของ Play เวอร์ชันล่าสุด | ไม่ |
| -100 | INTERNAL_ERROR | เกิดข้อผิดพลาดภายในที่ไม่รู้จัก ใช้กลยุทธ์การลองใหม่โดยกำหนดจำนวนครั้งสูงสุดในการลองเป็นเงื่อนไขการออก หากยังแก้ปัญหาไม่ได้ ให้ขอให้ผู้ใช้ลองอีกครั้งในภายหลัง หากการทดสอบล้มเหลวอย่างต่อเนื่อง โปรดติดต่อทีมสนับสนุนนักพัฒนาแอป Google Play โดยระบุ Play Age Signals API ในหัวเรื่อง และระบุรายละเอียดทางเทคนิคให้ได้มากที่สุด (เช่น รายงานข้อบกพร่อง) | ไม่ |