অ্যান্ড্রয়েডের জন্য Google Analytics SDK: v3-এ স্থানান্তরিত হচ্ছে

এই নির্দেশিকা বর্ণনা করে কিভাবে Android এর জন্য Google Analytics SDK-এর V3-তে আপগ্রেড করতে হয়।

এক নজরে: V3-এ নতুন কি আছে

V3-এ APIগুলি নেটিভ এবং ওয়েব প্ল্যাটফর্ম জুড়ে আরও সামঞ্জস্যপূর্ণ হওয়ার জন্য রিফ্যাক্টর করা হয়েছে। সমস্ত V2 ব্যবহারকারীদের এই পরিবর্তনগুলি নোট করা উচিত:

  • হিটগুলি এখন একক send(Map<String, String> parameters) পদ্ধতি ব্যবহার করে পাঠানো হয়।
  • ডিবাগ মোড একটি Logger দিয়ে প্রতিস্থাপিত হয়েছে৷
  • ইজিট্র্যাকার এখন Tracker সাবক্লাস করে, যার ফলে ইন্টারফেসে কিছু পরিবর্তন হয়।
  • নতুন: প্রেরিত ডেটা রিপোর্টে উপস্থিত হওয়া রোধ করতে একটি dryRun পতাকা যুক্ত করা হয়েছে৷

পরিবর্তনের সম্পূর্ণ তালিকার জন্য, অ্যান্ড্রয়েড চেঞ্জলগ দেখুন।

তুমি শুরু করার আগে

v3 তে আপগ্রেড শুরু করার আগে, আপনার নিম্নলিখিতগুলির প্রয়োজন হবে:

পাথ আপগ্রেড করুন

শুরু করতে, আপনার বর্তমান বাস্তবায়ন থেকে v3 এ একটি আপগ্রেড পথ নির্বাচন করুন:

ইজিট্র্যাকার: v1.x থেকে v3

এটি সুপারিশ করা হয় যে EasyTracker v1.x ব্যবহারকারীরা EasyTracker এর সাথে v3 ব্যবহার শুরু করতে v3 শুরু করার নির্দেশিকা অনুসরণ করুন৷

ইজিট্র্যাকার: v2.x থেকে v3

v2.x ইজিট্র্যাকার ব্যবহারকারীদের v3 তে আপগ্রেড সম্পূর্ণ করতে এই পদক্ষেপগুলি অনুসরণ করা উচিত:

  1. একটি Context: প্রদান করতে EasyTracker.getInstance() এ কলগুলি আপডেট করুন:
    // v2 (Old)
    // EasyTracker.getInstance().activityStart(this);
    
    // v3:
    EasyTracker.getInstance(this).activityStart(this);
    
  2. EasyTracker এখন Tracker সাবক্লাস করে -- EasyTracker.getTracker() :
    // v2 (Old)
    Tracker v2Tracker = EasyTracker.getInstance().getTracker();
    
    // v3
    Tracker v3Tracker = EasyTracker.getInstance(this);
    
    এ কলগুলি সরিয়ে দিন
  3. নতুন send(Map<String, String> parameters) পদ্ধতির সাথে সমস্ত send<hit-type> সুবিধার পদ্ধতিগুলি প্রতিস্থাপন করুন:
    // v2 (Old)
    Tracker v2EasyTracker = EasyTracker.getInstance().getTracker(this);
    v2EasyTracker.sendView("Home Screen");
    
    // v3
    Tracker v3EasyTracker = EasyTracker.getInstance(this);
    
    // Set the screen name on the tracker so that it is used in all hits sent from this screen.
    v3EasyTracker.set(Fields.SCREEN_NAME, "Home Screen");
    
    // Send a screenview.
    v3EasyTracker.send(MapBuilder
      .createAppView()
      .build()
    );
    
    v3 তে ডেটা পাঠানো সম্পর্কে আরও জানুন


  4. ga_debug EasyTracker প্যারামিটারটিকে ga_logLevel দিয়ে প্রতিস্থাপন করুন এবং এই ভারবোসিটি মানগুলির মধ্যে একটি: verbose , info , warning , error :
    <!-- res/values/analytics.xml -->
    
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
      <string name="ga_trackingId">UA-XXXX-Y</string>
      <!-- REMOVE: <bool name="ga_debug">true</bool> -->
      <string name="ga_logLevel">verbose</string>
    </resources>
    
    আরও বিস্তারিত জানার জন্য EasyTracker প্যারামিটার রেফারেন্স দেখুন৷


  5. GoogleAnalytics.requestAppOptOut() করা হয়েছে, পরিবর্তে GoogleAnalytics.getAppOptOut() ব্যবহার করুন:
    // v2 (Old)
    GoogleAnalytics.getInstance(this).requestAppOptOut(new AppOptOutCallback() {
       @Override
       public void reportAppOptOut(boolean optOut) {
         if (optOut) {
         ... // Alert the user that they've opted out.
         }
       });
    }
    
    // v3
    boolean optOutPreference = GoogleAnalytics.getInstance(this).getAppOptOut();
    
  6. (ঐচ্ছিক) ga_dryRun EasyTracker প্যারামিটার যোগ করুন এবং আপনার বাস্তবায়নের পরীক্ষা করার সময় আপনার উত্পাদন প্রতিবেদনে পরীক্ষার ডেটা উপস্থিত হওয়া রোধ করতে true সেট করুন:
  7. <!-- res/values/analytics.xml -->
    
    <?xml version="1.0" encoding="utf-8"?>
    
    <resources>
      <string name="ga_trackingId">UA-XXXX-Y</string>
      <string name="ga_logLevel">verbose</string>
    
      <!-- Prevent data from appearing in reports. Useful for testing. -->
      <bool name="ga_dryRun">true</bool>
    
    </resources>
    

