एनोटेशन, फ़िडेलिटी पैरामीटर, और सेटिंग तय करें

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

व्याख्या और फ़िडेलिटी पैरामीटर

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

आपके गेम के लिए संभावित एनोटेशन और फ़िडेलिटी पैरामीटर dev_tuningfork.proto नाम वाली फ़ाइल, जो assets/tuningfork में मौजूद है डायरेक्ट्री में जोड़ा जा सकता है. डेमो ऐप्लिकेशन का एक उदाहरण नीचे दिया गया है:

syntax = "proto3";

package com.google.tuningfork;

enum InstrumentKey {
  CPU = 0;
  GPU = 1;
  SWAPPY_WAIT = 2;
  SWAPPY_SWAP = 3;
  CHOREOGRAPHER = 4;
}

enum Level {
  // 0 is not a valid value
  LEVEL_INVALID = 0;
  LEVEL_1 = 1;
  LEVEL_2 = 2;
  LEVEL_3 = 3;
};

message Annotation {
  Level level = 1;
}

message FidelityParams {
  int32 num_spheres = 1;
  float tesselation_percent = 2;
}

यहां दी गई बातों का ध्यान रखें:

  • पैकेज का साइज़ com.google.tuningfork होना चाहिए.
  • मैसेज के नाम Annotation और FidelityParams होने चाहिए.
  • आप इस फ़ाइल में बताए गए सिर्फ़ enums का इस्तेमाल एनोटेशन के हिस्से के तौर पर कर सकते हैं.
  • FidelityParams फ़ील्ड में सिर्फ़ enums, int32s या floats का इस्तेमाल किया जा सकता है.
  • कॉन्टेंट बनाने पुष्टि करने वाला टूल इन शर्तों को लागू करता है.

सेटिंग

Settings मैसेज को tuningfork.proto ने तय किया है. पूरा उदाहरण यहां देखें: निम्न फ़ाइल:

gamesdk/samples/tuningfork/insightsdemo/app/src/main/assets/tuningfork/tuningfork_settings.txt

आपको इस नाम वाली फ़ाइल में अपने गेम की सेटिंग तय करनी होगी tuningfork_settings.txt आपकी assets/tuningfork डायरेक्ट्री में मौजूद है प्रोजेक्ट. आपको सिर्फ़ नीचे दिए गए फ़ील्ड भरने होंगे:

  • aggregation_strategy: एक मैसेज जिसमें ये चीज़ें शामिल होती हैं:

    • method: हर n मिलीसेकंड या TICK_BASED अपलोड करने के लिए TIME_BASED हर n टिक को अपलोड करने के लिए.
    • intervalms_or_count: method फ़ील्ड के लिए n.
    • max_instrumentation_keys: इस्तेमाल किए जाने वाले इंस्ट्रुमेंटेशन वाले बटन की संख्या. शुरू 4 तक.
    • annotation_enum_size: साइज़ की गिनती करने के बाद, यह फ़ील्ड ज़रूरी नहीं है डिस्क्रिप्टर से स्टार्ट-अप पर.
  • api_key: आपके ऐप्लिकेशन की Cloud प्रोजेक्ट API कुंजी, जिसका इस्तेमाल अनुरोधों की पुष्टि करने के लिए किया जाता है एंडपॉइंट का इस्तेमाल करें. इस कुंजी को जनरेट करने के लिए, देखें एपीआई चालू करें. अगर आपने आपको logcat में कनेक्शन से जुड़ी गड़बड़ियां दिखती हैं. पक्का करें कि एपीआई पासकोड सही है.

  • default_fidelity_parameters_filename: फ़िडेलिटी पैरामीटर सेट का इस्तेमाल यहां किया गया शुरू करना (ज़रूरी नहीं है अगर आप training_fidelity_params डालें).

  • level_annotation_index: (ज़रूरी नहीं) आपके एनोटेशन फ़ील्ड में मौजूद इंडेक्स लेवल नंबर डालें.

टेक्स्ट प्रज़ेंटेशन का एक उदाहरण यह है:

aggregation_strategy: {method: TIME_BASED, intervalms_or_count: 10000,
  max_instrumentation_keys: 5, annotation_enum_size: [3,4]}
api_key: "API-KEY-FROM-GOOGLE-CLOUD-CONSOLE"
default_fidelity_parameters_filename: "dev_tuningfork_fidelityparams_3.bin"
level_annotation_index: 1

एनोटेशन सेट करना

आपको अपने गेम के दौरान मैन्युअल रूप से एनोटेशन सेट करने होंगे. आपको डेमो ऐप्लिकेशन में इसका उदाहरण दिया गया है, क्योंकि यह गेम के सभी लेवल को एक साथ दिखाता है स्वचालित रूप से. ज़्यादा जानकारी के लिए, इसमें SetAnnotations() फ़ंक्शन देखें: insightsdemo.cpp.

इस मामले में, एनोटेशन सिर्फ़ लेवल की संख्या बताता है.

