APK และแทร็ก

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

การเพิ่มและแก้ไข APK

  1. อัปโหลด APK อย่างน้อย 1 รายการโดยเรียกใช้เมธอด Edits.apks: upload

    วิธีนี้จะอัปโหลด APK ลงใน "ที่เก็บข้อมูล" ซึ่งสามารถ กำหนดให้กับ "แทร็ก" เพื่อนำไปใช้งานกับผู้ใช้ได้ (หากการแก้ไขถูกลบหรือทิ้ง APK ที่อัปโหลดไปยังการแก้ไขนั้นจะสูญหายไปด้วย)

  2. เผยแพร่ APK ใน "แทร็ก" โดยเรียกใช้ Edits.tracks: update คุณเผยแพร่ APK ในแทร็กต่อไปนี้ได้

    • แทร็กทดสอบ เช่น "alpha" และ "beta"

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

    • แทร็กทดสอบภายใน: "qa"

      ระบบจะติดตั้งใช้งานแอปเวอร์ชันภายในในแทร็กทดสอบภายในตามที่กำหนดค่าไว้ใน Google Play Console

    • แทร็กเวอร์ชันที่ใช้งานจริง: "production"

      ระบบจะนำรุ่นในแทร็ก "เวอร์ชันที่ใช้งานจริง" ไปใช้งานกับผู้ใช้ทุกคน คุณสามารถใช้การเผยแพร่แบบทีละขั้นในแทร็ก "เวอร์ชันที่ใช้งานจริง" เพื่อ เปิดตัวรุ่นอย่างปลอดภัยโดยเผยแพร่รุ่นไปยังผู้ใช้เวอร์ชันที่ใช้งานจริงเพียงไม่กี่เปอร์เซ็นต์ก่อน แล้วค่อยๆ เพิ่มเปอร์เซ็นต์นี้เมื่อคุณมั่นใจในรุ่นมากขึ้น

    ผู้ใช้โหมดง่ายไม่ควรใส่ APK มากกว่า 1 รายการในแทร็กใดๆ ผู้ใช้โหมดขั้นสูงที่ใช้การรองรับ APK หลายรายการ จะอัปโหลด APK 0, 1 หรือมากกว่าไปยังแต่ละแทร็กได้

ชื่อแทร็กสำหรับการติดตามรูปแบบของอุปกรณ์

ชื่อแทร็กสำหรับแทร็กรูปแบบอุปกรณ์จะมีคำนำหน้าที่เป็นตัวระบุเฉพาะ

รูปแบบ คำนำหน้า
Android Automotive OS ยานยนต์
Wear OS Wear
Android TV ทีวี
Android XR android_xr
Google Play Games บน PC google_play_games_pc

วิธีคำนวณชื่อแทร็กสำหรับแทร็กที่มีรูปแบบเฉพาะ

แทร็กประเภททั่วไป เช่น แทร็กเวอร์ชันที่ใช้งานจริง การทดสอบแบบเปิด และการทดสอบภายใน จะมีชื่อแทร็กที่รู้จักกันดี

ประเภทการติดตาม ชื่อแทร็กเริ่มต้น
เวอร์ชันที่ใช้งานจริง การถ่ายทำ
การทดสอบแบบเปิด เบต้า
การทดสอบภายใน qa

ชื่อแทร็กสำหรับแทร็กรูปแบบของอุปกรณ์ที่ระบุสามารถคำนวณได้ดังนี้ "[prefix]:defaultTrackName" เช่น รูปแบบอุปกรณ์ Wear OS จะมีแทร็กที่มีชื่อว่า "wear:production", "wear:beta" และ "wear:qa"

แทร็กการทดสอบแบบปิดสร้างขึ้นด้วยตนเองและมีชื่อที่กำหนดเอง ดังนั้นแทร็กการทดสอบแบบปิดสำหรับรูปแบบอุปกรณ์ที่มีชื่อ $name จะมีชื่อแทร็กเป็น "[prefix]:$name"

ตัวอย่างเวิร์กโฟลว์ APK

