SDK टूल की परफ़ॉर्मेंस और फ़िटनेस से जुड़ी जानकारी दें: तीसरे पक्ष के तकनीकी इंटिग्रेशन के निर्देश

अपने उपयोगकर्ताओं तक पहुंचकर, ऐप्लिकेशन में यूज़र ऐक्टिविटी बढ़ाएं. Engage SDK टूल को इंटिग्रेट करें, ताकि लोगों को उनकी दिलचस्पी के मुताबिक सुझाव और 'देखना जारी रखें' कॉन्टेंट सीधे उपयोगकर्ता के डिवाइस पर अलग-अलग प्लैटफ़ॉर्म पर दिखे. इनमें कलेक्शन, टीवी, फ़िल्में वगैरह एक ही जगह पर देखने की सुविधा, और Play Store शामिल हैं. इंटिग्रेशन से, कंप्रेस किए गए औसत APK में 50 केबी से भी कम डेटा जुड़ता है. साथ ही, ज़्यादातर ऐप्लिकेशन के लिए डेवलपर को एक हफ़्ते का समय लगता है. ज़्यादा जानने के लिए, हमारी कारोबार की साइट पर जाएं.

इस गाइड में, डेवलपर पार्टनर के लिए निर्देश दिए गए हैं. इनकी मदद से, Engage की कॉन्टेंट वाली जगहों पर स्वास्थ्य और फ़िटनेस से जुड़ा कॉन्टेंट डिलीवर किया जा सकता है.

इंटिग्रेशन की जानकारी

शब्दावली

इस इंटिग्रेशन में, तीन तरह के क्लस्टर शामिल होते हैं: सुझाव, चुनिंदा, और जारी रखें.

  • सुझाव वाले क्लस्टर, किसी एक डेवलपर पार्टनर के कॉन्टेंट में से आपकी दिलचस्पी के हिसाब से सेहत और फ़िटनेस से जुड़े सुझाव दिखाते हैं. ये सुझाव, लोगों की दिलचस्पी के हिसाब से बनाए जा सकते हैं या सामान्य हो सकते हैं. उदाहरण के लिए, फ़िटनेस और सेहत से जुड़े ट्रेंड. इनका इस्तेमाल करके, स्वास्थ्य और फ़िटनेस से जुड़े लेख या लोगों को खोजा जा सकता है.

    • सुझाव का क्लस्टर, ArticleEntity, PersonEntity या EventEntity से बनाया जा सकता है. हालांकि, इसमें अलग-अलग तरह की इकाइयों को शामिल नहीं किया जा सकता.

    आपको इस तरह के सुझाव दिखेंगे:

    • सुझाव के क्लस्टर: एक यूज़र इंटरफ़ेस (यूआई) दिखता है. इसमें एक ही डेवलपर पार्टनर के कॉन्टेंट में सुझाव दिखाए जाते हैं.

    • इकाई: इसमें एक कॉन्टेंट दिखता है. इस इंटिग्रेशन से कुछ ऐसी इकाइयां मिलती हैं जिन्हें सुझाव क्लस्टर का इस्तेमाल करके दिखाया जाएगा:

      • ArticleEntity: ArticleEntity, सेहत और फ़िटनेस से जुड़े टेक्स्ट वाले कॉन्टेंट के सुझाव को दिखाता है. इसका इस्तेमाल लेख, ब्लॉग पोस्ट, मार्केटिंग कॉन्टेंट, खबरों के स्निपेट वगैरह के लिए किया जा सकता है.

        पहली इमेज: यूज़र इंटरफ़ेस (यूआई), जिसमें सुझाव वाले क्लस्टर में एक ArticleEntity दिख रही है.
      • PersonEntity: PersonEntity, किसी व्यक्ति के बारे में जानकारी देता है. सुझावों में, किसी कोच या सेहत और फ़िटनेस से जुड़े किसी व्यक्ति को हाइलाइट किया जा सकता है.

        दूसरी इमेज: यूज़र इंटरफ़ेस (यूआई) में, सुझाव वाले क्लस्टर में एक ही PersonEntity दिख रही है.
      • EventEntity: EventEntity, आने वाले समय में होने वाले किसी इवेंट को दिखाता है. इवेंट शुरू होने का समय एक अहम जानकारी है, जिसे उपयोगकर्ताओं को बताना ज़रूरी है. इस इकाई का इस्तेमाल, स्वास्थ्य और फ़िटनेस से जुड़े इवेंट दिखाने के लिए किया जा सकता है. जैसे, रक्तदान शिविर, ट्रेनिंग सेशन, जिम या योग क्लास वगैरह.

        तीसरी इमेज: यूज़र इंटरफ़ेस (यूआई), जिसमें सुझाव वाले क्लस्टर में एक इवेंट एंटिटी दिखाई गई है.
  • जारी रखने वाला क्लस्टर, एक ही यूज़र इंटरफ़ेस (यूआई) ग्रुपिंग में, कई डेवलपर पार्टनर के ऐसे कॉन्टेंट को दिखाता है जिसमें उपयोगकर्ताओं ने हाल ही में दिलचस्पी दिखाई है. हर डेवलपर पार्टनर को, जारी रखने वाले क्लस्टर में ज़्यादा से ज़्यादा 10 इकाइयां ब्रॉडकास्ट करने की अनुमति होगी.

    आपके पास, आगे के कॉन्टेंट को इस तरह से स्ट्रक्चर करने का विकल्प होता है:

    • ArticleEntity: ArticleEntity, सेहत और फ़िटनेस से जुड़े टेक्स्ट वाले कॉन्टेंट के लिए सुझाव दिखाता है. इस इकाई का इस्तेमाल, ऐसे अधूरे लेखों या अन्य कॉन्टेंट को दिखाने के लिए किया जा सकता है जिसे उपयोगकर्ता ने पढ़ना या देखना बीच में छोड़ दिया था और अब उसे वहीं से शुरू करना है. उदाहरण: खबर का स्निपेट, सेहत या फ़िटनेस से जुड़े विषयों के बारे में ब्लॉग पोस्ट का स्निपेट.

      छठी इमेज. यूज़र इंटरफ़ेस (यूआई) की इमेज, जिसमें जारी रखने वाले क्लस्टर में एक ArticleEntity दिख रही है.
    • EventReservationEntity: EventReservationEntity, किसी इवेंट के लिए बुकिंग को दिखाता है. इससे लोगों को फ़िटनेस और स्वास्थ्य से जुड़े आने वाले या मौजूदा इवेंट की बुकिंग को ट्रैक करने में मदद मिलती है. उदाहरण: ट्रेनिंग सेशन

      आठवीं इमेज. यूज़र इंटरफ़ेस (यूआई), जिसमें वीडियो देखने के लिए सुझावों के क्लस्टर में एक EventReservationEntity दिख रही है.
  • चुनिंदा क्लस्टर, एक ही यूज़र इंटरफ़ेस (यूआई) ग्रुपिंग में, कई डेवलपर पार्टनर की चुनिंदा इकाइयां दिखाता है. इसमें एक ही चुनिंदा क्लस्टर होगा. यह यूज़र इंटरफ़ेस (यूआई) में सबसे ऊपर दिखेगा. इसे सभी सुझाव वाले क्लस्टर से ऊपर रखा जाएगा. हर डेवलपर पार्टनर को, चुनिंदा क्लस्टर में ज़्यादा से ज़्यादा 10 इकाइयां ब्रॉडकास्ट करने की अनुमति होगी.

    • GenericFeaturedEntity: GenericFeaturedEntity, सुझाई गई चीज़ों से इस मामले में अलग है कि चुनिंदा चीज़ों का इस्तेमाल, डेवलपर के सबसे लोकप्रिय कॉन्टेंट के लिए किया जाना चाहिए. साथ ही, इसमें सबसे अहम कॉन्टेंट शामिल होना चाहिए, जो उपयोगकर्ताओं के लिए दिलचस्प और काम का हो.

      बारहवीं इमेज: यूज़र इंटरफ़ेस (यूआई) में, फ़ीचर किए गए क्लस्टर में एक ही हीरो GenericFeaturedEntity कार्ड दिखाया गया है

प्री-वर्क

कम से कम एपीआई लेवल: 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.6.0'
}

खास जानकारी

यह डिज़ाइन, बाउंड सर्विस के लागू होने पर आधारित है.

कोई क्लाइंट, अलग-अलग क्लस्टर टाइप के लिए इस तरह का डेटा पब्लिश कर सकता है:

