כתיבת תשובה לביקורות

ה-API של התשובות למפתחים ב-Google Play מאפשר להציג משוב של משתמשים לגבי האפליקציה ולהשיב למשוב. תוכלו להשתמש ב-API הזה כדי לתקשר עם המשתמשים ישירות מתוך ערכת הכלים הקיימת לתמיכת לקוחות, כמו המערכת לניהול קשרי לקוחות (CRM).

ה-Answer to Reviews API מאפשר גישה למשוב רק לגבי גרסאות ייצור של האפליקציה. אם רוצים לקבל משוב על גרסאות אלפא או בטא של האפליקציה, אפשר להשתמש ב-Google Play Console במקום זאת. כמו כן, שימו לב ש-API מציג רק את הביקורות שכוללות הערות. אם משתמש מדרג את האפליקציה אבל לא מגיב, לא תהיה לו גישה למשוב מה-API.

קבלת גישה

כדי להשתמש ב-Answer to Reviews API, צריך לספק הרשאה באמצעות חשבון לקוח ב-OAuth או חשבון שירות. אם משתמשים בחשבון שירות, צריך להפעיל את ההרשאה 'תשובה לביקורות' בחשבון. למידע נוסף על יצירת גישה מורשית ל-API הזה, ראו הגדרת לקוחות גישה ל-API.

אחזור ביקורות

כשמשתמשים ב-Answer to Reviews API, אפשר לאחזר רשימה של כל הביקורות האחרונות על האפליקציה, או להציג ביקורת ספציפית.

אחזור קבוצת ביקורות

משתמשים בשיטה GET כדי לבקש רשימה של ביקורות לאפליקציה. הבקשה צריכה לכלול את שם החבילה המלא של האפליקציה, למשל com.google.android.apps.maps, ואת אסימון ההרשאה שקיבלתם כשקיבלתם גישה ל-API.

GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews?
access_token=your_auth_token

התגובה היא מחרוזת JSON שמכילה רשימת ביקורות של האפליקציה. בתוצאה הראשונה ברשימה מוצגת תגובת המשתמש שנוצרה או שונתה.

בדוגמה הבאה, בבדיקה הראשונה מוצגים מטא-נתונים שמופיעים בכל התוצאות, ובבדיקה השנייה מוצגים מטא-נתונים שמופיעים רק בחלק מהתוצאות:

{
  "reviews": [
    {
      "reviewId": "12345678",
      "authorName": "Jane Bloggs",
      "comments": [
        {
          "userComment": {
            "text": "This is the best app ever!",
            "lastModified": {
              "seconds": "1443676826",
              "nanos": 713000000
            },
            "starRating": 5
          }
        }
      ]
    },
    {
      "reviewId": "11223344",
      "authorName": "John Doe",
      "comments": [
        {
          "userComment": {
            "text": "I love using this app!",
            "lastModified": {
              "seconds": "141582134",
              "nanos": 213000000
            },
            "starRating": 5,
            "reviewerLanguage": "en",
            "device": "trltecan",
            "androidOsVersion": 21,
            "appVersionCode": 12345,
            "appVersionName": "1.2.3",
            "thumbsUpCount": 10,
            "thumbsDownCount": 3,
            "deviceMetadata": {
              "productName": "E5333 (Xperia™ C4 Dual)",
              "manufacturer": "Sony",
              "deviceClass": "phone",
              "screenWidthPx": 1080,
              "screenHeightPx": 1920,
              "nativePlatform": "armeabi-v7a,armeabi,arm64-v8a",
              "screenDensityDpi": 480,
              "glEsVersion": 196608,
              "cpuModel": "MT6752",
              "cpuMake": "Mediatek",
              "ramMb": 2048
            }
          }
        },
        {
          "developerComment": {
            "text": "That's great to hear!",
            "lastModified": {
              "seconds": "1423101467",
              "nanos": 813000000
            }
          }
        }
      ]
    }
  ],
  "tokenPagination": {
    "nextPageToken": "12334566"
  }
}

