হ্যালো অ্যানালিটিক্স এপিআই: সার্ভিস অ্যাকাউন্টের জন্য জাভা কুইকস্টার্ট

এই টিউটোরিয়ালটি Google Analytics অ্যাকাউন্ট অ্যাক্সেস করতে, অ্যানালিটিক্স API গুলিকে জিজ্ঞাসা করতে, API প্রতিক্রিয়াগুলি পরিচালনা করতে এবং ফলাফলগুলি আউটপুট করার জন্য প্রয়োজনীয় পদক্ষেপগুলির মধ্য দিয়ে চলে। এই টিউটোরিয়ালে Core Reporting API v3.0 , Management API v3.0 , এবং OAuth2.0 ব্যবহার করা হয়েছে৷

ধাপ 1: Analytics API সক্ষম করুন

Google Analytics API ব্যবহার শুরু করার জন্য, আপনাকে প্রথমে সেটআপ টুল ব্যবহার করতে হবে, যা আপনাকে Google API কনসোলে একটি প্রকল্প তৈরি, API সক্ষম করা এবং শংসাপত্র তৈরি করার মাধ্যমে গাইড করে৷

একটি ক্লায়েন্ট আইডি তৈরি করুন

  1. পরিষেবা অ্যাকাউন্ট পৃষ্ঠা খুলুন। অনুরোধ করা হলে, একটি প্রকল্প নির্বাচন করুন.
  2. পরিষেবা অ্যাকাউন্ট তৈরি ক্লিক করুন, পরিষেবা অ্যাকাউন্টের জন্য একটি নাম এবং বিবরণ লিখুন। আপনি ডিফল্ট পরিষেবা অ্যাকাউন্ট আইডি ব্যবহার করতে পারেন, বা একটি ভিন্ন, অনন্য একটি চয়ন করতে পারেন৷ হয়ে গেলে Create এ ক্লিক করুন।
  3. নিম্নলিখিত পরিষেবা অ্যাকাউন্ট অনুমতি (ঐচ্ছিক) বিভাগ প্রয়োজন নেই। অবিরত ক্লিক করুন.
  4. ব্যবহারকারীদের এই পরিষেবা অ্যাকাউন্টের স্ক্রিনে অ্যাক্সেস মঞ্জুর করুন , কী তৈরি করুন বিভাগে নিচে স্ক্রোল করুন। Create key এ ক্লিক করুন।
  5. প্রদর্শিত পার্শ্ব প্যানেলে, আপনার কীটির বিন্যাস নির্বাচন করুন: JSON প্রস্তাবিত৷
  6. তৈরি করুন ক্লিক করুন। আপনার নতুন পাবলিক/প্রাইভেট কী জোড়া তৈরি এবং আপনার মেশিনে ডাউনলোড করা হয়েছে; এটি এই কীটির একমাত্র অনুলিপি হিসাবে কাজ করে। কীভাবে এটি নিরাপদে সঞ্চয় করা যায় সে সম্পর্কে তথ্যের জন্য, পরিষেবা অ্যাকাউন্ট কীগুলি পরিচালনা করা দেখুন।
  7. আপনার কম্পিউটার ডায়ালগে সংরক্ষিত ব্যক্তিগত কী- তে ক্লোজ ক্লিক করুন, তারপর আপনার পরিষেবা অ্যাকাউন্টের টেবিলে ফিরে যেতে সম্পন্ন ক্লিক করুন।

Google Analytics অ্যাকাউন্টে পরিষেবা অ্যাকাউন্ট যোগ করুন

নতুন তৈরি পরিষেবা অ্যাকাউন্টে একটি ইমেল ঠিকানা থাকবে, <projectId>-<uniqueId>@developer.gserviceaccount.com ; আপনি API-এর মাধ্যমে অ্যাক্সেস করতে চান এমন Google বিশ্লেষণ অ্যাকাউন্টে একজন ব্যবহারকারী যোগ করতে এই ইমেল ঠিকানাটি ব্যবহার করুন। এই টিউটোরিয়ালের জন্য শুধুমাত্র Read & Analyze অনুমতি প্রয়োজন।

ধাপ 2: Google ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন

Google Analytics API জাভা ক্লায়েন্ট ইনস্টল করার জন্য, আপনাকে অবশ্যই একটি জিপ ফাইল ডাউনলোড করতে হবে যাতে আপনার জাভা ক্লাসপাথে এক্সট্র্যাক্ট এবং কপি করার জন্য প্রয়োজনীয় সমস্ত জার রয়েছে।

  1. গুগল অ্যানালিটিক্স জাভা ক্লায়েন্ট লাইব্রেরি ডাউনলোড করুন, যা সমস্ত প্রয়োজনীয় নির্ভরতা সহ একটি জিপ ফাইল হিসাবে বান্ডিল।
  2. জিপ ফাইলটি বের করুন
  3. আপনার ক্লাসপথে libs ডিরেক্টরির মধ্যে সমস্ত JAR যোগ করুন।
  4. আপনার ক্লাসপাথে google-api-services-analytics-v3-[version].jar জার যোগ করুন।

ধাপ 3: নমুনা সেটআপ করুন