message Annotation {
  Level level = 1;
}

क्वालिटी लेवल तय करें

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

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

dev_tuningfork_fidelityparams_i.txt

जहां i, 1 से शुरू होने वाला ज़्यादा से ज़्यादा मान वाला इंडेक्स है 15 में से. ये फ़ाइलें आपकी assets/tuningfork डायरेक्ट्री में मौजूद होनी चाहिए प्रोजेक्ट. सैंपल प्रोजेक्ट, gamesdk/samples/tuningfork/insightsdemo/app/src/main/assets/tuningfork/ अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है डायरेक्ट्री.

प्रोटोकॉल बफ़र के बारे में जानकारी

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

Proto2 बनाम Proto3

प्रोटोकॉल बफ़र फ़ॉर्मैट का वर्शन, फ़ाइल की पहली लाइन में सेट किया गया है:

syntax="proto2";

Proto2 औरproto3, प्रोटोकॉल बफ़र के आम तौर पर इस्तेमाल होने वाले दो वर्शन हैं. वे दोनों उसी वायर फ़ॉर्मैट का इस्तेमाल करें, लेकिन डेफ़िनिशन फ़ाइलें साथ काम नहीं करतीं. कुंजी दो वर्शन के बीच ये अंतर हैं:

  • optional और required कीवर्ड की अब proto3 में अनुमति नहीं है.
  • प्रोटो3 में सब कुछ असरदार तरीके से optional है.
  • Proto3 में एक्सटेंशन काम नहीं करते.

अपनी प्रोटो फ़ाइलों में Proto3 का इस्तेमाल करें क्योंकि इन्हें C# में कंपाइल किया जा सकता है. Proto2 काम करता है साथ ही, ट्यूनिंग फ़ोर्क लाइब्रेरी में मौजूद सीमित सुविधा वाले सेट को देखने की सुविधा मिलती है.

टेक्स्ट बनाम बाइनरी प्रतिनिधित्व

बाइनरी प्रोटोबफ़ वायर-फ़ॉर्मैट, अच्छे से वाक्य तैयार किया गया है और अलग-अलग तरह से स्थिर है प्रोटोबफ़ वर्शन (जनरेट किया गया कोड नहीं है). एक टेक्स्ट फ़ॉर्मैट भी है, जो प्रोटोबफ़ लाइब्रेरी का पूरा वर्शन जनरेट कर सकता है और पढ़ सकता है. यह फ़ॉर्मैट हालाँकि, यह अच्छी तरह परिभाषित नहीं है, लेकिन Fork लाइब्रेरी को ट्यून किया जा रहा है. बाइनरी और टेक्स्ट फ़ॉर्मैट को आपस में बदला जा सकता है protoc कंपाइलर का इस्तेमाल करके. यह निर्देश, टेक्स्ट प्रोटोबफ़ को इसमें बदल देता है बाइनरी:

protoc --encode com.google.tuningfork.Settings tuningfork.proto < tuningfork_settings.txt > tuningfork_settings.bin

आपको अपने APK में टेक्स्ट फ़ाइलों के बजाय बाइनरी फ़ाइलों को शामिल करना चाहिए क्योंकि पूरी प्रोटोबफ़ लाइब्रेरी का साइज़ कई एमबी से ज़्यादा है; ट्यूनिंग फ़ोर्क बनाना लाइब्रेरी पर निर्भर करता है कि इससे आपके गेम के साइज़ के बराबर बढ़ोतरी होगी.

फ़ुल बनाम लाइट बनाम नैनो

पूरी प्रोटोबफ़ लाइब्रेरी के साथ-साथ, इसमें एक लाइट वर्शन भी है जो कोड को छोटा करता है प्रतिबिंब, FileDescriptors, और जैसी कुछ सुविधाओं को हटाकर फ़ुटप्रिंट टेक्स्ट फ़ॉर्मैट में स्ट्रीम करना होता है. इस वर्शन को अभी भी कई MB की अतिरिक्त कोड फ़ुटप्रिंट वगैरह, ट्यूनिंग फ़ोर्क लाइब्रेरी आंतरिक रूप से nanoopb लाइब्रेरी के पास मौजूद होता है. सोर्स कोड इस लाइब्रेरी के लिए external/nanopb-c में Android ओपन सोर्स प्रोजेक्ट में शामिल है और यह gamesdk की ब्रांच का हिस्सा है. अगर कोड का साइज़ है, तो अपने गेम में इस लाइब्रेरी का इस्तेमाल करें एक समस्या है.

gamesdk/src/protobuf में CMake फ़ाइलें मौजूद हैं, जो Google Analytics 4 प्रॉपर्टी को इंटिग्रेट करने में आपकी मदद कर सकती हैं प्रोटोबफ़ के तीनों वर्शन. नमूने ने नैनोप और पूरे, दोनों के मिश्रण का इस्तेमाल किया है प्रोटोबफ़