כל תוצאה כוללת את המטא-נתונים הבאים:

reviewId
מזהה את הביקורת הזו באופן ייחודי. הוא גם מציין ביקורת ספציפית של משתמש, מכיוון שהמשתמשים יכולים לכתוב רק ביקורת אחת על אפליקציה מסוימת.
authorName

שם המשתמש שכותב את הביקורת.

הערה: במקרים נדירים, יכול להיות שה-authorName לא יופיע בתוצאה נתונה.

comments

רשימה שכוללת את המשוב של המשתמשים על האפליקציה. אם הביקורת כוללת כותרת, אז הכותרת הזו והטקסט של הביקורת מופיעים שניהם ברכיב text, ותו של Tab מפריד בין הכותרת לטקסט. הרכיב lastModified מציין את השעה שבה המשתמש שלח את הבדיקה בפעם האחרונה.

אם כבר הגבתם לביקורת הזו, המשוב שלכם יופיע בתור הרכיב השני ברשימת התגובות.

starRating

ההערכה של המשתמש לגבי האפליקציה בסולם של 1 עד 5. הציון 5 מצביע על כך שהמשתמש מרוצה מאוד מהאפליקציה.

כברירת מחדל, מופיעות 10 ביקורות בכל דף. אפשר להציג עד 100 ביקורות בכל דף על ידי הגדרת הפרמטר maxResults בבקשה.

אם רשימת הביקורות ממשיכה לדף אחר, ה-API כולל את הרכיב tokenPagination בתגובה. כשמבקשים את דף הביקורות הבא, צריך לכלול את הרכיב token. מגדירים את ערך הרכיב הזה לערך nextPageToken, שמופיע בתגובה המקורית.

הערה: אפשר לאחזר רק את הביקורות שמשתמשים יצרו או שינו בשבוע האחרון. אם רוצים לאחזר את כל הביקורות על האפליקציה מאז ההתחלה, אפשר להוריד את הביקורות כקובץ CSV באמצעות Google Play Console.

בדוגמה הבאה של בקשת GET מוצג דף הביקורות הבא. הבקשה הזו מבוססת על ההנחה שדף הביקורות הנוכחי (כפי שהוצג בתגובה לבקשה הקודמת) מכיל ערך nextPageToken של "12334566". בנוסף, הבקשה מציינת שהדף הבא אמור להופיע עם עד 50 ביקורות.

GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews?
access_token=your_auth_token&token=12334566&maxResults=50

אחזור של ביקורת ספציפית

אפשר גם להשתמש בשיטה GET כדי לאחזר ביקורת מסוימת. אתם מספקים את אותה כתובת URL כמו זו שמשמשת לאחזור של קבוצת ביקורות, אבל אתם כוללים גם את review_id של הביקורת שאתם רוצים לראות:

GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews/
review_id?access_token=your_auth_token

התגובה התואמת היא מחרוזת JSON שמכילה תוכן ומטא-נתונים של בדיקה אחת:

{
  "reviewId": "87654321",
  "authorName": "Joan Smith",
  "comments": [
    {
      "userComment": {
        "text": "This app is awesome!",
        "lastModified": {
          "seconds": "1452114723",
          "nanos": 913000000
        },
        "starRating": 5
      }
    }
  ]
}

תרגום טקסט הביקורת

אפשר לתרגם באופן אוטומטי טקסט של ביקורות לפני שהוא מוחזר מ-Reviews API. כשמאחזרים רשימה של ביקורות או ביקורת בודדת, צריך להוסיף לשאילתה פרמטר translationLanguage. לדוגמה:

GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews?
access_token=your_auth_token&translationLanguage=en

הפרמטר translationLanguage יכול לציין שפה עם או בלי מדינה. לדוגמה, הערכים 'en' ו-'en_GB' תקינים.

