डिवाइस टियर टारगेटिंग

डिवाइस टियर टारगेटिंग क्या है?

डिवाइस टियर टारगेटिंग की मदद से, आपको अलग-अलग वर्शन डिलीवर करने की सुविधा मिलती है (उदाहरण के लिए, रिज़ॉल्यूशन वगैरह) हार्डवेयर. उदाहरण के लिए, आपके पास लो रिज़ॉल्यूशन वाली ऐसेट को डिलीवर करने का विकल्प है इससे डिवाइसों की क्वालिटी कम की जा सकती है, ताकि उनकी परफ़ॉर्मेंस बेहतर हो सके. साथ ही, वे हाई रिज़ॉल्यूशन में वीडियो उपलब्ध करा सकें एसेट, ग्राफ़िक क्वालिटी को बेहतर बनाने के लिए बेहतर डिवाइसों पर काम करते हैं - बिना किसी भी तरह की बढ़ोतरी करने के लिए, सिर्फ़ उपयोगकर्ताओं की ज़रूरी ऐसेट डिवाइस. यह ऑडियंस, Play ऐसेट डिलीवरी में ऐसेट पैक. जैसा कि आप नीचे देखेंगे, आपके पास अब रैम, डिवाइस के खास मॉडल या सिस्टम की उपलब्ध सुविधाओं के हिसाब से) और ज़्यादा से ज़्यादा पांच टीयर का इस्तेमाल कर सकता है.

Play ऐसेट डिलीवरी की तरह, डिवाइस टियर टारगेटिंग पर भी एपीआई काम करता है 16 (जेली बीन 4.1) एपीआई 19 (KitKat 4.4.X) वाले डिवाइसों पर उपलब्ध है. साथ ही, डिफ़ॉल्ट वैल्यू को कम करती है. टियर, डिवाइस के बिल्ड पर ध्यान दिए बिना ही डिलीवर किया जाता है.

डेवलपर का अनुभव

बड़े लेवल पर, अपने मौजूदा गेम में डीटीटी को इंटिग्रेट करने के लिए आपको इन चीज़ों की ज़रूरत होगी इसके लिए, नीचे दिया गया तरीका अपनाएं:

  1. डिवाइस टियर टारगेटिंग और एक्सटेंशन के हिसाब से, Play ऐसेट डिलीवरी को इंटिग्रेट करें आपके गेम में
    • अगर आपने अपने गेम में, Play ऐसेट डिलीवरी को इंटिग्रेट नहीं किया है, तो मैंने पहले ही ऐसा कर लिया है)
    • अपनी ऐसेट को ऐसेट पैक में बांटें
    • बेहतरीन नतीजे पाने के लिए, अपने कोड और ऐसेट को एक साथ पैकेज करें Android ऐप्लिकेशन बंडल आर्टफ़ैक्ट को, जिसे Google Play पर अपलोड किया जाएगा.
  2. अपना डिवाइस टियर टारगेटिंग कॉन्फ़िगरेशन बनाएं, ताकि Play को पता चल सके उपयोगकर्ता के डिवाइसों पर आपकी ऐसेट कैसे डिलीवर की जाती हैं.
    • Google Play Developer API सेट अप करना (अगर अभी तक पूरा नहीं किया गया है), इसका इस्तेमाल करके, Play को DTT कॉन्फ़िगरेशन भेजा जाएगा.
    • DTT कॉन्फ़िगरेशन बनाने के लिए, यह तरीका अपनाएं.
  3. Play पर अपना एएबी अपलोड करें और जांच करके पक्का करें कि सब कुछ सही है सही तरीके से कॉन्फ़िगर किया गया

आपको पहले सेक्शन में यह जानकारी दिखेगी कि गाइड में कई लिंक मिलेंगे तय करें कि कौनसा बिल्ड सिस्टम इस्तेमाल किया जा रहा है. आपके चुने गए सिस्टम पर निर्भर करता है इस्तेमाल किया जा रहा है, और आपका मौजूदा सेटअप.

  • Gredle (Java और नेटिव गेम के लिए सुझाया गया): बनाए गए गेम के लिए Gradle का इस्तेमाल करके, बिल्ड सिस्टम को डीटीटी की मदद से अपना एएबी बनाएं.
    • अगर आपने अपने गेम को Gradle में एक्सपोर्ट किया और वहां अपना बिल्ड पूरा किया, हमारी सलाह है कि आप इन निर्देशों का पालन करें (जैसे, यूनिटी गेम Gredle में एक्सपोर्ट किया जाता है))
  • Unity प्लगिन: हम आपको इंपोर्ट करने के लिए इकाई पैकेज उपलब्ध कराएंगे में शामिल किया जाएगा. इससे आपको अपने Unity प्रोजेक्ट में आपका एएबी, डीटीटी की मदद से काम करता है.