ส่วนนี้อธิบายวิธีทั่วไปในการใช้ Tracks API ในกรณีนี้ เราถือว่าคุณต้องการอัปโหลด APK เวอร์ชันใหม่สำหรับแต่ละแทร็ก และกำหนด จำนวนผู้ใช้ที่จะรับเวอร์ชันการเปิดตัวแบบทีละขั้น (ในทางปฏิบัติ นักพัฒนาแอปไม่น่าจะดำเนินการทั้งหมดนี้ในการดำเนินการเดียวกัน แต่คุณอาจอัปเดตเวอร์ชันเบต้าในวันหนึ่ง สร้างการเปิดตัวแบบค่อยเป็นค่อยไปใน "เวอร์ชันที่ใช้งานจริง" ในอีกวันหนึ่ง และอื่นๆ)

  1. เปิดการแก้ไขใหม่ตามที่อธิบายไว้ในเวิร์กโฟลว์การแก้ไข
  2. เรียกใช้เมธอด Edits.apks: upload สำหรับ APK แต่ละรายการที่ต้องการอัปโหลด ส่ง APK ในเนื้อหาคำขอของเมธอด (การดำเนินการนี้จะวาง APK ไว้ในพื้นที่เก็บข้อมูล แต่จะไม่เผยแพร่ ในแทร็กหรือติดตั้งใช้งาน) เมธอดจะแสดงรหัสเวอร์ชันสำหรับ APK แต่ละรายการที่คุณอัปโหลด คุณจะใช้รหัสเวอร์ชันนี้เพื่ออ้างอิงถึง APK เมื่อเผยแพร่ในแทร็ก
  3. เรียกใช้เมธอด Edits.tracks: update สำหรับแต่ละแทร็กที่คุณต้องการเผยแพร่ APK ในเนื้อความของคำขอ ให้ส่งทรัพยากร Edits.tracks ที่มีรุ่นที่คุณต้องการเปิดตัว เช่น หากต้องการเผยแพร่ APK ที่มีรหัสเวอร์ชัน 88 ให้ทำดังนี้

    {
    "releases": [{
      "versionCodes": ["88"],
      "status": "completed"
    }]
    }

    ในตอนนี้ APK ยังไม่พร้อมให้บริการแก่ผู้ใช้ เช่นเดียวกับการแก้ไขอื่นๆ การเปลี่ยนแปลงจะไม่เผยแพร่จนกว่าคุณจะยืนยัน

  4. เรียกใช้เมธอด Edits: commit เพื่อ ยืนยันการเปลี่ยนแปลง หลังจากดำเนินการนี้แล้ว ผู้ใช้ในแต่ละแทร็กจะได้รับ APK เวอร์ชันที่อัปเดตแล้ว (เช่นเดียวกับการแก้ไขทั้งหมด การเปลี่ยนแปลงอาจใช้เวลาหลายชั่วโมงจึงจะมีผล)

การเปิดตัวแบบทีละขั้น

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

ส่วนนี้จะอธิบายขั้นตอนที่คุณต้องทำเพื่อ เปิดตัว APK แบบทีละขั้น แล้วเลื่อนระดับเป็นเวอร์ชันที่ใช้งานจริง

  1. สร้างการแก้ไขตามที่อธิบายไว้ในเวิร์กโฟลว์การแก้ไข

  2. อัปโหลด APK ใหม่ไปยังการแก้ไขโดยใช้เมธอด Edits.apks: upload

  3. เริ่ม"inProgress"การเผยแพร่แบบทีละขั้นในแทร็กเวอร์ชันที่ใช้งานจริงโดยใช้เมธอด Edits.tracks: update เลือก สัดส่วนของผู้ใช้ที่ควรได้รับ APK ใหม่ ในตอนนี้ APK ยังไม่พร้อมให้บริการแก่ผู้ใช้ปลายทาง

    {
    "releases": [{
      "versionCodes": ["99"],
      "userFraction": 0.05,
      "status": "inProgress"
    }]
    }

  4. ส่งการเปลี่ยนแปลงในการแก้ไขที่ใช้งานอยู่โดยเรียกใช้ Edits: commit ในอีกไม่กี่ชั่วโมงข้างหน้า เราจะเปิดตัว APK ใหม่ให้กับผู้ใช้ ผู้ใช้บางส่วน ที่คุณเลือกจะได้รับ APK ใหม่

คุณอาจต้องการเพิ่มเปอร์เซ็นต์ของผู้ใช้ที่มีสิทธิ์สำหรับรุ่นนั้นหรือหยุดรุ่นดังกล่าว ทั้งนี้ขึ้นอยู่กับความสำเร็จของการเปิดตัวแบบทีละขั้น

การเพิ่มสัดส่วนผู้ใช้สำหรับการเปิดตัวแบบทีละขั้น

