การใช้ 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 เช่น
หากคุณตั้งอายุขั้นต่ำไว้ 1 รายการ (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 |
VERIFIED | Google ยืนยันอายุของผู้ใช้โดยใช้วิธีที่สมเหตุสมผลในเชิงพาณิชย์ เช่น บัตรประจำตัวที่ออกโดยหน่วยงานราชการ บัตรเครดิต หรือการประมาณอายุจากใบหน้า หาก userStatus เป็น VERIFIED คุณสามารถละเว้นช่องอื่นๆ ได้
ใช้ ageLower และ ageUpper เพื่อกำหนดช่วงอายุของผู้ใช้
|
| DECLARED | ผู้ใช้ ผู้ปกครอง หรือผู้พิทักษ์ตามกฎหมายของผู้ใช้เป็นผู้ประกาศอายุของผู้ใช้
ใช้ ageLower และ ageUpper เพื่อกำหนดช่วงอายุของผู้ใช้ |
|
| SUPERVISED | ผู้ใช้มีบัญชี Google ที่มีการควบคุมดูแลซึ่งจัดการโดยผู้ปกครองที่กำหนดอายุของผู้ใช้
ใช้ ageLower และ ageUpper เพื่อกำหนดช่วงอายุของผู้ใช้
ใช้ mostRecentApprovalDate เพื่อกำหนดการเปลี่ยนแปลงที่สำคัญล่าสุดที่ได้รับอนุมัติ |
|
| SUPERVISED_APPROVAL_PENDING | ผู้ใช้มีบัญชี Google ที่มีการควบคุมดูแล และผู้ปกครองที่ควบคุมดูแลยังไม่อนุมัติการเปลี่ยนแปลงที่สำคัญที่รอดำเนินการอย่างน้อย 1 รายการ
ใช้ ageLower และ ageUpper เพื่อกำหนดช่วงอายุของผู้ใช้
ใช้ mostRecentApprovalDate เพื่อกำหนดการเปลี่ยนแปลงที่สำคัญล่าสุดที่ได้รับอนุมัติ |
|
| SUPERVISED_APPROVAL_DENIED | ผู้ใช้มีบัญชี Google ที่มีการควบคุมดูแล และผู้ปกครองที่ควบคุมดูแลไม่อนุมัติการเปลี่ยนแปลงที่สำคัญอย่างน้อย 1 รายการ
ใช้ ageLower และ ageUpper เพื่อกำหนดช่วงอายุของผู้ใช้
ใช้ mostRecentApprovalDate เพื่อกำหนดการเปลี่ยนแปลงที่สำคัญล่าสุดที่ได้รับอนุมัติ |
|
| UNKNOWN | ไม่ทราบอายุของผู้ใช้และผู้ใช้อยู่ในเขตอำนาจศาลหรือภูมิภาคที่เกี่ยวข้อง
ใช้ได้กับรัฐในสหรัฐอเมริกาเท่านั้น: หากต้องการรับสัญญาณอายุจาก 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 |
รหัสที่เป็นตัวอักษรและตัวเลขคละกันที่ Google 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จะเป็นรหัสที่เป็นตัวอักษรและตัวเลขคละกันที่ Google Play สร้างขึ้น (เช่น550e8400-e29b-41d4-a716-446655441111)
สำหรับผู้ใช้ภายใต้การควบคุมดูแลที่มีการอนุมัติการเปลี่ยนแปลงที่สำคัญที่รอดำเนินการ คุณจะได้รับข้อมูลต่อไปนี้
userStatusจะเป็นAgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDINGageLowerจะเป็นตัวเลข (เช่น 13)ageUpperจะเป็นตัวเลขหรือnull(เช่น 15)mostRecentApprovalDateจะเป็นออบเจ็กต์วันที่ Java (เช่น2026-01-01) หรือnull(หากไม่มี การเปลี่ยนแปลงที่สำคัญ ได้รับการอนุมัติ)installIDจะเป็นรหัสที่เป็นตัวอักษรและตัวเลขคละกันที่ Google 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 | ระบบไม่รองรับ Play Age Signals SDK เวอร์ชันนี้อีกต่อไป ขอให้ผู้ใช้อัปเดตแอปเป็นเวอร์ชันที่ใหม่กว่าซึ่งใช้ Play Age Signals SDK เวอร์ชันล่าสุด | ไม่ |
| -100 | INTERNAL_ERROR | เกิดข้อผิดพลาดภายในที่ไม่รู้จัก ใช้กลยุทธ์การลองใหม่โดยกำหนดจำนวนครั้งที่พยายามสูงสุดเป็นเงื่อนไขการออก หากปัญหายังไม่ได้รับการแก้ไข ให้ขอให้ผู้ใช้ลองอีกครั้งในภายหลัง หากเกิดข้อผิดพลาดอย่างต่อเนื่อง โปรดติดต่อทีมสนับสนุนนักพัฒนาแอป Google Play โดยระบุ Play Age Signals API ในบรรทัดเรื่อง และระบุรายละเอียดทางเทคนิคให้มากที่สุด (เช่น รายงานข้อบกพร่อง) | ไม่ |