अपने ऐप्लिकेशन में डिवाइस टियर टारगेटिंग सेट अप करना

Play ऐसेट डिलीवरी को अपने गेम में इंटिग्रेट करना (अगर यह पहले से पूरा नहीं हुआ है)

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

ग्रेडल

Gradle के साथ बनाए गए गेम के लिए, इन निर्देशों का इस्तेमाल Gredle की मदद से एसेट पैक बनाना, इसके बाद, ऐसेट पैक को वापस पाने की प्रोसेस को इंटिग्रेट करने के लिए दिए गए निर्देशों का पालन करें आपके गेम में:

यूनिटी

Unity में बने गेम के लिए, आपको इनका इस्तेमाल करके ऐसेट पैक कॉन्फ़िगर करने होंगे AssetPackConfig क्लास, जैसा कि इसमें बताया गया है ये निर्देश.

डिवाइस के टियर के हिसाब से डायरेक्ट्री बनाना

अगर Gradle का इस्तेमाल किया जा रहा है, तो

अब अपनी ऐसेट को N टियर (ज़्यादा से ज़्यादा पांच) के बीच बांटें बाद में परिभाषित किया जा सकता है. मौजूदा दस्तावेज़ का इस्तेमाल करके, डीटीटी डायरेक्ट्री बनाएं आखिरी चरण में बनाई गई ऐसेट बंडल डायरेक्ट्री और उन्हें ठीक करने के बाद, #tier_0, #tier_1, #tier_2, और नीचे बताए गए सही फ़ोल्डर के साथ वगैरह. अपने गेम में ऐसेट पैक का इस्तेमाल करते समय - आपको ये काम करने की ज़रूरत नहीं होगी पोस्टफ़िक्स के आधार पर पता फ़ोल्डर (दूसरे शब्दों में, पोस्टफ़िक्स अपने आप बिल्ड प्रोसेस के दौरान हटाया जाता है).

पिछले चरण के बाद, यह ऐसा दिख सकता है:

...
.../level1/src/main/assets/character-textures#tier_2/
.../level1/src/main/assets/character-textures#tier_1/
.../level1/src/main/assets/character-textures#tier_0/
...

जब आप फ़ोल्डर की फ़ाइलें ऐक्सेस करते हैं, तो आप उसी फ़ोल्डर का इस्तेमाल कर सकते हैं के बिना पोस्ट नहीं किया है, (इस उदाहरण में - तो मैं level1/assets/character-textures/).

Unity का इस्तेमाल करते समय

डीटीटी का इस्तेमाल करने वाला ऐसेट पैक जोड़ने के लिए, नीचे दिए गए तरीके का इस्तेमाल करें AssetPackConfig तरीका:

/// Package the specified raw assets in the specified folders,
/// keyed by DeviceTier, in an AssetPack with the specified delivery mode.
public void AddAssetsFolders(
    string assetPackName,
    IDictionary<DeviceTier, string> deviceTierToAssetPackDirectoryPath,
    AssetPackDeliveryMode deliveryMode)

/// Package the specified AssetBundle files, which vary only by DeviceTier,
/// in an AssetPack with the specified delivery mode.
public void AddAssetBundles(
    IDictionary<DeviceTier, string> deviceTierToAssetBundleFilePath,
    AssetPackDeliveryMode deliveryMode)

उदाहरण के लिए, मान लें कि आपके पास तीन AssetBundles अपने अवतार के लिए अलग-अलग लेवल बनाएं.

इन AssetBundles को उनके डिवाइस टियर से मैप करने के लिए, इसका इस्तेमाल करें: स्निपेट सबमिट करें.

var assetPackConfig = new AssetPackConfig();
var tiers = new Dictionary<DeviceTier, string>
{
    {0, "Assets/LowPoly/Character"},
    {1, "Assets/Mid/Character"},
    {2, "Assets/Detailed/Character"}
};
assetPackConfig.AddAssetBundles(tiers, AssetPackDeliveryMode.OnDemand);