אם מציינים שפת תרגום שונה מהטקסט המקורי, המערכת תחזיר את הטקסט המתורגם במאפיין text ואת הטקסט המקורי במאפיין originalText. לדוגמה:

    {
      "reviewId": "12345678",
      "authorName": "Jane Bloggs",
      "comments": [
        {
          "userComment": {
            "text": "This is the best app ever!",
            "lastModified": {
              "seconds": "1443676826",
              "nanos": 713000000
            },
            "starRating": 5,
            "originalText": "Dies ist die beste App überhaupt!"
          }
        }
      ]
    }

תגובה לביקורות

אפשר גם להגיב לביקורות כדי לעורר עניין בקרב משתמשי האפליקציה. אחרי ששולחים את התשובה, המשתמש מקבל התראה על כך שהשבתם למשוב שלו.

לא מומלץ להשתמש בתשובות אוטומטיות לביקורות, מתוך כוונה לעדכן את התשובות האלו באופן ידני במועד מאוחר יותר. בנוסף, אפשר להשיב לביקורת כמה פעמים שרוצים, אבל המשתמש יקבל התראה רק אחרי הפעם הראשונה שתשיב לביקורת שנוצרה או שונתה. בטבלה הבאה אפשר לראות איך המשתמשים מקבלים התראות במהלך האינטראקציות שלך איתם:

אינטראקציה בין משתמשים למפתחים התראה נשלחה למשתמש?
המשתמש כותב ביקורת; המפתח שולח תשובה כן
עדכונים למפתחים: תשובה לביקורת המקורית לא
בדיקת עדכונים של משתמשים, תשובה לגבי עדכונים למפתחים כן

הערה: מכיוון שהתשובות שלכם לביקורות גלויות לכולם בדף של חנות האפליקציות, חשוב לא לכלול מידע רגיש על המשתמשים כשאתם כותבים את התשובות.

כדי לשלוח תשובה לביקורת של משתמש, יש להשתמש בשיטה POST. בבקשה, עליכם לציין ש-Content-Type הוא application/json ולצרף מסמך JSON שמכיל את התשובה שלכם:

POST https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews/
review_id:reply?access_token=your_access_token
Content-Type: application/json

{
  "replyText": "Thanks for your feedback!"
}

הערה: הערך של replyText שמציינים בבקשת POST יכול להכיל עד 350 תווים. עליך להשתמש בטקסט פשוט בתשובתך. תגי HTML הבנויים כראוי יוסרו ולא ייכללו בספירת התווים בתשובה שלך. עם זאת, התוכן שתמקם בתוך תגי HTML הבנויים היטב נשמר.

אם הבקשה תאושר, תקבלו את מחרוזת ה-JSON הבאה כתגובה. הרכיב lastEdited מציין את הזמן שבו ה-API מתעד את התשובה לביקורת של המשתמש.

{
  "result": {
    "replyText": "Thanks for your feedback!",
    "lastEdited": {
      "seconds": "1453978803",
      "nanos": 796000000
    }
  }
}

עם זאת, אם הבקשה POST לא תקינה, יוצג במקום זאת אחד מקודי השגיאה הבאים:

400 Bad Reply Request
ה-replyText ארוך מדי או שהוא חסר.
404 Not Found
הביקורת עם review_id הנתון לא קיימת.

מכסות

כמחווה למפתחים אחרים, ה-Answer to Reviews API אוכף כמה מכסות. המכסות האלה נאכפות בנפרד, על בסיס כל אפליקציה בנפרד:

  • GET בקשות (לאחזור רשימות של ביקורות וביקורות נפרדות) – 200 לשעה

  • POST בקשות (למענה לביקורות) – 2,000 ביום

אם האפליקציה שלכם צריכה לאחזר כמות גדולה של ביקורות או להשיב להן, תוכלו לשלוח בקשה להגדלת המכסה באפליקציה.