क्लस्टर का टाइप क्लस्टर की सीमाएं किसी क्लस्टर में कम से कम इकाइयों की सीमाएं किसी क्लस्टर में ज़्यादा से ज़्यादा कितनी इकाइयां हो सकती हैं
सुझाव क्लस्टर ज़्यादा से ज़्यादा 7 कम से कम 1 ज़्यादा से ज़्यादा 50 (ArticleEntity, PersonEntity या EventEntity)
जारी रखने वाला क्लस्टर ज़्यादा से ज़्यादा 1 कम से कम 1 ज़्यादा से ज़्यादा 20 (ArticleEntity या EventReservationEntity)
चुनिंदा क्लस्टर ज़्यादा से ज़्यादा 1 कम से कम 1 ज़्यादा से ज़्यादा 20 (GenericFeaturedEntity)

पहला चरण: इकाई का डेटा उपलब्ध कराना

एसडीके ने हर आइटम टाइप को दिखाने के लिए अलग-अलग इकाइयां तय की हैं. हम सेहत और फ़िटनेस कैटगरी के लिए, इन इकाइयों के साथ काम करते हैं:

  1. GenericFeaturedEntity
  2. ArticleEntity
  3. PersonEntity
  4. EventEntity
  5. EventReservationEntity

यहां दिए गए चार्ट में, हर टाइप के लिए उपलब्ध एट्रिब्यूट और ज़रूरी शर्तों के बारे में बताया गया है.

GenericFeaturedEntity

एट्रिब्यूट ज़रूरी शर्त ब्यौरा फ़ॉर्मैट
ऐक्शन यूआरआई ज़रूरी है

सेवा देने वाली कंपनी के ऐप्लिकेशन में मौजूद इकाई का डीप लिंक.

ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल का जवाब देखें

यूआरआई
पोस्टर इमेज ज़रूरी है

एक से ज़्यादा इमेज दिए जाने पर, हम सिर्फ़ एक इमेज दिखाएंगे. सुझाया गया आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) 16:9 है

ध्यान दें: अगर कोई बैज दिया गया है, तो कृपया पक्का करें कि इमेज के ऊपर और नीचे, दोनों तरफ़ 24 डीपीआई का सेफ़ स्पेस हो

दिशा-निर्देशों के लिए, इमेज की जानकारी देखें.
शीर्षक वैकल्पिक इकाई का टाइटल.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: 50 वर्ण

ब्यौरा वैकल्पिक

टेक्स्ट का एक पैराग्राफ़, जिसमें इकाई के बारे में बताया गया हो.

ध्यान दें: उपयोगकर्ता को ब्यौरा या सबटाइटल की सूची में से कोई एक ही दिखेगी, दोनों नहीं.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: 180 वर्ण

सबटाइटल की सूची वैकल्पिक

ज़्यादा से ज़्यादा तीन सबटाइटल जोड़े जा सकते हैं. हर सबटाइटल में एक लाइन का टेक्स्ट होना चाहिए.

ध्यान दें: उपयोगकर्ता को ब्यौरा या सबटाइटल की सूची में से कोई एक ही दिखेगी, दोनों नहीं.

फ़्री टेक्स्ट

हर सबटाइटल के लिए सुझाया गया टेक्स्ट साइज़: ज़्यादा से ज़्यादा 50 वर्ण

बैज वैकल्पिक

हर बैज में ज़्यादा से ज़्यादा 15 वर्णों का टेक्स्ट या छोटी इमेज होती है.

इमेज/वीडियो के ऊपर खास UX ट्रीटमेंट, जैसे कि इमेज पर बैज ओवरले

  • "लाइव अपडेट"
  • लेख पढ़ने की अवधि
बैज - टेक्स्ट वैकल्पिक

बैज का टाइटल

ध्यान दें: बैज के लिए, टेक्स्ट या इमेज में से किसी एक का होना ज़रूरी है

फ़्री टेक्स्ट

सुझाया गया टेक्स्ट साइज़: ज़्यादा से ज़्यादा 15 वर्ण

बैज - इमेज वैकल्पिक

छोटी इमेज

खास यूज़र एक्सपीरियंस (यूएक्स), जैसे कि इमेज/वीडियो थंबनेल पर बैज ओवरले के तौर पर.

ध्यान दें: बैज के लिए, टेक्स्ट या इमेज में से किसी एक का होना ज़रूरी है

दिशा-निर्देशों के लिए, इमेज की जानकारी देखें.
कॉन्टेंट की कैटगरी वैकल्पिक इकाई में मौजूद कॉन्टेंट की कैटगरी के बारे में जानकारी.

Enums की सूची

दिशा-निर्देशों के लिए, कॉन्टेंट कैटगरी सेक्शन देखें.

ArticleEntity

एट्रिब्यूट ज़रूरी शर्त ब्यौरा फ़ॉर्मैट
ऐक्शन यूआरआई ज़रूरी है

सेवा देने वाली कंपनी के ऐप्लिकेशन में मौजूद इकाई का डीप लिंक.

ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल का जवाब देखें

यूआरआई
शीर्षक ज़रूरी है इकाई का टाइटल.

फ़्री टेक्स्ट

सुझाया गया टेक्स्ट साइज़: ज़्यादा से ज़्यादा 50 वर्ण

पोस्टर इमेज वैकल्पिक

एक से ज़्यादा इमेज दिए जाने पर, हम सिर्फ़ एक इमेज दिखाएंगे. सुझाया गया आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) 16:9 है

ध्यान दें: इमेज जोड़ने का सुझाव दिया जाता है. अगर कोई बैज दिया गया है, तो कृपया पक्का करें कि इमेज के ऊपर और नीचे, 24 डीपीआई का सेफ़ स्पेस हो

दिशा-निर्देशों के लिए, इमेज की जानकारी देखें.
सोर्स - टाइटल वैकल्पिक लेखक, संगठन या रिपोर्टर का नाम

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: 25 वर्णों से कम

सोर्स - इमेज वैकल्पिक सोर्स की इमेज, जैसे कि लेखक, संगठन, रिपोर्टर दिशा-निर्देशों के लिए, इमेज की जानकारी देखें.
ब्यौरा वैकल्पिक

टेक्स्ट का एक पैराग्राफ़, जिसमें इकाई के बारे में बताया गया हो.

ध्यान दें: उपयोगकर्ता को ब्यौरा या सबटाइटल की सूची में से कोई एक ही दिखेगी, दोनों नहीं.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: 180 वर्ण

सबटाइटल की सूची वैकल्पिक

ज़्यादा से ज़्यादा तीन सबटाइटल जोड़े जा सकते हैं. हर सबटाइटल में एक लाइन का टेक्स्ट होना चाहिए.

ध्यान दें: उपयोगकर्ता को ब्यौरा या सबटाइटल की सूची में से कोई एक ही दिखेगी, दोनों नहीं.

फ़्री टेक्स्ट

हर सबटाइटल के लिए सुझाया गया टेक्स्ट साइज़: ज़्यादा से ज़्यादा 50 वर्ण

बैज वैकल्पिक

हर बैज में ज़्यादा से ज़्यादा 15 वर्णों का टेक्स्ट या छोटी इमेज होती है.

इमेज/वीडियो के ऊपर खास UX ट्रीटमेंट, जैसे कि इमेज पर बैज ओवरले

  • "लाइव अपडेट"
  • लेख पढ़ने की अवधि
बैज - टेक्स्ट वैकल्पिक

बैज का टाइटल

ध्यान दें: बैज के लिए, टेक्स्ट या इमेज में से किसी एक का होना ज़रूरी है

फ़्री टेक्स्ट

सुझाया गया टेक्स्ट साइज़: ज़्यादा से ज़्यादा 15 वर्ण

बैज - इमेज वैकल्पिक

छोटी इमेज

खास यूज़र एक्सपीरियंस (यूएक्स), जैसे कि इमेज/वीडियो थंबनेल पर बैज ओवरले के तौर पर.

ध्यान दें: बैज के लिए, टेक्स्ट या इमेज में से किसी एक का होना ज़रूरी है

दिशा-निर्देशों के लिए, इमेज की जानकारी देखें.
कॉन्टेंट पब्लिश करने का समय वैकल्पिक यह ईपॉक टाइमस्टैंप है. इसमें मिलीसेकंड में यह जानकारी दी जाती है कि कॉन्टेंट को ऐप्लिकेशन में कब पब्लिश / अपडेट किया गया था. एपॉक टाइमस्टैंप, मिलीसेकंड में
पिछली बार जुड़ाव का समय कुछ शर्तों के मुताबिक ज़रूरी है

यह ईपोक टाइमस्टैंप, मिलीसेकंड में होता है. इससे पता चलता है कि उपयोगकर्ता ने इस इकाई के साथ आखिरी बार कब इंटरैक्ट किया था.

ध्यान दें: अगर यह इकाई, कंटिन्यूएशन क्लस्टर का हिस्सा है, तो यह फ़ील्ड भरना ज़रूरी है.

एपॉक टाइमस्टैंप, मिलीसेकंड में
प्रोग्रेस का प्रतिशत कुछ शर्तों के मुताबिक ज़रूरी है

