देश के हिसाब से ऐसेट टारगेटिंग क्या है?
देश के हिसाब से ऐसेट टारगेटिंग की सुविधा की मदद से, अपने ऐप्लिकेशन के अलग-अलग वर्शन डिलीवर किए जा सकते हैं देश के आधार पर अलग-अलग डिवाइसों पर एक ही ऐसेट का (जैसे कि रिज़ॉल्यूशन) उपयोगकर्ता की जगह की जानकारी. उदाहरण के लिए, पसंद के मुताबिक बनाई गई सेवाएं डिलीवर करने का विकल्प चुना जा सकता है आपका ऐप्लिकेशन जिन देशों में उपलब्ध है वहां की एसेट - सभी किसी भी तरह की बढ़ोतरी करने के लिए, सिर्फ़ उपयोगकर्ताओं की ज़रूरी ऐसेट डिवाइस. यह ऑडियंस, Play ऐसेट डिलीवरी में ऐसेट पैक. जैसा कि नीचे दिखाया गया है, टारगेट करने की शर्तें तय करने के लिए, ज़्यादा से ज़्यादा 20 देशों का इस्तेमाल किया जा सकता है सेट. इस संदर्भ में, डिवाइस का देश है यह विज्ञापन, आम तौर पर Google पर रजिस्टर किए गए उपयोगकर्ता के बिलिंग पते से तय होता है Play खाता.
'Play ऐसेट डिलीवरी' की तरह, देश के हिसाब से टारगेट करने की सुविधा भी Android 4.1 (एपीआई लेवल) के साथ काम करती है 16) और उससे ज़्यादा. हालांकि, Android 4.4 (एपीआई लेवल 19) या इससे पहले के वर्शन वाले डिवाइसों पर, उपयोगकर्ता की जगह पर ध्यान दिए बिना, डिफ़ॉल्ट देश का सेट डिलीवर किया जाता है.
डेवलपर का अनुभव
बड़े लेवल पर, अपने मौजूदा गेम में देश के हिसाब से टारगेटिंग को इंटिग्रेट करने के लिए, यह तरीका अपनाएं:
- देश और एक्सटेंशन के हिसाब से, 'Play ऐसेट डिलीवरी' में टारगेटिंग को इंटिग्रेट करना
आपके गेम में
- अगर आपने अपने गेम में, Play ऐसेट डिलीवरी को इंटिग्रेट नहीं किया है, तो मैंने पहले ही ऐसा कर लिया है)
- अपनी ऐसेट को ऐसेट पैक में बांटें
- बेहतरीन नतीजे पाने के लिए, अपने कोड और ऐसेट को एक साथ पैकेज करें Android ऐप्लिकेशन बंडल आर्टफ़ैक्ट को, जिसे Google Play पर अपलोड किया जाएगा.
- अपना डिवाइस टारगेटिंग कॉन्फ़िगरेशन बनाएं, ताकि Play को पता चल सके
उपयोगकर्ता के डिवाइसों पर आपकी ऐसेट कैसे डिलीवर की जाती हैं.
- Google Play Developer API सेट अप करना (अगर अभी तक पूरा नहीं किया गया है), इसका इस्तेमाल करके, Play को टारगेटिंग कॉन्फ़िगरेशन भेजे जाएंगे.
- टारगेटिंग कॉन्फ़िगरेशन बनाने के लिए, यह तरीका अपनाएं.
- Play पर अपना एएबी अपलोड करें और जांच करके पक्का करें कि सब कुछ सही है सही तरीके से कॉन्फ़िगर किया गया
Java और नेटिव गेम के लिए, सुझाया गया बिल्ड सिस्टम Gradle है. Gradle का इस्तेमाल करके बनाए गए गेम के लिए, बिल्ड सिस्टम को कॉन्फ़िगर करने के लिए यह तरीका अपनाएं ताकि देश को टारगेट करने में मदद करने वाला आपका एएबी बनाया जा सके.
अगर आपने अपने गेम को Gradle में एक्सपोर्ट किया और वहां अपना बिल्ड पूरा किया, हमारी सलाह है कि आप इन निर्देशों का पालन करें (जैसे, यूनिटी गेम Gradle में एक्सपोर्ट किया गया)).
अपने ऐप्लिकेशन में, देश के हिसाब से ऐसेट टारगेटिंग सेट अप करना
Play ऐसेट डिलीवरी को अपने गेम में इंटिग्रेट करना (अगर यह पहले से पूरा नहीं हुआ है)
Play ऐसेट डिलीवरी (पीएडी) की मदद से, आपके गेम के ऐसेट, इंस्टॉल के समय या रनटाइम के दौरान, और इन्हें पढ़ने के लिए यहां इसकी खास जानकारी देखें. के साथ देश के हिसाब से टारगेट करने पर, Play आपके ऐसेट पैक का कॉन्टेंट डिलीवर करेगा. उपयोगकर्ता की जगहों के लिए, आपके तय किए गए देश सेट कॉन्फ़िगरेशन का इस्तेमाल करें. हमारा सुझाव है कि आप नीचे दिए गए दिशा-निर्देशों का पालन करें. साथ ही, पीएडी को आपका गेम (उदाहरण के लिए, ऐसेट पैक बनाना, अपने गेम में डेटा वापस पाने की सुविधा लागू करना), और फिर देश के अनुसार लक्ष्यीकरण सक्षम करने के लिए प्रोजेक्ट कोड में बदलाव करें.
ग्रेडल
Gradle के साथ बनाए गए गेम के लिए, इन निर्देशों का इस्तेमाल Gredle की मदद से एसेट पैक बनाना, इसके बाद, ऐसेट पैक को वापस पाने की प्रोसेस को इंटिग्रेट करने के लिए दिए गए निर्देशों का पालन करें आपके गेम में:
- Java
- नेटिव
- Unity गेम Gradle में एक्सपोर्ट किया गया
- Java लाइब्रेरी का इस्तेमाल करना के द्वारा JNI के माध्यम से (जैसे कि Unity में मौजूद एक खास जगह).
देश के हिसाब से खास डायरेक्ट्री बनाना
अगर Gradle का इस्तेमाल किया जा रहा है, तो
अब आप अपनी ऐसेट को देश के अलग-अलग सेट (ज़्यादा से ज़्यादा 20) के बीच बांटें बाद में परिभाषित किया जा सकता है. मौजूदा निर्देशों का पालन करके अपनी टारगेट की गई डायरेक्ट्री बनाएं आखिरी चरण में बनाई गई ऐसेट बंडल डायरेक्ट्री और उन्हें ठीक करने के बाद, के साथ उपयुक्त फ़ोल्डर (जैसा नीचे बताया गया है), #countries_latam, #countries_na, वगैरह. अपने गेम में ऐसेट पैक का इस्तेमाल करते समय - आपको ये काम करने की ज़रूरत नहीं होगी पोस्टफ़िक्स के आधार पर पता फ़ोल्डर (दूसरे शब्दों में, पोस्टफ़िक्स अपने आप बिल्ड प्रोसेस के दौरान हटाया जाता है).
पिछले चरण के बाद, यह ऐसा दिख सकता है:
...
.../level1/src/main/assets/character-textures#countries_latam/
.../level1/src/main/assets/character-textures#countries_na/
.../level1/src/main/assets/character-textures/
...
जब आप फ़ोल्डर की फ़ाइलें ऐक्सेस करते हैं, तो आप उसी फ़ोल्डर का इस्तेमाल कर सकते हैं
के बिना पोस्ट नहीं किया है, (इस उदाहरण में - तो मैं
level1/assets/character-textures/
).
Android ऐप्लिकेशन बंडल बनाना
ग्रेडल
अपने प्रोजेक्ट की build.gradle
फ़ाइल में, अपनी डिपेंडेंसी कॉन्फ़िगर करें
नीचे दिए गए (या बाद के) वर्शन
Android Gradle प्लग इन और
बंडलटूल:
buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:8.1.0-alpha01'
classpath "com.android.tools.build:bundletool:1.14.0"
...
}
...
}
आपको अपने Gradle वर्शन को 8.0 या उसके बाद वाले वर्शन में भी अपडेट करना होगा.
इसे gradle/wrapper/gradle-wrapper.properties
में अपडेट किया जा सकता है
शामिल हैं.
distributionUrl=https://services.gradle.org/distributions/gradle-8.0-rc-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 {
countrySet {
enableSplit true
}
...
}
...
}
आखिर में, अपना Android ऐप्लिकेशन बंडल (एएबी) बनाया जा सकता है.
बंडलटूल
बंडलटूल की मदद से अपना बंडल बनाएं,
और
अपने एएबी को पसंद के मुताबिक बनाने के चरण में,
अपनी BundleConfig.pb
फ़ाइल में यह जोड़ें.
{
...
"optimizations": {
"splitsConfig": {
"splitDimension": [
...
{
"value": "COUNTRY_SET",
"negate": false,
"suffixStripping": {
"enabled": true,
}
}],
}
}
}
लोकल टेस्टिंग
आगे बढ़ने से पहले, हमारा सुझाव है कि आप ऐप्लिकेशन बंडल को स्थानीय तौर पर टेस्ट कर लें, ताकि
पक्का करें कि सब कुछ सही तरीके से सेट अप किया गया हो. इसका इस्तेमाल किया जा रहा है
bundletool
(1.14.0 या इसके बाद के वर्शन), आप
स्थानीय तौर पर सही देश बताते हुए ऐप्लिकेशन को बनाना और उसकी जांच करना.
पहली बार इस सुविधा का इस्तेमाल करें
build-apks
.apks
फ़ाइलों का सेट सेट करें और फिर अपने ऐप्लिकेशन को कनेक्ट किए गए डिवाइस पर डिप्लॉय करें
install-apks
का इस्तेमाल करके.
आप यह भी तय कर सकते हैं कि आपको किस देश का सेट इंस्टॉल करना है
country-set
फ़्लैग. आपको स्थानीय टेस्टिंग के इस तरीके के बारे में ज़्यादा जानकारी मिल सकती है
यहां (कृपया ध्यान दें कि
इस पेज को अब तक देश के हिसाब से टारगेट करने के लिए अपडेट नहीं किया गया है. इसलिए, यह पेज उपलब्ध नहीं है
country-set
फ़्लैग).
bundletool build-apks --bundle=/path/to/app.aab --output=/path/to/app.apks --local-testing
bundletool install-apks --apks=/path/to/app.apks --country-set=latam
इसके अलावा: आपके पास
extract-apks
की मदद से
किसी खास डिवाइस के लिए APKs का सेट. इसका इस्तेमाल किया जा रहा है
get-device-spec
साथ ही, इस डिवाइस के लिए देश का नाम तय करने पर,
--local-testing
फ़्लैग के साथ काम नहीं करता है. इसका मतलब है कि यह काम नहीं करेगा
तेज़ी से फ़ॉलो करने की सुविधा या मांग पर उपलब्ध ऐसेट पैक की जांच की जा सकती है.
bundletool get-device-spec --output=/path/to/device-spec.json --country-set=latam
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 Play Developer API के ज़रिए डिवाइस टारगेटिंग कॉन्फ़िगरेशन बनाना
Google Play Developer API का इस्तेमाल शुरू करना (अगर पहले से ही इसे पूरा नहीं किया गया है)
देश के हिसाब से टारगेटिंग कॉन्फ़िगर करने के लिए, आपको इस्तेमाल करने की ज़रूरत है Android पब्लिशर एपीआई अपने कॉन्फ़िगरेशन को Google Play पर अपलोड करने के लिए. एपीआई के बारे में ज़्यादा जानकारी के लिए, यहां जाएं ऊपर दिया गया लिंक - कुछ ऐसे हैं शुरू करने के लिए आपको ये कदम उठाने होंगे:
- अगर ज़रूरी हो, तो अपना एपीआई प्रोजेक्ट बनाएं और उसे Google Play Console से लिंक करें.
- कोई एपीआई ऐक्सेस क्लाइंट सेट-अप करें.
एपीआई का रेफ़रंस ढूंढा जा सकता है यहां - बाद में, अगर आप एपीआई के ज़रिए अपना बिल्ड अपलोड करने का विकल्प चुनते हैं, तो आपको इसका इस्तेमाल करके फ़ोटो में बदलाव करने के तरीके. साथ ही, यह सलाह भी दी जाती है कि यह पेज देखें कृपया एपीआई का इस्तेमाल करें.
डिवाइस टारगेटिंग कॉन्फ़िगरेशन एपीआई का इस्तेमाल करना
अपना डिवाइस लक्ष्यीकरण कॉन्फ़िगरेशन बनाने के लिए आप निम्न API कॉल का उपयोग कर सकते हैं:
डिवाइस लक्ष्यीकरण कॉन्फ़िगरेशन बनाएं
एचटीटीपी अनुरोध | POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs |
पाथ पैरामीटर | लागू नहीं |
अनुरोध का मुख्य हिस्सा | डिवाइस टारगेटिंग कॉन्फ़िगरेशन |
जवाब का मुख्य हिस्सा | डिवाइस टारगेटिंग कॉन्फ़िगरेशन |
डिवाइस टारगेटिंग कॉन्फ़िगरेशन ऑब्जेक्ट
{
"user_country_sets": [
{
"name": "latam",
"country_codes": [
"AR",
"BR",
...
]
},
{
"name": "sea",
"country_codes": [
"VN",
"TW",
...
]
}
]
}
फ़ील्ड:
- device_confid_id (integer): इस डिवाइस से जुड़ा आईडी टारगेटिंग कॉन्फ़िगरेशन.
- user_country_sets (object): देश सेट की परिभाषाएं
- name (string): देश के लिए सेट का नाम (ऐसा स्ट्रिंग आईडी जिसे आपने तय किया है).
- country_codes (string): वे देश जो इस देश के सेट से जुड़े हैं (फ़ॉर्मैट: ISO 3166-1 alpha-2).
नीचे दिए गए निर्देशों का पालन करके, अपने डिवाइस टारगेटिंग कॉन्फ़िगरेशन की पुष्टि करने के पहले 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
की मदद से, यह पता लगाया जा सकता है कि
देश का सेट किसी खास डिवाइस से मेल खाएगा. आप उपयोगकर्ता को
--country-code
फ़्लैग के ज़रिए देश के बारे में बताया गया है.
bundletool evaluate-device-targeting-config --config=mydtc.json --connected-device --country-code=AR
अपने Android ऐप्लिकेशन बंडल को Google Play पर अपलोड करना
एपीआई की मदद से
अपना 'Android ऐप्लिकेशन बंडल' अपलोड करने के लिए, Google Play Developer API का इस्तेमाल किया जा सकता है को Google Play से जोड़ा जा सकता है. साथ ही, किसी खास डिवाइस टारगेटिंग कॉन्फ़िगरेशन को इससे लिंक किया जा सकता है आपका बिल्ड.
कई
बदलाव करने के तरीकों की सामान्य जानकारी यहां देखें,
इसके साथ
Google Play Console में अलग-अलग ट्रैक रिलीज़ करने से जुड़े बेहतर उदाहरण
(अंतिम लिंक के लिए, आपको
एएबी-फ़्रेंडली एपीआई
की जगह पर
APK-फ़्रेंडली एपीआई,
जो पेज में मौजूद हैं). इसके लिए डिवाइस टारगेटिंग कॉन्फ़िगरेशन तय करने के लिए
deviceTierConfigId
में कॉन्फ़िगरेशन आईडी जोड़ा जा सकता है.
पैरामीटर का उपयोग करते समय
edits.bundle.upload
तरीका, इस तरह:
https://androidpublisher.googleapis.com/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles?deviceTierConfigId="{deviceTierConfigId}
Google Play Console के ज़रिए
ऐसा करने के लिए, यहां दिए गए निर्देशों का पालन करें अपलोड करने के लिए. डीटीसी का नया कॉन्फ़िगरेशन होगा जो आपके ऐप्लिकेशन बंडल पर लागू किए गए हैं.
यह पुष्टि करना कि सही ऐसेट डिलीवर की जा रही हैं
यहां दिए गए तरीके का इस्तेमाल करके, यह पक्का करें कि सिर्फ़ सही ऐसेट डिलीवर की जा रही हैं डिवाइस से
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.countries_latam.apk
सहायक
Curl का इस्तेमाल करके, क्विक स्टार्ट करें
नीचे इसका एक उदाहरण दिया गया है (कमांड लाइन टूल कर्ल का इस्तेमाल करके) नया डिवाइस टारगेटिंग कॉन्फ़िगरेशन बनाना और कोई नया बदलाव करने के लिए, एडिट्स एपीआई का इस्तेमाल करके, नया एएबी अपलोड करें. किसी खास डिवाइस टारगेटिंग कॉन्फ़िगरेशन के साथ), ट्रैक/रिलीज़ कॉन्फ़िगरेशन सेट करें, और बदलाव करना है. (इस तरह बदलाव को सार्वजनिक करके). पक्का करें कि इसकी जगह:
- आपके एपीआई क्लाइंट से जुड़ी कुंजी
- आपके ऐप्लिकेशन का पैकेज नाम
सबसे पहले, एक डिवाइस टारगेटिंग कॉन्फ़िगरेशन बनाएं और
deviceTierConfigId
कॉल पूरा होने पर आपको कॉल आएगा.
curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" -XPOST -H "Content-Type: application/json" -d "{ "user_country_sets": [ { "name": "latam", "country_codes": [ "AR", "BR" ] }, { "name": "sea", "country_codes": [ "VN", "TW" ] } ] }" 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
एएबी अपलोड करें, डिवाइस टारगेटिंग कॉन्फ़िगरेशन को क्वेरी पैरामीटर के रूप में तय करना - अगर कॉल हो जाएगा, तो आपको बिल्ड का वर्शन कोड, 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="{deviceTargetingConfigID}"
पसंदीदा ट्रैक के लिए एएबी असाइन करना (टेस्टिंग के लिए, इंटरनल टेस्ट ट्रैक का इस्तेमाल करना चाहिए. हालांकि, अलग-अलग ट्रैक के बारे में यहां ज़्यादा पढ़ें), हम रिलीज़ नोट के बिना एक आसान रोल आउट करते हैं, लेकिन आप चाहें, तो यह पेज पढ़ें कुछ लोगों के लिए रिलीज़ करने की सुविधा, ड्राफ़्ट रिलीज़, और रिलीज़ नोट के बारे में ज़्यादा जानें. अगर पब्लिशर एपीआई का इस्तेमाल पहली बार किया जा रहा है, तो हमारा सुझाव है कि इसे ड्राफ़्ट रिलीज़ के तौर पर सेव करना होगा और रिलीज़ को अपने 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