สมมติว่าคุณมีการเปิดตัวแบบค่อยเป็นค่อยไปที่ 5% อย่างต่อเนื่องตามที่อธิบายไว้ในส่วนก่อนหน้า ส่วนนี้จะอธิบายวิธีเพิ่มเปอร์เซ็นต์ในกรณีที่รุ่นทำงานได้ดี

  1. สร้างการแก้ไขตามที่อธิบายไว้ในเวิร์กโฟลว์การแก้ไข

  2. เปลี่ยน"inProgress"การเปิดตัวแบบทีละขั้นในแทร็กเวอร์ชันที่ใช้งานจริงโดยใช้วิธีการ Edits.tracks: update เพิ่ม สัดส่วนของผู้ใช้ที่ควรได้รับ APK ใหม่

    {
    "releases": [{
      "versionCodes": ["99"],
      "userFraction": 0.1,
      "status": "inProgress"
    }]
    }

  3. ส่งการเปลี่ยนแปลงในการแก้ไขที่ใช้งานอยู่โดยเรียกใช้ Edits: commit ในอีกไม่กี่ชั่วโมงข้างหน้า เราจะเปิดตัว APK ใหม่ให้กับผู้ใช้ ผู้ใช้บางส่วน ที่คุณเลือกจะได้รับ APK ใหม่

หยุดการเปิดตัวแบบทีละขั้น

สมมติว่าคุณมีการเปิดตัวแบบค่อยเป็นค่อยไปที่ 5% ตามที่อธิบายไว้ในส่วนก่อนหน้า ส่วนนี้จะอธิบายวิธีหยุดการเปิดตัวแบบค่อยเป็นค่อยไปในกรณีที่คุณพบปัญหา

  1. สร้างการแก้ไขตามที่อธิบายไว้ในเวิร์กโฟลว์การแก้ไข

  2. เปลี่ยน"inProgress"การเปิดตัวแบบทีละขั้นในแทร็กเวอร์ชันที่ใช้งานจริงโดยใช้วิธีการ Edits.tracks: update ตั้งค่า สถานะเป็น "halted"

    {
    "releases": [{
      "versionCodes": ["99"],
      "status": "halted"
    }]
    }

  3. ส่งการเปลี่ยนแปลงในการแก้ไขที่ใช้งานอยู่โดยเรียกใช้ Edits: commit รุ่นของคุณจะไม่มีให้บริการแก่ผู้ใช้ใหม่อีกต่อไป

หากในภายหลังคุณตัดสินใจที่จะกลับมาใช้งานรุ่นที่ถูกระงับอีกครั้ง คุณสามารถทำได้โดยตั้งค่าสถานะกลับเป็น"inProgress"

การเปิดตัวแบบทีละขั้นเสร็จสมบูรณ์

เมื่อพอใจกับการเปิดตัวแบบทีละขั้นและต้องการเปิดตัวรุ่นให้กับผู้ใช้ 100% คุณสามารถตั้งค่าสถานะรุ่นเป็น"completed"ได้โดยทำดังนี้

  1. สร้างการแก้ไขตามที่อธิบายไว้ในเวิร์กโฟลว์การแก้ไข

  2. เปลี่ยน"inProgress"การเปิดตัวแบบทีละขั้นในแทร็กเวอร์ชันที่ใช้งานจริงโดยใช้วิธีการ Edits.tracks: update ตั้งค่า สถานะเป็น "completed"

    {
    "releases": [{
      "versionCodes": ["99"],
      "status": "completed"
    }]
    }

  3. ส่งการเปลี่ยนแปลงในการแก้ไขที่ใช้งานอยู่โดยเรียกใช้ Edits: commit ในอีกไม่กี่ชั่วโมงข้างหน้า เราจะเปิดตัว APK ใหม่ให้กับผู้ใช้ ผู้ใช้บางส่วน ที่คุณเลือกจะได้รับ APK ใหม่

หยุดการเปิดตัวที่เสร็จสมบูรณ์แล้ว

หากคุณเปิดตัวในแทร็กเสร็จสมบูรณ์แล้วตามที่อธิบายไว้ในส่วนก่อนหน้า ส่วนนี้จะอธิบายวิธีหยุดการเปิดตัวที่เสร็จสมบูรณ์ในกรณีที่คุณพบปัญหา

  1. สร้างการแก้ไขตามที่อธิบายไว้ในเวิร์กโฟลว์การแก้ไข

  2. เปลี่ยนรุ่น "completed" ในแทร็กเวอร์ชันที่ใช้งานจริงโดยใช้เมธอด Edits.tracks: update ตั้งค่าสถานะเป็น "halted"

    {
    "releases": [{
      "versionCodes": ["99"],
      "status": "halted"
    }]
    }

  3. ส่งการเปลี่ยนแปลงในการแก้ไขที่ใช้งานอยู่โดยเรียกใช้ Edits: commit รุ่นของคุณจะ ไม่พร้อมให้บริการสำหรับผู้ใช้ใหม่หรือผู้ใช้เดิมที่ต้องการอัปเกรดอีกต่อไป