इससे पता चलता है कि उपयोगकर्ता ने अब तक कितना कॉन्टेंट देखा है.

ध्यान दें: अगर यह इकाई, कंटिन्यूएशन क्लस्टर का हिस्सा है, तो यह फ़ील्ड भरना ज़रूरी है.

यह 0 से 100 के बीच की पूर्णांक वैल्यू होती है.
कॉन्टेंट की कैटगरी वैकल्पिक इकाई में मौजूद कॉन्टेंट की कैटगरी के बारे में जानकारी.

Enums की सूची

दिशा-निर्देशों के लिए, कॉन्टेंट कैटगरी सेक्शन देखें.

PersonEntity

एट्रिब्यूट ज़रूरी शर्त ब्यौरा फ़ॉर्मैट
ऐक्शन यूआरआई ज़रूरी है

सेवा देने वाली कंपनी के ऐप्लिकेशन में मौजूद इकाई का डीप लिंक.

ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल का जवाब देखें

यूआरआई
प्रोफ़ाइल - नाम ज़रूरी है प्रोफ़ाइल का नाम, आईडी या हैंडल. जैसे, "John Doe", "@TeamPixel" वगैरह.

स्ट्रिंग

सुझाया गया टेक्स्ट साइज़: ज़्यादा से ज़्यादा 50 वर्ण

प्रोफ़ाइल - अवतार ज़रूरी है

उपयोगकर्ता की प्रोफ़ाइल फ़ोटो या अवतार इमेज.

ध्यान दें:यह स्क्वेयर 1:1 इमेज होनी चाहिए.

दिशा-निर्देशों के लिए, इमेज की जानकारी देखें.
प्रोफ़ाइल - अतिरिक्त टेक्स्ट वैकल्पिक प्रोफ़ाइल हैंडल की तरह फ़्री टेक्स्ट.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा 15 वर्ण

प्रोफ़ाइल - अन्य इमेज वैकल्पिक पुष्टि किए गए बैज जैसी छोटी इमेज. दिशा-निर्देशों के लिए, इमेज की जानकारी देखें.
हेडर इमेज वैकल्पिक

एक से ज़्यादा इमेज दिए जाने पर, हम सिर्फ़ एक इमेज दिखाएंगे. सुझाया गया आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) 16:9 है

ध्यान दें: इमेज जोड़ने का सुझाव दिया जाता है. अगर कोई बैज दिया गया है, तो कृपया पक्का करें कि इमेज के ऊपर और नीचे, 24 डीपीआई का सेफ़ स्पेस हो

दिशा-निर्देशों के लिए, इमेज की जानकारी देखें.
लोकप्रियता - संख्या वैकल्पिक

फ़ॉलोअर की संख्या या लोकप्रियता की वैल्यू बताएं.उदाहरण के लिए - "37 लाख".

ध्यान दें: अगर काउंट और काउंट वैल्यू, दोनों दी गई हैं, तो काउंट का इस्तेमाल किया जाएगा

स्ट्रिंग

सुझाया गया टेक्स्ट साइज़: संख्या और लेबल, दोनों के लिए ज़्यादा से ज़्यादा 20 वर्ण

लोकप्रियता - गिनती की वैल्यू वैकल्पिक

फ़ॉलोअर की संख्या या लोकप्रियता की वैल्यू.

ध्यान दें: अगर आपका ऐप्लिकेशन यह नहीं चाहता कि अलग-अलग डिसप्ले साइज़ के लिए, बड़ी संख्या को ऑप्टिमाइज़ करने का लॉजिक हैंडल किया जाए, तो गिनती की वैल्यू दें. अगर गिनती और गिनती की वैल्यू, दोनों दी गई हैं, तो गिनती का इस्तेमाल किया जाएगा.

लंबा
लोकप्रियता - लेबल वैकल्पिक बताएं कि लोकप्रियता का लेबल क्या है. उदाहरण के लिए - "पसंद किए गए".

स्ट्रिंग

सुझाया गया टेक्स्ट साइज़: गिनती और लेबल, दोनों के लिए ज़्यादा से ज़्यादा 20 वर्ण

लोकप्रियता - विज़ुअल वैकल्पिक

बताएं कि इंटरैक्शन किस मकसद से किया जा रहा है. उदाहरण के लिए - इमेज में 'पसंद करें' आइकॉन और इमोजी दिखाए गए हैं.

एक से ज़्यादा इमेज दी जा सकती हैं. हालांकि, ऐसा हो सकता है कि सभी इमेज, सभी साइज़, डाइमेंशन या कॉन्फ़िगरेशन के हिसाब से न दिखें.

ध्यान दें: स्क्वेयर 1:1 इमेज होनी चाहिए

दिशा-निर्देशों के लिए, इमेज की जानकारी देखें.
रेटिंग - ज़्यादा से ज़्यादा वैल्यू ज़रूरी है

रेटिंग स्केल की ज़्यादा से ज़्यादा वैल्यू.

अगर रेटिंग की मौजूदा वैल्यू भी दी गई है, तो यह एट्रिब्यूट देना ज़रूरी है.

संख्या >= 0.0
रेटिंग - मौजूदा वैल्यू ज़रूरी है

रेटिंग स्केल की मौजूदा वैल्यू.

अगर रेटिंग की ज़्यादा से ज़्यादा वैल्यू भी दी गई है, तो यह एट्रिब्यूट देना ज़रूरी है.

संख्या >= 0.0
रेटिंग - संख्या वैकल्पिक

इकाई के लिए रेटिंग की संख्या.

ध्यान दें: अगर आपका ऐप्लिकेशन यह कंट्रोल करता है कि उपयोगकर्ताओं को संख्या कैसे दिखेगी, तो इस फ़ील्ड की वैल्यू दें. कम शब्दों वाली स्ट्रिंग का इस्तेमाल करें. उदाहरण के लिए, अगर संख्या 10,00,000 है, तो 10 लाख जैसे छोटे नाम का इस्तेमाल करें, ताकि छोटे डिसप्ले साइज़ पर संख्या को काटा न जाए.

स्ट्रिंग
रेटिंग - गिनती की वैल्यू वैकल्पिक

इकाई के लिए रेटिंग की संख्या.

ध्यान दें: अगर आपको डिसप्ले एब्रिविएशन लॉजिक को खुद मैनेज नहीं करना है, तो यह फ़ील्ड भरें. अगर Count और Count Value, दोनों मौजूद हैं, तो उपयोगकर्ताओं को Count दिखेगा.

लंबा
जगह - देश वैकल्पिक वह देश जहां व्यक्ति मौजूद है या सेवा दे रहा है.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - शहर वैकल्पिक वह शहर जहां व्यक्ति मौजूद है या सेवा दे रहा है.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - डिसप्ले पता वैकल्पिक उपयोगकर्ता को वह पता दिखेगा जहां व्यक्ति मौजूद है या सेवा दे रहा है.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - मोहल्ले का पता वैकल्पिक वह पता जहां व्यक्ति मौजूद है या काम कर रहा है.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - राज्य वैकल्पिक वह राज्य (अगर लागू हो) जहां व्यक्ति मौजूद है या सेवा दे रहा है.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - पिन कोड वैकल्पिक वह पिन कोड (अगर लागू हो) जहां व्यक्ति मौजूद है या सेवा दे रहा है.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - आस-पास की जगह वैकल्पिक वह इलाका (अगर लागू हो) जहां व्यक्ति मौजूद है या सेवा दे रहा है.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

बैज वैकल्पिक

हर बैज में ज़्यादा से ज़्यादा 15 वर्णों का टेक्स्ट या छोटी इमेज होती है.

बैज - टेक्स्ट वैकल्पिक

बैज का टाइटल

ध्यान दें: बैज के लिए, टेक्स्ट या इमेज में से किसी एक का होना ज़रूरी है

फ़्री टेक्स्ट

सुझाया गया टेक्स्ट साइज़: ज़्यादा से ज़्यादा 15 वर्ण

बैज - इमेज वैकल्पिक

छोटी इमेज

खास यूज़र एक्सपीरियंस (यूएक्स), जैसे कि इमेज/वीडियो थंबनेल पर बैज ओवरले के तौर पर.

ध्यान दें: बैज के लिए, टेक्स्ट या इमेज में से किसी एक का होना ज़रूरी है

दिशा-निर्देशों के लिए, इमेज की जानकारी देखें.
ब्यौरा वैकल्पिक

टेक्स्ट का एक पैराग्राफ़, जिसमें इकाई के बारे में बताया गया हो.

ध्यान दें: उपयोगकर्ता को ब्यौरा या सबटाइटल की सूची में से कोई एक ही दिखेगी, दोनों नहीं.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: 180 वर्ण

सबटाइटल की सूची वैकल्पिक

