2014-07-17 13 views
7

मैं Google Analytics को अपने ऐप्स पर सबसे आसान तरीके से कनेक्ट करने का प्रयास कर रहा हूं। मैं एनालिटिक्स v4 को कार्यान्वित करना चाहता हूं, क्योंकि Google ने कहा था कि वे जल्द ही इसे अपग्रेड करने के लिए मजबूर होंगे, इसलिए मैं एक ही काम में दो बार नहीं करना चाहता हूं।एंड्रॉइड एनालिटिक्स v4 सबसे सरलीकृत

Google के ट्यूटोरियल, इस मामले में, बहुत कुशल नहीं है। विलय कि वे वहाँ कहा है और क्या मैं इंटरनेट पर मिल गया है, मैं इस चरणों कर दिया है: आवेदन के तहत

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

और इस,:

एंड्रॉयड प्रकट में, मैं इस अनुमतियां जोड़ने है टैग:

<meta-data android:name="com.google.android.gms.analytics.globalConfigResource" 
    android:resource="@xml/analytics" /> 
<meta-data android:name="com.google.android.gms.version" 
    android:value="@integer/google_play_services_version" /> 

मैं सेकंड मेटा की आवश्यकता के बारे में सुनिश्चित नहीं कर रहा हूँ ...

मैं एक xml फ़ाइल नाम लिखा गया है "analytics.xml" (/ res/xml /) युक्त :

<!-- the Local LogLevel for Analytics --> 
<string name="ga_logLevel">verbose</string> 

<!-- Treat events as test events and don't send to google --> 
<bool name="ga_dryRun">false</bool> 

<!-- <integer name="ga_sessionTimeout">300</integer> --> 

<!-- Enable automatic Activity measurement --> 
<bool name="ga_autoActivityTracking">true</bool> 

<!-- Enable automatic exception tracking --> 
<bool name="ga_reportUncaughtExceptions">true</bool> 

<string name="ga_trackingId">UA-52900555-1</string> 

<!-- The screen names that will appear in reports --> 
<screenName name="com.maik.adbconnect.EmpityActivity"> 
    Adb Activation 
</screenName> 
<screenName name="com.maik.adbconnect.wid_class"> 
    Widget call 
</screenName> 

अब, EmpityActivity.java में, मैं यह लिखा गया है, onCreate विधि की शुरुआत में:

GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); 
Tracker t = analytics.newTracker(R.xml.analytics); 
t.send(new HitBuilders.AppViewBuilder().build()); 

LogCat में, एनालिटिक्स का कहना है कि शुरू कर दिया और हिट है ... लेकिन मेरे विश्लेषिकी में समीक्षा करते हैं, "वास्तविक समय उन" के अंतर्गत, कहते हैं शून्य ....

अतिरिक्त प्रश्न: xml फ़ाइल में

  • screennames की आवश्यकता है?

  • ga_logLevel और ga_dryRun को बहिष्कृत किया गया है? क्योंकि logcat मुझे चेतावनी दी है कि उन संसाधनों के लिए सेटअप Google Analytic v4

+0

आपने कितने समय पहले एनालिटिक्स खाता बनाया था? – DaImTo

+0

एक हफ्ते पहले ... मैंने इसे भी सोचा है, लेकिन अब भी यह काम नहीं करता है ... हालांकि LogCat यह कहता है, इसलिए मुझे लगता है कि यह डेटा को विश्लेषिकी में भेजता है: "07-22 21: 38: 46.381: V/GAV4 (8076): थ्रेड [गैथ्रेड, 5, मुख्य]: सेवा पाथ पर हिट भेजना: https: PARAMS: v = 1, ul = it-it, t = screenview, ht = 1406057921206, sr = 768x1184, a = 2142572923 , ए = एडीबीकनेक्ट, टीआईडी ​​= UA-52900555-1, सहायता = com.maik.adbconnect, cid = 8e106838-bfda-418e-a5e2-6a1f56a6c65d, av = 1.0, _u = .2nK-AL, " – Maik

+0

या शायद" पथ: https: "गलत है? – Maik

उत्तर

6

सबसे आसान तरीका मान्यता प्राप्त नहीं हैं जावा कोड का उपयोग करें और (Application.onCreate से ही नजर कॉन्फ़िगर) के लिए है। यह Analytics को कॉन्फ़िगर करने का सबसे तेज़ और सुरक्षित तरीका भी है। आप कोड इस तरह दिखेगा:

public class MyApp extends Application { 
    private final String TRACKER_ID = "UA-54994796-4"; 

    private static GoogleAnalytics analytics; 
    private static Tracker tracker; 
    public static GoogleAnalytics analytics() {return analytics;} 
    public static Tracker tracker() {return tracker;} 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     analytics = GoogleAnalytics.getInstance(this); 
     analytics.getLogger().setLogLevel(Logger.LogLevel.VERBOSE); 
     tracker = analytics.newTracker("UA-00000000-1"); 
     tracker.enableExceptionReporting(true); 
     tracker.enableAutoActivityTracking(true); 
    } 
} 

अपने एप्लिकेशन में कहीं से एक घटना भेजने के लिए आप का उपयोग कर सकते हैं:

<manifest> 
... 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    ... 
    <application 
     android:name=".MyApp"> 
    ... 
    </application> 
    ... 
</manifest> 
:

MyApp.tracker().send(new HitBuilders.EventBuilder(
    "some category", " some action").build()); 

आप अपने ApplicationManifest.xml को कुछ बदलाव के साथ-साथ की जरूरत है

मैं किसी भी XML कॉन्फ़िगरेशन फ़ाइलों का उपयोग करने से दूर रहूंगा क्योंकि XML कॉन्फ़िगरेशन गलत प्राप्त करना आसान है। जावा से कॉन्फ़िगर करने से आपके कॉल को सत्यापित करने वाले कंपाइलर का लाभ होता है। अपने Analytics को कॉन्फ़िगर करने के लिए कोड का उपयोग करना भी तेज़ है क्योंकि यह एक्सएमएल पार्सिंग ओवरहेड से बचाता है।

स्क्रीन नाम वैकल्पिक हैं। आप कक्षा के नामों का उपयोग कर रह सकते हैं। आपकी रिपोर्ट क्लास नामों को अधिक मानवीय मित्र नामों के बजाय दिखाएगी लेकिन अतिरिक्त मैपिंग से बचने के लिए यह आसान है।

dryRun और logLevel को Google Play Services 7.0 के रूप में कम नहीं किया जाता है। आप या तो गलत नाम का उपयोग कर रहे हैं, उन्हें एक्सएमएल के गलत खंड में रखने के गलत मूल्य प्रदान किए गए हैं। एक्सएमएल विन्यास के साथ यह समस्या है। केवल सीमित रनटाइम सत्यापन है और चीजों को गलत करना आसान है और समस्या को ध्यान में नहीं रखता है।

+0

महान जवाब! Gav4 को लागू करने के बारे में Google के बीएस को काटने के लिए धन्यवाद, मेरे भगवान इतने बेकार भ्रामक सामान अपने डॉक्टर और ट्यूटोरियल में हालांकि अधिकांश लोग हिट भेजना चाहते हैं! एक्सएमएल से बचने के लिए भी बहुत आसान है! – Don

संबंधित मुद्दे