Android ऐप्लिकेशन बंडल बनाना

ग्रेडल

अपने प्रोजेक्ट की build.gradle फ़ाइल में, अपनी डिपेंडेंसी कॉन्फ़िगर करें नीचे दिए गए (या बाद के) वर्शन Android Gradle प्लग इन और बंडलटूल:

buildscript {
  dependencies {
    classpath 'com.android.tools.build:gradle:4.2.0'
    classpath "com.android.tools.build:bundletool:1.7.1"
    ...
  }
  ...
}

आपको अपने Gradle वर्शन को 6.7.1 या उसके बाद वाले वर्शन में भी अपडेट करना होगा. इसे gradle/wrapper/gradle-wrapper.properties में अपडेट किया जा सकता है शामिल हैं.

distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip

आखिर में, आपको 'Play ऐसेट डिलीवरी लाइब्रेरी' का इस्तेमाल करना होगा; अगर तुम अब भी हो Play Core लाइब्रेरी का इस्तेमाल करके, उसे 1.8.3 या उसके बाद के वर्शन में अपडेट करें. हमारा सुझाव है कि आप: Play ऐसेट डिलीवरी लाइब्रेरी पर स्विच किया जा रहा है और सबसे नए वर्शन में अपडेट किया जा रहा है अगर हो सके.

dependencies {
  implementation 'com.google.android.play:asset-delivery:2.0.1'
  ...
}

ऐप्लिकेशन के मुख्य मॉड्यूल की build.gradle फ़ाइल में, डीटीटी स्प्लिट को चालू करें:

android {
  bundle {
    deviceTier {
      enableSplit true
    }
    ...
  }
  ...
}

आखिर में, अपना Android ऐप्लिकेशन बंडल (एएबी) बनाया जा सकता है.

बंडलटूल

बंडलटूल की मदद से अपना बंडल बनाएं, और अपने एएबी को पसंद के मुताबिक बनाने के चरण में, अपनी BundleConfig.pb फ़ाइल में यह जोड़ें.

{
  ...
  "optimizations": {
    "splitsConfig": {
      "splitDimension": [
      ...
      {
        "value": "DEVICE_TIER",
        "negate": false,
        "suffixStripping": {
          "enabled": true,
        }
      }],
    }
  }
}

यूनिटी

डीटीटी पैक को शामिल करने के लिए AssetPackConfig को कॉन्फ़िगर करने के बाद, आपको आपका एएबी बनाने के लिए, उस कॉन्फ़िगरेशन को नीचे दिए गए किसी एक तरीके में पास कर सकता है:

// Configures the build system to use the newly created assetPackConfig when
// calling Google > Build and Run or Google > Build Android App
Bundle.AssetPackConfigSerializer.SaveConfig(assetPackConfig);
// Alternatively, use BundleTool.BuildBundle to build an App Bundle from script
BuildBundle(new buildPlayerOptions(), assetPackConfig)

लोकल टेस्टिंग

आगे बढ़ने से पहले, हमारा सुझाव है कि आप ऐप्लिकेशन बंडल को स्थानीय तौर पर टेस्ट कर लें, ताकि पक्का करें कि सब कुछ सही तरीके से सेट अप किया गया हो. इसका इस्तेमाल किया जा रहा है bundletool (1.8.0 या इसके बाद के वर्शन), आप स्थानीय तौर पर इस ऐप्लिकेशन को बनाएं और उसकी जांच करें. साथ ही, सही डिवाइस के बारे में साफ़ तौर पर बताएं टियर. पहली बार इस सुविधा का इस्तेमाल करें build-apks .apks फ़ाइलों का सेट सेट करें और फिर अपने ऐप्लिकेशन को कनेक्ट किए गए डिवाइस पर डिप्लॉय करें install-apks का इस्तेमाल करके. आपके पास यह तय करने का विकल्प भी होता है कि डिवाइस-टीयर के ज़रिए, आपको कौनसा टीयर इंस्टॉल करना है फ़्लैग करें. आपको स्थानीय टेस्टिंग के इस तरीके के बारे में ज़्यादा जानकारी मिल सकती है यहां (कृपया ध्यान दें कि इस पेज को अब तक DTT के लिए अपडेट नहीं किया गया है. इसलिए, इसमें device-tier फ़्लैग).

