चेतावनी: Google Play Instant अब उपलब्ध नहीं होगा. दिसंबर 2025 से, इंस्टैंट ऐप्लिकेशन को Google Play से पब्लिश नहीं किया जा सकेगा. साथ ही, सभी Google Play services के इंस्टैंट एपीआई काम नहीं करेंगे. उपयोगकर्ताओं को अब Play के ज़रिए, किसी भी तरीके से इंस्टैंट ऐप्लिकेशन नहीं दिखाए जाएंगे.
हम यह बदलाव, डेवलपर के सुझावों के आधार पर कर रहे हैं. साथ ही, Google Play इंस्टैंट की सुविधा लॉन्च करने के बाद से, हम लगातार इस नेटवर्क को बेहतर बनाने के लिए काम कर रहे हैं.
उपयोगकर्ताओं की संख्या बढ़ाने के लिए, हम डेवलपर को अपने ऐप्लिकेशन या गेम पर उपयोगकर्ताओं को भेजने का सुझाव देते हैं. इसके लिए, डीपलिंक का इस्तेमाल करके, उपयोगकर्ताओं को ज़रूरत के हिसाब से किसी खास प्रोसेस या सुविधा पर रीडायरेक्ट करें.
Unity के लिए Google Play Instant प्लगिन, आपके Unity प्रोजेक्ट को कॉन्फ़िगर करता है, ताकि आपके गेम का इंस्टैंट ऐप्लिकेशन वर्शन बनाया जा सके. इस गाइड में, इस प्लग इन को इंस्टॉल और इस्तेमाल करने का तरीका बताया गया है.
प्लग इन डाउनलोड और इंपोर्ट करना
यह प्लगिन, Unity के लिए उपलब्ध Google Play के प्लगिन का हिस्सा है. प्लग इन इंपोर्ट करने के लिए, यह तरीका अपनाएं:
- Unity के लिए उपलब्ध Google Play के प्लगिन की रिलीज़ से, सबसे नई रिलीज़ डाउनलोड करें.
.unitypackage
फ़ाइल को इंपोर्ट करने के लिए, Unity IDE मेन्यू का विकल्प चुनें ऐसेट > पैकेज इंपोर्ट करें > कस्टम पैकेज और सभी आइटम इंपोर्ट करें.
Unity Editor की सुविधाएं
Unity में Google > Play इंस्टैंट सबमेन्यू जोड़ने के लिए, प्लगिन इंपोर्ट करें. इस सब-मेन्यू में ये विकल्प मिलते हैं.
बिल्ड सेटिंग
इससे एक विंडो खुलती है, जिससे इंस्टॉल किए गए और इंस्टैंट डिवेलपमेंट मोड के बीच स्विच किया जा सकता है. इंस्टैंट पर स्विच करने से ये बदलाव होते हैं:
PLAY_INSTANT
नाम का स्क्रिप्टिंग डेफ़ाइन सिंबल बनाता है. इसका इस्तेमाल,#if PLAY_INSTANT
और#endif
के साथ स्क्रिप्टिंग के लिए किया जा सकता है.- ज़रूरी बदलावों के लिए, AndroidManifest.xml में होने वाले अपडेट मैनेज करता है. जैसे, android:targetSandboxVersion.
प्लेयर की सेटिंग
पहली इमेज में दिखाया गया प्लेयर सेटिंग डायलॉग, आपको Google Play Instant के लिए सहायता को ऑप्टिमाइज़ करने, काम करने वाले ज़्यादा ग्राफ़िक्स एपीआई के लिए डेवलप करने, और अपने APK के साइज़ को कम करने में मदद करने के लिए सुझाव दिखाता है.

