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

এই টিউটোরিয়ালটি 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. ক্রিয়েট ক্রেডেনশিয়াল ক্লিক করুন এবং OAuth ক্লায়েন্ট আইডি নির্বাচন করুন।
  2. আবেদন প্রকারের জন্য অন্য নির্বাচন করুন।
  3. শংসাপত্রের নাম দিন।
  4. তৈরি করুন ক্লিক করুন।

আপনি এইমাত্র তৈরি করা শংসাপত্রটি নির্বাচন করুন এবং JSON ডাউনলোড করুন ক্লিক করুন। ডাউনলোড করা ফাইলটিকে client_secrets.json হিসাবে সংরক্ষণ করুন; আপনার টিউটোরিয়াল পরে এটি প্রয়োজন.

ধাপ 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 সরান।
import com.google.api.client.auth.oauth2.Credential;
import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.client.util.store.FileDataStoreFactory;
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.File;
import java.io.IOException;
import java.io.InputStreamReader;


/**
 * A simple example of how to access the Google Analytics API.
 */
public class HelloAnalytics {
  // Path to client_secrets.json file downloaded from the Developer's Console.
  // The path is relative to HelloAnalytics.java.
  private static final String CLIENT_SECRET_JSON_RESOURCE = "client_secrets.json";

  // The directory where the user's credentials will be stored.
  private static final File DATA_STORE_DIR = new File(
      System.getProperty("user.home"), ".store/hello_analytics");

  private static final String APPLICATION_NAME = "Hello Analytics";
  private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
  private static NetHttpTransport httpTransport;
  private static FileDataStoreFactory dataStoreFactory;

  public static void main(String[] args) {
    try {
      Analytics analytics = initializeAnalytics();
      String profile = getFirstProfileId(analytics);
      printResults(getResults(analytics, profile));
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  private static Analytics initializeAnalytics() throws Exception {

    httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    dataStoreFactory = new FileDataStoreFactory(DATA_STORE_DIR);

    // Load client secrets.
    GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY,
        new InputStreamReader(HelloAnalytics.class
            .getResourceAsStream(CLIENT_SECRET_JSON_RESOURCE)));

    // Set up authorization code flow for all auth scopes.
    GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow
        .Builder(httpTransport, JSON_FACTORY, clientSecrets,
        AnalyticsScopes.all()).setDataStoreFactory(dataStoreFactory)
        .build();

    // Authorize.
    Credential credential = new AuthorizationCodeInstalledApp(flow,
        new LocalServerReceiver()).authorize("user");

    // 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 properties 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. অ্যাপ্লিকেশনটি একটি ব্রাউজারে অনুমোদন পৃষ্ঠাটি লোড করবে।
  2. আপনি যদি ইতিমধ্যে আপনার Google অ্যাকাউন্টে লগ ইন না করে থাকেন, তাহলে আপনাকে লগ ইন করতে বলা হবে৷ আপনি যদি একাধিক Google অ্যাকাউন্টে লগ ইন করে থাকেন, তাহলে অনুমোদনের জন্য ব্যবহার করার জন্য আপনাকে একটি অ্যাকাউন্ট নির্বাচন করতে বলা হবে৷

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

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