bundletool build-apks --bundle=/path/to/app.aab --output=/path/to/app.apks --local-testing
bundletool install-apks --apks=/path/to/app.apks --device-tier=1

इसके अलावा: आपके पास extract-apks की मदद से किसी खास डिवाइस के लिए APKs का सेट. इसका इस्तेमाल किया जा रहा है get-device-spec साथ ही, इस डिवाइस के लिए डिवाइस टियर तय करने पर, --local-testing फ़्लैग के साथ काम नहीं करता है. इसका मतलब है कि यह काम नहीं करेगा तेज़ी से फ़ॉलो करने की सुविधा या मांग पर उपलब्ध ऐसेट पैक की जांच की जा सकती है.

bundletool get-device-spec --output=/path/to/device-spec.json --device-tier=1
bundletool extract-apks --apks=/path/to/existing_APK_set.apks --output-dir=/path/to/device_specific_APK_set.apks --device-spec=/path/to/device-spec.json

यूनिटी

Google -> बनाएं और चलाएं मेन्यू विकल्प की मदद से, --local-testing फ़्लैग चालू किया गया. हालांकि, आपको अपने डोमेन के लिए डिवाइस-टियर को install-apks निर्देश में पास किया गया है.

अगर आपको कोई डिवाइस-टियर तय करना है, तो आपको:

  1. Google -> का इस्तेमाल करके एएबी बनाएं 'Android ऐप्लिकेशन बंडल बनाएं' मेन्यू का विकल्प चुनें.
  2. चलाने के लिए पिछले सेक्शन में दिए गए निर्देशों का पालन करें पहले से मौजूद एएबी पर bundletool, build-apks, और install-apks.

Google Play Developer API के ज़रिए डिवाइस टियर कॉन्फ़िगरेशन बनाना

Google Play Developer API का इस्तेमाल शुरू करना (अगर पहले से ही इसे पूरा नहीं किया गया है)

डिवाइस टियर टारगेटिंग को कॉन्फ़िगर करने के लिए. उदाहरण के लिए, हर एक सुविधा के लिए ज़रूरी शर्तें तय करना टियर) का इस्तेमाल करना होगा, Android पब्लिशर एपीआई अपने कॉन्फ़िगरेशन को Google Play पर अपलोड करने के लिए. एपीआई के बारे में ज़्यादा जानकारी के लिए, यहां जाएं ऊपर दिया गया लिंक - कुछ ऐसे हैं शुरू करने के लिए आपको ये कदम उठाने होंगे:

  1. अगर ज़रूरी हो, तो अपना एपीआई प्रोजेक्ट बनाएं और उसे Google Play Console से लिंक करें.
  2. कोई एपीआई ऐक्सेस क्लाइंट सेट-अप करें.

एपीआई का रेफ़रंस ढूंढा जा सकता है यहां - बाद में, अगर आप एपीआई के ज़रिए अपना बिल्ड अपलोड करने का विकल्प चुनते हैं, तो आपको इसका इस्तेमाल करके फ़ोटो में बदलाव करने के तरीके. साथ ही, यह सलाह भी दी जाती है कि यह पेज देखें कृपया एपीआई का इस्तेमाल करें.

डिवाइस टियर कॉन्फ़िगरेशन एपीआई का इस्तेमाल करना

अपना डिवाइस टियर कॉन्फ़िगरेशन बनाने के लिए, इस एपीआई कॉल का इस्तेमाल किया जा सकता है:

डिवाइस टियर कॉन्फ़िगरेशन बनाएं

एचटीटीपी अनुरोध POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs
पाथ पैरामीटर लागू नहीं
अनुरोध का मुख्य हिस्सा डिवाइस टियर कॉन्फ़िगरेशन
जवाब का मुख्य हिस्सा डिवाइस टियर कॉन्फ़िगरेशन
डिवाइस टियर कॉन्फ़िगरेशन ऑब्जेक्ट

डिवाइस टियर की परिभाषा दो चरणों में दी जाती है:

  1. डिवाइस ग्रुप का एक सेट तय करें.
  2. अपने डिवाइस पर, लेवल असाइन करके डिवाइस टियर सेट तय करें डिवाइस ग्रुप.

डिवाइस ग्रुप, डिवाइसों का एक ऐसा सेट होता है जो आपके तय किए गए सिलेक्टर से मेल खाता है कॉन्फ़िगरेशन में.

