ตอบกลับรีวิว

คุณสามารถใช้ API การตอบกลับรีวิวของนักพัฒนาซอฟต์แวร์ Google Play เพื่อดูความคิดเห็นของผู้ใช้เกี่ยวกับแอปของคุณและตอบกลับความคิดเห็นนี้ คุณสามารถใช้ API นี้เพื่อโต้ตอบกับผู้ใช้ได้โดยตรงภายในชุดเครื่องมือการสนับสนุนลูกค้าที่มีอยู่ เช่น ระบบ CRM

API การตอบกลับรีวิวช่วยให้คุณเข้าถึงความคิดเห็นเฉพาะสำหรับแอปเวอร์ชันเวอร์ชันที่ใช้งานจริงได้ หากต้องการดูความคิดเห็นเกี่ยวกับแอปเวอร์ชันอัลฟ่าหรือเบต้า โปรดใช้ Google Play Console แทน นอกจากนี้ โปรดทราบว่า API จะแสดงเฉพาะรีวิวที่มีความคิดเห็น หากผู้ใช้ให้คะแนนแอปของคุณแต่ไม่ได้แสดงความคิดเห็น คุณจะไม่สามารถเข้าถึงความคิดเห็นของผู้ใช้รายนั้นจาก API ได้

การเข้าถึง

หากต้องการใช้งาน API การตอบกลับรีวิว คุณต้องให้สิทธิ์โดยใช้ไคลเอ็นต์ OAuth หรือบัญชีบริการ หากใช้บัญชีบริการ ให้เปิดใช้สิทธิ์ "ตอบกลับรีวิว" ในบัญชีนี้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างการเข้าถึงที่ได้รับสิทธิ์สำหรับ API นี้ได้ที่การตั้งค่าไคลเอ็นต์การเข้าถึง API

การเรียกบทวิจารณ์

เมื่อใช้ 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 ที่มีรายการรีวิวสำหรับแอปของคุณ ผลลัพธ์แรกในรายการจะแสดงความคิดเห็นของผู้ใช้ที่เพิ่งสร้างหรือแก้ไขล่าสุด

ในตัวอย่างต่อไปนี้ รีวิวแรกแสดงข้อมูลเมตาที่ปรากฏในผลการค้นหาทั้งหมด และรีวิวที่ 2 แสดงข้อมูลเมตาที่ปรากฏในผลการค้นหาบางรายการเท่านั้น

{
  "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
ระบุรีวิวนี้โดยไม่ซ้ำกัน และยังระบุถึงรีวิวของผู้ใช้ที่เจาะจงด้วย เนื่องจากผู้ใช้จะเขียนได้เพียง 1 รีวิวสำหรับแอปหนึ่งๆ
authorName

ชื่อของผู้ใช้ที่เขียนรีวิว

หมายเหตุ: ในบางกรณีที่พบไม่บ่อย authorName อาจไม่ปรากฏในผลลัพธ์ที่ระบุ

comments

รายการที่มีความคิดเห็นของผู้ใช้เกี่ยวกับแอป หากรีวิวนี้มีชื่อ ทั้งชื่อและเนื้อหาของรีวิวจะปรากฏในองค์ประกอบ text และอักขระแท็บจะแยกชื่อและเนื้อหา องค์ประกอบ lastModified ระบุเวลาที่ผู้ใช้ส่งรีวิวครั้งล่าสุด

หากคุณตอบกลับรีวิวนี้แล้ว ความคิดเห็นจะปรากฏเป็นองค์ประกอบที่ 2 ในรายการความคิดเห็น

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 ที่ระบุ

โควต้า

เพื่อไม่ให้การใช้งานดังกล่าวส่งผลกระทบต่อนักพัฒนาแอปรายอื่นๆ API การตอบกลับรีวิวจะบังคับใช้โควต้าหลายรายการ โควต้าเหล่านี้มีผลบังคับใช้แยกกันต่อแอป

  • คำขอ GET รายการ (สำหรับการเรียกข้อมูลรายการรีวิวและรีวิวแต่ละรายการ) - 200 ต่อชั่วโมง

  • คำขอ POST รายการ (สำหรับการตอบกลับรีวิว) – 2,000 ต่อวัน

หากแอปของคุณจำเป็นต้องเรียกหรือตอบกลับรีวิวจำนวนมากเกินกว่าที่โควต้าเหล่านี้อนุญาต ให้ส่งคำขอเพื่อเพิ่มโควต้าของแอป