เมื่อผู้ที่หลงเข้ามาอ่านได้พัฒนาแอปของตัวเองจนเสร็จสมบูรณ์แล้ว ในขั้นตอนต่อไปก็ถึงเวลาของการส่งแอปขึ้น Google Play กันแล้ว
ผู้ที่หลงเข้ามาอ่านจะต้องสมัครเป็นนักพัฒนากับทาง Google Play ก่อน โดยมีค่าใช้จ่าย $25 แบบถาวรไม่ต้องจ่ายเพิ่มทีหลัง
และก่อนที่จะส่งแอปขึ้น Google Play ได้นั้น ก็อย่าลืม Export ไฟล์ AAB ก่อนนะ
เมื่อพร้อมแล้วก็เริ่มกันเลย
สิ่งที่ควรรู้สำหรับการส่งแอปขึ้น Google Play
- Package Name ของแอปห้ามซ้ำกับแอปที่มีอยู่บน Google Play
- ไฟล์แอปที่จะส่งขึ้น Google Play ต้องเป็นแบบ Release Build (หรือ Non-debug Build) เท่านั้น
- เมื่ออัปโหลดแอปขึ้น Google Play สำเร็จแล้ว จะไม่สามารถลบออกในภายหลังได้ ทำได้แค่ซ่อนออกจาก Google Play เท่านั้น (ผู้ใช้ที่เคยดาวน์โหลดไปแล้ว ก็จะเข้ามาดาวน์โหลดได้อยู่)
- Google Play รองรับการ Release หลายรูปแบบเพื่อให้นักพัฒนาแบ่งกลุ่มผู้ใช้ที่จะเข้ามาดาวน์โหลดแอปได้ โดยแบ่งเป็น Production, Open Testing, Closed Testing และ Internal Testing
- Google Play มีบริการ App Signing ที่จะเก็บ Keystore ไว้ให้นักพัฒนา เพื่อขอตอนที่ทำ Keystore หายได้
- จะต้องอัปโหลดแอปเป็นไฟล์ Android App Bundle หรือ AAB เท่านั้น และจะเปิดใช้งาน App Signing ไปในตัว เพื่อให้ App Signing ทำการสร้างไฟล์ APK จากไฟล์ AAB เพื่อให้ผู้ใช้ดาวน์โหลดลงเครื่องได้
- ถ้าใช้ Keystore ที่สร้างขึ้นเอง อย่าทำหายเด็ดขาด เพราะต้องใช้ Keystore สำหรับการอัปเดตแอปเวอร์ชันใหม่ๆในภายหลัง (แต่ถ้าทำหายจริงๆ ส่งอีเมล์ติดต่อกับทาง Google Play เพื่อขอความช่วยเหลือได้)
- ทุกๆครั้งที่อัปเดตแอปเวอร์ชันใหม่ๆ จะต้องกำหนด Version Code ให้สูงกว่าของเดิมเสมอ
- แอปที่ถูกส่งขึ้น Google Play จะต้องถูกตรวจสอบด้วยทีมงานของ Google Play ก่อนทุกครั้ง ซึ่งจะใช้เวลาไม่แน่นอน ตั้งแต่ 30 นาที ไปจนถึง 2 สัปดาห์
- ไม่ควรละเมิดกฏของ Google Play ถ้าไม่อยากโดนลบแอปทิ้ง ไปจนถึงถูกลบบัญชีอย่างถาวร
- แอปที่กำหนดราคาเป็นแบบ Free จะไม่สามารถเปลี่ยนไปเป็นแบบ Paid ได้ (เปลี่ยนจาก Paid ไปเป็น Free ก็จะเปลี่ยนกลับมาเป็น Paid ไม่ได้เช่นกัน)
นอกจากนี้ Google Play Console ยังมีความสามารถอื่นๆอีกมากมาย โดยนักพัฒนาสามารถดูรายละเอียดเพิ่มเติมได้ที่ Google Play Console สมัยนี้มีอะไรเจ๋งๆสำหรับนักพัฒนาบ้าง
ขั้นตอนการส่งแอปขึ้น Google Play
เพื่อให้เข้าใจเนื้อหาบน Google Play Console โดยง่าย ขอแนะนำให้เลือกแสดงเป็นภาษาอังกฤษ
โดยในขั้นตอนทั้งหมดจะต้องทำผ่าน Google Play Console
เมื่อล็อกอินเข้าไปก็จะเข้าสู่หน้า All apps ซึ่งเป็นหน้าหลักของเว็ป ถ้าเคยมีแอปที่ส่งขึ้น Google Play มาก่อนก็จะมีรายชื่อแอปแสดงที่หน้านี้ให้ทันที แต่ถ้าเพิ่งสมัครใช้งานครั้งแรกก็จะไม่แสดงอะไร
ให้กดปุ่ม Create app
เพื่อเริ่มขั้นตอนการส่งแอปตัวใหม่ขึ้น Google Play
เพิ่มแอปตัวใหม่เข้าไปใน Google Play Console ของเรา
จากนั้นก็ให้ใส่รายละเอียดของแอปตามที่ Google Play กำหนดไว้ให้ครบทั้งหมด รวมไปถึงการยอมรับข้อตกลงสำหรับนักพัฒนาแอปบน Google Playด้วย
ในบทความนี้จะเน้นไปที่แอปฟรีเป็นหลักนะครับ
เมื่อกรอกข้อมูลครบทั้งหมด นักพัฒนาก็จะสามารถกดปุ่ม Create app
ที่อยู่ข้างล่างของหน้าเว็ปได้แล้ว
จากนั้นก็จะเข้าสู่หน้าจัดการข้อมูลทั้งหมดของแอปที่ผู้ที่หลงเข้ามาอ่านได้สร้างขึ้นเมื่อครู่นี้ ซึ่งจะสามารถจัดการได้ทั้งหมดเลย ไม่ว่าจะเป็นการอัปโหลดไฟล์ APK / AAB, รายละเอียดของแอปที่จะแสดงในหน้า Google Play, ดูข้อมูลสถิติจากผู้ใช้งาน เป็นต้น
ขั้นตอนที่จะต้องทำทั้งหมด
- อัปโหลดไฟล์ APK หรือ AAB
- ใส่รายละเอียดของแอปใน Store Listing ให้ครบถ้วน
- กำหนดหมวดหมู่ของแอปและข้อมูลในการติดต่อ
- กำหนดรายละเอียดของเนื้อหาที่จะอยู่ภายในแอป
- กำหนดประเทศที่สามารถดาวน์โหลดแอปได้
มาเริ่มจากการอัปโหลดไฟล์แอปขึ้นไปกันก่อน
บน Google Play นั้นแบ่งการ Release ออกเป็นหลายๆกลุ่มได้ (เรียกว่า Track) เพื่อให้นักพัฒนาสามารถเลือกทดสอบเฉพาะผู้ใช้บางกลุ่มไปจนถึงทุกๆคนได้
ไม่ว่าจะเลือกแบบไหนก็ตาม ขั้นตอนในการอัปโหลดก็จะเหมือนกันทั้งหมด แตกต่างกันแค่อยู่คนละเมนูเท่านั้น
ในบทความนี้สมมติว่าต้องการส่งแอปขึ้น Production
เมื่อเข้าสู่หน้าอัปโหลดแอปก็จะมีให้กดปุ่ม Create new release
(ถ้าเคยมีการอัปโหลดแอปมาก่อนก็จะขึ้นรายละเอียดของเวอร์ชันล่าสุดที่หน้านี้ให้ด้วย)
การสร้าง Release ในครั้งแรกสุดนั้น Google Play Console จะแสดงหน้าต่างแนะนำให้เปิดใช้งาน App Signing ซึ่งนักพัฒนาสามารถเลือกได้
ถ้าไม่ต้องการใช้งาน (ใช้ Keystore ที่สร้างขึ้นมาเอง) ก็สามารถกดที่ Manage preferences
แล้วเลือก Opt out of Play App Signing
ได้เลย
จากนั้นก็ให้ลากไฟล์เข้ามาเพื่ออัปโหลดขึ้น Google Play
ถ้าเป็นไฟล์ AAB จะต้องใช้ Signed Keystore ให้ตรงกับที่ App Signing สร้างให้ด้วยนะ
และข้างล่างจะมีให้ใส่ข้อมูลสำหรับ Release ในแต่ละครั้งด้วย เมื่ออัปโหลดไฟล์ APK หรือ AAB เข้าไป ก็จะใช้เลขเวอร์ชันของแอปนั้นๆมากำหนดใน Release Name ให้โดยอัตโนมัติ (สามารถแก้ไขได้)
ส่วน Release Notes จะมีไว้ให้นักพัฒนาใส่รายละเอียดของการอัปเดตในแต่ละเวอร์ชัน ว่ามีอะไรเพิ่มเข้ามาใหม่บ้าง เพื่อให้ผู้ใช้สามารถเห็นได้ที่หน้าดาวน์โหลดแอปบน Google Play ที่รองรับการใส่คำอธิบายแยกเป็นภาษาต่างๆได้ด้วย โดยจะต้องใส่แยกตาม Tag ของแต่ละภาษา เช่น <en-US>
สำหรับภาษาอังกฤษ เป็นต้น
จากนั้นตัว Google Play จะบังคับให้นักพัฒนากดปุ่ม Save
ก่อนเพื่อบันทึกเก็บไว้ และให้นักพัฒนาตรวจสอบรายละเอียดทั้งหมดอีกครั้งก่อนที่จะกดปุ่ม Review release
เพื่อไปขั้นตอนต่อไป
ในขั้นตอนถัดมา Google Play จะทำการตรวจสอบว่าข้อมูลต่างๆของแอปนั้นครบถ้วนหรือไม่ โดยจะมีบอกเป็น Error และ Warning ให้นักพัฒนารู้ด้วยว่ายังขาดข้อมูลตรงไหนไป หรือว่ามีตรงไหนที่แนะนำให้นักพัฒนาทำตาม
จากภาพตัวอย่างจะเห็นว่าแอปของเจ้าของบล็อกเจอ 3 Errors และ 2 Warnings ที่สามารถกดเพื่อขยายดูรายละเอียดของแต่ละอันได้
ถ้าเป็น Warning ไม่จำเป็นต้องแก้ไขก็ได้ แต่ถ้าเป็น Error จะบังคับให้นักพัฒนาทำการแก้ไขให้เรียบร้อยก่อน
โดย Error ทั้ง 3 ตัวที่เจ้าของบล็อกเจอจะมีดังนี้
- ทำตามข้อบังคับในหน้า Dashboard ไม่ครบ (ก็แน่แหละ เพราะมาถึงก็อัปโหลดไฟล์ก่อนเลย)
- ยังไม่ได้กรอกข้อมูลรายละเอียดของแอปให้ครบถ้วน
- ยังไม่ได้กำหนดประเทศที่จะเปิดให้ดาวน์โหลดแอปได้
ดังนั้นเจ้าของบล็อกก็จะต้องไปไล่ทำให้ครบทั้งหมดนั่นเอง
แต่ละคนอาจจะเจอไม่เหมือนกัน ขึ้นอยู่กับแอปนั้นๆด้วย แต่ในตัวอย่างนี้จะเป็น Error พื้นฐานที่นักพัฒนาทุกคนต้องทำตามอยู่แล้ว
ใส่รายละเอียดของแอปใน Store Listing
สำหรับรายละเอียดของแอปที่ผู้ใช้จะเห็นผ่านหน้าดาวน์โหลดใน Google Play จะเรียกว่า Store Listing ซึ่งอยู่ในเมนู Store presence > Main store listing
รายละเอียดที่นักพัฒนาจะต้องกำหนดใน Store Listing จะมีทั้งหมดดังนี้
- Short Description และ Full Description : คำอธิบายแอปโดยแบ่งเป็นแบบ Short และ Full เพื่อใช้แสดงผลใน Google Play คนละที่
- App icon : ภาพไอคอนของแอปขนาด 512 x 512 px จะเป็น JPG หรือ PNG ก็ได้
- Feature graphic : ภาพที่จะแสดงอยู่ส่วนหัวของหน้าดาวน์โหลดแอปขนาด 1x024 x 500 px จะเป็น JPG หรือ PNG ก็ได้
- Screenshot : ภาพตัวอย่างหน้าจอโดยแบ่งเป็น Phone, Tablet 7" และ Tablet 10" ซึ่งสามารถประยุกต์ใช้ภาพ Screenshot เป็นภาพประกอบในการโฆษณาแอปได้
- Video : URL ของ YouTube สำหรับวีดีโอที่จะใช้ในการโฆษณาแอป
กำหนดหมวดหมู่ของแอปและข้อมูลในการติดต่อ
ให้เลือกเมนู Store presence > Store settings
เพื่อกำหนดข้อมูลดังต่อไปนี้
- Category : กำหนดว่าแอปจะถูกจัดอยู่ในหมวดหมู่ใด
- Tags : สามารถกำหนด Tag ที่เกี่ยวข้องกับแอปได้ เพื่อช่วยให้ผู้ใช้สามารถค้นหาได้ง่ายขึ้น (ไม่จำเป็นต้องใส่)
- Email address : Email เพื่อให้ผู้ใช้สามารถติดต่อได้
- Phone number : เบอร์โทรศัพท์เพื่อให้ผู้ใช้สามารถติดต่อได้ (ไม่จำเป็นต้องใส่)
- Website : เว็ปไซต์สำหรับแอป (ไม่จำเป็นต้องใส่)
- External marketing : กำหนดว่าจะให้แอปถูกนำไปโฆษณาที่อื่นๆนอกเหนือจาก Google Play หรือไม่
เมื่อกำหนดข้อมูลครบทั้งหมดแล้วก็ให้กดปุ่ม Save
ได้เลย
กำหนดรายละเอียดของเนื้อหาที่จะแสดงอยู่ภายในแอป
ทาง Google Play นั้นให้ความสำคัญกับประเภทของเนื้อหาต่างๆที่จะถูกแสดงอยู่ภายในแอปเป็นอย่างมาก เพื่อจัดประเภทของแอปทั้งหมดให้เหมาะสมกับผู้ใช้ในแต่ละกลุ่ม ดังนั้นนักพัฒนาก็จะต้องใส่ข้อมูลต่างๆเพื่อบอกรายละเอียดของเนื้อหาภายในแอปด้วย
โดยเมนูดังกล่าวจะอยู่ที่ App Content
(ข้างล่างสุดของแถบเมนู) ซึ่งจะมีหัวข้อต่างๆดังนี้
- Privacy policy : แอปที่มีการเข้าถึงข้อมูลส่วนตัวของผู้ใช้ (Sensitive user and device data) จะต้องมีหน้าเว็ปเพื่ออธิบายถึงนโยบายการเข้าถึงข้อมูลของผู้ใช้งานด้วย โดยสามารถดูข้อมูลเพิ่มเติมได้จาก เมื่อ Google Play บังคับให้นักพัฒนาต้องใส่ Privacy Policy เมื่อเข้าถึงความเป็นส่วนตัวของผู้ใช้
- Ads : มีการแสดงโฆษณาอยู่ภายในแอปหรือไม่ เอาไว้แสดงให้ผู้ใช้เห็นในหน้าดาวน์โหลด
- App access : ในกรณีที่แอปต้องมีการล็อกอินเพื่อเข้าใจงาน นักพัฒนาสามารถระบุข้อมูลสำหรับทดสอบเพื่อใช้ในการล็อกอินเพื่อให้ทีม Google Play ใช้ล็อกอินเข้าไปทดสอบระบบได้
- Content rating : แบบประเมินเพื่อวัดระดับของเนื้อหาที่อยู่ภายในแอป สามารถดูรายละเอียดเพิ่มเติมได้จาก การกำหนด Content Rating สำหรับแอปที่อยู่บน Google Play
- Target audience and content : กำหนดกลุ่มอายุของผู้ใช้งานแอป เพราะว่า Google Play ค่อนข้างซีเรียสสำหรับแอปที่มีเนื้อหาไม่เหมาะสมกับเด็กหรือเยาวชน จึงทีข้อตกลงสำหรับเนื้อหาสำหรับเด็กและเยาวชนแยกออกมาจากบุคคลทั่วไปโดยเฉพาะ
จะเลือกกลุ่มผู้ใช้ที่อายุต่ำกว่า 13 ปีได้ก็ต่อเมื่อทำแบบทดสอบ Content Rating แล้วได้ ESRB อยู่ในระดับ Teen เท่านั้น
- News apps : เป็นแอปที่แสดงเนื้อหาข่าวสารต่างๆหรือไม่ เพราะแอปประเภทข่าวสารจะต้องทำตามเงื่อนไขที่กำหนดไว้ในข้อตกลงสำหรับเนื้อหาที่เป็นข่าวสารโดยเฉพาะ
- Data Safety : ระบุรายละเอียดภายในแอปที่เกี่ยวข้องกับการเข้าถึงข้อมูลของผู้ใช้งาน แนะนำให้ใส่ข้อมูลตามความจริง เพราะไม่เช่นนั้นจะมีโอกาสโดน Reject ระหว่างการตรวจสอบได้
กำหนดประเทศที่สามารถดาวน์โหลดแอปได้
บางแอปก็ต้องการให้ผู้ใช้ทั่วโลกสามารถดาวน์โหลดใช้งานได้ แต่บางแอปก็อยากจะเปิดให้ดาวน์โหลดได้แค่บางประเทศเท่านั้น ซึ่งนักพัฒนาอยากจะได้แบบไหนก็จะต้องมากำหนดเองใน Google Play Console
Google Play จะอ้างอิงประเทศจาก Google Account เท่านั้น ไม่ได้อ้างอิงจากตำแหน่งของอุปกรณ์แอนดรอยด์โดยตรง จึงอาจจะทำให้เกิดปัญหาผู้ใช้บางคนที่อยู๋ในประเทศที่รองรับก็จริง แต่ใช้ Google Account ของประเทศที่ไม่รองรับ จึงทำให้ดาวน์โหลดแอปไม่ได้
เมนูสำหรับการกำหนดประเทศที่แอปจะรองรับจะอยู่ในหน้า Release ของแต่ละ Track (สามารถกำหนดประเทศแยกแต่ละ Track ได้)
จากนั้นให้กดเลือก Add countries / regions
ที่ต้องการได้เลย
ในที่สุดแอปพร้อมจะปล่อยให้ใช้งานแล้ว
เนื่องจากในขั้นตอนต่างๆจะมีการเปลี่ยนไปเมนูอื่นๆ เมื่อนักพัฒนากลับมาที่เมนู Release (ใน ณ ที่นี้คือ Production Track) ก็จะเห็นว่ามีการสร้าง Draft เก็บไว้ให้ เพราะเราได้กดบันทึกเก็บไว้ตั้งแต่ตอนแรก จึงสามารถกดปุ่ม Edit
ต่อจากของเดิมได้เลย
ถ้าอยากจะแก้ไข Release ใหม่ทั้งหมดก็สามารถกด Discard แล้วสร้าง Release ใหม่ได้เช่นกันนะ
สร้าง Draft Release ไว้ได้แค่อันเดียวเท่านั้น ทำเก็บไว้หลายๆอันไม่ได้นะ
และเมื่อเข้าไปกดปุ่มในขั้นตอน Release จนจบ ก็จะกลับมาที่หน้า Production พร้อมกับรายละเอียดบอกว่าตอนนี้กำลังอยู่ในสถานะ Ready to send for review
ให้กดที่ปุ่ม Go to Publishing overview เพื่อไปหน้า Publishing overview (สามารถกดจากแถบเมนูซ้ายมือได้)
โดยหน้า Publishing overview เป็นหน้าสรุปรายละเอียดทั้งหมดของแอป เพื่อให้นักพัฒนาตรวจสอบเป็นครั้งสุดท้ายก่อนที่จะส่งให้กับทีม Google Play นั่นเอง
เมื่อทุกอย่างถูกต้องทั้งหมดแล้ว ก็ให้กดปุ่ม Send x changes for review เพื่อส่งแอปให้ทีม Google Play ทำการตรวจสอบได้เลย และทำการยืนยันด้วยการกดปุ่ม Send changes for review อีกครั้ง
ที่หน้าต่างยืนยันจะเห็นว่าการตรวจสอบแอปจะใช้เวลาภายใน 7 วัน หรือมากกว่านั้นก็ได้ (30 นาทีไปจนถึง 2 สัปดาห์)
และเมื่อกลับมาดูที่หน้า Production ก็จะเห็นสถานะของแอปเป็น In review หรือก็คืออยู่ในสถานะรอการตรวจสอบจากทีม Google Play
ในขั้นตอนนี้ถ้าเป็นการอัปเดตเวอร์ชันใหม่ จะสามารถกำหนดจำนวนผู้ใช้ที่จะได้รับอัปเดต (กำหนดเป็น %)
เพื่อให้นักพัฒนาทยอยปล่อยแอปเวอร์ชันใหม่ให้กับผู้ใช้จนครบ 100% ซึ่งจะช่วยลดผลกระทบที่อาจจะเกิดขึ้นกับผู้ใช้ ในกรณีที่เวอร์ชันนั้นมีบั๊กหรือปัญหาร้ายแรง
ถ้าแอปผ่านการตรวจสอบ (Approved) ก็จะโผล่ให้ดาวน์โหลดบน Google Play ทันที แต่ถ้าไม่ผ่านการตรวจสอบ (Rejected) ก็จะมี Email จาก Google Play ส่งมาบอกว่าเหตุผล (ที่คลุมเครือสุดๆ) ให้
ในการส่งแอปขึ้น Google Play ครั้งแรก จะค้นหาแอปได้ยากหน่อย เพราะว่าแอปอื่นๆที่อยู๋บน Google Play ได้ทำ SEO กันไว้ค่อนข้างเยอะ บวกกับแอปของเราเป็นแอปหน้าใหม่
ดังนั้นนักพัฒนาก็จะต้องพยายามทำ SEO และหาทางเพิ่มจำนวนผู้ใช้งาน เพื่อให้ผู้ใช้คนอื่นๆสามารถค้นหาแอปของเราเจอได้ง่ายขึ้น
การอัปเดตเวอร์ชันใหม่ๆ
แทบทุกแอปจะต้องคอยเพิ่มฟีเจอร์ต่างๆ ปรับปรุงปัญหาในเวอร์ชันปัจจุบัน เพื่อให้แอปมีความน่าใช้งานมากขึ้น ดึงดูดให้ผู้ใช้แอนดรอยด์เข้ามาดาวน์โหลดแอปให้มากขึ้น จึงเป็นเรื่องปกติที่แอปทุกตัวจะมีการอัปเดตเวอร์ชันใหม่ๆอยู่ตลอดเวลา
ดังนั้นในการอัปเดตเวอร์ชันใหม่ให้กับแอป
- Version Code ในแอปต้องสูงกว่าเวอร์ชันเก่า
- ใช้ Keystore เดิมในการ Export เป็นไฟล์ AAB
- ควรใส่ Release Notes สำหรับเวอร์ชันนั้นๆด้วย
- ต้องผ่านการ Review จากทีม Google Play เหมือนเดิม
- สามารถทยอยปล่อยให้ผู้ใช้ได้รับอัปเดตตั้งแต่ > 0% ไปจนถึง 100% ได้ (หรือจะปล่อยรวดเดียว 100% ก็ได้เช่นกัน)
- สามารถแก้ไขข้อมูลต่างๆที่เคยกำหนดไว้ในตอนแรกทั้งหมดได้
- ถ้ากำหนดแอปเป็นแบบ Free จะไม่สามารถเปลี่ยนเป็น Paid ได้แล้ว
สรุป
ถึงแม้ว่าการส่งแอปขึ้น Google Play นั้นจะมีขั้นตอนที่ค่อนข้างเยอะ แต่ก็เยอะแค่เพียงครั้งแรกสุดเท่านั้น หลังจากนั้นการอัปเดตเวอร์ชันใหม่ๆก็จะเหลือขั้นตอนเดิมๆแค่เพียงไม่กี่ขั้นตอนเท่านั้น
เพราะว่าในแต่ละวันที่แอปที่ถูกส่งขึ้น Google Play มากมาย จึงทำให้ทีม Google Play ต้องกำหนดเงื่อนไขต่างๆเพื่อให้มั่นใจว่าแอปนั้นๆสามารถอยู่บน Google Play ได้อย่างถูกต้อง ซึ่งขั้นตอนที่มากมายนี้ก็จะช่วยลดจำนวนงานของทีม Google Play ให้น้อยลง เพื่อจะให้ทำขั้นตอนอื่นๆที่จำเป็นกว่าให้เร็วขึ้นนั่นเอง