सिलेक्टर, डिवाइस की रैम और डिवाइस मॉडल के लिए ज़रूरी शर्तें तय कर सकते हैं.

ग्रुप की पहचान आपके चुने गए नाम से की जाती है; ग्रुप को ओवरलैप करने की अनुमति है.

इसके बाद, ग्रुप की रैंकिंग करके, डिवाइस के टियर का सेट तय किया जा सकता है: डिवाइस टियर को उसके लेवल और डिवाइस ग्रुप के हिसाब से तय किया जाता है.

अगर कोई डिवाइस एक से ज़्यादा टीयर से मेल खाता है, तो उस डिवाइस पर सबसे ज़्यादा मेल खाने वाला टीयर.

  {
    device_groups: [
      {
        name: string,
        device_selectors: [
          {
            device_ram: {
              min_bytes: integer
              max_bytes: integer
            },
            included_device_ids: [
              {
                build_brand: string,
                build_device: string
              }
            ],
            excluded_device_ids: [
              {
                build_brand: string,
                build_device: string
              }
            ],
            required_system_features: [
              {
                name: string
              }
            ],
            forbidden_system_features: [
              {
                name: string
              }
            ]
          }
        ]
      }
    ],
    device_tier_set: {
      device_tiers: [
        {
          level: int,
          device_group_names: [string]
        }
      ]
    }
  }

फ़ील्ड:

  • device_confid_id (integer): इस डिवाइस से जुड़ा आईडी टियर कॉन्फ़िगरेशन.
  • device_groups (object): ग्रुप की परिभाषाएं

    • name (string): डिवाइस ग्रुप का नाम (आपकी ओर से तय किया गया स्ट्रिंग आईडी).
    • device_selectors (object): किसी डिवाइस से जुड़ने के लिए, डिवाइस से जुड़ी ज़रूरी शर्तें इस समूह को.
    • device_ram (ऑब्जेक्ट): डिवाइस की रैम से जुड़ी ज़रूरी शर्तें
      • min_bytes (इंटीजर, शामिल): कम से कम ज़रूरी रैम (बाइट में)
      • max_bytes (पूर्णांक, एक्सक्लूज़िव): ज़्यादा से ज़्यादा ज़रूरी रैम (बाइट में)
    • included_device_ids (object): जिन डिवाइस मॉडल में शामिल होना है इस सिलेक्टर (हर ग्रुप के लिए ज़्यादा से ज़्यादा 10000 device_ids) डिवाइस को इस सूची में मौजूद होना चाहिए, ताकि सिलेक्टर से मिलान किया जा सके. यह ज़रूरी है, लेकिन पूरी तरह से मैच करने के लिए ज़रूरी शर्त नहीं है (ऊपर दिया गया नोट देखें सिलेक्टर की ज़रूरी शर्तों को आपस में जोड़ने के बारे में)
      • build_brand (स्ट्रिंग): डिवाइस बनाने वाली कंपनी
      • build_device (स्ट्रिंग): डिवाइस के मॉडल का कोड
    • excluded_device_ids (object): डिवाइस के ऐसे मॉडल जिनमें शामिल नहीं किया जाना चाहिए इस सिलेक्टर (हर ग्रुप के लिए ज़्यादा से ज़्यादा 10000 device_ids) एक डिवाइस यह सूची सिलेक्टर से मेल नहीं खाएगी, भले ही यह अन्य सभी से मेल खाती हो ज़रूरी शर्तों को चुनें.
      • build_brand (स्ट्रिंग): डिवाइस बनाने वाली कंपनी
      • build_device (स्ट्रिंग): डिवाइस के मॉडल का कोड
    • required_system_features (ऑब्जेक्ट): वे सुविधाएं जिनकी किसी डिवाइस को ज़रूरत होती है इस सिलेक्टर के ज़रिए शामिल करना ज़रूरी है (ज़्यादा से ज़्यादा 100 सुविधाएं) प्रति समूह) है. डिवाइस में सभी सिस्टम सुविधाएं होनी चाहिए सूची चुनें. यह ज़रूरी है, लेकिन यह काफ़ी नहीं है शर्त को पूरा करने की शर्त पूरी करें (इसके बारे में ऊपर दिया गया नोट देखें शर्तों को आपस में जोड़कर दिखाया जाता है).

      सिस्टम सुविधा के बारे में जानकारी

      • name (string): सिस्टम की एक सुविधा
    • forbidden_system_features (ऑब्जेक्ट): ऐसी सुविधाएं जो डिवाइस को नहीं करनी चाहिए इसे सिलेक्टर की मदद से शामिल करना होगा (हर ग्रुप में ज़्यादा से ज़्यादा 100 सुविधाएं). अगर किसी डिवाइस में इस सूची में दी गई सिस्टम से जुड़ी कोई सुविधा मौजूद है, तो भले ही यह सिलेक्टर की दूसरी सभी ज़रूरतों से मेल खाता हो सिलेक्टर का इस्तेमाल करें.

      सिस्टम सुविधा के बारे में जानकारी

      • name (string): सिस्टम की एक सुविधा
  • device_tiers (ऑब्जेक्ट): टियर की परिभाषाएं

    • level (int): टियर का लेवल
    • group_name (स्ट्रिंग अरे): उन डिवाइस ग्रुप का नाम जो एक-दूसरे से जुड़े हैं इस टियर तक

