השימוש ב-Play Age Signals API (בטא) מהווה את הסכמתכם לתנאים ולהגבלות ואת הסכמתכם לציית לכל כללי המדיניות למפתחים של Google Play. כדי לבקש את הסטטוס וטווח הגילאים של המשתמש, צריך להפעיל את ה-API מהאפליקציה בזמן הריצה. Play Age Signals API מחזיר נתונים רק לגבי משתמשים שנמצאים באזורים שבהם Play נדרש על פי חוק לספק נתונים של קטגוריות גיל.
Play מחזיר טווח גילאים על סמך קבוצות הגיל שהוגדרו באזורים ובסמכויות השיפוט הרלוונטיים. הגילאים שמוחזרים על ידי ה-API כברירת מחדל באזורים ובסמכויות שיפוט רלוונטיים הם 0-12, 13-15, 16-17 ו-18 ומעלה, אבל הם עשויים להשתנות בהתאם לדרישות האזוריות.
שילוב של Play Age Signals API באפליקציה
כדי לשלב את Play Age Signals API באפליקציה, מוסיפים את התלות הבאה לקובץ build.gradle של האפליקציה:
implementation 'com.google.android.play:age-signals:0.0.1-beta02'
בקשת אותות גיל
דוגמה לשליחת בקשה לקבלת אותות גיל:
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 SUPERVISED, VERIFIED, 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. } });
אותות הגיל נשמרים על ידי Google Play במכשיר עבור כל משתמש. כשמשתמשים עם חשבון Google מפוקח עוברים לקבוצת גיל חדשה, מערכת Google Play מעדכנת באופן אוטומטי את אותות הגיל ששמורים במטמון לגבי המשתמשים האלה תוך שבועיים עד 8 שבועות אחרי יום ההולדת שלהם.
(אופציונלי) קבלת טווחי גילאים בהתאמה אישית
טווחי הגילאים ש-API מחזיר כברירת מחדל באזורים ובסמכויות שיפוט רלוונטיים הם 0-12, 13-15, 16-17 ו-18 ומעלה. יכול להיות שהם ישתנו בעתיד בהתאם לדרישות המקומיות.
לחלופין, כדי להתאים אישית את טווחי הגילאים בהתאם לדרישות הגיל המינימלי באפליקציה, אפשר לציין את דרישות הגיל המינימלי באפליקציה בדף אותות גיל ב-Google Play Console. Age Signals API מחזיר את טווחי הגילאים המותאמים אישית. לדוגמה, אם מציינים את הגילאים המינימליים 9, 15 ו-17, משתמש בן 14 ייכלל בטווח הגילאים 10-15. הגילים המינימליים צריכים להיות בהפרש של שנתיים לפחות, ואפשר לשנות אותם פעם בשנה.
כדי להתאים אישית את טווחי הגילאים ש-Age Signals API מחזיר, אפשר לציין דרישות גיל מינימלי באפליקציה:
- עוברים לדף אותות גיל ב-Play Console.
- בכרטיסייה הגילאים המינימליים לשימוש באפליקציה, מזינים עד שלוש דרישות גיל מינימלי לשימוש באפליקציה.
- לוחצים על שמירה.
תשובות לאותות גיל
התשובה של Play Age Signals API (בטא) כוללת את השדות והערכים הבאים. הערכים עשויים להשתנות. אם רוצים לקבל את הערכים העדכניים ביותר, צריך לשלוח בקשה לתשובת API כשהאפליקציה נפתחת. באחריותכם לספק חוויות שמתאימות לגיל באמצעות האותות האלה.
| שדה תשובה | ערכים | תיאור |
|---|---|---|
userStatus |
האימות בוצע בהצלחה | המשתמש מעל גיל 18. Google אימתה את גיל המשתמש באמצעות שיטה סבירה מבחינה מסחרית, כמו תעודה מזהה רשמית, כרטיס אשראי או הערכת גיל לפי תווי פנים. |
| בפיקוח | למשתמש יש חשבון Google בפיקוח שמנוהל על ידי הורה שהגדיר את הגיל שלו.
משתמשים ב-ageLower וב-ageUpper כדי לקבוע את טווח הגילאים של המשתמש. |
|
| SUPERVISED_APPROVAL_PENDING | למשתמש יש חשבון מפוקח ב-Google, וההורה המפקח שלו עדיין לא אישר שינוי משמעותי אחד או יותר שנמצאים בהמתנה.
משתמשים ב-ageLower וב-ageUpper כדי לקבוע את טווח הגילאים של המשתמש.
אפשר להשתמש ב-mostRecentApprovalDate כדי לראות את השינוי המשמעותי האחרון שאושר. |
|
| SUPERVISED_APPROVAL_DENIED | למשתמש יש חשבון Google בפיקוח, וההורה המפקח שלו דחה את האישור של שינוי משמעותי אחד או יותר.
משתמשים ב-ageLower וב-ageUpper כדי לקבוע את טווח הגילאים של המשתמש.
אפשר להשתמש ב-mostRecentApprovalDate כדי לראות את השינוי המשמעותי האחרון שאושר. |
|
| לא ידוע | המשתמש לא אומת או לא נמצא בפיקוח במדינות ובאזורים הרלוונטיים. המשתמשים האלה יכולים להיות בני 18 ומעלה או מתחת לגיל 18. כדי לקבל אות גיל מ-Google Play, צריך לבקש מהמשתמש להיכנס לחנות Play כדי לפתור את הבעיה בסטטוס שלו. | |
| ריק (ערך ריק) | כל שאר המשתמשים יקבלו את הערך הזה. | |
ageLower |
0 עד 18 | הגבול התחתון (כולל) של טווח הגילאים של משתמש בפיקוח.
משתמשים במאפיינים ageLower ו-ageUpper כדי לקבוע את טווח הגילאים של המשתמש. |
| ריק (ערך ריק) |
userStatus לא ידוע או ריק. |
|
ageUpper |
2 עד 18 | הגבול העליון (כולל) של טווח הגילאים של משתמש בפיקוח.
משתמשים במאפיינים ageLower ו-ageUpper כדי לקבוע את טווח הגילאים של המשתמש. |
| ריק (ערך ריק) | או שהחשבון userStatus נמצא בפיקוח והגיל של המשתמש שאושר על ידי ההורה הוא מעל 18.
או שהערך של userStatus מאומת, לא ידוע או ריק. |
|
mostRecentApprovalDate |
חותמת תאריך | התאריך effective from של השינוי המשמעותי האחרון שאושר. כשמתקינים אפליקציה, התאריך של השינוי המשמעותי האחרון לפני ההתקנה הוא התאריך שמוצג. |
| ריק (ערך ריק) | או שהחשבון userStatus נמצא בפיקוח ולא נשלח שינוי משמעותי.
או userStatus מאומת, לא ידוע או ריק. |
|
installID |
מזהה אלפאנומרי שנוצר על ידי Play. | מזהה שמוקצה להתקנות של משתמשים בפיקוח על ידי Google Play, ומשמש למטרות של שליחת הודעות על ביטול אישור אפליקציה. אפשר לעיין במסמכי התיעוד בנושא אישורי אפליקציות שבוטלו. |
| ריק (ערך ריק) | האימות של userStatus עבר בהצלחה, לא ידוע או ריק. |
תגובות לדוגמה
אם המשתמש מאומת, תקבלו את הפרטים הבאים:
- המחיר של
userStatusיהיהAgeSignalsVerificationStatus.VERIFIED. - שאר שדות התשובה יהיו ריקים.
משתמש בפיקוח יקבל את ההודעות הבאות:
- המחיר של
userStatusיהיהAgeSignalsVerificationStatus.SUPERVISED. - הערך
ageLowerיהיה מספר (למשל, 13). - הערך
ageUpperיהיה מספר (למשל, 15). -
mostRecentApprovalDateיהיה אובייקט תאריך של Java (לדוגמה,2026-01-01) או ריק (אם לא אושר שינוי משמעותי). -
installIDיהיה מזהה אלפאנומרי שנוצר על ידי Play (לדוגמה,550e8400-e29b-41d4-a716-446655441111).
אם יש משתמש בפיקוח שהבקשה שלו לאישור שינוי משמעותי נמצאת בהמתנה, תקבלו את ההודעה הבאה:
- המחיר של
userStatusיהיהAgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING. - הערך
ageLowerיהיה מספר (למשל, 13). - הערך
ageUpperיהיה מספר (למשל, 15). -
mostRecentApprovalDateיהיה אובייקט תאריך של Java (לדוגמה,2026-01-01) או ריק (אם לא אושר שינוי משמעותי). -
installIDיהיה מזהה אלפאנומרי שנוצר על ידי Play (לדוגמה,550e8400-e29b-41d4-a716-446655441111).
טיפול בקודי שגיאה של API
אם האפליקציה שולחת בקשה ל-Play Age Signals API (בטא) והקריאה נכשלת, האפליקציה מקבלת קוד שגיאה. השגיאות האלה יכולות לקרות בגלל מגוון סיבות, כמו גרסה לא עדכנית של אפליקציית חנות Play.
אסטרטגיה של ניסיון חוזר
במקרים שבהם המשתמש נמצא בסשן, מומלץ להטמיע אסטרטגיה של ניסיון חוזר עם מספר מקסימלי של ניסיונות כתנאי יציאה, כדי שהשגיאה תשבש את חוויית המשתמש כמה שפחות.
| ערך מספרי של קוד השגיאה | קוד השגיאה | תיאור | ניתן לניסיון חוזר |
|---|---|---|---|
| -1 | API_NOT_AVAILABLE | Play Age Signals API לא זמין. יכול להיות שהגרסה של אפליקציית חנות Play שמותקנת במכשיר ישנה. פתרון אפשרי
|
כן |
| -2 | PLAY_STORE_NOT_FOUND | לא נמצאה אפליקציית חנות Play במכשיר. מבקשים מהמשתמש להתקין את חנות Play או להפעיל אותה. | כן |
| -3 | NETWORK_ERROR | לא נמצאה רשת זמינה. מבקשים מהמשתמש לבדוק אם יש חיבור. | כן |
| -4 | PLAY_SERVICES_NOT_FOUND | שירותי Play לא זמינים או שהגרסה שלהם ישנה מדי. מבקשים מהמשתמש להתקין, לעדכן או להפעיל את Play Services. | כן |
| -5 | CANNOT_BIND_TO_SERVICE | הקישור לשירות בחנות Play נכשל. יכול להיות שהסיבה לכך היא שמותקנת במכשיר גרסה ישנה של חנות Play או שהזיכרון של המכשיר עמוס מדי. מבקשים מהמשתמש לעדכן את אפליקציית חנות Play. מנסים שוב עם נסיגה אקספוננציאלית. | כן |
| -6 | PLAY_STORE_VERSION_OUTDATED | צריך לעדכן את אפליקציית חנות Play. מבקשים מהמשתמש לעדכן את אפליקציית חנות Play. | כן |
| -7 | PLAY_SERVICES_VERSION_OUTDATED | צריך לעדכן את שירותי Play. מבקשים מהמשתמש לעדכן את Play Services. | כן |
| -8 | CLIENT_TRANSIENT_ERROR | אירעה שגיאה זמנית במכשיר הלקוח. מטמיעים אסטרטגיה של ניסיונות חוזרים עם מספר ניסיונות מקסימלי כתנאי יציאה. אם הבעיה נמשכת, צריך לבקש מהמשתמש לנסות שוב מאוחר יותר. | כן |
| -9 | APP_NOT_OWNED | האפליקציה לא הותקנה דרך Google Play. מבקשים מהמשתמש להוריד את האפליקציה מ-Google Play. | לא |
| -100 | INTERNAL_ERROR | שגיאה פנימית לא ידועה. מטמיעים אסטרטגיה של ניסיונות חוזרים עם מספר ניסיונות מקסימלי כתנאי יציאה. אם הבעיה נמשכת, צריך לבקש מהמשתמש לנסות שוב מאוחר יותר. אם הפעולה נכשלת באופן עקבי, פנו לתמיכה למפתחים של Google Play, ציינו את Play Age Signals API בנושא וכללו כמה שיותר פרטים טכניים (למשל, דוח באגים). | לא |