คำเตือน: Google Play Instant จะหยุดให้บริการ ตั้งแต่เดือนธันวาคม 2025 เป็นต้นไป คุณจะเผยแพร่ Instant App ผ่าน Google Play ไม่ได้อีกต่อไป และ Instant API ของบริการ Google Play ทั้งหมดจะหยุดทำงาน Play จะไม่แสดง Instant App ให้ผู้ใช้เห็นอีกต่อไปไม่ว่าด้วยกลไกใดก็ตาม
เราทำการเปลี่ยนแปลงนี้ตามความคิดเห็นของนักพัฒนาแอปและการลงทุนอย่างต่อเนื่อง เพื่อปรับปรุงระบบนิเวศตั้งแต่เปิดตัว Google Play Instant
เราขอแนะนำให้นักพัฒนาแอปนำทางผู้ใช้ไปยัง แอปหรือเกมปกติของคุณโดยใช้ Deep Link เพื่อเปลี่ยนเส้นทางผู้ใช้ไปยังเส้นทางหรือฟีเจอร์ที่เฉพาะเจาะจงเมื่อเกี่ยวข้อง เพื่อเพิ่มประสิทธิภาพในการเพิ่มผู้ใช้อย่างต่อเนื่อง
ปลั๊กอิน Google Play Instant สำหรับ Unity จะกำหนดค่าโปรเจ็กต์ Unity เพื่อสร้าง Instant App เวอร์ชันเกมของคุณ คู่มือนี้จะอธิบายวิธีติดตั้งและใช้ปลั๊กอินนี้
ดาวน์โหลดและนำเข้าปลั๊กอิน
ปลั๊กอินนี้เป็นส่วนหนึ่งของปลั๊กอิน Google Play สำหรับ Unity หากต้องการนำเข้าปลั๊กอิน ให้ทำตามขั้นตอนต่อไปนี้
- ดาวน์โหลดรุ่นล่าสุดจาก รุ่นปลั๊กอิน Google Play สำหรับ Unity
- นำเข้าไฟล์
.unitypackageโดยเลือกตัวเลือกเมนู IDE ของ Unity เนื้อหา > นำเข้าแพ็กเกจ > แพ็กเกจที่กำหนดเอง แล้วนำเข้าทุกรายการ
ฟีเจอร์ของ Unity Editor
นำเข้าปลั๊กอินเพื่อเพิ่มเมนูย่อย Google > Play Instant ใน Unity เมนูย่อยนี้มีตัวเลือกต่อไปนี้
การตั้งค่าบิวด์
เปิดหน้าต่างที่ช่วยให้สลับระหว่างโหมดการพัฒนา ติดตั้ง และ Instant ได้ การเปลี่ยนไปใช้โหมด Instant จะทำให้เกิดการเปลี่ยนแปลงต่อไปนี้
- สร้างสัญลักษณ์การกำหนดสคริปต์ที่เรียกว่า
PLAY_INSTANTซึ่งใช้สำหรับการ เขียนสคริปต์ด้วย#if PLAY_INSTANTและ#endifได้ - จัดการการอัปเดต AndroidManifest.xml สำหรับการเปลี่ยนแปลงที่จำเป็นบางอย่าง เช่น เช่น android:targetSandboxVersion
การตั้งค่าเพลเยอร์
กล่องโต้ตอบการตั้งค่าเพลเยอร์ ที่แสดงในรูปที่ 1 จะแสดงคำแนะนำเพื่อช่วยคุณเพิ่มประสิทธิภาพการรองรับ Google Play Instant, พัฒนาโดยใช้ Graphics API ที่เข้ากันได้มากขึ้น และลดขนาด APK
การตั้งค่าเพลเยอร์เหล่านี้แบ่งออกเป็นการตั้งค่าที่จำเป็น และแนะนำ หากการตั้งค่ามีปุ่มอัปเดต ที่เกี่ยวข้อง ให้คลิกปุ่มดังกล่าวเพื่อเปลี่ยนการตั้งค่าเป็นค่าที่ต้องการ
หากต้องการลดขนาด APK เพิ่มเติม ให้เปิด Unity Package Manager แล้วนำแพ็กเกจที่ไม่ได้ใช้ออก
การติดตั้งใช้งานอย่างรวดเร็ว
การติดตั้งใช้งานอย่างรวดเร็วสามารถลดขนาดของ Instant App ที่ใช้ Unity ได้โดยการจัดแพ็กเกจเนื้อหาบางรายการใน AssetBundle เมื่อใช้ Quick Deploy ระบบจะจัดแพ็กเกจเกมเอนจินของ Unity และหน้าจอการโหลดลงใน APK ของ Instant App และหลังจากที่ Instant App เริ่มทำงานแล้ว ระบบจะดึงข้อมูล AssetBundle จากเซิร์ฟเวอร์
รองรับเวิร์กโฟลว์การติดตั้ง
เป้าหมายของ Instant App หลายๆ แอปคือการให้โอกาสผู้ใช้ได้สัมผัสประสบการณ์การใช้งานแอปก่อนที่จะติดตั้งแอปเวอร์ชันเต็ม ปลั๊กอิน Google Play Instant สำหรับ Unity มี API สำหรับแสดงกล่องโต้ตอบการติดตั้ง Play Store และสำหรับการโอนสถานะจาก Instant App ไปยังแอปที่ติดตั้ง
แสดงพรอมต์การติดตั้ง
Instant App ที่มีปุ่มติดตั้ง สามารถแสดงกล่องโต้ตอบการติดตั้ง Play Store ได้โดยเรียกใช้โค้ดต่อไปนี้จากตัวแฮนเดิลการคลิกปุ่มติดตั้ง
Google.Play.Instant.InstallLauncher.ShowInstallPrompt();
เมธอด ShowInstallPrompt() มีการโอเวอร์โหลดที่อนุญาตให้ทำสิ่งต่อไปนี้อย่างน้อย 1 อย่าง
- ระบุว่าผู้ใช้ยกเลิกกระบวนการติดตั้งหรือไม่ แทนที่
onActivityResult()ในกิจกรรมหลักของ Instant App และตรวจสอบRESULT_CANCELEDในrequestCodeที่ระบุ - ส่งสตริงผู้แนะนำการติดตั้งผ่านพารามิเตอร์
referrer - ส่งสถานะเกี่ยวกับเซสชันเกมปัจจุบันผ่าน
PutPostInstallIntentStringExtra()
ตัวอย่างต่อไปนี้แสดงวิธีใช้
using Google.Play.Instant;
...
const int requestCode = 123;
var sessionInfo = /* Object serialized as a string representing player's current location, etc. */;
using (var activity = UnityPlayerHelper.GetCurrentActivity())
using (var postInstallIntent = InstallLauncher.CreatePostInstallIntent(activity))
{
InstallLauncher.PutPostInstallIntentStringExtra(postInstallIntent, "sessionInfo", sessionInfo);
InstallLauncher.ShowInstallPrompt(activity, requestCode, postInstallIntent, "test-referrer");
}
หากผู้ใช้ติดตั้งแอปเสร็จสมบูรณ์ Play Store จะเปิดแอปอีกครั้งโดยใช้ postInstallIntent ที่ระบุ แอปที่ติดตั้งสามารถดึงค่าที่ตั้งไว้ใน postInstallIntent ได้โดยใช้โค้ดต่อไปนี้
var sessionInfo = InstallLauncher.GetPostInstallIntentStringExtra("sessionInfo");
หมายเหตุ
- ข้อมูลเพิ่มเติมที่รวมอยู่ใน
postInstallIntentอาจไม่ไปถึงแอปที่ติดตั้งหากผู้ใช้ติดตั้งแอปแต่ยกเลิกการเปิดแอปหลังการติดตั้ง การส่งข้อมูลเพิ่มเติมของ Intent เหมาะสำหรับการเก็บรักษาสถานะเซสชันที่ใช้งานอยู่มากกว่าการเก็บรักษาสถานะถาวร สำหรับการเก็บรักษาสถานะถาวร โปรดดู Cookie API - ทุกคนสามารถสร้าง Intent ที่มีช่องเพิ่มเติมเพื่อเปิดแอปที่ติดตั้งได้ ดังนั้นหากเพย์โหลดให้สิ่งที่มีค่า ให้ออกแบบเพย์โหลดเพื่อให้ใช้ได้เพียงครั้งเดียว เข้ารหัสเพย์โหลด และยืนยันลายเซ็นในเซิร์ฟเวอร์
ใช้ Cookie API
Cookie API มีเมธอดสำหรับส่งคุกกี้ (เช่น รหัสผู้เล่นหรือข้อมูลการผ่านด่าน) จาก Instant App ไปยังแอปที่ติดตั้งที่เกี่ยวข้อง ซึ่งต่างจากข้อมูลเพิ่มเติมของ postInstallIntent ตรงที่สถานะคุกกี้จะพร้อมใช้งานแม้ว่าผู้ใช้จะไม่ได้เปิดแอปที่ติดตั้งทันทีก็ตาม ตัวอย่างเช่น Instant App สามารถเรียกใช้โค้ดต่อไปนี้จากตัวแฮนเดิลการคลิกปุ่มติดตั้ง
using Google.Play.Instant;
...
var playerInfo = /* Object serialized as a string representing game levels completed, etc. */;
var cookieBytes = System.Text.Encoding.UTF8.GetBytes(playerInfo);
try
{
var maxCookieSize = CookieApi.GetInstantAppCookieMaxSize();
if (cookieBytes.Length > maxCookieSize)
{
UnityEngine.Debug.LogErrorFormat("Cookie length {0} exceeds limit {1}.", cookieBytes.Length, maxCookieSize);
}
else if (CookieApi.SetInstantAppCookie(cookieBytes))
{
UnityEngine.Debug.Log("Successfully set cookie. Now display the app install dialog...");
InstallLauncher.ShowInstallPrompt();
}
else
{
UnityEngine.Debug.LogError("Failed to set cookie.");
}
}
catch (CookieApi.InstantAppCookieException ex)
{
UnityEngine.Debug.LogErrorFormat("Failed to set cookie: {0}", ex);
}
หากผู้ใช้ติดตั้งแอปเสร็จสมบูรณ์ แอปที่ติดตั้งสามารถดึงข้อมูลคุกกี้ได้โดยใช้โค้ดต่อไปนี้
var cookieBytes = CookieApi.GetInstantAppCookie();
var playerInfoString = System.Text.Encoding.UTF8.GetString(cookieBytes);
if (!string.IsNullOrEmpty(playerInfoString))
{
// Initialize game state based on the cookie, e.g. skip tutorial level completed in instant app.
}