डिवाइस बनाने वाली कंपनी और मॉडल के हिसाब से, सही फ़ॉर्मैट चुना जा सकता है Google Play Console पर डिवाइस सूची का इस्तेमाल करके, इनमें से कोई एक तरीका अपनाएं:

  • डिवाइस सूची का इस्तेमाल करके अलग-अलग डिवाइसों की जांच करना और मैन्युफ़ैक्चरर और मॉडल कोड, नीचे दिए गए उदाहरण में बताए गए हैं नीचे दिया गया है (Google Pixel 4a के लिए, मैन्युफ़ैक्चरर “Google” है और मॉडल कोड “सनफ़िश” है)'

    डिवाइस सूची में Pixel 4a पेज

    डिवाइस सूची में Pixel 4a पेज

  • उन डिवाइसों की CSV फ़ाइल डाउनलोड की जा रही है जिन पर यह सुविधा काम करती है. साथ ही, मैन्युफ़ैक्चरर और build_brand और build_device फ़ील्ड के लिए, मॉडल कोड.

यहां तीन टीयर वाले कॉन्फ़िगरेशन का उदाहरण दिया गया है - टीयर 2, डिवाइस ग्रुप high का इस्तेमाल करता है (इनमें 7 जीबी से बड़े सभी डिवाइस और Pixel 4 शामिल हैं). टियर 1 में डिवाइस का इस्तेमाल किया जाता है ग्रुप मीडियम (जिसमें 4 से 7 जीबी के बीच वाले सभी डिवाइस शामिल हैं) और टियर 0, जो अस्पष्ट रूप से कैच-ऑल ग्रुप के रूप में तय किया गया है.

{
  device_groups: [
    {
      name: 'high',
      device_selectors: [
        {
          device_ram: {
            min_bytes: 7516192768
          },
        },
        {
          included_device_ids: [
            {
              build_brand: 'google',
              build_device: 'flame'
            }
          ],
        }
      ]
    },
    {
      name: 'medium',
      device_selectors: [
        {
          device_ram: {
            min_bytes: 4294967296,
            max_bytes: 7516192768
          },
        }
      ]
    }
  ],
  device_tier_set: {
    device_tiers: [
      {
        level: 1,
        device_group_names: [
          'medium'
        ]
      },
      {
        level: 2,
        device_group_names: [
          'high'
        ]
      }
    ]
  }
}

नीचे दिए गए निर्देशों का पालन करके, अपने डिवाइस टारगेटिंग कॉन्फ़िगरेशन की पुष्टि करना Google Play पर अपलोड करना है.

आईडी के हिसाब से डिवाइस टियर कॉन्फ़िगरेशन पाएं

किसी खास डिवाइस टियर कॉन्फ़िगरेशन को आईडी के ज़रिए वापस पाने के लिए, इनका इस्तेमाल किया जा सकता है फ़ॉलो कर रहे कॉल:

एचटीटीपी अनुरोध GET https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs/{deviceTierConfigId}
पाथ पैरामीटर लागू नहीं
अनुरोध का मुख्य हिस्सा लागू नहीं
जवाब का मुख्य हिस्सा डिवाइस टियर कॉन्फ़िगरेशन

डिवाइस टियर कॉन्फ़िगरेशन की सूची पाएं