รุ่นที่จะเริ่มแสดงแทนรุ่น "completed" จะเป็นรุ่น "completed" ก่อนหน้าในแทร็กที่เผยแพร่แล้วและไม่ได้หยุดให้บริการ โปรดทราบว่าคุณจะหยุด"completed" รุ่นในแทร็กได้ก็ต่อเมื่อมี"completed"รุ่น อย่างน้อย 1 รุ่นเผยแพร่ในแทร็กแล้ว

หากคุณเรียกใช้ GetTrack หรือ ListTracks ขณะที่หยุดการเผยแพร่ "completed" การเผยแพร่ "การเผยแพร่สำรองสำหรับการแสดงโฆษณา" จะปรากฏเป็นการเผยแพร่ที่เสร็จสมบูรณ์ใน แทร็กที่หยุดการเผยแพร่ "completed" ก่อนหน้านี้

ตัวอย่างเช่น หากในตอนแรกคุณมีalphaแทร็กที่มีลักษณะดังนี้

{
  "track": "alpha",
  "releases": [
    {
      "name": "2 (2.0)",
      "versionCodes": [
        "2"
      ],
      "status": "completed"
    }
  ]
}

และคุณหยุด"completed"การเผยแพร่โดยทำตามขั้นตอนในส่วนนี้ การเรียกใช้ GetTrack สำหรับแทร็ก alpha จะแสดงผลคล้ายกับตัวอย่างต่อไปนี้

{
  "track": "alpha",
  "releases": [
    {
      "name": "2 (2.0)",
      "versionCodes": [
        "2"
      ],
      "status": "halted"
    },
    {
      "name": "1 (1.0)",
      "versionCodes": [
        "1"
      ],
      "status": "completed"
    }
  ]
}

หากตัดสินใจที่จะกลับมา"completed"เผยแพร่"inProgress"ในภายหลัง คุณสามารถทำได้โดยตั้งค่าสถานะกลับเป็น"completed"หรือ"completed" โปรดทราบว่าคุณสร้างรุ่นที่มีสถานะใหม่ "inProgress"ทับรุ่น "completed" ได้ แต่จะ กลับไปใช้รุ่น "completed" ที่ 100% ได้เท่านั้น (เช่น กลับไปมีสถานะเป็น "completed")

เวอร์ชันร่าง

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

  1. เปิดการแก้ไขใหม่ตามที่อธิบายไว้ในเวิร์กโฟลว์การแก้ไข
  2. เรียกใช้เมธอด Edits.apks: upload สำหรับ APK แต่ละรายการที่ต้องการอัปโหลด ส่ง APK ในเนื้อหาคำขอของเมธอด เมธอด จะแสดงรหัสเวอร์ชันสำหรับ APK แต่ละรายการที่คุณอัปโหลด คุณจะใช้รหัสเวอร์ชันนี้ เพื่ออ้างอิงถึง APK เมื่อกำหนดให้เป็นรุ่น
  3. เรียกใช้เมธอด Edits.tracks: update สำหรับแต่ละแทร็กที่ต้องการเผยแพร่ ในเนื้อความของคำขอ ให้ส่งแหล่งข้อมูล Edits.tracks ที่มีรุ่นฉบับร่างที่คุณต้องการสร้าง เช่น

    {
    "releases": [{
      "name": "My draft release",
      "versionCodes": ["88"],
      "status": "draft"
    }]
    }

  4. เรียกใช้เมธอด Edits: commit เพื่อ ยืนยันการเปลี่ยนแปลง ตอนนี้คุณสามารถตรวจสอบและเปิดตัวรุ่นฉบับร่างได้แล้ว ผ่าน Google Play Console หรือ API

การระบุบันทึกประจำรุ่น

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

โดยให้ใช้ฟิลด์ "releaseNotes" เมื่อระบุทรัพยากร Edits.tracks ไปยังเมธอด Edits.tracks: update

{
  "releases": [{
      "name": "Release with notes",
      "versionCodes": ["88"],
      "status": "completed",
      "releaseNotes": [
        {"language": "en-US", "text": "Describe what's new in this release."}
      ]
  }]
}