इस गाइड में क्लस्टर पब्लिश करने से जुड़े दिशा-निर्देशों का एक सेट शामिल है. ये ऐसे डेवलपर होते हैं जिन्हें डेवलपर ने पब्लिश किया है Engage SDK के साथ इंटिग्रेट करते समय, इसका इस्तेमाल किया जा सकता है.
सुझावों के क्लस्टर
क्लस्टर का टाइटल
हमारा सुझाव है कि आप एक खास और काम का क्लस्टर शीर्षक दें, ताकि उपयोगकर्ता क्लस्टर के कॉन्टेंट के बारे में ज़्यादा जानकारी मिलती है.
यहां कॉन्टेंट के हिसाब से अच्छे क्लस्टर के टाइटल के कुछ उदाहरण दिए गए हैं:
- शॉपिंग से जुड़े क्लस्टर
- ज़बरदस्त ऑफ़र
- हर हफ़्ते इस प्रॉडक्ट की खरीदारी ज़रूर करें
- Pixel Buds की खरीदारी से मिलता-जुलता
- महिलाओं के लिए रेन बूट
- स्वास्थ्य से जुड़ी किताबों के क्लस्टर
- सेहत, तन-मन और शरीर
- Health में आपके लिए सुझाव
- फ़िटनेस के सबसे ज़्यादा बिकने वाले प्रॉडक्ट और ब्रैंड
क्लस्टर कॉन्टेंट
सुझावों के क्लस्टर पब्लिश करते समय, डेवलपर को यह ध्यान रखना चाहिए कि जब उपयोगकर्ता डेवलपर के ऐप्लिकेशन में साइन इन हो.
जब उपयोगकर्ता ने साइन इन किया हो
अगर उपयोगकर्ता ने डेवलपर ऐप्लिकेशन में साइन इन किया है, तो हमारा सुझाव है कि आप इसे पब्लिश करें उपयोगकर्ताओं के हिसाब से बनाए गए या यूज़र जनरेटेड कॉन्टेंट क्लस्टर. क्योंकि यह उपयोगकर्ता के हिसाब से बनाया गया है और यूज़र जनरेटेड कॉन्टेंट, लोगों के लिए ज़्यादा काम का होता है और वे Google के प्लैटफ़ॉर्म से डेवलपर ऐप्लिकेशन पर जाएं.
- आपके हिसाब से बनाए गए सुझाव पब्लिश किए जा सकते हैं.
- आपके हिसाब से बनाए गए सुझावों के कुछ उदाहरण यहां दिए गए हैं:
- उपयोगकर्ता के वीडियो देखने के इतिहास के आधार पर सबसे लोकप्रिय वीडियो.
- ऐसी किताबें जो उपयोगकर्ता के पढ़ने के इतिहास में मौजूद किताबों से मिलती-जुलती हों.
- उपयोगकर्ता के पसंदीदा कलाकारों के गाने.
- आपके हिसाब से बनाए गए सुझावों के कुछ उदाहरण यहां दिए गए हैं:
- यूज़र जनरेटेड कॉन्टेंट लाइब्रेरी पब्लिश की जा सकती हैं.
- यहां यूज़र जनरेटेड कॉन्टेंट लाइब्रेरी के कुछ उदाहरण दिए गए हैं:
- डेवलपर ऐप्लिकेशन से उपयोगकर्ता की वॉचलिस्ट.
- डेवलपर की ओर से, उपयोगकर्ता के पसंदीदा कलाकारों की जानकारी वाली सूची है.
- यहां यूज़र जनरेटेड कॉन्टेंट लाइब्रेरी के कुछ उदाहरण दिए गए हैं:
सुझाव किस तरह का है | कॉन्टेंट अपडेट करने की रणनीति | कॉन्टेंट अपडेट होने की फ़्रीक्वेंसी से जुड़ा दिशा-निर्देश |
---|---|---|
आपके हिसाब से सुझाव | लेनिएंट हमारा सुझाव है कि आप रोज़ एक बार सुझावों को अपडेट करें, ताकि उपयोगकर्ता हर दिन नए सुझाव देख सकते हैं. |
क्योंकि उपयोगकर्ताओं को इस बात की सटीक उम्मीद नहीं होती कि कॉन्टेंट का सुझाव देने के लिए, कॉन्टेंट अपडेट करने की रणनीति विनम्र. |
यूज़र जनरेटेड कॉन्टेंट लाइब्रेरी | सख्त जब उपयोगकर्ता बाहर निकलते हैं, तो हम कॉन्टेंट लाइब्रेरी को अपडेट करने का सुझाव देते हैं डेवलपर ऐप पर मिल जाएगा. |
इस कॉन्टेंट को यहां दिखाए गए डेटा के साथ सिंक होना ज़रूरी है Google के अलग-अलग प्लैटफ़ॉर्म. इसकी वजह यह है कि आपके हिसाब से दिखाए जाने वाले सुझावों से अलग, उपयोगकर्ता को कॉन्टेंट के सटीक सेट की उम्मीद हो. इतने समय में हुई काफ़ी देरी पब्लिश करने से उपयोगकर्ताओं को भ्रम हो सकता है. इसलिए, कॉन्टेंट अपडेट करने की रणनीति सख्त कार्रवाई होनी चाहिए. |
जब उपयोगकर्ता ने साइन इन न किया हो
अगर किसी उपयोगकर्ता ने डेवलपर ऐप्लिकेशन में साइन इन नहीं किया है, तब भी हम पब्लिश करने का सुझाव देते हैं क्लस्टर बनाने होंगे, ताकि उपयोगकर्ताओं को Google से डेवलपर ऐप्लिकेशन पर जाने के लिए बढ़ावा दिया जा सके की जगह है.
- लोगों के हिसाब से न दिखाए जाने वाले सुझावों के क्लस्टर पब्लिश किए जाने चाहिए.
- लोगों के हिसाब से न दिखाए जाने वाले सुझावों के कुछ उदाहरण यहां दिए गए हैं:
- इस साल पढ़ी गई 10 सबसे लोकप्रिय किताबें.
- हाल ही में रिलीज़ हुई फ़िल्में.
- ट्रेंडिंग पॉडकास्ट.
- लोगों के हिसाब से न दिखाए जाने वाले सुझावों के कुछ उदाहरण यहां दिए गए हैं:
- साइन-इन करने के लिए इस्तेमाल होने वाला कार्ड पब्लिश करें.
- उपयोगकर्ताओं को डेवलपर ऐप्लिकेशन में साइन इन करने के लिए बढ़ावा देने के लिए, डेवलपर आपके पास साइन-इन कार्ड को पब्लिश करने की अनुमति होती है. साथ ही, सुझाव क्लस्टर. इस बारे में ज़्यादा जानकारी पाने के लिए, यहां दिया गया सेक्शन देखें साइन इन कार्ड पब्लिश करने का तरीका.
सुझाव किस तरह का है | कॉन्टेंट अपडेट करने की रणनीति | कॉन्टेंट अपडेट होने की फ़्रीक्वेंसी से जुड़ा दिशा-निर्देश |
---|---|---|
लोगों के हिसाब से न दिखाए जाने वाले सुझाव | लेनिएंट हमारा सुझाव है कि आप हर बार सुझावों को एक बार अपडेट करें दिन. |
क्योंकि उपयोगकर्ताओं को इस बात की सटीक उम्मीद नहीं होती कि कॉन्टेंट का सुझाव देने के लिए, कॉन्टेंट अपडेट करने की रणनीति विनम्र. |
सुझावों में साइन-इन कार्ड | सख्त हमारा सुझाव है कि जब उपयोगकर्ता बाहर निकल रहे हों, तब साइन-इन कार्ड की स्थिति को अपडेट करें के तौर पर सेट कर सकते हैं. उपयोगकर्ताओं के साइन इन करने के बाद, डेवलपर को कॉल करके कार्ड की जानकारी मिटानी होगी
|
साइन-इन स्थिति का Google के साथ सिंक होना ज़रूरी है की जगह है. उपयोगकर्ता को Google के उन्हें तब दिखाया नहीं जा सकता, जब वे पहले से साइन इन हों. इसलिए, कॉन्टेंट अपडेट होने की फ़्रीक्वेंसी रणनीति सख्त होनी चाहिए. |
कंटिन्यूएशन क्लस्टर
किसी कंटिन्यूएशन क्लस्टर को पब्लिश करते समय, डेवलपर को यह ध्यान रखना चाहिए कि जब उपयोगकर्ता डेवलपर के ऐप्लिकेशन में साइन इन हो.
जब उपयोगकर्ता ने साइन इन किया हो
- उपयोगकर्ता के जनरेट किए गए कंटिन्यूएशन क्लस्टर पब्लिश किए जाने चाहिए.
- यहां यूज़र जनरेटेड कंटिन्युएशन क्लस्टर के कुछ उदाहरण दिए गए हैं:
- वहीं से वीडियो देखना जारी रखें जहां व्यक्ति ने उसे पिछली बार छोड़ा था.
- वहीं से पढ़ना जारी रखें जहां उपयोगकर्ता ने छोड़ा था.
- यहां यूज़र जनरेटेड कंटिन्युएशन क्लस्टर के कुछ उदाहरण दिए गए हैं:
प्रोसेस जारी रखने का तरीका | कॉन्टेंट अपडेट करने की रणनीति | कॉन्टेंट अपडेट होने की फ़्रीक्वेंसी से जुड़ा दिशा-निर्देश |
---|---|---|
यूज़र जनरेटेड कंटिन्युएशन क्लस्टर | सख्त जब उपयोगकर्ता बाहर निकलते हैं, तो हम कॉन्टेंट लाइब्रेरी को अपडेट करने का सुझाव देते हैं डेवलपर ऐप पर मिल जाएगा. |
इस कॉन्टेंट को यहां दिखाए गए डेटा के साथ सिंक होना ज़रूरी है Google के प्लैटफ़ॉर्म. इसकी वजह यह है कि आपके हिसाब से दिखाए जाने वाले सुझावों से अलग, उपयोगकर्ता को कॉन्टेंट के सटीक सेट की उम्मीद हो. इतने समय में हुई काफ़ी देरी पब्लिश करने से उपयोगकर्ताओं को भ्रम हो सकता है. इसलिए, कॉन्टेंट अपडेट करने की रणनीति सख्त कार्रवाई होनी चाहिए. |
जब उपयोगकर्ता ने साइन इन न किया हो
गेम को जारी रखने की प्रोसेस, मुख्य रूप से साइन-इन किए हुए उपयोगकर्ताओं के लिए होती है; हालांकि, साइन आउट कर चुके उपयोगकर्ताओं के लिए, कंटिन्यूएशन क्लस्टर भी पब्लिश किए जा सकते हैं अगर आपके ऐप्लिकेशन में 'मेहमान के तौर पर ब्राउज़ करने की सुविधा' उपलब्ध है.
यूज़र मैनेजमेंट क्लस्टर
यूज़र मैनेजमेंट क्लस्टर का मुख्य मकसद, उपयोगकर्ताओं को कुछ काम करने के लिए प्रेरित करना है सेवा देने वाले ऐप्लिकेशन पर कार्रवाइयां. साइन इन करने पर, लोगों को ऐप्लिकेशन के साइन इन पर रीडायरेक्ट किया जाता है ताकि ऐप्लिकेशन, कॉन्टेंट पब्लिश कर सके (या अपनी दिलचस्पी के हिसाब से ज़्यादा जानकारी उपलब्ध करा सके) कॉन्टेंट)
साइन इन करने के लिए इस्तेमाल होने वाला कार्ड
एट्रिब्यूट | ज़रूरी शर्त | ब्यौरा |
---|---|---|
ऐक्शन 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() appEngagePublishClient.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(); appEngagePublishClient.publishUserAccountManagementRequest( new PublishUserAccountManagementRequest.Builder() .setSignInCardEntity(SIGN_IN_CARD_ENTITY) .build());
उपयोगकर्ताओं के साइन इन करने के बाद, डेवलपर को कॉल करके कार्ड की जानकारी मिटानी होगी
deleteUserManagementCluster()
एपीआई.
पब्लिश करने की स्थिति अपडेट करें
अगर कारोबार की किसी अंदरूनी वजह से, कोई भी क्लस्टर पब्लिश नहीं किया गया है, हमारा सुझाव है कि आप updateपब्लिशStatus एपीआई. ऐसा इसलिए ज़रूरी है, क्योंकि :
- कॉन्टेंट पब्लिश होने के बाद भी, हर स्थिति में स्टेटस देना (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
अगर कॉन्टेंट को पब्लिश नहीं किया गया है, क्योंकि उपयोगकर्ता ने लॉग इन नहीं किया है, हमारा सुझाव है कि आप साइन इन कार्ड पब्लिश करें. अगर किसी वजह से सेवा देने वाली कंपनियां, साइन इन कार्ड पब्लिश नहीं कर पा रही हैं इसके बाद, हमारा सुझाव है कि updatePublicStatus एपीआई पर कॉल किया जाए स्थिति कोड 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());
क्लस्टर पब्लिशिंग के लिए WorkManager
हमारा सुझाव है कि आप WorkManager का इस्तेमाल करें, ताकि क्लस्टर पब्लिश करें, क्योंकि यह बैकग्राउंड में होने वाले काम के लिए सुझाया गया समाधान है जहां निष्पादन अवसरवादी और गारंटी, दोनों तरह से होना चाहिए.
- WorkManager, बैकग्राउंड में जल्द से जल्द काम करता है.
- WorkManager आपके काम को शुरू करने के लिए अलग-अलग लॉजिक का इस्तेमाल करता है स्थितियों के बारे में भी बता सकते हैं, भले ही उपयोगकर्ता आपके ऐप्लिकेशन से किसी दूसरी जगह पर जाए.
हमारा सुझाव है कि जब कोई व्यक्ति ऐप्लिकेशन से बाहर जाए, तो हमारा सुझाव है कि बैकग्राउंड में चलने की सुविधा चालू करें
जॉब जो सुझाव क्लस्टर के साथ-साथ, कंटिन्यूएशन क्लस्टर भी पब्लिश करता है. ऐप्लिकेशन
इस लॉजिक के हिसाब से सबसे सही जगह है
Activity.onStop()
को कहा जाता है
जब उपयोगकर्ता ऐप्लिकेशन से दूर जाता है.
हमारा सुझाव है कि आप
PeriodicWorkRequest
बार-बार होने वाले जॉब को शेड्यूल करने के लिए किया जा सकता है. इस जॉब में क्लस्टर हर 24 घंटे में पब्लिश किए जाते हैं. इसका इस्तेमाल करके
CANCEL_AND_REENQUEUE
काम को ट्रिगर करने की नीति, डेवलपर यह पक्का कर सकते हैं कि WorkManager
जब भी कोई उपयोगकर्ता ऐप्लिकेशन से बाहर जाएगा, तब अपडेट किया गया डेटा. इससे इन समस्याओं को रोकने में मदद मिलती है
पुराना डेटा देखने में रुकावट डालते हैं.
यह उदाहरण इसे दिखाता है:
// Define the PublishClusters Worker requiring input
public class PublishClusters extends Worker {
public PublishClusters(Context appContext, WorkerParameters workerParams) {
super(appContext, workerParams);
}
@NonNull
@Override
public Result doWork() {
// publish clusters
}
...
}
public static void schedulePublishClusters(Context appContext) {
// Create a PeriodicWorkRequest to schedule a recurring job to update
// clusters at a regular interval
PeriodicWorkRequest publishClustersEntertainmentSpace =
// Define the time for the periodic job
new PeriodicWorkRequest.Builder(PublishClusters.class, 24, TimeUnit.HOURS)
// Set up a tag for the worker.
// Tags are Unique identifier, which can be used to identify that work
// later in order to cancel the work or observe its progress.
.addTag("Publish Clusters to Entertainment Space")
.build();
// Trigger Periodic Job, this will ensure that the periodic job is triggered
// only once since we have defined a uniqueWorkName
WorkManager.getInstance(appContext).enqueueUniquePeriodicWork(
// uniqueWorkName
"publishClustersEntertainmentSpace",
// If a work with the uniqueWorkName is already running, it will cancel the
// existing running jobs and replace it with the new instance.
// ExistingPeriodicWorkPolicy#CANCEL_AND_REENQUEUE
ExistingPeriodicWorkPolicy.CANCEL_AND_REENQUEUE,
// Recurring Work Request
publishClustersEntertainmentSpace);
}
ब्रॉडकास्ट के इंटेंट मैनेज करना
किसी जॉब के ज़रिए, Publishing Content API कॉल करने के अलावा, यह
सेट अप करने के लिए ज़रूरी है
पाने के लिए BroadcastReceiver
कॉन्टेंट पब्लिश करने का अनुरोध सबमिट करें.
हालांकि, डेवलपर को इस बात का ध्यान रखना चाहिए कि वे सिर्फ़ ब्रॉडकास्ट पर भरोसा न करें, क्योंकि वे कुछ खास स्थितियों में ट्रिगर होते हैं. खास तौर पर, ऐप्लिकेशन के लिए डेटा को फिर से चालू करना और उसे ज़बरदस्ती सिंक करना. ये इवेंट सिर्फ़ तब ट्रिगर होते हैं, जब यूज़र ऐक्टिविटी सेवा के मुताबिक, यह पता चलता है कि कॉन्टेंट पुराना हो सकता है. इस तरह, बेहतर तरीके से इस बात का भरोसा कि उपयोगकर्ता को कॉन्टेंट का नया अनुभव मिलेगा, भले ही ऐप्लिकेशन लंबे समय से नहीं खोला गया है.
BroadcastReceiver
को इन दो तरीकों से सेट अप किया जाना चाहिए:
BroadcastReceiver
क्लास के इंस्टेंस को डाइनैमिक तौर पर रजिस्टर करने के लिए, इनका इस्तेमाल करेंContext.registerReceiver()
. इसकी मदद से, ऐप्लिकेशन के ज़रिए बातचीत की जा सकती है जो अब भी मेमोरी में हैं.- अपने
<receiver>
AndroidManifest.xml
फ़ाइल. इससे ऐप्लिकेशन को ब्रॉडकास्ट मिलने लगता है इंटेंट, जब वह नहीं चल रहा होता है, और ऐप्लिकेशन को प्रकाशित करने की अनुमति भी देता है या वीडियो कॉन्टेंट.