यहां दिए गए कॉल में, आपको डिवाइस टियर के आखिरी 10 कॉन्फ़िगरेशन मिल सकते हैं (या page_token क्वेरी पैरामीटर का इस्तेमाल करके, दस का एक सेट बेहतर तरीके से तय करें):

एचटीटीपी अनुरोध GET https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs
पाथ पैरामीटर लागू नहीं
क्वेरी पैरामीटर page_token (ज़रूरी नहीं) - इसका इस्तेमाल यह बताने के लिए किया जाता है कि का एक खास ग्रुप होगा. यह तब उपयोगी होता है, जब आपने 10 से ज़्यादा डीटीसी हैं और वे बनाए गए डीटीसी को देखना चाहते हैं सबसे हाल के 10 से पहले.
अनुरोध का मुख्य हिस्सा लागू नहीं
जवाब का मुख्य हिस्सा डिवाइस टियर कॉन्फ़िगरेशन की सूची

page_token

आपके डिवाइस टारगेटिंग कॉन्फ़िगरेशन की पुष्टि की जा रही है

bundletool में दो निर्देश शामिल हैं. इनकी मदद से, यह पुष्टि की जा सकती है कि आपका डिवाइस टारगेटिंग कॉन्फ़िगरेशन, Play पर अपलोड करने से पहले सही तरीके से काम करता है.

bundletool print-device-targeting-config की मदद से, यह पुष्टि की जा सकती है कि आपका JSON फ़ाइल वाक्यात्मक रूप से सही हो और आपके डिवाइस ग्रुप और टियर को आसानी से पढ़ा जा सकता है.

bundletool print-device-targeting-config --config=mydtc.json

bundletool evaluate-device-targeting-config की मदद से, यह पता लगाया जा सकता है कि कौनसे ग्रुप और टियर किसी खास डिवाइस से मेल खाएंगे. टारगेट डिवाइस को कनेक्ट करें और --connected-device फ़्लैग का इस्तेमाल करें; या आप कोड के कोड को कंपाइल करके JSON फ़ाइल को डिवाइस की प्रॉपर्टी के साथ मैन्युअल तरीके से सेव करता है और उसे --device-properties फ़्लैग.

bundletool evaluate-device-targeting-config --config=mydtc.json --connected-device
bundletool evaluate-device-targeting-config --config=mydtc.json --device-properties=deviceproperties.json

डिवाइस प्रॉपर्टी फ़ाइल, नीचे दिए गए विकल्पों के मुताबिक एक JSON फ़ाइल होनी चाहिए DeviceProperties प्रोटोबफ़ स्ट्रक्चर. उदाहरण के लिए:

{
  "ram": 2057072640,
  "device_id": {
    "build_brand":"google",
    "build_device":"redfin"
  },
  "system_features": [
    {
      "name":"android.hardware.bluetooth"
    },
    {
      "name":"android.hardware.camera"
    }
  ]
}

अपने Android ऐप्लिकेशन बंडल को Google Play पर अपलोड करना

एपीआई की मदद से

अपना 'Android ऐप्लिकेशन बंडल' अपलोड करने के लिए, Google Play Developer API का इस्तेमाल किया जा सकता है को Google Play से जोड़ा जा सकता है. साथ ही, किसी खास डिवाइस टियर टारगेटिंग कॉन्फ़िगरेशन को इससे लिंक किया जा सकता है आपका बिल्ड.

कई बदलाव करने के तरीकों की सामान्य जानकारी यहां देखें, इसके साथ Google Play Console में अलग-अलग ट्रैक रिलीज़ करने से जुड़े बेहतर उदाहरण (अंतिम लिंक के लिए, आपको एएबी-फ़्रेंडली एपीआई की जगह पर APK-फ़्रेंडली एपीआई, जो पेज में मौजूद हैं). इसके लिए, device tier config तय करने के लिए deviceTierConfigId में कॉन्फ़िगरेशन आईडी जोड़ा जा सकता है. पैरामीटर का उपयोग करते समय edits.bundle.upload तरीका, इस तरह:

https://androidpublisher.googleapis.com/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles?deviceTierConfigId="{deviceTierConfigId}

Google Play Console के ज़रिए

ऐसा करने के लिए, यहां दिए गए निर्देशों का पालन करें अपलोड करने के लिए. डीटीसी का नया कॉन्फ़िगरेशन होगा जो आपके ऐप्लिकेशन बंडल पर लागू किए गए हैं.