কাস্টম বাস্তবায়ন: v1.x থেকে v3

v1.x ব্যবহারকারী যারা EasyTracker ব্যবহার করেন না তাদের উচিত V3 শুরু করার নির্দেশিকা অনুসরণ করা এবং প্রয়োজন অনুযায়ী অ্যাডভান্সড কনফিগারেশন ডেভেলপার গাইডের সাথে পরামর্শ করা।

কাস্টম বাস্তবায়ন: v2.x থেকে v3

v2.x ব্যবহারকারী যারা EasyTracker ব্যবহার করেন না তাদের v3 তে আপগ্রেড সম্পূর্ণ করতে নিচের ধাপগুলি অনুসরণ করা উচিত:

  1. সমস্ত 'send<hit-type>' সুবিধার পদ্ধতিগুলিকে নতুন send(Map<String, String> parameters) পদ্ধতি দিয়ে প্রতিস্থাপন করুন:
    // v2 (Old)
    Tracker v2Tracker = GoogleAnaytics.getInstance(this).getTracker("UA-XXXX-Y");
    v2Tracker.sendView("Home Screen");
    
    // v3
    Tracker v3Tracker = GoogleAnaytics.getInstance(this).getTracker("UA-XXXX-Y");
    
    // This screen name value will remain set on the tracker and sent with
    // hits until it is set to a new value or to null.
    v3Tracker.set(Fields.SCREEN_NAME, "Home Screen");
    
    v3Tracker.send(MapBuilder
      .createAppView()
      .build()
    );
    
  2. GoogleAnalytics.setDebug() কলগুলি সরান, GoogleAnalytics.getLogger().setLogLevel() দিয়ে প্রতিস্থাপন করুন :
    // V2 (Old)
    GoogleAnalytics.getInstance(this).setDebug(true);
    
    // V3
    GoogleAnalytics.getInstance(this)
        .getLogger()
        .setLogLevel(LogLevel.VERBOSE);  // VERBOSE | INFO | DEBUG | WARNING
    
    Logger সম্পর্কে আরও জানুন

  3. অ্যাপটি খোলার সময় v3 SDK স্বয়ংক্রিয়ভাবে একটি নতুন সেশন শুরু করে না (ইজিট্র্যাকার ব্যবহার করার সময় ছাড়া)। আপনি যদি একটি v2 কাস্টম বাস্তবায়ন থেকে এই আচরণটি সংরক্ষণ করতে চান, একজন ব্যবহারকারী অ্যাপটি শুরু করার সময় আপনাকে আপনার নিজস্ব সেশন নিয়ন্ত্রণ যুক্তি প্রয়োগ করতে হবে:
  4. package com.example.app;
    
    import com.google.analytics.tracking.android.GoogleAnalytics;
    import com.google.analytics.tracking.android.Tracker;
    
    import android.app.Application;
    
    public class MyApp extends Application {
    
      private static Tracker mTracker;
      private static final String GA_PROPERTY_ID = "UA-XXXX-Y";
    
      @Override
      public void onCreate() {
        super.onCreate();
        mTracker = GoogleAnalytics.getInstance(this).getTracker(GA_PROPERTY_ID);
    
        // CAUTION: Setting session control directly on the tracker persists the
        // value across all subsequent hits, until it is manually set to null.
        // This should never be done in normal operation.
        //
        // mTracker.set(Fields.SESSION_CONTROL, "start");
    
        // Instead, send a single hit with session control to start the new session.
        mTracker.send(MapBuilder
          .createEvent("UX", "appstart", null, null)
          .set(Fields.SESSION_CONTROL, "start")
          .build()
        );
      }
    }
    
    
  5. (ঐচ্ছিক) পরীক্ষা করার সময় dryRun পতাকা সেট করুন যাতে আপনার প্রোডাকশন রিপোর্টের সাথে পরীক্ষার ডেটা প্রক্রিয়া করা না হয়।
  6. // When true, dryRun flag prevents data from being processed with reports.
    GoogleAnalytics.getInstance(this).setDryRun(true);
    

