Google, उपयोगकर्ता के डिवाइस पर एक ऐसा प्लैटफ़ॉर्म बना रहा है जो वर्टिकल के हिसाब से ऐप्लिकेशन साथ ही, उपयोगकर्ताओं को उनके हिसाब से कॉन्टेंट देखने का बेहतर अनुभव मिलता है. खोजने के लिए इस्तेमाल किया जा सकता है. फ़ुलस्क्रीन वाले इस अनुभव से डेवलपर पार्टनर को अपना सबसे अच्छा रिच कॉन्टेंट दिखाने का मौका उसके ऐप्लिकेशन के बारे में बात करते हैं.
इस गाइड में डेवलपर पार्टनर के लिए, खाने-पीने की चीज़ों को इंटिग्रेट करने के निर्देश दिए गए हैं कॉन्टेंट बनाने के लिए, Engage SDK टूल का इस्तेमाल करके, इस नए सरफ़ेस एरिया और मौजूदा Google प्लैटफ़ॉर्म का इस्तेमाल नहीं किया जा सकता.
इंटिग्रेशन की जानकारी
शब्दावली
इस इंटिग्रेशन में ये पांच तरह के क्लस्टर शामिल हैं: सुझाव, चुनिंदा, फ़ूड शॉपिंग कार्ट, फ़ूड शॉपिंग लिस्ट, और फिर से ऑर्डर करें.
सुझाव वाले क्लस्टर में, खाने-पीने की चीज़ों के सुझाव पार्टनर के तौर पर शामिल हो. ये सुझाव उपयोगकर्ता के हिसाब से या सभी के लिए (उदाहरण के लिए, बिक्री के लिए उपलब्ध नया प्रॉडक्ट). रेसिपी के बारे में बताने के लिए, किराने के सामान वगैरह स्टोर, पकवानों वगैरह के साथ उपलब्ध हैं.
- सुझावों वाले क्लस्टर को
ProductEntity
,StoreEntity
याRecipeEntity
लिस्टिंग. हालांकि, इसमें अलग-अलग तरह की इकाइयों का मिला-जुला रूप नहीं होना चाहिए.
इमेज :`ProductEntity`, `StoreEntity`, और `RecipeEntity`. (*यूज़र इंटरफ़ेस (यूआई) सिर्फ़ उदाहरण के तौर पर दिया गया है) - सुझावों वाले क्लस्टर को
चुनिंदा क्लस्टर में, चुने गए हीरो
ProductEntity
को दिखाया जाता है. एक यूज़र इंटरफ़ेस (यूआई) में कई डेवलपर पार्टनर से मिलेStoreEntity
याRecipeEntity
ग्रुपिंग. इसमें एक फ़ीचर क्लस्टर है, जो इसके पास दिखता है यूज़र इंटरफ़ेस में सबसे ऊपर, सभी सुझावों के ऊपर प्राथमिकता वाले प्लेसमेंट के साथ क्लस्टर. हर डेवलपर पार्टनर को एक इकाई ब्रॉडकास्ट करने की अनुमति है चुनिंदा में समर्थित प्रकार की कई इकाइयों के साथ (संभावित रूप से भिन्न टाइप) के हिसाब से.इमेज : `RecipeEntity` वाला चुनिंदा क्लस्टर. (*यूज़र इंटरफ़ेस (यूआई) सिर्फ़ उदाहरण के तौर पर दिया गया है) फ़ूड शॉपिंग कार्ट क्लस्टर में किराने की खरीदारी की एक झलक दिखती है एक यूज़र इंटरफ़ेस (यूआई) ग्रुपिंग में कई डेवलपर पार्टनर के कार्ट से जुड़ने पर, उपयोगकर्ताओं को ये काम करने के लिए कहा जाता है बकाया कार्ट को पूरा करना. एक ही फ़ूड शॉपिंग कार्ट उपलब्ध है क्लस्टर.
फ़ूड शॉपिंग कार्ट क्लस्टर में आइटम की कुल संख्या दिखनी चाहिए साथ ही, इसमें उपयोगकर्ता के कार्ट में X आइटम की इमेज भी शामिल हो सकती हैं.
इमेज: फ़ूड शॉपिंग कार्ट का कलेक्शन पार्टनर के साथ शेयर करें. (*यूज़र इंटरफ़ेस (यूआई) सिर्फ़ उदाहरण के तौर पर दिया गया है)
खाने की खरीदारी की सूची क्लस्टर में किराने की खरीदारी की एक झलक दिखती है एक यूज़र इंटरफ़ेस (यूआई) ग्रुपिंग में, कई डेवलपर पार्टनर की ओर से दी गई सूचियां, जिससे उपयोगकर्ताओं को ये करने के लिए कहा जाता है अपडेट करने और सूचियों को पूरा करने के लिए, संबंधित ऐप्लिकेशन पर वापस जाएं. कई खाने की चीज़ों की खरीदारी की सूची का एक क्लस्टर होगा.
इमेज: खाने की खरीदारी की सूची का क्लस्टर पार्टनर के साथ शेयर करें. (*यूज़र इंटरफ़ेस (यूआई) सिर्फ़ उदाहरण के तौर पर दिया गया है) फिर से क्रम में लगाएं क्लस्टर में, इस तारीख से किए गए पिछले ऑर्डर की एक झलक दिखती है एक यूज़र इंटरफ़ेस (यूआई) ग्रुप में कई डेवलपर पार्टनर शामिल होते हैं. इससे, उपयोगकर्ताओं को फिर से क्रम में लगाने के लिए कहा जाता है. फिर से क्रम में लगाने वाला एक क्लस्टर है.
फिर से क्रम में लगाए गए क्लस्टर में आइटम की कुल संख्या दिखाई देनी चाहिए उपयोगकर्ता का पिछला ऑर्डर दिया है और इसमें इनमें से कोई एक जानकारी भी शामिल होनी चाहिए:
- उपयोगकर्ता के पिछले ऑर्डर में मौजूद X आइटम की इमेज.
- उपयोगकर्ता के पिछले क्रम में X आइटम के लिए लेबल.
इमेज: खाने के ऑर्डर का क्लस्टर, सिंगल से पार्टनर के साथ शेयर करें. (*यूज़र इंटरफ़ेस (यूआई) सिर्फ़ उदाहरण के तौर पर दिया गया है)
सेशन की तैयारी
कम से कम एपीआई लेवल: 19
अपने ऐप्लिकेशन में com.google.android.engage:engage-core
लाइब्रेरी जोड़ें:
dependencies {
// Make sure you also include that repository in your project's build.gradle file.
implementation 'com.google.android.engage:engage-core:1.5.2'
}
खास जानकारी
यह डिज़ाइन, लागू करने पर आधारित है सेवा.
क्लाइंट के पब्लिश किए जा सकने वाले डेटा पर, नीचे दी गई सीमाएं लागू होती हैं. ये सीमाएं, क्लस्टर के टाइप:
क्लस्टर का टाइप | क्लस्टर की सीमाएं | क्लस्टर में इकाई की तय सीमाएं |
---|---|---|
सुझाव क्लस्टर | ज़्यादा से ज़्यादा पांच | ज़्यादा से ज़्यादा 25 (ProductEntity , RecipeEntity या
StoreEntity ) |
चुनिंदा क्लस्टर | ज़्यादा से ज़्यादा एक | ज़्यादा से ज़्यादा 1 (ProductEntity , RecipeEntity या
StoreEntity ) |
फ़ूड शॉपिंग कार्ट क्लस्टर | ज़्यादा से ज़्यादा एक | ज़्यादा से ज़्यादा 1 ShoppingCartEntity |
फ़ूड शॉपिंग लिस्ट क्लस्टर | ज़्यादा से ज़्यादा एक | ज़्यादा से ज़्यादा 1 ShoppingListEntity |
फ़ूड रिऑर्डर क्लस्टर | ज़्यादा से ज़्यादा एक | ज़्यादा से ज़्यादा 1 ReorderEntity |
पहला चरण: इकाई का डेटा देना
SDK टूल ने हर तरह के आइटम को दिखाने के लिए अलग-अलग इकाइयां तय की हैं. हम सहायता करते हैं खाने की कैटगरी के लिए ये इकाइयां होंगी:
ProductEntity
StoreEntity
RecipeEntity
FoodShoppingCart
FoodShoppingList
FoodReorderCluster
नीचे दिए गए चार्ट में हर तरह के लिए उपलब्ध एट्रिब्यूट और उनकी ज़रूरी शर्तों के बारे में बताया गया है.
ProductEntity
ProductEntity
ऑब्जेक्ट, किसी एक आइटम के बारे में बताता है. जैसे, किराने का सामान
आइटम, किसी रेस्टोरेंट की डिश या प्रमोशन) होती है, जिन्हें डेवलपर पार्टनर चाहते हैं
प्रकाशित करें.
![](https://developer.android.com/static/images/guide/playcore/engage/food-product-entity.png?hl=hi)
ProductEntity
के एट्रिब्यूट
एट्रिब्यूट | ज़रूरी शर्त | ब्यौरा | फ़ॉर्मैट करें |
---|---|---|---|
पोस्टर की इमेज | ज़रूरी है | कम से कम एक इमेज दी जानी चाहिए. | ज़्यादा जानकारी के लिए, इमेज की खास बातें देखें. |
ऐक्शन Uri | ज़रूरी है |
ऐप्लिकेशन में पेज का डीप लिंक, जो प्रॉडक्ट. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले यह सवाल देखें |
यूआरआई |
शीर्षक | वैकल्पिक | प्रॉडक्ट का नाम. | फ़्री टेक्स्ट टेक्स्ट का सुझाया गया साइज़: 90 से कम वर्ण (ऐसा टेक्स्ट जो बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
कीमत - मौजूदा कीमत | शर्तों के हिसाब से ज़रूरी है | प्रॉडक्ट की मौजूदा कीमत. अगर स्ट्राइकथ्रू वाली कीमत दी गई है, तो यह ज़रूरी है. |
फ़्री टेक्स्ट |
कीमत - स्ट्राइकथ्रू | वैकल्पिक | इकाई की मूल कीमत, जिसे यूज़र इंटरफ़ेस (यूआई). | फ़्री टेक्स्ट |
कॉलआउट | वैकल्पिक | प्रॉडक्ट का प्रमोशन, इवेंट या अपडेट दिखाने के लिए कॉलआउट, अगर उपलब्ध हैं. | फ़्री टेक्स्ट टेक्स्ट का सुझाया गया साइज़: 45 वर्णों से कम (टेक्स्ट बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
कॉलआउट फ़ाइन प्रिंट | वैकल्पिक | कॉलआउट के लिए टेक्स्ट को फ़ाइन प्रिंट करें. | फ़्री टेक्स्ट टेक्स्ट का सुझाया गया साइज़: 45 वर्णों से कम (टेक्स्ट बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
रेटिंग (वैकल्पिक) - ध्यान दें: सभी रेटिंग दिखाई जाती हैं इसके लिए, हम अपने स्टैंडर्ड स्टार रेटिंग सिस्टम का इस्तेमाल करते हैं. | |||
रेटिंग - ज़्यादा से ज़्यादा वैल्यू | वैकल्पिक | रेटिंग स्केल की सबसे ज़्यादा वैल्यू. अगर रेटिंग की मौजूदा वैल्यू दिया गया है. |
संख्या >= 0.0 |
रेटिंग - मौजूदा वैल्यू | वैकल्पिक | रेटिंग स्केल की मौजूदा वैल्यू. अगर रेटिंग की सबसे ज़्यादा वैल्यू भी दी गई है, तो यह ज़रूरी है दिया गया है. |
संख्या >= 0.0 |
रेटिंग - संख्या | वैकल्पिक | प्रॉडक्ट के लिए रेटिंग की संख्या. ध्यान दें: अगर आपका ऐप्लिकेशन यह कंट्रोल करती है कि उपयोगकर्ताओं को संख्या कैसी दिखेगी. कम शब्दों वाली स्ट्रिंग का इस्तेमाल करें. उदाहरण के लिए, अगर संख्या 10,00,000 है, तो छोटे रूप का इस्तेमाल करें ताकि छोटे डिसप्ले साइज़ पर गिनती को कम न किया जाए. |
स्ट्रिंग |
रेटिंग - वैल्यू की गिनती | वैकल्पिक | प्रॉडक्ट के लिए रेटिंग की संख्या. ध्यान दें: अगर आप यह फ़ील्ड नहीं मैनेज करना चाहते, तो यह फ़ील्ड दें को दिखाने का एक तरीका है. अगर काउंट और काउंट वैल्यू, दोनों मौजूद हैं, तो उपयोगकर्ताओं को संख्या दिखती है. |
ज़्यादा समय के लिए |
DisplayTimeWindow (वैकल्पिक) - समय विंडो सेट करें प्लैटफ़ॉर्म पर कॉन्टेंट दिखाने के लिए | |||
शुरू होने का टाइमस्टैंप | वैकल्पिक |
Epoch टाइमस्टैंप, जिसके बाद कॉन्टेंट की जगह है. अगर यह नीति सेट नहीं है, तो कॉन्टेंट को प्लैटफ़ॉर्म पर दिखाया जा सकता है. |
मिलीसेकंड में Epoch टाइमस्टैंप |
खत्म होने का टाइमस्टैंप | वैकल्पिक |
उस समय का टाइमस्टैंप जिसके बाद कॉन्टेंट नहीं दिखेगा की सतह. अगर यह नीति सेट नहीं है, तो कॉन्टेंट को प्लैटफ़ॉर्म पर दिखाया जा सकता है. |
मिलीसेकंड में Epoch टाइमस्टैंप |
StoreEntity
StoreEntity
ऑब्जेक्ट, किसी ऐसे स्टोर के बारे में बताता है जिसे डेवलपर पार्टनर ने बनाया है
जैसे कि रेस्टोरेंट या किराने की दुकान.
![](https://developer.android.com/static/images/guide/playcore/engage/food-store-entity.png?hl=hi)
StoreEntity
के एट्रिब्यूट
एट्रिब्यूट | ज़रूरी शर्त | ब्यौरा | फ़ॉर्मैट करें |
---|---|---|---|
पोस्टर की इमेज | ज़रूरी है | कम से कम एक इमेज दी जानी चाहिए. | ज़्यादा जानकारी के लिए, इमेज की खास बातें देखें. |
ऐक्शन Uri | ज़रूरी है | ऐप्लिकेशन में पेज का डीप लिंक, जो स्टोर. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले यह सवाल देखें |
यूआरआई |
शीर्षक | वैकल्पिक | स्टोर का नाम. | फ़्री टेक्स्ट टेक्स्ट का सुझाया गया साइज़: 45 वर्णों से कम (टेक्स्ट बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
जगह की जानकारी | वैकल्पिक | स्टोर की जगह. | फ़्री टेक्स्ट टेक्स्ट का सुझाया गया साइज़: 45 वर्णों से कम (टेक्स्ट बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
कॉलआउट | वैकल्पिक | स्टोर का प्रमोशन, इवेंट या अपडेट दिखाने के लिए कॉलआउट उपलब्ध हैं. | फ़्री टेक्स्ट टेक्स्ट का सुझाया गया साइज़: 45 वर्णों से कम (टेक्स्ट बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
कॉलआउट फ़ाइन प्रिंट | वैकल्पिक | कॉलआउट के लिए टेक्स्ट को फ़ाइन प्रिंट करें. | फ़्री टेक्स्ट टेक्स्ट का सुझाया गया साइज़: 45 वर्णों से कम (टेक्स्ट बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
ब्यौरा | वैकल्पिक | स्टोर के बारे में जानकारी. | फ़्री टेक्स्ट टेक्स्ट का सुझाया गया साइज़: 90 से कम वर्ण (ऐसा टेक्स्ट जो बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
ध्यान दें: सभी रेटिंग हमारी स्टैंडर्ड स्टार रेटिंग सिस्टम इस्तेमाल करना चाहिए. | |||
रेटिंग - ज़्यादा से ज़्यादा वैल्यू | वैकल्पिक | रेटिंग स्केल की सबसे ज़्यादा वैल्यू. अगर रेटिंग की मौजूदा वैल्यू दिया गया है. |
संख्या >= 0.0 |
रेटिंग - मौजूदा वैल्यू | वैकल्पिक | रेटिंग स्केल की मौजूदा वैल्यू. अगर रेटिंग की सबसे ज़्यादा वैल्यू भी दी गई है, तो यह ज़रूरी है दिया गया है. |
संख्या >= 0.0 |
रेटिंग - संख्या | वैकल्पिक | स्टोर के लिए रेटिंग की संख्या. ध्यान दें: अगर आपका ऐप्लिकेशन नीचे बताए गए काम करना चाहता है, तो यह फ़ील्ड दें लोगों को यह कैसे दिखाया जाए, इसे कंट्रोल किया जा सकता है. कम शब्दों वाली स्ट्रिंग उपलब्ध कराएं जिसे उपयोगकर्ता को दिखाया जा सकता है. उदाहरण के लिए, यदि संख्या 1,000,000 है, तो 1M जैसे अब्रिविएशन का इस्तेमाल करें, ताकि छोटे डिसप्ले साइज़ के लिए काट-छांट की गई. |
स्ट्रिंग |
रेटिंग - वैल्यू की गिनती | वैकल्पिक | स्टोर के लिए रेटिंग की संख्या. ध्यान दें: अगर आपको मैनेज नहीं करना है, तो यह फ़ील्ड दें को दिखाने का एक तरीका है. अगर काउंट और काउंट वैल्यू, दोनों मौजूद हैं, तो हम उपयोगकर्ताओं को दिखाने के लिए गिनती का इस्तेमाल करेंगे |
ज़्यादा समय के लिए |
RecipeEntity
RecipeEntity
ऑब्जेक्ट, उस रेसिपी आइटम के बारे में बताता है जिसे डेवलपर पार्टनर चाहते हैं
पब्लिश करने के लिए.
![](https://developer.android.com/static/images/guide/playcore/engage/food-recipe-entity.png?hl=hi)
RecipeEntity
के एट्रिब्यूट
एट्रिब्यूट | ज़रूरी शर्त | ब्यौरा | फ़ॉर्मैट करें |
---|---|---|---|
पोस्टर की इमेज | ज़रूरी है | कम से कम एक इमेज दी जानी चाहिए. | ज़्यादा जानकारी के लिए, इमेज की खास बातें देखें. |
ऐक्शन Uri | ज़रूरी है | ऐप्लिकेशन में पेज का डीप लिंक, जो रेसिपी. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले यह सवाल देखें |
यूआरआई |
शीर्षक | वैकल्पिक | रेसिपी का नाम. | फ़्री टेक्स्ट टेक्स्ट का सुझाया गया साइज़: 45 वर्णों से कम (टेक्स्ट बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
लेखक | वैकल्पिक | रेसिपी का लेखक. | फ़्री टेक्स्ट टेक्स्ट का सुझाया गया साइज़: 45 वर्णों से कम (टेक्स्ट बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
बनाने/तैयार करने में लगने वाला समय | वैकल्पिक | रेसिपी को पकाने में लगने वाला समय. | फ़्री टेक्स्ट टेक्स्ट का सुझाया गया साइज़: 45 वर्णों से कम (टेक्स्ट बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
कॉलआउट | वैकल्पिक | रेसिपी का प्रमोशन, इवेंट या अपडेट दिखाने के लिए कॉलआउट उपलब्ध हैं. | फ़्री टेक्स्ट टेक्स्ट का सुझाया गया साइज़: 45 वर्णों से कम (टेक्स्ट बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
कैटगरी | वैकल्पिक | रेसिपी की कैटगरी. | फ़्री टेक्स्ट टेक्स्ट का सुझाया गया साइज़: 45 वर्णों से कम (टेक्स्ट बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
ब्यौरा | वैकल्पिक | रेसिपी के बारे में जानकारी. | फ़्री टेक्स्ट टेक्स्ट का सुझाया गया साइज़: 90 से कम वर्ण (ऐसा टेक्स्ट जो बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
ध्यान दें: सभी रेटिंग हमारी स्टैंडर्ड स्टार रेटिंग सिस्टम इस्तेमाल करना चाहिए. | |||
रेटिंग - ज़्यादा से ज़्यादा वैल्यू | वैकल्पिक | रेटिंग स्केल की सबसे ज़्यादा वैल्यू. अगर रेटिंग की मौजूदा वैल्यू दिया गया है. |
संख्या >= 0.0 |
रेटिंग - मौजूदा वैल्यू | वैकल्पिक | रेटिंग स्केल की मौजूदा वैल्यू. अगर रेटिंग की सबसे ज़्यादा वैल्यू भी दी गई है, तो यह ज़रूरी है दिया गया है. |
संख्या >= 0.0 |
रेटिंग - संख्या | वैकल्पिक | रेसिपी के लिए रेटिंग की संख्या. ध्यान दें: अगर आपका ऐप्लिकेशन नीचे बताए गए काम करना चाहता है, तो यह फ़ील्ड दें लोगों को यह कैसे दिखाया जाए, इसे कंट्रोल किया जा सकता है. कम शब्दों वाली स्ट्रिंग उपलब्ध कराएं जिसे उपयोगकर्ता को दिखाया जा सकता है. उदाहरण के लिए, यदि संख्या 1,000,000 है, तो 1M जैसे अब्रिविएशन का इस्तेमाल करें, ताकि छोटे डिसप्ले साइज़ के लिए काट-छांट की गई. |
स्ट्रिंग |
रेटिंग - वैल्यू की गिनती | वैकल्पिक | रेसिपी के लिए रेटिंग की संख्या. ध्यान दें: अगर आपको मैनेज नहीं करना है, तो यह फ़ील्ड दें को दिखाने का एक तरीका है. अगर काउंट और काउंट वैल्यू, दोनों मौजूद हैं, तो हम उपयोगकर्ताओं को दिखाने के लिए गिनती का इस्तेमाल करेंगे |
ज़्यादा समय के लिए |
FoodShoppingCart
![](https://developer.android.com/static/images/guide/playcore/engage/food-shopping-cart-attributes.png?hl=hi)
एट्रिब्यूट | ज़रूरी शर्त | ब्यौरा | फ़ॉर्मैट करें |
---|---|---|---|
ऐक्शन Uri | ज़रूरी है |
पार्टनर के ऐप्लिकेशन में शॉपिंग कार्ट का डीप लिंक. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले सवाल देखें |
यूआरआई |
आइटम की संख्या | ज़रूरी है | शॉपिंग में आइटम की संख्या (सिर्फ़ प्रॉडक्ट की संख्या नहीं) उदाहरण के लिए: अगर चार्ट में 3 संतरे और 1 सेब हैं तो यह संख्या 4 होनी चाहिए. |
पूर्णांक >= 1 |
शीर्षक | वैकल्पिक | कार्ट का टाइटल (उदाहरण के लिए, आपका कार्ट). अगर डेवलपर ने कोई टाइटल नहीं दिया है, तो आपका कार्ट डिफ़ॉल्ट रूप से सेट है. |
फ़्री टेक्स्ट टेक्स्ट का सुझाया गया साइज़: 25 से कम वर्ण (ऐसा टेक्स्ट जो बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
कार्रवाई टेक्स्ट | वैकल्पिक |
शॉपिंग कार्ट पर मौजूद बटन का कॉल-टू-ऐक्शन टेक्स्ट (उदाहरण के लिए, आपका शॉपिंग बैग). अगर डेवलपर ने कार्रवाई से जुड़ा कोई टेक्स्ट नहीं दिया है, डिफ़ॉल्ट तौर पर, कार्ट डेटा देखें सेक्शन होता है. यह एट्रिब्यूट 1.1.0 और उसके बाद के वर्शन में काम करता है. |
स्ट्रिंग |
कार्ट इमेज | वैकल्पिक | कार्ट में मौजूद हर प्रॉडक्ट की इमेज. प्राथमिकता के हिसाब से, ज़्यादा से ज़्यादा 10 इमेज दी जा सकती हैं; यह दिखाई जाने वाली इमेज की असल संख्या, डिवाइस के फ़ॉर्म पर निर्भर करती है फ़ैक्टर. |
ज़्यादा जानकारी के लिए, इमेज की खास बातें देखें. |
आइटम के लेबल | वैकल्पिक | खरीदारी की सूची में मौजूद आइटम के लिए लेबल की सूची. दिखाए गए लेबल की असल संख्या यह डिवाइस के नाप या आकार पर निर्भर करता है. |
बिना शुल्क वाले टेक्स्ट लेबल की सूची टेक्स्ट का सुझाया गया साइज़: 20 से कम वर्ण (ऐसा टेक्स्ट जो बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
DisplayTimeWindow (वैकल्पिक) - समय विंडो सेट करें प्लैटफ़ॉर्म पर कॉन्टेंट दिखाने के लिए | |||
शुरू होने का टाइमस्टैंप | वैकल्पिक |
Epoch टाइमस्टैंप, जिसके बाद कॉन्टेंट की जगह है. अगर यह नीति सेट नहीं है, तो कॉन्टेंट को प्लैटफ़ॉर्म पर दिखाया जा सकता है. |
मिलीसेकंड में Epoch टाइमस्टैंप |
खत्म होने का टाइमस्टैंप | वैकल्पिक |
उस समय का टाइमस्टैंप जिसके बाद कॉन्टेंट नहीं दिखेगा की सतह. अगर यह नीति सेट नहीं है, तो कॉन्टेंट को प्लैटफ़ॉर्म पर दिखाया जा सकता है. |
मिलीसेकंड में Epoch टाइमस्टैंप |
FoodShoppingList
![](https://developer.android.com/static/images/guide/playcore/engage/food-shopping-list.png?hl=hi)
एट्रिब्यूट | ज़रूरी शर्त | ब्यौरा | फ़ॉर्मैट करें |
---|---|---|---|
ऐक्शन Uri | ज़रूरी है |
पार्टनर के ऐप्लिकेशन में खरीदारी की सूची का डीप लिंक. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले यह सवाल देखें |
यूआरआई |
आइटम की संख्या | ज़रूरी है | खरीदारी की सूची में मौजूद आइटम की संख्या. | पूर्णांक >= 1 |
शीर्षक | वैकल्पिक |
सूची का शीर्षक (उदाहरण के लिए, आपकी किराने के सामान की सूची). अगर डेवलपर ने कोई टाइटल नहीं दिया है, खरीदारी की सूची डिफ़ॉल्ट रूप से सेट होती है. |
फ़्री टेक्स्ट टेक्स्ट का सुझाया गया साइज़: 25 से कम वर्ण (ऐसा टेक्स्ट जो बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
आइटम के लेबल | ज़रूरी है | खरीदारी की सूची में मौजूद आइटम के लिए लेबल की सूची. कम से कम 1 लेबल दिया जाना चाहिए और ज़्यादा से ज़्यादा 10 लेबल दिए जा सकते हैं प्राथमिकता के क्रम में दिया गया हो; दिखाए गए लेबल की असल संख्या यह डिवाइस के नाप या आकार पर निर्भर करता है. |
बिना शुल्क वाले टेक्स्ट लेबल की सूची टेक्स्ट का सुझाया गया साइज़: 20 से कम वर्ण (ऐसा टेक्स्ट जो बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
FoodReorderCluster
![](https://developer.android.com/static/images/guide/playcore/engage/food-reorder-cluster.png?hl=hi)
एट्रिब्यूट | ज़रूरी शर्त | ब्यौरा | फ़ॉर्मैट करें |
---|---|---|---|
ऐक्शन Uri | ज़रूरी है |
पार्टनर के ऐप्लिकेशन में, दोबारा ऑर्डर करने के लिए डीप लिंक. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले यह सवाल देखें |
यूआरआई |
कार्रवाई टेक्स्ट | वैकल्पिक |
'क्रम बदलें' बटन पर मौजूद बटन का कॉल-टू-ऐक्शन टेक्स्ट (उदाहरण के लिए, फिर से ऑर्डर करें). अगर डेवलपर ने कार्रवाई से जुड़ा कोई टेक्स्ट नहीं दिया है, डिफ़ॉल्ट रूप से, फिर से क्रम में लगाएं विकल्प मौजूद होता है. यह एट्रिब्यूट 1.1.0 और उसके बाद के वर्शन में काम करता है. |
स्ट्रिंग |
आइटम की संख्या | ज़रूरी है |
पिछले आइटम की संख्या (सिर्फ़ प्रॉडक्ट की संख्या ही नहीं) ऑर्डर. उदाहरण के लिए: अगर उपहार में 3 छोटी कॉफ़ी और एक क्रॉसां अगर पिछला ऑर्डर दिया गया है, तो यह संख्या 4 होनी चाहिए. |
पूर्णांक >= 1 |
शीर्षक | ज़रूरी है | फिर से ऑर्डर करने के लिए इस्तेमाल किए जाने वाले आइटम का टाइटल. | फ़्री टेक्स्ट टेक्स्ट का सुझाया गया साइज़: 40 से कम वर्ण (ऐसा टेक्स्ट जो बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
आइटम के लेबल | वैकल्पिक (अगर यह जानकारी नहीं दी गई है, तो पोस्टर की इमेज भी सबमिट की जानी चाहिए) |
पिछले ऑर्डर के लिए आइटम के लेबल की सूची. प्राथमिकता के क्रम में, ज़्यादा से ज़्यादा 10 लेबल दिए जा सकते हैं; यह लेबल की असल संख्या, डिवाइस के फ़ॉर्म पर निर्भर करती है फ़ैक्टर. |
फ़्री टेक्स्ट की सूची हर लेबल के लिए टेक्स्ट का सुझाया गया साइज़: 20 से कम वर्ण (बहुत लंबा टेक्स्ट एलिप्सिस दिखा सकता है) |
पोस्टर की इमेज | वैकल्पिक (अगर यह पैरामीटर उपलब्ध नहीं कराया गया है, तो आइटम के लेबल दिए जाने चाहिए) |
पिछले ऑर्डर में मौजूद सामान की इमेज. प्राथमिकता के हिसाब से, ज़्यादा से ज़्यादा 10 इमेज दी जा सकती हैं; यह दिखाई जाने वाली इमेज की असल संख्या, डिवाइस के फ़ॉर्म पर निर्भर करती है फ़ैक्टर. |
ज़्यादा जानकारी के लिए, इमेज की खास बातें देखें. |
इमेज की जानकारी
इमेज एसेट के लिए ज़रूरी जानकारी नीचे दी गई है:
आसपेक्ट रेशियो | कम से कम पिक्सल | सुझाए गए पिक्सल |
---|---|---|
स्क्वेयर (1x1) पसंदीदा |
300x300 | 1200x1200 |
लैंडस्केप (1.91x1) | 600x314 | 1200x628 |
पोर्ट्रेट (4x5) | 480x600 | 960x1200 |
फ़ाइल फ़ॉर्मैट
PNG, JPG, स्टैटिक GIF, WebP
फ़ाइल का ज़्यादा से ज़्यादा साइज़
5120 केबी
अन्य सुझाव
- इमेज के लिए सुरक्षित जगह: अपने मुख्य कॉन्टेंट को इमेज के बीच वाले 80% हिस्से में रखें इमेज.
- पारदर्शी बैकग्राउंड का इस्तेमाल करें, ताकि इमेज ठीक से दिख सके गहरे और हल्के रंग वाली थीम की सेटिंग.
दूसरा चरण: क्लस्टर डेटा उपलब्ध कराना
हमारा सुझाव है कि बैकग्राउंड में कॉन्टेंट पब्लिश करने का काम करें (उदाहरण के लिए, WorkManager का इस्तेमाल करके) और नियमित आधार पर या किसी इवेंट के आधार पर शेड्यूल किया गया हो. उदाहरण के लिए, हर बार उपयोगकर्ता ऐप्लिकेशन खोलता है या जब उपयोगकर्ता ने अपने कार्ट में कुछ जोड़ा होता है).
खाने के क्लस्टर पब्लिश करने की ज़िम्मेदारी AppEngageFoodClient
की है.
क्लाइंट में क्लस्टर पब्लिश करने के लिए, यहां दिए गए एपीआई हैं:
isServiceAvailable
publishRecommendationClusters
publishFeaturedCluster
publishFoodShoppingCart
publishFoodShoppingList
publishReorderCluster
publishUserAccountManagementRequest
updatePublishStatus
deleteRecommendationsClusters
deleteFeaturedCluster
deleteFoodShoppingCartCluster
deleteFoodShoppingListCluster
deleteReorderCluster
deleteUserManagementCluster
deleteClusters
isServiceAvailable
इस एपीआई का इस्तेमाल यह पता लगाने के लिए किया जाता है कि सेवा, इंटिग्रेशन और कि कॉन्टेंट को डिवाइस पर दिखाया जा सकता है या नहीं.
Kotlin
client.isServiceAvailable.addOnCompleteListener { task -> if (task.isSuccessful) { // Handle IPC call success if(task.result) { // Service is available on the device, proceed with content publish // calls. } else { // Service is not available, no further action is needed. } } else { // The IPC call itself fails, proceed with error handling logic here, // such as retry. } }
Java
client.isServiceAvailable().addOnCompleteListener(task - > { if (task.isSuccessful()) { // Handle success if(task.getResult()) { // Service is available on the device, proceed with content publish // calls. } else { // Service is not available, no further action is needed. } } else { // The IPC call itself fails, proceed with error handling logic here, // such as retry. } });
publishRecommendationClusters
इस एपीआई का इस्तेमाल, सूची RecommendationCluster
ऑब्जेक्ट को पब्लिश करने के लिए किया जाता है.
किसी RecommendationCluster
ऑब्जेक्ट में ये एट्रिब्यूट हो सकते हैं:
एट्रिब्यूट | ज़रूरी शर्त | ब्यौरा |
---|---|---|
ProductEntity, StoreEntity या RecipeEntity की सूची | ज़रूरी है | उन इकाइयों की सूची जो इसके लिए सुझाव तैयार करती हैं सुझाव क्लस्टर. किसी एक क्लस्टर में मौजूद इकाइयां एक जैसी होनी चाहिए टाइप करें. |
शीर्षक | ज़रूरी है | सुझाव क्लस्टर का टाइटल (उदाहरण के लिए, Big थैंक्सगिविंग मेन्यू पर बचत). टेक्स्ट का सुझाया गया साइज़: 25 से कम वर्ण (ऐसा टेक्स्ट जो बहुत लंबे होने पर एलिप्सिस दिख सकते हैं) |
उपशीर्षक | वैकल्पिक | सुझाव क्लस्टर का सबटाइटल. |
ऐक्शन Uri | वैकल्पिक |
पार्टनर ऐप्लिकेशन में उस पेज का डीप लिंक, जहां उपयोगकर्ता सुझावों की पूरी सूची. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले सवाल देखें |
Kotlin
client.publishRecommendationClusters( PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Big savings on Thanksgiving menu") .build()) .build())
Java
client.publishRecommendationClusters( new PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( new RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Big savings on Thanksgiving menu") .build()) .build());
जब सेवा को अनुरोध मिलता है, तो नीचे दी गई कार्रवाइयां होती हैं एक लेन-देन:
- सभी मौजूदा सुझाव क्लस्टर का डेटा हटा दिया गया है.
- अनुरोध के डेटा को पार्स किया जाता है और नए सुझाव क्लस्टर में सेव किया जाता है.
कोई गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति रखरखाव किया जा रहा है.
publishFeaturedCluster
इस एपीआई का इस्तेमाल, FeaturedCluster
ऑब्जेक्ट को पब्लिश करने के लिए किया जाता है.
Kotlin
client.publishFeaturedCluster( PublishFeaturedClusterRequest.Builder() .setFeaturedCluster( FeaturedCluster.Builder() ... .build()) .build())
Java
client.publishFeaturedCluster( new PublishFeaturedClusterRequest.Builder() .setFeaturedCluster( new FeaturedCluster.Builder() ... .build()) .build());
जब सेवा को अनुरोध मिलता है, तो नीचे दी गई कार्रवाइयां होती हैं एक लेन-देन:
- डेवलपर पार्टनर से मिला,
FeaturedCluster
का मौजूदा डेटा हटा दिया जाता है. - अनुरोध के डेटा को पार्स किया जाता है और अपडेट किए गए चुनिंदा क्लस्टर में स्टोर किया जाता है.
कोई गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति रखरखाव किया जा रहा है.
publishFoodShoppingCart
इस एपीआई का इस्तेमाल, FoodShoppingCart
ऑब्जेक्ट को पब्लिश करने के लिए किया जाता है.
Kotlin
client.publishFoodShoppingCart( PublishFoodShoppingCartClusterRequest.Builder() .setShoppingCart( FoodShoppingCart.Builder() ... .build()) .build())
Java
client.publishFoodShoppingCart( new PublishFoodShoppingCartClusterRequest.Builder() .setShoppingCart( new FoodShoppingCart.Builder() ... .build()) .build());
जब सेवा को अनुरोध मिलता है, तो नीचे दी गई कार्रवाइयां होती हैं एक लेन-देन:
- डेवलपर पार्टनर से मिला,
FoodShoppingCart
का मौजूदा डेटा हटा दिया जाता है. - अनुरोध के डेटा को पार्स किया जाता है और अपडेट किए गए शॉपिंग कार्ट में स्टोर किया जाता है क्लस्टर.
कोई गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति रखरखाव किया जा रहा है.
publishFoodShoppingList
इस एपीआई का इस्तेमाल, FoodShoppingList
ऑब्जेक्ट को पब्लिश करने के लिए किया जाता है.
Kotlin
client.publishFoodShoppingList( PublishFoodShoppingListRequest.Builder() .setFoodShoppingList( FoodShoppingListEntity.Builder() ... .build()) .build())
Java
client.publishFoodShoppingList( new PublishFoodShoppingListRequest.Builder() .setFoodShoppingList( new FoodShoppingListEntity.Builder() ... .build()) .build());
जब सेवा को अनुरोध मिलता है, तो नीचे दी गई कार्रवाइयां होती हैं एक लेन-देन:
- डेवलपर पार्टनर से मिला,
FoodShoppingList
का मौजूदा डेटा हटा दिया जाता है. - अनुरोध के डेटा को पार्स किया जाता है और अपडेट की गई खरीदारी की सूची में स्टोर किया जाता है क्लस्टर.
कोई गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति रखरखाव किया जा रहा है.
publishReorderCluster
इस एपीआई का इस्तेमाल, FoodReorderCluster
ऑब्जेक्ट को पब्लिश करने के लिए किया जाता है.
Kotlin
client.publishReorderCluster( PublishReorderClusterRequest.Builder() .setReorderCluster( FoodReorderCluster.Builder() ... .build()) .build())
Java
client.publishReorderCluster( new PublishReorderClusterRequest.Builder() .setReorderCluster( new FoodReorderCluster.Builder() ... .build()) .build());
जब सेवा को अनुरोध मिलता है, तो नीचे दी गई कार्रवाइयां होती हैं एक लेन-देन:
- डेवलपर पार्टनर से मिला,
FoodReorderCluster
का मौजूदा डेटा हटा दिया जाता है. - अनुरोध के डेटा को पार्स किया जाता है और अपडेट किए गए फिर से ऑर्डर किए गए क्लस्टर में स्टोर किया जाता है.
कोई गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति रखरखाव किया जा रहा है.
publishUserAccountManagementRequest
इस एपीआई का इस्तेमाल साइन इन कार्ड को पब्लिश करने के लिए किया जाता है . साइन इन करने की कार्रवाई उपयोगकर्ता को यहां ले जाएगी: ऐप्लिकेशन के साइन इन पेज पर, ताकि ऐप्लिकेशन कॉन्टेंट पब्लिश कर सके (या ज़्यादा जानकारी उपलब्ध करा सके) आपके हिसाब से बनाया गया कॉन्टेंट)
नीचे दिया गया मेटाडेटा, साइन इन कार्ड का हिस्सा है -
एट्रिब्यूट | ज़रूरी शर्त | ब्यौरा |
---|---|---|
ऐक्शन Uri | ज़रूरी है | कार्रवाई के लिए डीपलिंक (यानी कि ऐप्लिकेशन के साइन-इन पेज पर ले जाता है) |
इमेज | वैकल्पिक - अगर टाइटल नहीं दिया गया है, तो टाइटल देना ज़रूरी है |
कार्ड पर दिखाई गई चित्र 16x9 के आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) वाली इमेज, जिनका रिज़ॉल्यूशन 1264x712 है |
शीर्षक | वैकल्पिक - अगर दी नहीं गई है, तो इमेज दी जानी चाहिए | कार्ड पर लिखा टाइटल |
कार्रवाई टेक्स्ट | वैकल्पिक | सीटीए पर दिखाया गया टेक्स्ट (यानी साइन इन करें) |
उपशीर्षक | वैकल्पिक | कार्ड पर वैकल्पिक सबटाइटल |
Kotlin
var SIGN_IN_CARD_ENTITY = SignInCardEntity.Builder() .addPosterImage( Image.Builder() .setImageUri(Uri.parse("http://www.x.com/image.png")) .setImageHeightInPixel(500) .setImageWidthInPixel(500) .build()) .setActionText("Sign In") .setActionUri(Uri.parse("http://xx.com/signin")) .build() client.publishUserAccountManagementRequest( PublishUserAccountManagementRequest.Builder() .setSignInCardEntity(SIGN_IN_CARD_ENTITY) .build());
Java
SignInCardEntity SIGN_IN_CARD_ENTITY = new SignInCardEntity.Builder() .addPosterImage( new Image.Builder() .setImageUri(Uri.parse("http://www.x.com/image.png")) .setImageHeightInPixel(500) .setImageWidthInPixel(500) .build()) .setActionText("Sign In") .setActionUri(Uri.parse("http://xx.com/signin")) .build(); client.publishUserAccountManagementRequest( new PublishUserAccountManagementRequest.Builder() .setSignInCardEntity(SIGN_IN_CARD_ENTITY) .build());
जब सेवा को अनुरोध मिलता है, तो नीचे दी गई कार्रवाइयां होती हैं एक लेन-देन:
- डेवलपर पार्टनर से मिला मौजूदा
UserAccountManagementCluster
डेटा यह है हटाया गया. - अनुरोध के डेटा को पार्स किया जाता है और अपडेट किए गए UserAccountManagementCluster क्लस्टर.
कोई गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति रखरखाव किया जा रहा है.
updatePublishStatus
अगर कारोबार की किसी अंदरूनी वजह से, कोई भी क्लस्टर पब्लिश नहीं किया गया है, हमारा सुझाव है कि आप updatePublicStatus एपीआई. ऐसा इसलिए ज़रूरी है, क्योंकि :
- कॉन्टेंट पब्लिश होने के बाद भी, हर स्थिति में स्टेटस देना (STATUS == पब्लिश किया गया), इसका इस्तेमाल करने वाले डैशबोर्ड को भरने के लिए ज़रूरी है स्टेटस के बारे में भी बताएं.
- अगर कोई कॉन्टेंट पब्लिश नहीं हुआ है, लेकिन इंटिग्रेशन की स्थिति सही नहीं है (STATUS == NOT_PUBLISHED), Google ऐप्लिकेशन में चेतावनियों को ट्रिगर होने से रोक सकता है हेल्थ डैशबोर्ड्स. यह पुष्टि करता है कि कॉन्टेंट को पब्लिश नहीं करने की वजह से उम्मीद के मुताबिक स्थिति हो सकती है.
- इससे डेवलपर को यह इनसाइट देने में मदद मिलती है कि डेटा कब पब्लिश किया गया है और कब नहीं.
- Google, इन स्टेटस कोड का इस्तेमाल करके, उपयोगकर्ता को ताकि वे ऐप्लिकेशन का कॉन्टेंट देख सकें या उससे उबर सकें.
पब्लिश करने की मंज़ूरी की स्थिति वाले कोड की सूची यहां दी गई है :
// Content is published
AppEngagePublishStatusCode.PUBLISHED,
// Content is not published as user is not signed in
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN,
// Content is not published as user is not subscribed
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SUBSCRIPTION,
// Content is not published as user location is ineligible
AppEngagePublishStatusCode.NOT_PUBLISHED_INELIGIBLE_LOCATION,
// Content is not published as there is no eligible content
AppEngagePublishStatusCode.NOT_PUBLISHED_NO_ELIGIBLE_CONTENT,
// Content is not published as the feature is disabled by the client
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_FEATURE_DISABLED_BY_CLIENT,
// Content is not published as the feature due to a client error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_CLIENT_ERROR,
// Content is not published as the feature due to a service error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_SERVICE_ERROR,
// Content is not published due to some other reason
// Reach out to engage-developers@ before using this enum.
AppEngagePublishStatusCode.NOT_PUBLISHED_OTHER
अगर कॉन्टेंट को पब्लिश नहीं किया गया है, क्योंकि उपयोगकर्ता ने लॉग इन नहीं किया है, Google, साइन इन कार्ड को पब्लिश करने का सुझाव देगा. अगर किसी वजह से सेवा देने वाली कंपनियां, साइन इन कार्ड पब्लिश नहीं कर पा रही हैं इसके बाद, हमारा सुझाव है कि आप updatepublishStatus API पर कॉल करें स्थिति कोड NOT_PUBLISHED_REQUIRES_SIGN_IN के साथ
Kotlin
client.updatePublishStatus( PublishStatusRequest.Builder() .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN) .build())
Java
client.updatePublishStatus( new PublishStatusRequest.Builder() .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN) .build());
deleteRecommendationClusters
इस एपीआई का इस्तेमाल, सुझाव क्लस्टर का कॉन्टेंट मिटाने के लिए किया जाता है.
Kotlin
client.deleteRecommendationClusters()
Java
client.deleteRecommendationClusters();
जब सेवा को अनुरोध मिलता है, तो वह सुझाव क्लस्टर. कोई गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति बनी रहेगी.
deleteFeaturedCluster
इस एपीआई का इस्तेमाल, चुनिंदा क्लस्टर का कॉन्टेंट मिटाने के लिए किया जाता है.
Kotlin
client.deleteFeaturedCluster()
Java
client.deleteFeaturedCluster();
जब सेवा को अनुरोध मिलता है, तो वह चुनिंदा क्लस्टर. कोई गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति बनी रहेगी.
deleteFoodShoppingCartCluster
इस एपीआई का इस्तेमाल, फ़ूड शॉपिंग कार्ट क्लस्टर का कॉन्टेंट मिटाने के लिए किया जाता है.
Kotlin
client.deleteFoodShoppingCartCluster()
Java
client.deleteFoodShoppingCartCluster();
जब सेवा को अनुरोध मिलता है, तो वह फ़ूड शॉपिंग कार्ट क्लस्टर. कोई गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति बनी रहेगी.
deleteFoodShoppingListCluster
इस एपीआई का इस्तेमाल, फ़ूड शॉपिंग लिस्ट क्लस्टर का कॉन्टेंट मिटाने के लिए किया जाता है.
Kotlin
client.deleteFoodShoppingListCluster()
Java
client.deleteFoodShoppingListCluster();
जब सेवा को अनुरोध मिलता है, तो वह फ़ूड शॉपिंग लिस्ट क्लस्टर. कोई गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति बनी रहेगी.
deleteReorderCluster
इस एपीआई का इस्तेमाल FoodReorderCluster का कॉन्टेंट मिटाने के लिए किया जाता है.
Kotlin
client.deleteReorderCluster()
Java
client.deleteReorderCluster();
जब सेवा को अनुरोध मिलता है, तो वह क्लस्टर फिर से क्रम में लगाएं. कोई गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति बनी रहेगी.
deleteUserManagementCluster
इस एपीआई का इस्तेमाल UserAccountManagement Cluster का कॉन्टेंट मिटाने के लिए किया जाता है.
Kotlin
client.deleteUserManagementCluster()
Java
client.deleteUserManagementCluster();
जब सेवा को अनुरोध मिलता है, तो वह UserAccountManagement क्लस्टर. किसी गड़बड़ी की स्थिति में, पूरे अनुरोध को अस्वीकार कर दिया गया है और मौजूदा स्थिति में बदलाव नहीं किया गया है.
deleteClusters
इस एपीआई का इस्तेमाल किसी खास तरह के क्लस्टर का कॉन्टेंट मिटाने के लिए किया जाता है.
Kotlin
client.deleteClusters( DeleteClustersRequest.Builder() .addClusterType(ClusterType.TYPE_FEATURED) .addClusterType(ClusterType.TYPE_RECOMMENDATION) ... .build())
Java
client.deleteClusters( new DeleteClustersRequest.Builder() .addClusterType(ClusterType.TYPE_FEATURED) .addClusterType(ClusterType.TYPE_RECOMMENDATION) ... .build());
जब सेवा को अनुरोध मिलता है, तो वह सभी सेवाओं से मौजूदा डेटा हटा देती है किसी खास तरह के क्लस्टर से मिलते-जुलते क्लस्टर. क्लाइंट इनमें से किसी एक तरीके को कई तरह के क्लस्टर हैं. कोई गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति को बनाए रखा जाता है.
गड़बड़ी ठीक करना
हमारा सुझाव है कि आप Publishing API की मदद से बनाए गए टास्क के नतीजे को सुनें कि किसी सफल टास्क को वापस पाने और उसे फिर से सबमिट करने के लिए, फ़ॉलो-अप कार्रवाई की जा सकती है.
client.publishRecommendationClusters(
new PublishRecommendationClustersRequest.Builder()
.addRecommendationCluster(...)
.build())
.addOnCompleteListener(
task -> {
if (task.isSuccessful()) {
// do something
} else {
Exception exception = task.getException();
if (exception instanceof AppEngageException) {
@AppEngageErrorCode
int errorCode = ((AppEngageException) exception).getErrorCode();
if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) {
// do something
}
}
}
});
गड़बड़ी को AppEngageException
के तौर पर दिखाया जाता है. इसके लिए, वजह भी बताई जाती है
गड़बड़ी कोड.
गड़बड़ी कोड | नोट |
---|---|
SERVICE_NOT_FOUND |
दिए गए डिवाइस पर सेवा उपलब्ध नहीं है. |
SERVICE_NOT_AVAILABLE |
दिए गए डिवाइस पर सेवा उपलब्ध है, लेकिन यह उपलब्ध नहीं है कॉल करते समय (उदाहरण के लिए, उन्हें साफ़ तौर पर बंद किया गया हो). |
SERVICE_CALL_EXECUTION_FAILURE |
थ्रेडिंग से जुड़ी समस्याओं की वजह से, टास्क नहीं चलाया जा सका. इस स्थिति में, यह दोबारा कोशिश की जाएगी. |
SERVICE_CALL_PERMISSION_DENIED |
कॉलर को सेवा कॉल करने की अनुमति नहीं है. |
SERVICE_CALL_INVALID_ARGUMENT |
अनुरोध में अमान्य डेटा मौजूद है (उदाहरण के लिए, तय सीमा से ज़्यादा क्लस्टर की संख्या). |
SERVICE_CALL_INTERNAL |
सेवा की ओर कोई गड़बड़ी है. |
SERVICE_CALL_RESOURCE_EXHAUSTED |
सेवा कॉल बार-बार किया जाता है. |
तीसरा चरण: ब्रॉडकास्ट के इंटेंट मैनेज करना
किसी जॉब के ज़रिए, Publishing Content API कॉल करने के अलावा, यह
सेट अप करने के लिए ज़रूरी है
पाने के लिए BroadcastReceiver
कॉन्टेंट पब्लिश करने का अनुरोध सबमिट करें.
ब्रॉडकास्ट इंटेंट का मकसद, मुख्य रूप से ऐप्लिकेशन को फिर से चालू करना और डेटा को ज़बरदस्ती लागू करना है सिंक. ब्रॉडकास्ट के इंटेंट, इस तरह से डिज़ाइन नहीं किए जाते कि उन्हें समय-समय पर भेजा जा सके. यह सिर्फ़ यह तब ट्रिगर होता है, जब Engage सेवा यह तय करती है कि कॉन्टेंट पुराना है या नहीं (इसके लिए उदाहरण के लिए, एक हफ़्ते पुराना). इस तरह, विज्ञापन देखने वाले को भरोसा होगा कि वह आपको एक नया कॉन्टेंट अनुभव मिलेगा, भले ही ऐप्लिकेशन को लंबे समय तक रोका है.
BroadcastReceiver
को इन दो तरीकों से सेट अप किया जाना चाहिए:
BroadcastReceiver
क्लास के इंस्टेंस को डाइनैमिक तौर पर रजिस्टर करने के लिए, इनका इस्तेमाल करेंContext.registerReceiver()
. इसकी मदद से, ऐप्लिकेशन के ज़रिए बातचीत की जा सकती है जो अब भी मेमोरी में हैं.
class AppEngageBroadcastReceiver extends BroadcastReceiver {
// Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast
// is received
// Trigger featured cluster publish when PUBLISH_FEATURED broadcast is received
// Trigger shopping cart cluster publish when PUBLISH_FOOD_SHOPPING_CART
// broadcast is received
// Trigger shopping list cluster publish when PUBLISH_FOOD_SHOPPING_LIST
// broadcast is received
// Trigger reorder cluster publish when PUBLISH_REORDER_CLUSTER broadcast is
// received
}
public static void registerBroadcastReceivers(Context context) {
context = context.getApplicationContext();
// Register Recommendation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_RECOMMENDATION));
// Register Featured Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_FEATURED));
// Register Shopping Cart Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.food.service.Intents.ACTION_PUBLISH_FOOD_SHOPPING_CART));
// Register Shopping List Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.food.service.Intents.ACTION_PUBLISH_FOOD_SHOPPING_LIST));
// Register Reorder Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.food.service.Intents.ACTION_PUBLISH_REORDER_CLUSTER));
}
- अपने
<receiver>
AndroidManifest.xml
फ़ाइल. इससे ऐप्लिकेशन को ब्रॉडकास्ट मिलने लगता है इंटेंट, जब वह नहीं चल रहा होता है, और ऐप्लिकेशन को प्रकाशित करने की अनुमति भी देता है या वीडियो कॉन्टेंट.
<application>
<receiver
android:name=".AppEngageBroadcastReceiver"
android:exported="true"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.engage.action.PUBLISH_RECOMMENDATION" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.PUBLISH_FEATURED" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.food.PUBLISH_FOOD_SHOPPING_CART" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.food.PUBLISH_FOOD_SHOPPING_LIST" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.food.PUBLISH_REORDER_CLUSTER" />
</intent-filter>
</receiver>
</application>
ये इंटेंट सेवा:
com.google.android.engage.action.PUBLISH_RECOMMENDATION
हमारा सुझाव है कि आपpublishRecommendationClusters
कॉल तब शुरू करें, जब इस इंटेंट को स्वीकार कर रहे हैं.com.google.android.engage.action.PUBLISH_FEATURED
हमारा सुझाव है कि इस कॉल को पाने के लिए,publishFeaturedCluster
कॉल करें इंटेंट.com.google.android.engage.action.food.PUBLISH_FOOD_SHOPPING_CART
हमारा सुझाव है कि कॉल रिसीव करने के दौरान,publishFoodShoppingCart
से कॉल करें इस इंटेंट के आधार पर.com.google.android.engage.action.food.PUBLISH_FOOD_SHOPPING_LIST
हमारा सुझाव है कि कॉल रिसीव करने के दौरान,publishFoodShoppingList
से कॉल करें इस इंटेंट के आधार पर.com.google.android.engage.action.food.PUBLISH_REORDER_CLUSTER
हमारा सुझाव है कि इस कॉल को पाने के लिए,publishReorderCluster
कॉल करें इंटेंट.
एकीकरण वर्कफ़्लो
इंटिग्रेशन पूरा हो जाने के बाद, उसकी पुष्टि करने से जुड़े सिलसिलेवार निर्देश के लिए, देखें डेवलपर इंटिग्रेशन वर्कफ़्लो का इस्तेमाल करना.
अक्सर पूछे जाने वाले सवाल
इनके बारे में जानने के लिए, जुड़ाव वाले SDK टूल के बारे में अक्सर पूछे जाने वाले सवाल देखें अक्सर पूछे जाने वाले सवाल.
संपर्क
संपर्क जानकारी engagement-developers@google.com पर, अगर वहां इंटिग्रेशन के दौरान पूछे गए किसी भी सवाल का जवाब दिया जा सकता है. हमारी टीम जल्द से जल्द जवाब देगी किया जा सकता है.
अगले चरण
इस इंटिग्रेशन को पूरा करने के बाद, आपको ये काम करने होंगे:
- इन्हें ईमेल भेजें engagement-developers@google.com और अटैच करें आपका इंटिग्रेट किया गया APK, जिसे Google टेस्ट करने के लिए तैयार है.
- Google यह पक्का करने के लिए संगठन में काम करने वाले लोगों के लिए, कारोबार की पुष्टि और समीक्षा करेगा इंटिग्रेशन उम्मीद के मुताबिक काम करता है. ज़रूरत पड़ने पर, Google आपसे संपर्क करेगा पर ईमेल करें.
- जांच पूरी हो जाने और किसी बदलाव की ज़रूरत न होने पर, Google आपसे संपर्क करेगा आपको सूचित करेगा कि आप अपडेट किए गए और एकीकृत APK प्रकाशित करना शुरू कर सकते हैं Play Store पर टैप करें.
- जब Google पुष्टि कर देगा कि आपका अपडेट किया गया APK Play Store, आपका सुझाव, चुनिंदा, शॉपिंग कार्ट, खरीदारी की सूची और फिर से क्रम में लगाएं क्लस्टर प्रकाशित किए जाएंगे और ये इन्हें दिखाई देंगे उपयोगकर्ता.