आप यहां जाकर पुष्टि कर सकते हैं कि आपका बंडल सही तरीके से बनाया गया है ऐप्लिकेशन बंडल एक्सप्लोरर (चुने गए बिल्ड के साथ) > डिलीवरी, और हर ऐसेट पैक पर क्लिक करें. यह दिखाया जाना चाहिए कि आपके पास N टियर हैं जिन्हें आपने बनाया है. इस उदाहरण में, इससे पता चलता है कि मेरे पास तीन टीयर हैं - 0, 1, और 2 मेरे ऐसेट पैक main_asset के लिए भी उपलब्ध है.

तीन टीयर वाला ऐसेट पैक

सही टियर की पुष्टि की जा रही है

सिर्फ़ सही टियर डिलीवर करने के लिए, यहां दिया गया तरीका अपनाएं डिवाइस से

adb shell pm path {packageName}

आपको कुछ ऐसा दिखेगा:

package:{...}/base.apk
package:{...}/split_config.en.apk
package:{...}/split_config.xxhdpi.apk
package:{...}/split_main_asset.apk
package:{...}/split_main_asset.config.tier_2.apk

सहायक

Curl का इस्तेमाल करके, क्विक स्टार्ट करें

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

सबसे पहले, एक डिवाइस टियर कॉन्फ़िगरेशन बनाएं और deviceTierConfigId कॉल पूरा होने पर आपको कॉल आएगा.

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" -XPOST -H "Content-Type: application/json" -d "{ device_groups: [ { name: 'high', device_selectors: [ { device_ram: { min_bytes: 7516192768 }, }, { included_device_ids: [ { build_brand: 'google', build_device: 'flame' } ], } ] }, { name: 'medium', device_selectors: [ { device_ram: { min_bytes: 4294967296, max_bytes: 7516192768 }, } ] } ], device_tier_set: { device_tiers: [ { level: 1, device_group_names: [ 'medium' ] }, { level: 2, device_group_names: [ 'high' ] } ] } }" https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs

कोई बदलाव करें - बदलाव के लिए आपको एक आईडी और उसकी समयसीमा खत्म होने का समय मिलेगा. इसके लिए आईडी सेव करें आने वाले कॉल के लिए तैयार है.

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" -XPOST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/edits

एएबी अपलोड करें, device tier config को क्वेरी पैरामीटर के रूप में तय करना - अगर कॉल हो जाएगा, तो आपको बिल्ड का वर्शन कोड, sha1, और sha256 दिखेगा. सेव करें अगले कॉल के लिए वर्शन कोड.

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" --data-binary @$HOME/{aabFile} -H "Content-Type: application/octet-stream" -XPOST https://androidpublisher.googleapis.com/upload/androidpublisher/v3/applications/{packageName}/edits/{editID}/bundles?deviceTierConfigId="{dttConfigID}"

पसंदीदा ट्रैक के लिए एएबी असाइन करना (टेस्टिंग के लिए, इंटरनल टेस्ट ट्रैक का इस्तेमाल करना चाहिए. हालांकि, अलग-अलग ट्रैक के बारे में यहां ज़्यादा पढ़ें), हम रिलीज़ नोट के बिना एक आसान रोल आउट करते हैं, लेकिन आप चाहें, तो यह पेज पढ़ें कुछ लोगों के लिए रिलीज़ करने की सुविधा, ड्राफ़्ट रिलीज़, और रिलीज़ नोट के बारे में ज़्यादा जानें. अगर पब्लिशर एपीआई का इस्तेमाल पहली बार किया जा रहा है, तो हमारा सुझाव है कि इसे ड्राफ़्ट रिलीज़ के तौर पर सेव करना होगा और रिलीज़ को अपने Google Play Console से यह पक्का करें कि सब कुछ सही तरीके से कॉन्फ़िगर किया गया हो.

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" -XPUT -H "Content-Type: application/json" -d "{ releases: [{status: '{status}'</code>, <code><strong>versionCodes</strong></code>: <code>['{versionCode}']</code> <code><strong>}]}</strong></code>" <code>https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/edits/{editID}/tracks/{track}

बदलाव लागू करें (सावधानी से आगे बढ़ें, क्योंकि इससे सभी बदलाव Play पर लाइव हो जाएंगे पसंद के हिसाब से ट्रैक करना)

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" -XPOST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/edits/{editID}:commit