ज़्यादा से ज़्यादा तीन सबटाइटल जोड़े जा सकते हैं. हर सबटाइटल में एक लाइन का टेक्स्ट होना चाहिए.

ध्यान दें: उपयोगकर्ता को ब्यौरा या सबटाइटल की सूची में से कोई एक ही दिखेगी, दोनों नहीं.

फ़्री टेक्स्ट

हर सबटाइटल के लिए सुझाया गया टेक्स्ट साइज़: ज़्यादा से ज़्यादा 50 वर्ण

कॉन्टेंट की कैटगरी वैकल्पिक इकाई में मौजूद कॉन्टेंट की कैटगरी के बारे में जानकारी.

ज़रूरी शर्तें पूरी करने वाले Enum की सूची

  • TYPE_HEALTH_AND_FITENESS (उदाहरण - योग/फ़िटनेस ट्रेनर)
  • TYPE_HOME_AND_AUTO (उदाहरण - प्लंबर)
  • TYPE_SPORTS (उदाहरण - प्लेयर)
  • TYPE_DATING

दिशा-निर्देशों के लिए, कॉन्टेंट कैटगरी सेक्शन देखें.

EventEntity

एट्रिब्यूट ज़रूरी शर्त ब्यौरा फ़ॉर्मैट
ऐक्शन यूआरआई ज़रूरी है

सेवा देने वाली कंपनी के ऐप्लिकेशन में मौजूद इकाई का डीप लिंक.

ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल का जवाब देखें

यूआरआई
शीर्षक ज़रूरी है इकाई का टाइटल.

स्ट्रिंग

सुझाया गया टेक्स्ट साइज़: ज़्यादा से ज़्यादा 50 वर्ण

शुरू होने का समय ज़रूरी है

वह इपोक टाइमस्टैंप जब इवेंट के शुरू होने की उम्मीद है.

ध्यान दें: इसे मिलीसेकंड में दिखाया जाएगा.

एपॉक टाइमस्टैंप, मिलीसेकंड में
इवेंट मोड ज़रूरी है

इस फ़ील्ड से यह पता चलता है कि इवेंट वर्चुअल होगा, व्यक्तिगत तौर पर होगा या दोनों तरह से होगा.

Enum: VIRTUAL, IN_PERSON या HYBRID
पोस्टर इमेज ज़रूरी है

एक से ज़्यादा इमेज दिए जाने पर, हम सिर्फ़ एक इमेज दिखाएंगे. सुझाया गया आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) 16:9 है

ध्यान दें: इमेज जोड़ने का सुझाव दिया जाता है. अगर कोई बैज दिया गया है, तो कृपया पक्का करें कि इमेज के ऊपर और नीचे, 24 डीपीआई का सेफ़ स्पेस हो

दिशा-निर्देशों के लिए, इमेज की जानकारी देखें.
जगह - देश कुछ शर्तों के मुताबिक ज़रूरी है

वह देश जहां इवेंट हो रहा है.

ध्यान दें: यह उन इवेंट के लिए ज़रूरी है जो IN_PERSON या HYBRID हैं

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - शहर कुछ शर्तों के मुताबिक ज़रूरी है

वह शहर जहां इवेंट हो रहा है.

ध्यान दें: यह उन इवेंट के लिए ज़रूरी है जो IN_PERSON या HYBRID हैं

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - डिसप्ले पता कुछ शर्तों के मुताबिक ज़रूरी है

वह पता या जगह का नाम जहां इवेंट होगा. यह जानकारी, उपयोगकर्ता को दिखनी चाहिए.

ध्यान दें: यह उन इवेंट के लिए ज़रूरी है जो IN_PERSON या HYBRID हैं

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - मोहल्ले का पता वैकल्पिक उस जगह का सड़क पता (अगर लागू हो) जहां इवेंट होस्ट किया जा रहा है.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - राज्य वैकल्पिक वह राज्य या प्रांत (अगर लागू हो) जहां इवेंट होस्ट किया जा रहा है.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - पिन कोड वैकल्पिक उस जगह का पिन कोड (अगर लागू हो) जहां इवेंट होस्ट किया जा रहा है.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - आस-पास की जगह वैकल्पिक वह इलाका (अगर लागू हो) जहां इवेंट होस्ट किया जा रहा है.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

खत्म होने का समय वैकल्पिक

वह इपोक टाइमस्टैंप जब इवेंट के खत्म होने की उम्मीद है.

ध्यान दें: इसे मिलीसेकंड में दिखाया जाएगा.

एपॉक टाइमस्टैंप, मिलीसेकंड में
ब्यौरा वैकल्पिक

टेक्स्ट का एक पैराग्राफ़, जिसमें इकाई के बारे में बताया गया हो.

ध्यान दें: उपयोगकर्ता को ब्यौरा या सबटाइटल की सूची में से कोई एक ही दिखेगी, दोनों नहीं.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: 180 वर्ण

सबटाइटल की सूची वैकल्पिक

ज़्यादा से ज़्यादा तीन सबटाइटल जोड़े जा सकते हैं. हर सबटाइटल में एक लाइन का टेक्स्ट होना चाहिए.

ध्यान दें: उपयोगकर्ता को ब्यौरा या सबटाइटल की सूची में से कोई एक ही दिखेगी, दोनों नहीं.

फ़्री टेक्स्ट

हर सबटाइटल के लिए सुझाया गया टेक्स्ट साइज़: ज़्यादा से ज़्यादा 50 वर्ण

बैज वैकल्पिक

हर बैज में ज़्यादा से ज़्यादा 15 वर्णों का टेक्स्ट या छोटी इमेज होती है.

बैज - टेक्स्ट वैकल्पिक

बैज का टाइटल

ध्यान दें: बैज के लिए, टेक्स्ट या इमेज में से किसी एक का होना ज़रूरी है

फ़्री टेक्स्ट

सुझाया गया टेक्स्ट साइज़: ज़्यादा से ज़्यादा 15 वर्ण

बैज - इमेज वैकल्पिक

छोटी इमेज

खास यूज़र एक्सपीरियंस (यूएक्स), जैसे कि इमेज/वीडियो थंबनेल पर बैज ओवरले के तौर पर.

ध्यान दें: बैज के लिए, टेक्स्ट या इमेज में से किसी एक का होना ज़रूरी है

दिशा-निर्देशों के लिए, इमेज की जानकारी देखें.
कीमत - CurrentPrice कुछ शर्तों के मुताबिक ज़रूरी है

इवेंट के टिकट/पास की मौजूदा कीमत.

अगर स्ट्राइकथ्रू कीमत दी गई है, तो यह एट्रिब्यूट देना ज़रूरी है.

फ़्री टेक्स्ट
कीमत - StrikethroughPrice वैकल्पिक इवेंट के टिकट/पास की मूल कीमत. फ़्री टेक्स्ट
कीमत वाला कॉलआउट वैकल्पिक अगर कोई प्रमोशन, इवेंट या सदस्यों के लिए छूट उपलब्ध है, तो उसे दिखाने के लिए कीमत वाला कॉलआउट.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: 45 वर्णों से कम (बहुत लंबा टेक्स्ट होने पर, एलिप्सिस दिख सकते हैं)

कॉन्टेंट की कैटगरी वैकल्पिक इकाई में मौजूद कॉन्टेंट की कैटगरी के बारे में जानकारी.

ज़रूरी शर्तें पूरी करने वाले Enum की सूची

  • TYPE_MOVIES_AND_TV_SHOWS (उदाहरण - सिनेमा)
  • TYPE_DIGITAL_GAMES (उदाहरण - ईस्पोर्ट्स)
  • TYPE_MUSIC (उदाहरण - कॉन्सर्ट)
  • TYPE_TRAVEL_AND_LOCAL (उदाहरण - टूर, फ़ेस्टिवल)
  • TYPE_HEALTH_AND_FITENESS (उदाहरण - योग क्लास)
  • TYPE_EDUCATION (उदाहरण - क्लास)
  • TYPE_SPORTS (उदाहरण - फ़ुटबॉल गेम)
  • TYPE_DATING (उदाहरण - मीटअप)

दिशा-निर्देशों के लिए, कॉन्टेंट कैटगरी सेक्शन देखें.

EventReservationEntity

एट्रिब्यूट ज़रूरी शर्त ब्यौरा फ़ॉर्मैट
ऐक्शन यूआरआई ज़रूरी है

सेवा देने वाली कंपनी के ऐप्लिकेशन में मौजूद इकाई का डीप लिंक.

ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल का जवाब देखें

यूआरआई
शीर्षक ज़रूरी है इकाई का टाइटल.

स्ट्रिंग

सुझाया गया टेक्स्ट साइज़: ज़्यादा से ज़्यादा 50 वर्ण

शुरू होने का समय ज़रूरी है

वह इपोक टाइमस्टैंप जब इवेंट के शुरू होने की उम्मीद है.