प्लेयर की इन सेटिंग को ज़रूरी और सुझाई गई सेटिंग में बांटा गया है. अगर किसी सेटिंग के साथ अपडेट करें बटन है, तो सेटिंग को अपनी पसंद की वैल्यू पर बदलने के लिए उस पर क्लिक करें.
APK के साइज़ को और कम करने के लिए, Unity Package Manager खोलें और इस्तेमाल न किए गए सभी पैकेज हटाएं.
तुरंत डिप्लॉय करना
क्विक डिप्लॉय की सुविधा, कुछ एसेट को AssetBundle में पैकेज करके, Unity पर आधारित इंस्टैंट ऐप्लिकेशन का साइज़ कम कर सकती है. तुरंत डिप्लॉय करने की सुविधा का इस्तेमाल करने पर, Unity गेम इंजन और लोडिंग स्क्रीन को इंस्टैंट ऐप्लिकेशन के APK में पैकेज किया जाता है. इंस्टैंट ऐप्लिकेशन के शुरू होने के बाद, वह किसी सर्वर से AssetBundle को वापस लाता है.
इंस्टॉलेशन वर्कफ़्लो के साथ काम करना
कई इंस्टैंट ऐप्लिकेशन का मकसद, उपयोगकर्ताओं को ऐप्लिकेशन का पूरा वर्शन इंस्टॉल करने से पहले, उसे आज़माने का मौका देना है. Unity के लिए Google Play Instant प्लगिन, Play Store इंस्टॉल डायलॉग दिखाने और इंस्टॉल किए गए ऐप्लिकेशन से इंस्टैंट ऐप्लिकेशन पर स्टेटस ट्रांसफ़र करने के लिए, एपीआई उपलब्ध कराता है.
इंस्टॉल करने का अनुरोध दिखाना
इंस्टॉल करें बटन वाला इंस्टैंट ऐप्लिकेशन, Play Store का इंस्टॉल डायलॉग दिखा सकता है. इसके लिए, इंस्टॉल बटन के क्लिक हैंडलर से इन फ़ंक्शन को कॉल करें:
Google.Play.Instant.InstallLauncher.ShowInstallPrompt();
ShowInstallPrompt()
तरीके में एक ओवरलोड है, जो इनमें से एक या एक से ज़्यादा काम करता है:
- यह पता लगाना कि उपयोगकर्ता ने इंस्टॉल की प्रोसेस को रद्द किया है या नहीं. इंस्टैंट ऐप्लिकेशन की मुख्य गतिविधि में,
onActivityResult()
को बदलें और बताए गएrequestCode
परRESULT_CANCELED
देखें. 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
में शामिल एक्सट्रा, इंस्टॉल किए गए ऐप्लिकेशन में न पहुंचें. इंटेंट एक्सट्रा को पास करना, ऐक्टिव सेशन की स्थिति को बनाए रखने के लिए, हमेशा चालू रहने वाली स्थिति को बनाए रखने के मुकाबले बेहतर होता है. हमेशा चालू रहने वाली स्थिति के लिए, कुकी एपीआई देखें. - इंस्टॉल किए गए ऐप्लिकेशन को लॉन्च करने के लिए, कोई भी व्यक्ति अतिरिक्त फ़ील्ड के साथ इंटेंट बना सकता है. इसलिए, अगर पेलोड में कोई अहम जानकारी है, तो पेलोड को इस तरह डिज़ाइन करें कि उसका इस्तेमाल सिर्फ़ एक बार किया जा सके. साथ ही, उसे क्रिप्टोग्राफ़िक तरीके से साइन करें और सर्वर पर हस्ताक्षर की पुष्टि करें.
Cookie API का इस्तेमाल करना
कुकी एपीआई, किसी इंस्टैंट ऐप्लिकेशन से उसके इंस्टॉल किए गए ऐप्लिकेशन में कुकी (जैसे, प्लेयर आईडी या लेवल पूरा करने का डेटा) पास करने के तरीके उपलब्ध कराता है. postInstallIntent
एक्सट्रा के मुकाबले, कुकी की स्थिति तब भी उपलब्ध होती है, जब उपयोगकर्ता इंस्टॉल किए गए ऐप्लिकेशन को तुरंत लॉन्च न करे. उदाहरण के लिए, कोई इंस्टैंट ऐप्लिकेशन, इंस्टॉल बटन के क्लिक हैंडलर से यह कोड कॉल कर सकता है:
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.
}