আপনাকে HelloAnalytics.java নামে একটি ফাইল তৈরি করতে হবে, যাতে প্রদত্ত নমুনা কোড থাকবে।

  1. HelloAnalytics.java তে নিম্নলিখিত সোর্স কোডটি কপি বা ডাউনলোড করুন
  2. নমুনা কোড হিসাবে একই ডিরেক্টরির মধ্যে পূর্বে ডাউনলোড করা client_secrets.JSON সরান।
  3. বিকাশকারী কনসোল থেকে উপযুক্ত মানগুলির সাথে KEY_FILE_LOCATION এর মানগুলি প্রতিস্থাপন করুন৷
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.gson.GsonFactory;

import com.google.api.services.analytics.Analytics;
import com.google.api.services.analytics.AnalyticsScopes;
import com.google.api.services.analytics.model.Accounts;
import com.google.api.services.analytics.model.GaData;
import com.google.api.services.analytics.model.Profiles;
import com.google.api.services.analytics.model.Webproperties;

import java.io.FileInputStream;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.io.IOException;


/**
 * A simple example of how to access the Google Analytics API using a service
 * account.
 */
public class HelloAnalytics {


  private static final String APPLICATION_NAME = "Hello Analytics";
  private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
  private static final String KEY_FILE_LOCATION = "<REPLACE_WITH_JSON_FILE>";
  public static void main(String[] args) {
    try {
      Analytics analytics = initializeAnalytics();

      String profile = getFirstProfileId(analytics);
      System.out.println("First Profile Id: "+ profile);
      printResults(getResults(analytics, profile));
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  /**
   * Initializes an Analytics service object.
   *
   * @return An authorized Analytics service object.
   * @throws IOException
   * @throws GeneralSecurityException
   */
  private static AnalyticsReporting initializeAnalytic() throws GeneralSecurityException, IOException {

    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    GoogleCredential credential = GoogleCredential
        .fromStream(new FileInputStream(KEY_FILE_LOCATION))
        .createScoped(AnalyticsScopes.all());

    // Construct the Analytics service object.
    return new Analytics.Builder(httpTransport, JSON_FACTORY, credential)
        .setApplicationName(APPLICATION_NAME).build();
  }


  private static String getFirstProfileId(Analytics analytics) throws IOException {
    // Get the first view (profile) ID for the authorized user.
    String profileId = null;

    // Query for the list of all accounts associated with the service account.
    Accounts accounts = analytics.management().accounts().list().execute();

    if (accounts.getItems().isEmpty()) {
      System.err.println("No accounts found");
    } else {
      String firstAccountId = accounts.getItems().get(0).getId();

      // Query for the list of properties associated with the first account.
      Webproperties properties = analytics.management().webproperties()
          .list(firstAccountId).execute();

      if (properties.getItems().isEmpty()) {
        System.err.println("No Webproperties found");
      } else {
        String firstWebpropertyId = properties.getItems().get(0).getId();

        // Query for the list views (profiles) associated with the property.
        Profiles profiles = analytics.management().profiles()
            .list(firstAccountId, firstWebpropertyId).execute();

        if (profiles.getItems().isEmpty()) {
          System.err.println("No views (profiles) found");
        } else {
          // Return the first (view) profile associated with the property.
          profileId = profiles.getItems().get(0).getId();
        }
      }
    }
    return profileId;
  }

  private static GaData getResults(Analytics analytics, String profileId) throws IOException {
    // Query the Core Reporting API for the number of sessions
    // in the past seven days.
    return analytics.data().ga()
        .get("ga:" + profileId, "7daysAgo", "today", "ga:sessions")
        .execute();
  }

  private static void printResults(GaData results) {
    // Parse the response from the Core Reporting API for
    // the profile name and number of sessions.
    if (results != null && !results.getRows().isEmpty()) {
      System.out.println("View (Profile) Name: "
        + results.getProfileInfo().getProfileName());
      System.out.println("Total Sessions: " + results.getRows().get(0).get(0));
    } else {
      System.out.println("No results found");
    }
  }
}

ধাপ 4: নমুনা চালান

আপনি Analytics API সক্ষম করার পরে, Java এর জন্য Google APIs ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন এবং নমুনা উত্স কোড সেট আপ করুন নমুনাটি চালানোর জন্য প্রস্তুত৷

আপনি যদি একটি IDE ব্যবহার করেন, তাহলে নিশ্চিত করুন যে আপনার HelloAnalytics ক্লাসে একটি ডিফল্ট রান টার্গেট সেট করা আছে। অন্যথায় আপনি কমান্ড লাইন থেকে অ্যাপ্লিকেশনটি কম্পাইল এবং চালাতে পারেন:

  1. ব্যবহার করে নমুনা কম্পাইল করুন:
    javac -classpath /path/to/google/lib/*:/path/to/google/lib/libs/* HelloAnalytics.java
  2. ব্যবহার করে নমুনা চালান:
    java -classpath ./:/path/to/google/lib/*:/path/to/google/lib/libs/* HelloAnalytics

আপনি যখন এই ধাপগুলি শেষ করেন, নমুনাটি অনুমোদিত ব্যবহারকারীর প্রথম Google Analytics ভিউ (প্রোফাইল) এর নাম এবং গত সাত দিনের সেশনের সংখ্যা প্রকাশ করে৷

অনুমোদিত অ্যানালিটিক্স সার্ভিস অবজেক্টের সাহায্যে আপনি এখন ম্যানেজমেন্ট এপিআই রেফারেন্স ডক্সে পাওয়া যেকোন কোড নমুনা চালাতে পারেন। উদাহরণস্বরূপ আপনি accountSummaries.list পদ্ধতি ব্যবহার করতে কোড পরিবর্তন করার চেষ্টা করতে পারেন।