ध्यान दें: इसे मिलीसेकंड में दिखाया जाएगा.

एपॉक टाइमस्टैंप, मिलीसेकंड में
इवेंट मोड ज़रूरी है

इस फ़ील्ड से यह पता चलता है कि इवेंट वर्चुअल होगा, व्यक्तिगत तौर पर होगा या दोनों तरह से होगा.

Enum: VIRTUAL, IN_PERSON या HYBRID
जगह - देश कुछ शर्तों के मुताबिक ज़रूरी है

वह देश जहां इवेंट हो रहा है.

ध्यान दें: यह उन इवेंट के लिए ज़रूरी है जो IN_PERSON या HYBRID हैं

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - शहर कुछ शर्तों के मुताबिक ज़रूरी है

वह शहर जहां इवेंट हो रहा है.

ध्यान दें: यह उन इवेंट के लिए ज़रूरी है जो IN_PERSON या HYBRID हैं

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - डिसप्ले पता कुछ शर्तों के मुताबिक ज़रूरी है

वह पता या जगह का नाम जहां इवेंट होगा. यह जानकारी, उपयोगकर्ता को दिखनी चाहिए.

ध्यान दें: यह उन इवेंट के लिए ज़रूरी है जो IN_PERSON या HYBRID हैं

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - मोहल्ले का पता वैकल्पिक उस जगह का सड़क पता (अगर लागू हो) जहां इवेंट होस्ट किया जा रहा है.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - राज्य वैकल्पिक वह राज्य या प्रांत (अगर लागू हो) जहां इवेंट होस्ट किया जा रहा है.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - पिन कोड वैकल्पिक उस जगह का पिन कोड (अगर लागू हो) जहां इवेंट होस्ट किया जा रहा है.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

जगह - आस-पास की जगह वैकल्पिक वह इलाका (अगर लागू हो) जहां इवेंट होस्ट किया जा रहा है.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: ज़्यादा से ज़्यादा ~20 वर्ण

पोस्टर इमेज वैकल्पिक

एक से ज़्यादा इमेज दिए जाने पर, हम सिर्फ़ एक इमेज दिखाएंगे. सुझाया गया आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) 16:9 है

ध्यान दें: इमेज जोड़ने का सुझाव दिया जाता है. अगर कोई बैज दिया गया है, तो कृपया पक्का करें कि इमेज के ऊपर और नीचे, दोनों तरफ़ 24 डीपी का सेफ़ स्पेस हो

दिशा-निर्देशों के लिए, इमेज की जानकारी देखें.
खत्म होने का समय वैकल्पिक

वह इपोक टाइमस्टैंप जब इवेंट के खत्म होने की उम्मीद है.

ध्यान दें: इसे मिलीसेकंड में दिखाया जाएगा.

एपॉक टाइमस्टैंप, मिलीसेकंड में
सेवा देने वाली कंपनी - नाम वैकल्पिक

सेवा देने वाले व्यक्ति या कंपनी का नाम.

ध्यान दें:सेवा देने वाली कंपनी के लिए, टेक्स्ट या इमेज में से किसी एक का होना ज़रूरी है.

फ़्री टेक्स्ट. उदाहरण के लिए, इवेंट के आयोजक/टूर का नाम
सेवा देने वाली कंपनी - इमेज वैकल्पिक

सेवा देने वाले व्यक्ति या कंपनी का लोगो/इमेज.

ध्यान दें:सेवा देने वाली कंपनी के लिए, टेक्स्ट या इमेज में से किसी एक का होना ज़रूरी है.

दिशा-निर्देशों के लिए, इमेज की जानकारी देखें.
ब्यौरा वैकल्पिक

टेक्स्ट का एक पैराग्राफ़, जिसमें इकाई के बारे में बताया गया हो.

ध्यान दें: उपयोगकर्ता को ब्यौरा या सबटाइटल की सूची में से कोई एक ही दिखेगी, दोनों नहीं.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: 180 वर्ण

सबटाइटल की सूची वैकल्पिक

ज़्यादा से ज़्यादा तीन सबटाइटल जोड़े जा सकते हैं. हर सबटाइटल में एक लाइन का टेक्स्ट होना चाहिए.

ध्यान दें: उपयोगकर्ता को ब्यौरा या सबटाइटल की सूची में से कोई एक ही दिखेगी, दोनों नहीं.

फ़्री टेक्स्ट

हर सबटाइटल के लिए सुझाया गया टेक्स्ट साइज़: ज़्यादा से ज़्यादा 50 वर्ण

बैज वैकल्पिक

हर बैज में ज़्यादा से ज़्यादा 15 वर्णों का टेक्स्ट या छोटी इमेज होती है.

बैज - टेक्स्ट वैकल्पिक

बैज का टाइटल

ध्यान दें: बैज के लिए, टेक्स्ट या इमेज में से किसी एक का होना ज़रूरी है

फ़्री टेक्स्ट

सुझाया गया टेक्स्ट साइज़: ज़्यादा से ज़्यादा 15 वर्ण

बैज - इमेज वैकल्पिक

छोटी इमेज

खास यूज़र एक्सपीरियंस (यूएक्स), जैसे कि इमेज/वीडियो थंबनेल पर बैज ओवरले के तौर पर.

ध्यान दें: बैज के लिए, टेक्स्ट या इमेज में से किसी एक का होना ज़रूरी है

दिशा-निर्देशों के लिए, इमेज की जानकारी देखें.
बुकिंग आईडी वैकल्पिक इवेंट के रिज़र्वेशन का आईडी. फ़्री टेक्स्ट
कीमत - CurrentPrice कुछ शर्तों के मुताबिक ज़रूरी है

इवेंट के टिकट/पास की मौजूदा कीमत.

अगर स्ट्राइकथ्रू कीमत दी गई है, तो यह एट्रिब्यूट देना ज़रूरी है.

फ़्री टेक्स्ट
कीमत - StrikethroughPrice वैकल्पिक इवेंट के टिकट/पास की मूल कीमत. फ़्री टेक्स्ट
कीमत वाला कॉलआउट वैकल्पिक अगर कोई प्रमोशन, इवेंट या सदस्यों के लिए छूट उपलब्ध है, तो उसे दिखाने के लिए कीमत वाला कॉलआउट.

फ़्री टेक्स्ट

टेक्स्ट का सुझाया गया साइज़: 45 वर्णों से कम (बहुत लंबा टेक्स्ट होने पर, हो सकता है कि वह पूरा न दिखे)

रेटिंग - ज़्यादा से ज़्यादा वैल्यू वैकल्पिक

रेटिंग स्केल की ज़्यादा से ज़्यादा वैल्यू.

अगर रेटिंग की मौजूदा वैल्यू भी दी गई है, तो यह एट्रिब्यूट देना ज़रूरी है.

संख्या >= 0.0
रेटिंग - मौजूदा वैल्यू वैकल्पिक

रेटिंग स्केल की मौजूदा वैल्यू.

अगर रेटिंग की ज़्यादा से ज़्यादा वैल्यू भी दी गई है, तो यह एट्रिब्यूट देना ज़रूरी है.

संख्या >= 0.0
रेटिंग - संख्या वैकल्पिक

इवेंट के लिए रेटिंग की संख्या.

ध्यान दें: अगर आपका ऐप्लिकेशन यह कंट्रोल करना चाहता है कि लोगों को यह जानकारी कैसे दिखे, तो इस फ़ील्ड की जानकारी दें. कृपया ऐसी छोटी स्ट्रिंग दें जिसे उपयोगकर्ता को दिखाया जा सके. उदाहरण के लिए, यदि संख्या 1,000,000 है, तो 1M जैसे संक्षिप्त शब्दों का उपयोग करने पर विचार करें, ताकि छोटे डिस्प्ले आकार पर यह कट न जाए.

स्ट्रिंग
रेटिंग - गिनती की वैल्यू वैकल्पिक

इवेंट के लिए रेटिंग की संख्या.

ध्यान दें: अगर आपको डिसप्ले एब्रिविएशन लॉजिक को खुद मैनेज नहीं करना है, तो इस फ़ील्ड की जानकारी दें. अगर Count और Count Value, दोनों मौजूद हैं, तो हम उपयोगकर्ताओं को दिखाने के लिए Count का इस्तेमाल करेंगे

लंबा
कॉन्टेंट की कैटगरी वैकल्पिक इकाई में मौजूद कॉन्टेंट की कैटगरी के बारे में जानकारी.

ज़रूरी शर्तें पूरी करने वाले Enum की सूची

  • TYPE_MOVIES_AND_TV_SHOWS (उदाहरण - सिनेमा)
  • TYPE_DIGITAL_GAMES (उदाहरण - ईस्पोर्ट्स)
  • TYPE_MUSIC (उदाहरण - कॉन्सर्ट)
  • TYPE_TRAVEL_AND_LOCAL (उदाहरण - टूर, फ़ेस्टिवल)
  • TYPE_HEALTH_AND_FITENESS (उदाहरण - योग क्लास)
  • TYPE_EDUCATION (उदाहरण - क्लास)
  • TYPE_SPORTS (उदाहरण - फ़ुटबॉल गेम)
  • TYPE_DATING (उदाहरण - मीटअप)