রেফারেন্স

নিম্নলিখিত বিভাগগুলি কীভাবে V3 SDK ব্যবহার করে ডেটা সেট এবং পাঠাতে হয় তার রেফারেন্স উদাহরণ প্রদান করে৷

v3 এ মানচিত্র ব্যবহার করে ডেটা পাঠানো হচ্ছে

V3 তে, ডেটা পাঠানো হয় একটি একক send() পদ্ধতি ব্যবহার করে যা Google Analytics ক্ষেত্রগুলির একটি Map এবং একটি যুক্তি হিসাবে মান নেয়। একটি MapBuilder ইউটিলিটি ক্লাস প্রদান করা হয়েছে হিট নির্মাণের প্রক্রিয়াকে সহজ করার জন্য:

// Sending a screenview in v3 using MapBuilder.
Tracker tracker = GoogleAnalytics.getInstance(this).getTracker("UA-XXXX-Y");
tracker.set(Fields.SCREEN_NAME, "Home Screen");

tracker.send(MapBuilder
  .createAppView()                           // Creates a Map of hit type 'AppView' (screenview).
  .set(Fields.customDimension(1), "Premium") // Set any additional fields for this hit.
  .build()                                   // Build and return the Map to the send method.
);

MapBuilder ক্লাসটি যেকোনও সমর্থিত হিট প্রকার তৈরি করতে ব্যবহার করা যেতে পারে, যেমন ইভেন্ট:

// Sending an event in v3 using MapBuilder.createEvent()
tracker.send(MapBuilder
    .createEvent("UX", "touch", "menuButton", null)
    .build()
);

v3 এ ডেটা পাঠানো সম্পর্কে আরও জানুন

v3 এ ট্র্যাকারে ডেটা সেট করা

set() পদ্ধতি ব্যবহার করে মান সরাসরি Tracker সেট করা যেতে পারে। Tracker থেকে পরবর্তী সমস্ত হিটগুলিতে সরাসরি সেট করা মানগুলি প্রয়োগ করা হয়:

// Values set directly on a tracker apply to all subsequent hits.
tracker.set(Fields.SCREEN_NAME, "Home Screen");

// This screenview hit will include the screen name "Home Screen".
tracker.send(MapBuilder.createAppView().build());

// And so will this event hit.
tracker.send(MapBuilder
  .createEvent("UX", "touch", "menuButton", null)
  .build()
);

Tracker সেট করা একটি মান সাফ করতে, সম্পত্তিটিকে null সেট করুন:

// Clear the previously-set screen name value.
tracker.set(Fields.SCREEN_NAME, null);

// Now this event hit will not include a screen name value.
tracker.send(MapBuilder
  .createEvent("UX", "touch", "menuButton", null)
  .build()
);

v3-এ ডেটা সেট করা সম্পর্কে আরও জানুন