दिशा-निर्देशों के लिए, कॉन्टेंट कैटगरी सेक्शन देखें.

इमेज की जानकारी

इमेज ऐसेट के लिए ज़रूरी शर्तें इस टेबल में दी गई हैं:

आसपेक्ट रेशियो कम से कम पिक्सल सुझाए गए पिक्सल

स्क्वेयर (1x1)

पसंदीदा

300x300 1200x1200
लैंडस्केप (1.91x1) 600x314 1200x628
पोर्ट्रेट (4x5) 480x600 960x1200

इमेज को सार्वजनिक सीडीएन पर होस्ट करना ज़रूरी है, ताकि Google उन्हें ऐक्सेस कर सके.

फ़ाइल फ़ॉर्मैट

PNG, JPG, स्टैटिक GIF, WebP

फ़ाइल का ज़्यादा से ज़्यादा साइज़

5120 केबी

अन्य सुझाव

  • इमेज के लिए सुझाया गया सेफ़ एरिया: अपने मुख्य कॉन्टेंट को इमेज के बीच वाले 80% हिस्से में रखें.
  • पारदर्शी बैकग्राउंड का इस्तेमाल करें, ताकि इमेज को गहरे और हल्के रंग वाली थीम की सेटिंग में ठीक से दिखाया जा सके.

कॉन्टेंट कैटगरी

कॉन्टेंट कैटगरी की मदद से, ऐप्लिकेशन कई कैटगरी से जुड़ा कॉन्टेंट पब्लिश कर सकते हैं. यह कॉन्टेंट को पहले से तय की गई कुछ कैटगरी के साथ मैप करता है. जैसे:

  • TYPE_EDUCATION
  • TYPE_SPORTS
  • TYPE_MOVIES_AND_TV_SHOWS
  • TYPE_BOOKS
  • TYPE_AUDIOBOOKS
  • TYPE_MUSIC
  • TYPE_DIGITAL_GAMES
  • TYPE_TRAVEL_AND_LOCAL
  • TYPE_HOME_AND_AUTO
  • TYPE_BUSINESS
  • TYPE_NEWS
  • TYPE_FOOD_AND_DRINK
  • TYPE_SHOPPING
  • TYPE_HEALTH_AND_FITENESS
  • TYPE_MEDICAL
  • TYPE_PARENTING
  • TYPE_DATING

इमेज को सार्वजनिक सीडीएन पर होस्ट करना ज़रूरी है, ताकि Google उन्हें ऐक्सेस कर सके.

कॉन्टेंट कैटगरी इस्तेमाल करने के लिए दिशा-निर्देश

  1. ArticleEntity और GenericFeaturedEntity जैसी कुछ इकाइयां, कॉन्टेंट की किसी भी कैटगरी का इस्तेमाल कर सकती हैं. EventEntity, EventReservationEntity, PersonEntity जैसी अन्य इकाइयों के लिए, इन कैटगरी का सिर्फ़ एक सबसेट इस्तेमाल किया जा सकता है. सूची में इकाइयां जोड़ने से पहले, यह देखें कि इकाई के टाइप के लिए कौनसी कैटगरी ज़रूरी शर्तें पूरी करती हैं.
  2. कॉन्टेंट की कुछ कैटगरी के लिए, सामान्य इकाइयों और ContentCategory के कॉम्बिनेशन के बजाय, खास इकाई टाइप का इस्तेमाल करें:

  3. ContentCategory फ़ील्ड में वैल्यू डालना ज़रूरी नहीं है. अगर कॉन्टेंट, पहले बताई गई किसी भी कैटगरी से मेल नहीं खाता है, तो इसे खाली छोड़ दें.

  4. अगर कॉन्टेंट की एक से ज़्यादा कैटगरी दी गई हैं, तो उन्हें कॉन्टेंट से मिलते-जुलते क्रम में दें. कॉन्टेंट से सबसे ज़्यादा मिलती-जुलती कैटगरी को सूची में सबसे पहले रखें.

दूसरा चरण: क्लस्टर का डेटा उपलब्ध कराना

हमारा सुझाव है कि कॉन्टेंट पब्लिश करने के टास्क को बैकग्राउंड में पूरा किया जाए. उदाहरण के लिए, WorkManager का इस्तेमाल करके. साथ ही, इसे नियमित तौर पर या किसी इवेंट के आधार पर शेड्यूल किया जाए. उदाहरण के लिए, हर बार जब उपयोगकर्ता ऐप्लिकेशन खोलता है या जब वह कार्ट में कुछ जोड़ता है.

AppEngagePublishClient, क्लस्टर पब्लिश करने के लिए ज़िम्मेदार है.

क्लाइंट में क्लस्टर पब्लिश करने के लिए, ये एपीआई उपलब्ध हैं:

  • isServiceAvailable
  • publishRecommendationClusters
  • publishFeaturedCluster
  • publishContinuationCluster
  • publishUserAccountManagementRequest
  • updatePublishStatus
  • deleteRecommendationsClusters
  • deleteFeaturedCluster
  • deleteContinuationCluster
  • deleteUserManagementCluster
  • deleteClusters

isServiceAvailable

इस एपीआई का इस्तेमाल यह देखने के लिए किया जाता है कि सेवा, इंटिग्रेशन के लिए उपलब्ध है या नहीं. साथ ही, यह भी देखा जाता है कि कॉन्टेंट को डिवाइस पर दिखाया जा सकता है या नहीं.

आपको जिस क्लस्टर टाइप को पब्लिश करना है उसके लिए, सेवा की उपलब्धता देखी जा सकती है. isServiceAvailable एपीआई, अनुरोध ऑब्जेक्ट ServiceAvailabilityRequest स्वीकार करता है. इसमें क्लस्टर के वे टाइप शामिल होते हैं जिनके लिए सेवा की उपलब्धता की जांच करनी होती है. यहां दी गई टेबल में, ServiceAvailabilityRequest के लिए ज़रूरी ClusterType enum वैल्यू दी गई हैं.

क्लस्टर का टाइप क्लस्टर टाइप कॉन्स्टेंट पूर्णांक वैल्यू
कोई जानकारी नहीं है TYPE_UNKNOWN 0
सुझाव का क्लस्टर TYPE_RECOMMENDATION 1
चुनिंदा क्लस्टर TYPE_FEATURED 2
जारी रखने वाला क्लस्टर TYPE_CONTINUATION 3
यूज़र मैनेजमेंट क्लस्टर TYPE_ENGAGEMENT 8
सदस्यता क्लस्टर TYPE_SUBSCRIPTION 12

Kotlin

val request = ServiceAvailabilityRequest.Builder()
    .addIntendedClusterType(ClusterType.TYPE_CONTINUATION)
    .addIntendedClusterType(ClusterType.TYPE_RECOMMENDATION)
    .build()

client.isServiceAvailable(request).addOnCompleteListener { task ->
    if (task.isSuccessful) {
        val availabilityMap = task.result
        if (availabilityMap[ClusterType.TYPE_CONTINUATION] == true) {
            // Proceed with publishing continuation content
        }
        if (availabilityMap[ClusterType.TYPE_RECOMMENDATION] == true) {
            // Proceed with publishing recommendation content
        }
    } else {
        // The IPC call itself fails, proceed with error handling logic here,
        // such as retry.
    }
}

Java

ServiceAvailabilityRequest request =
    new ServiceAvailabilityRequest.Builder()
        .addIntendedClusterType(ClusterType.TYPE_CONTINUATION)
        .addIntendedClusterType(ClusterType.TYPE_RECOMMENDATION)
        .build();

client.isServiceAvailable(request).addOnCompleteListener(task -> {
    if (task.isSuccessful()) {
        Map<Integer, Boolean> availabilityMap = task.getResult();
        if (Boolean.TRUE.equals(availabilityMap.get(ClusterType.TYPE_CONTINUATION))) {
            // Proceed with publishing continuation content
        }
        if (Boolean.TRUE.equals(availabilityMap.get(ClusterType.TYPE_RECOMMENDATION))) {
            // Proceed with publishing recommendation content
        }
    } else {
        // The IPC call itself fails, proceed with error handling logic here,
        // such as retry.
    }
});
शर्तों के साथ सेवा की उपलब्धता की सुविधा

इंटिग्रेट किए गए कुछ ऐप्लिकेशन, खास कॉन्फ़िगरेशन का अनुरोध करते हैं. इससे Engage सेवा को समय-समय पर चालू और बंद किया जा सकता है, ताकि विज्ञापन दिखाने की लागत कम की जा सके. इस तरह से कॉन्टेंट को समय-समय पर शामिल करने की रणनीति का इस्तेमाल किया जा सकता है. हालांकि, इससे उपयोगकर्ता और प्रॉडक्ट पर बुरा असर पड़ता है. जैसे, पुराना कॉन्टेंट नहीं दिखाया जाएगा और कुछ प्लैटफ़ॉर्म पर कॉन्टेंट नहीं दिखेगा.

Engage SDK के v1.6.0 वर्शन से, खास तरह के क्लस्टर के लिए उपलब्धता की जांच की जा सकती है. इससे ज़्यादा आसानी से काम किया जा सकता है. जैसे, अगर किसी ऐप्लिकेशन ने रुक-रुक कर कॉन्टेंट से जुड़ी रणनीति अपनाई है, तो कुछ क्लस्टर टाइप इस रणनीति का पालन कर सकते हैं. वहीं, अन्य क्लस्टर टाइप हमेशा चालू रहते हैं. जैसे, जारी रहने वाले क्लस्टर.

अगर Engage सेवा को किसी भी वजह से, काम करने वाले सभी डिवाइसों पर ‘लगातार’ चालू नहीं रखना है और इसे डिवाइसों के किसी सेट के लिए, कुछ समय के लिए चालू करने के लिए कॉन्फ़िगर किया गया है, तो भी डिफ़ॉल्ट कॉन्फ़िगरेशन के हिसाब से, क्लस्टर के सभी पब्लिकेशन (जैसे, पढ़ना जारी रखें और इवेंट के लिए बुकिंग) चालू रहेंगे. साथ ही, क्लस्टर के बाकी टाइप, कुछ समय के लिए चालू और बंद किए जाएंगे. अगर आपको रुक-रुक कर डेटा ट्रांसफ़र करने की सुविधा का इस्तेमाल करना है, लेकिन यह डिफ़ॉल्ट कॉन्फ़िगरेशन आपकी ज़रूरतों के मुताबिक नहीं है, तो कृपया engage-developers@google.com पर संपर्क करें.

SDK टूल के वर्शन 1.6.0 से पहले के वर्शन के लिए (अब सेवा में नहीं है)

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 ऑब्जेक्ट की सूची पब्लिश करने के लिए किया जाता है.

Kotlin

client.publishRecommendationClusters(
      PublishRecommendationClustersRequest.Builder()
        .addRecommendationCluster(
          RecommendationCluster.Builder()
            .addEntity(entity1)
            .addEntity(entity2)
            .setTitle("Top Picks For You")
            .build()
        )
        .build()
    )

Java

client.publishRecommendationClusters(
            new PublishRecommendationClustersRequest.Builder()
                .addRecommendationCluster(
                    new RecommendationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .setTitle("Top Picks For You")
                        .build())
                .build());

जब सेवा को अनुरोध मिलता है, तो एक लेन-देन में ये कार्रवाइयां होती हैं:

  • डेवलपर पार्टनर से मिला मौजूदा RecommendationCluster डेटा हटा दिया जाता है.
  • अनुरोध से मिले डेटा को पार्स करके, अपडेट किए गए 'सुझाव वाले क्लस्टर' में सेव किया जाता है.

गड़बड़ी होने पर, पूरे अनुरोध को अस्वीकार कर दिया जाता है और मौजूदा स्थिति बनी रहती है.

publishFeaturedCluster

इस एपीआई का इस्तेमाल, FeaturedCluster ऑब्जेक्ट की सूची पब्लिश करने के लिए किया जाता है.

Kotlin

client.publishFeaturedCluster(
    PublishFeaturedClusterRequest.Builder()
      .setFeaturedCluster(
        FeaturedCluster.Builder()
          .addEntity(entity1)
          .addEntity(entity2)
          .build())
      .build())

Java

client.publishFeaturedCluster(
            new PublishFeaturedClustersRequest.Builder()
                .addFeaturedCluster(
                    new FeaturedCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .build())
                .build());

जब सेवा को अनुरोध मिलता है, तो एक लेन-देन में ये कार्रवाइयां होती हैं:

  • डेवलपर पार्टनर से मिला मौजूदा FeaturedCluster डेटा हटा दिया जाता है.
  • अनुरोध से मिले डेटा को पार्स करके, अपडेट किए गए 'चुनिंदा क्लस्टर' में सेव किया जाता है.

गड़बड़ी होने पर, पूरे अनुरोध को अस्वीकार कर दिया जाता है और मौजूदा स्थिति बनी रहती है.

publishContinuationCluster

इस एपीआई का इस्तेमाल, ContinuationCluster ऑब्जेक्ट को पब्लिश करने के लिए किया जाता है.

Kotlin

client.publishContinuationCluster(
    PublishContinuationClusterRequest.Builder()
      .setContinuationCluster(
        ContinuationCluster.Builder()
          .addEntity(entity1)
          .addEntity(entity2)
          .build())
      .build())

Java

client.publishContinuationCluster(
            new PublishContinuationClusterRequest.Builder()
                .setContinuationCluster(
                    new ContinuationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .build())
                .build());

जब सेवा को अनुरोध मिलता है, तो एक लेन-देन में ये कार्रवाइयां होती हैं:

  • डेवलपर पार्टनर से मिला मौजूदा ContinuationCluster डेटा हटा दिया जाता है.
  • अनुरोध से मिले डेटा को पार्स करके, अपडेट किए गए 'जारी रखने वाले क्लस्टर' में सेव किया जाता है.

गड़बड़ी होने पर, पूरे अनुरोध को अस्वीकार कर दिया जाता है और मौजूदा स्थिति बनी रहती है.

publishUserAccountManagementRequest

इस एपीआई का इस्तेमाल, साइन इन कार्ड पब्लिश करने के लिए किया जाता है . साइन इन करने की सुविधा से, लोगों को ऐप्लिकेशन के साइन इन पेज पर रीडायरेक्ट किया जाता है. इससे ऐप्लिकेशन, कॉन्टेंट पब्लिश कर सकता है या लोगों की दिलचस्पी के हिसाब से ज़्यादा कॉन्टेंट उपलब्ध करा सकता है

साइन इन कार्ड में यह मेटाडेटा शामिल होता है -

एट्रिब्यूट ज़रूरी शर्त ब्यौरा
ऐक्शन यूआरआई ज़रूरी है कार्रवाई का डीपलिंक (यानी कि ऐप्लिकेशन के साइन इन पेज पर ले जाता है)
इमेज ज़रूरी नहीं - अगर यह वैल्यू नहीं दी जाती है, तो टाइटल एट्रिब्यूट की वैल्यू देना ज़रूरी है

कार्ड पर दिखाई गई इमेज

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

अगर कारोबार से जुड़ी किसी वजह से, कोई भी क्लस्टर पब्लिश नहीं किया जाता है, तो हमारा सुझाव है कि आप updatePublishStatus एपीआई का इस्तेमाल करके, पब्लिश करने की स्थिति को अपडेट करें. यह इसलिए ज़रूरी है, क्योंकि :

  • सभी स्थितियों में स्टेटस देना ज़रूरी है. भले ही, कॉन्टेंट पब्लिश हो गया हो (STATUS == PUBLISHED). ऐसा इसलिए, ताकि डैशबोर्ड में यह साफ़ तौर पर बताया जा सके कि आपका इंटिग्रेशन कैसा काम कर रहा है और उसकी अन्य मेट्रिक क्या हैं.
  • अगर कोई कॉन्टेंट पब्लिश नहीं किया गया है, लेकिन इंटिग्रेशन का स्टेटस ठीक है (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 एपीआई को 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();

अनुरोध मिलने पर, सेवा मौजूदा डेटा को फ़ीचर्ड क्लस्टर से हटा देती है. गड़बड़ी होने पर, पूरे अनुरोध को अस्वीकार कर दिया जाता है और मौजूदा स्थिति को बनाए रखा जाता है.

deleteContinuationCluster

इस एपीआई का इस्तेमाल, 'जारी रखने वाले क्लस्टर' का कॉन्टेंट मिटाने के लिए किया जाता है.

Kotlin

client.deleteContinuationCluster()

Java

client.deleteContinuationCluster();

अनुरोध मिलने पर, सेवा मौजूदा डेटा को Continuation Cluster से हटा देती है. गड़बड़ी होने पर, पूरे अनुरोध को अस्वीकार कर दिया जाता है और मौजूदा स्थिति बनी रहती है.

deleteUserManagementCluster

इस एपीआई का इस्तेमाल, UserAccountManagement क्लस्टर का कॉन्टेंट मिटाने के लिए किया जाता है.

Kotlin

client.deleteUserManagementCluster()

Java

client.deleteUserManagementCluster();

जब सेवा को अनुरोध मिलता है, तो वह UserAccountManagement क्लस्टर से मौजूदा डेटा हटा देती है. गड़बड़ी होने पर, पूरे अनुरोध को अस्वीकार कर दिया जाता है और मौजूदा स्थिति बनी रहती है.

deleteClusters

इस एपीआई का इस्तेमाल, किसी क्लस्टर टाइप का कॉन्टेंट मिटाने के लिए किया जाता है.

Kotlin

client.deleteClusters(
    DeleteClustersRequest.Builder()
      .addClusterType(ClusterType.TYPE_CONTINUATION)
      .addClusterType(ClusterType.TYPE_FEATURED)
      .addClusterType(ClusterType.TYPE_RECOMMENDATION)
      .build())

Java

client.deleteClusters(
            new DeleteClustersRequest.Builder()
                .addClusterType(ClusterType.TYPE_CONTINUATION)
                .addClusterType(ClusterType.TYPE_FEATURED)
                .addClusterType(ClusterType.TYPE_RECOMMENDATION)
                .build());

अनुरोध मिलने पर, सेवा उन सभी क्लस्टर से मौजूदा डेटा हटा देती है जो बताए गए क्लस्टर टाइप से मेल खाते हैं. क्लाइंट, एक या एक से ज़्यादा क्लस्टर टाइप पास कर सकते हैं. गड़बड़ी होने पर, पूरे अनुरोध को अस्वीकार कर दिया जाता है और मौजूदा स्थिति बनी रहती है.

गड़बड़ी ठीक करना

हमारा सुझाव है कि पब्लिश करने वाले एपीआई से टास्क के नतीजे सुनें, ताकि टास्क पूरा न होने पर उसे ठीक किया जा सके और फिर से सबमिट किया जा सके.

Kotlin

client.publishRecommendationClusters(
        PublishRecommendationClustersRequest.Builder()
          .addRecommendationCluster(..)
          .build())
      .addOnCompleteListener { task ->
        if (task.isSuccessful) {
          // do something
        } else {
          val exception = task.exception
          if (exception is AppEngageException) {
            @AppEngageErrorCode val errorCode = exception.errorCode
            if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) {
              // do something
            }
          }
        }
      }

Java

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 के तौर पर दिखाया जाता है. साथ ही, गड़बड़ी की वजह को गड़बड़ी कोड के तौर पर दिखाया जाता है.

गड़बड़ी का कोड गड़बड़ी का नाम ध्यान दें
1 SERVICE_NOT_FOUND यह सेवा, दिए गए डिवाइस पर उपलब्ध नहीं है.
2 SERVICE_NOT_AVAILABLE यह सेवा दिए गए डिवाइस पर उपलब्ध है, लेकिन कॉल के समय यह उपलब्ध नहीं है. उदाहरण के लिए, इसे साफ़ तौर पर बंद कर दिया गया है.
3 SERVICE_CALL_EXECUTION_FAILURE थ्रेडिंग से जुड़ी समस्याओं की वजह से, टास्क पूरा नहीं हो सका. इस मामले में, फिर से कोशिश की जा सकती है.
4 SERVICE_CALL_PERMISSION_DENIED कॉलर को सेवा से जुड़ा कॉल करने की अनुमति नहीं है.
5 SERVICE_CALL_INVALID_ARGUMENT अनुरोध में अमान्य डेटा शामिल है. उदाहरण के लिए, क्लस्टर की तय सीमा से ज़्यादा संख्या.
6 SERVICE_CALL_INTERNAL सेवा से जुड़ी कोई गड़बड़ी हुई है.
7 SERVICE_CALL_RESOURCE_EXHAUSTED सेवा के लिए बार-बार कॉल किया जा रहा है.

तीसरा चरण: ब्रॉडकास्ट इंटेंट मैनेज करना

कॉन्टेंट पब्लिश करने के लिए, नौकरी के ज़रिए एपीआई कॉल करने के साथ-साथ, BroadcastReceiver सेट अप करना भी ज़रूरी है, ताकि कॉन्टेंट पब्लिश करने का अनुरोध मिल सके.

ब्रॉडकास्ट इंटेंट का मुख्य मकसद, ऐप्लिकेशन को फिर से चालू करना और डेटा को सिंक करना है. ब्रॉडकास्ट इंटेंट को बार-बार भेजने के लिए डिज़ाइन नहीं किया गया है. यह सिर्फ़ तब ट्रिगर होता है, जब Engage Service को लगता है कि कॉन्टेंट पुराना हो सकता है. उदाहरण के लिए, एक हफ़्ते पुराना. इससे, उपयोगकर्ता को यह भरोसा होता है कि उसे नया कॉन्टेंट मिलेगा. भले ही, ऐप्लिकेशन को लंबे समय से इस्तेमाल न किया गया हो.

BroadcastReceiver को इन दो तरीकों से सेट अप किया जाना चाहिए:

  • Context.registerReceiver() का इस्तेमाल करके, BroadcastReceiver क्लास के इंस्टेंस को डाइनैमिक तौर पर रजिस्टर करें. इससे उन ऐप्लिकेशन से कम्यूनिकेशन किया जा सकता है जो अब भी मेमोरी में लाइव हैं.

Kotlin

class AppEngageBroadcastReceiver : BroadcastReceiver(){
  // Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast
  // is received
  // Trigger featured cluster publish when PUBLISH_FEATURED broadcast is received
  // Trigger continuation cluster publish when PUBLISH_CONTINUATION broadcast is
  // received
}

fun registerBroadcastReceivers(context: Context){
  var  context = context
  context = context.applicationContext

// Register Recommendation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_RECOMMENDATION),
                           com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                           /*scheduler=*/null)

// Register Featured Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_FEATURED),
                           com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                           /*scheduler=*/null)

// Register Continuation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_CONTINUATION),
                           com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                           /*scheduler=*/null)
}

Java

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 continuation cluster publish when PUBLISH_CONTINUATION 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),
                         com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                         /*scheduler=*/null);

// Register Featured Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
                         new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_FEATURED),
                         com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                         /*scheduler=*/null);

// Register Continuation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
                         new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_CONTINUATION),
                         com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                         /*scheduler=*/null);

}
  • अपनी AndroidManifest.xml फ़ाइल में, <receiver> टैग का इस्तेमाल करके स्टैटिक तौर पर लागू करने का एलान करें. इससे ऐप्लिकेशन को ब्रॉडकास्ट इंटेंट मिलते हैं, भले ही वह चल न रहा हो. साथ ही, इससे ऐप्लिकेशन को कॉन्टेंट पब्लिश करने की अनुमति भी मिलती है.

<application>
   <receiver
      android:name=".AppEngageBroadcastReceiver"
      android:permission="com.google.android.engage.REQUEST_ENGAGE_DATA"
      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.PUBLISH_CONTINUATION" />
      </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.PUBLISH_CONTINUATION इस इंटेंट को पाने पर, publishContinuationCluster कॉल शुरू करने का सुझाव दिया जाता है.

इंटिग्रेशन वर्कफ़्लो

इंटिग्रेशन पूरा होने के बाद, उसकी पुष्टि करने के बारे में सिलसिलेवार जानकारी के लिए, Engage डेवलपर इंटिग्रेशन वर्कफ़्लो देखें.

अक्सर पूछे जाने वाले सवाल

अक्सर पूछे जाने वाले सवालों के लिए, Engage SDK के बारे में अक्सर पूछे जाने वाले सवाल देखें.

संपर्क

अगर इंटिग्रेशन की प्रोसेस के दौरान आपका कोई सवाल है, तो engage-developers@google.com से संपर्क करें.

अगले चरण

इस इंटिग्रेशन को पूरा करने के बाद, आपको ये काम करने होंगे:

  • engage-developers@google.com को एक ईमेल भेजें. साथ ही, इंटिग्रेट किया गया वह APK अटैच करें जिसे Google को टेस्ट करना है.
  • Google, पुष्टि करता है और अंदरूनी तौर पर समीक्षा करता है, ताकि यह पक्का किया जा सके कि इंटिग्रेशन उम्मीद के मुताबिक काम कर रहा है. अगर बदलाव करने की ज़रूरत होती है, तो Google आपसे संपर्क करता है और ज़रूरी जानकारी देता है.
  • जांच पूरी होने और कोई बदलाव न करने पर, Google आपसे संपर्क करता है. वह आपको सूचना देता है कि अब अपडेट किए गए और इंटिग्रेट किए गए APK को Play Store पर पब्लिश किया जा सकता है.
  • जब Google यह पुष्टि कर देगा कि आपका अपडेट किया गया APK, Play Store पर पब्लिश हो गया है, तब आपके सुझाव, चुनिंदा, और जारी रखें क्लस्टर पब्लिश किए जा सकते हैं. इसके बाद, ये उपयोगकर्ताओं को दिखेंगे.