মাল্টি-চ্যানেল ফানেল রিপোর্টিং API - বিকাশকারী গাইড

মাল্টি-চ্যানেল ফানেল ডেটা অ্যাক্সেস করতে মাল্টি-চ্যানেল ফানেল রিপোর্টিং এপিআই কীভাবে ব্যবহার করবেন এই নথিটি ব্যাখ্যা করে।

ভূমিকা

মাল্টি-চ্যানেল ফানেল রিপোর্টিং API মাল্টি-চ্যানেল ফানেল স্ট্যান্ডার্ড এবং কাস্টম রিপোর্টে ট্যাবুলার ডেটাতে অ্যাক্সেস প্রদান করে। ডেটা অ্যাক্সেস করতে, আপনি একটি ক্যোয়ারী তৈরি করেন যা নির্দিষ্ট করে: ভিউ (প্রোফাইল), শুরু এবং শেষের তারিখ এবং টেবিলের কলাম হেডার তৈরি করে এমন মাত্রা এবং মেট্রিক্স। এই ক্যোয়ারীটি মাল্টি-চ্যানেল ফানেল রিপোর্টিং API এ পাঠানো হয় এবং মাল্টি-চ্যানেল ফানেল রিপোর্টিং API একটি টেবিলের আকারে সমস্ত ডেটা প্রদান করে।

আপনি যদি API-এ নতুন হন, মাল্টি-চ্যানেল ফানেল রিপোর্টিং API এর উদ্দেশ্য এবং এটি যে ডেটা প্রদান করে তার ভূমিকার জন্য মাল্টি-চ্যানেল ফানেল রিপোর্টিং API ওভারভিউ পড়ুন।

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

মাল্টি-চ্যানেল ফানেল রিপোর্টিং API অ্যাক্সেস করতে এই গাইড জাভা ক্লায়েন্ট লাইব্রেরি ব্যবহার করে। প্রতিটি ক্লায়েন্ট লাইব্রেরি ডেটা পেতে মাল্টি-চ্যানেল ফানেল রিপোর্টিং API কল করার জন্য একটি একক অ্যানালিটিক্স পরিষেবা অবজেক্ট প্রদান করে। আপনি যদি API অ্যাক্সেস করতে একটি ক্লায়েন্ট লাইব্রেরি ব্যবহার না করেন, তাহলে মাল্টি-চ্যানেল ফানেল রিপোর্টিং API - রেফারেন্স গাইড পড়ুন।

বিশ্লেষণ পরিষেবা বস্তু তৈরি করতে:

  1. Google API কনসোলে আপনার আবেদন নিবন্ধন করুন।
  2. Google Analytics ডেটা অ্যাক্সেস অনুমোদন করুন।
  3. অ্যানালিটিক্স সার্ভিস অবজেক্ট তৈরি করতে কোড লিখুন।

আপনি যদি এই পদক্ষেপগুলি সম্পূর্ণ না করে থাকেন, তাহলে থামুন এবং Hello Analytics API টিউটোরিয়াল পড়ুন, যা আপনাকে Google Analytics API অ্যাপ্লিকেশন তৈরির প্রাথমিক ধাপগুলির মধ্যে নিয়ে যায়৷ টিউটোরিয়াল শেষ করার পরে, নিম্নলিখিত নির্দেশিকা পড়া চালিয়ে যান।

উদাহরণস্বরূপ, নিম্নলিখিত কোড একটি অনুমোদিত অ্যানালিটিক্স পরিষেবা বস্তু তৈরি করে :

জাভা

Analytics analytics = initializeAnalytics();

মাল্টি-চ্যানেল ফানেল রিপোর্টিং API কল করতে অ্যানালিটিক্স পরিষেবা অবজেক্ট analytics ব্যবহার করুন।

ওভারভিউ

ডেটা পুনরুদ্ধার করতে মাল্টি-চ্যানেল ফানেল রিপোর্টিং API ব্যবহার করতে, এখানে একটি অ্যাপ্লিকেশন লিখুন:

  1. মাল্টি-চ্যানেল ফানেল রিপোর্টিং API জিজ্ঞাসা করুন।
  2. API থেকে প্রত্যাবর্তিত ফলাফল নিয়ে কাজ করুন।

মাল্টি-চ্যানেল ফানেল রিপোর্টিং API জিজ্ঞাসা করুন

মাল্টি-চ্যানেল ফানেল রিপোর্টিং API থেকে ডেটা অনুরোধ করতে:

  1. একটি মাল্টি-চ্যানেল ফানেল রিপোর্টিং API ক্যোয়ারী অবজেক্ট তৈরি করুন।
  2. মাল্টি-চ্যানেল ফানেল সার্ভার থেকে ডেটা অনুরোধ করতে ক্যোয়ারী অবজেক্ট ব্যবহার করুন।

একটি মাল্টি-চ্যানেল ফানেল রিপোর্টিং API ক্যোয়ারী তৈরি করুন

একটি মাল্টি-চ্যানেল ফানেল রিপোর্টিং API ক্যোয়ারী অবজেক্ট তৈরি করতে, এই পদ্ধতিতে কল করুন:

analytics.data.mcf.get()    // analytics is the Analytics service object

পদ্ধতিতে সরবরাহ করা প্রথম প্যারামিটারটি ga:XXXX আকারে একটি অনন্য টেবিল আইডি, যেখানে XXXX হল একটি অ্যানালিটিক্স ভিউ (প্রোফাইল) এর আইডি যাতে অনুরোধ করা ডেটা রয়েছে৷ ক্যোয়ারী পরামিতি নির্দিষ্ট করতে ক্যোয়ারী অবজেক্ট ব্যবহার করুন (যেমন, setDimensions )। উদাহরণ স্বরূপ:

জাভা

Get apiQuery = analytics.data().mcf()
    .get(tableId,
        "2012-01-01",              // Start date
        "2012-03-31",              // End date
        "mcf:totalConversions")    // Metrics
    .setDimensions("mcf:sourcePath")
    .setSort("-mcf:totalConversions")
    .setMaxResults(25);

সমস্ত ক্যোয়ারী প্যারামিটারের তালিকার জন্য, ক্যোয়ারী প্যারামিটার সারাংশ দেখুন। মাল্টি-চ্যানেল ফানেল থেকে কোন ডেটা পুনরুদ্ধার করতে হবে তা মেট্রিক্স এবং ডাইমেনশন প্যারামিটার আপনাকে নির্দিষ্ট করতে দেয়। সমস্ত মাত্রা এবং মেট্রিক্সের তালিকার জন্য, মাত্রা এবং মেট্রিক্স রেফারেন্স দেখুন।

একটি মাল্টি-চ্যানেল ফানেল রিপোর্টিং API ডেটা অনুরোধ করা

ক্যোয়ারী অবজেক্ট তৈরি করার পর, মাল্টি-চ্যানেল ফানেল সার্ভার থেকে ডেটা অনুরোধ করতে অবজেক্টে execute পদ্ধতিতে কল করুন। উদাহরণ স্বরূপ:

জাভা

try {
  apiQuery.execute();
  // Success. Do something cool!

} catch (GoogleJsonResponseException e) {
  // Catch API specific errors.
  handleApiError(e);

} catch (IOException e) {
  // Catch general parsing network errors.
  e.printStackTrace();
}

আপনি যদি পরিবর্তে কাঁচা API প্রতিক্রিয়া অ্যাক্সেস করতে পছন্দ করেন, তাহলে ক্যোয়ারী অবজেক্টে executeUnparsed() পদ্ধতিতে কল করুন:

HttpResponse response = apiQuery.executeUnparsed();

ক্যোয়ারী সফল হলে, এটি অনুরোধ করা ডেটা ফেরত দেয়। যদি একটি ত্রুটি ঘটে, execute পদ্ধতিটি ত্রুটির জন্য একটি স্ট্যাটাস কোড এবং ত্রুটির বর্ণনা সম্বলিত একটি ব্যতিক্রম নিক্ষেপ করে। অ্যাপ্লিকেশনটি ব্যতিক্রমটি ধরা এবং পরিচালনা করা উচিত।

API ফলাফলের সাথে কাজ করুন

মাল্টি-চ্যানেল ফানেল রিপোর্টিং API ক্যোয়ারী সফল হলে, এটি রিপোর্টিং ডেটা এবং ডেটা সম্পর্কে তথ্য প্রদান করে।

মাল্টি-চ্যানেল ফানেল রিপোর্টিং ডেটা

ক্যোয়ারী নিম্নলিখিত ট্যাবুলার রিপোর্টিং ডেটা প্রদান করে:

  • কলাম হেডার ডেটা
  • সারি ডেটা

কলাম হেডার ডেটা

ক্যোয়ারী রেসপন্সে একটি কলাম হেডার ফিল্ড থাকে যাতে টেবিল হেডারের তথ্য থাকে। ক্ষেত্র হল ColumnHeaders অবজেক্টের একটি তালিকা (বা একটি অ্যারে), যার প্রতিটিতে কলামের নাম, কলামের ধরন এবং কলাম ডেটা টাইপ রয়েছে। কলামের ক্রম হল ডাইমেনশন কলাম এবং তার পরে মেট্রিক কলাম একই ক্রমে মূল ক্যোয়ারীতে উল্লেখ করা হয়েছে। উদাহরণস্বরূপ, নিম্নলিখিত পদ্ধতি কলাম শিরোনাম মুদ্রণ করে:

জাভা

private static void printColumnHeaders(McfData mcfData) {
  System.out.println("Column Headers:");

  for (ColumnHeaders header : mcfData.getColumnHeaders()) {
    System.out.println("Column Name: " + header.getName());
    System.out.println("Column Type: " + header.getColumnType());
    System.out.println("Column Data Type: " + header.getDataType());
  }
}

সারি ডেটা

API থেকে প্রত্যাবর্তিত প্রধান ডেটা McfData.Rows এর একটি 2-মাত্রিক List হিসাবে ফেরত দেওয়া হয়। প্রতিটি McfData.Rows একটি একক কক্ষের প্রতিনিধিত্ব করে যা হয় String প্রকারের একটি আদিম মান, অথবা McfData.Rows.ConversionPathValue প্রকারের একটি রূপান্তর পথ মান। একটি সারিতে কক্ষের ক্রম উপরে বর্ণিত কলাম হেডার অবজেক্টের ক্ষেত্রের মতই।

যেহেতু প্রতিটি কক্ষের ডেটা স্ট্রিং হিসাবে বা মাল্টি-চ্যানেল ফানেল সিকোয়েন্স টাইপ হিসাবে ফেরত দেওয়া হয়, তাই প্রতিটি কলাম হেডার অবজেক্টের DataType ক্ষেত্রটি মানগুলিকে যথাযথ প্রকারে পার্স করার জন্য বিশেষভাবে কার্যকর। সমস্ত সম্ভাব্য ডেটা প্রকারের জন্য রেফারেন্স গাইড দেখুন।

উদাহরণস্বরূপ, নিম্নলিখিত পদ্ধতিটি টেবিলের শিরোনাম এবং সারিগুলি প্রিন্ট করে:

জাভা

private static void printDataTable(McfData mcfData) {
  System.out.println("Data Table:");
  if (mcfData.getTotalResults() > 0) {
    // Print the column names.
    List<ColumnHeaders> headers = mcfData.getColumnHeaders();
    for (ColumnHeaders header : headers) {
      System.out.print(header.getName());
    }
    System.out.println();

    // Print the rows of data.
    for (List<McfData.Rows> row : mcfData.getRows()) {
      for (int columnIndex = 0; columnIndex < row.size(); ++columnIndex) {
        ColumnHeaders header = headers.get(columnIndex);
        McfData.Rows cell = row.get(columnIndex);
        if (header.getDataType().equals("MCF_SEQUENCE")) {
          System.out.print(getStringFromMcfSequence(cell.getConversionPathValue()));
        } else {
          System.out.print(cell.getPrimitiveValue());
        }
      }
      System.out.println();
    }
  } else {
    System.out.println("No rows found");
  }
}

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি মাল্টি-চ্যানেল ফানেল সিকোয়েন্স টাইপ অবজেক্টকে পার্স করতে হয় এবং এটিকে একটি স্ট্রিংয়ে রূপান্তর করতে হয়:

জাভা

private static String getStringFromMcfSequence(List<McfData.Rows.ConversionPathValue> path) {
  StringBuilder stringBuilder = new StringBuilder();
  for (McfData.Rows.ConversionPathValue pathElement : path) {
    if (stringBuilder.length() > 0)
      stringBuilder.append(" > ");
    stringBuilder.append(pathElement.getNodeValue());
  }
  return stringBuilder.toString();
}

রিপোর্ট তথ্য

রিপোর্টিং ডেটা ছাড়াও, ক্যোয়ারী ডেটা সম্পর্কে তথ্য প্রদান করে (উদাহরণস্বরূপ রিপোর্ট আইডি)। উদাহরণস্বরূপ, নিম্নলিখিত পদ্ধতি রিপোর্ট তথ্য মুদ্রণ করে:

জাভা

private static void printReportInfo(McfData mcfData) {
  System.out.println("Report Info:");
  System.out.println("ID:" + mcfData.getId());
  System.out.println("Self link: " + mcfData.getSelfLink());
  System.out.println("Kind: " + mcfData.getKind());
  System.out.println("Contains Sampled Data: " + mcfData.getContainsSampledData());
}

ক্যোয়ারী রেসপন্স নমুনা করা হয়েছে কিনা তা containsSampledData ফিল্ড আপনাকে বলে। যেহেতু নমুনা ক্যোয়ারী ফলাফলগুলিকে প্রভাবিত করতে পারে, তাই ক্যোয়ারী (API) থেকে প্রত্যাবর্তিত নমুনাযুক্ত মানগুলি ওয়েব ইন্টারফেসে দেখানো মানগুলির সাথে মেলে না৷ আরো বিস্তারিত জানার জন্য নমুনা দেখুন.

দেখুন (প্রোফাইল) তথ্য

ক্যোয়ারী রেসপন্সে ওয়েব প্রপার্টি আইডি, ভিউ (প্রোফাইল) নাম এবং আইডি এবং ভিউ (প্রোফাইল) সম্বলিত অ্যানালিটিক্স অ্যাকাউন্টের আইডি অন্তর্ভুক্ত থাকে। উদাহরণস্বরূপ, নিম্নলিখিত পদ্ধতিটি তাদের টার্মিনালে প্রিন্ট করে (স্ট্যান্ডার্ড আউটপুট):

জাভা

private static void printProfileInfo(McfData mcfData) {
  ProfileInfo profileInfo = mcfData.getProfileInfo();

  System.out.println("View (Profile) Info:");
  System.out.println("Account ID: " + profileInfo.getAccountId());
  System.out.println("Web Property ID: " + profileInfo.getWebPropertyId());
  System.out.println("Internal Web Property ID: " + profileInfo.getInternalWebPropertyId());
  System.out.println("View (Profile) ID: " + profileInfo.getProfileId());
  System.out.println("View (Profile) Name: " + profileInfo.getProfileName());
  System.out.println("Table ID: " + profileInfo.getTableId());
}

তথ্য অনুসন্ধান করুন

ক্যোয়ারী রেসপন্সে একটি Query অবজেক্ট থাকে যেটিতে সমস্ত ডেটা রিকোয়েস্ট ক্যোয়ারী প্যারামিটারের মান থাকে। উদাহরণস্বরূপ, নিম্নলিখিত পদ্ধতিটি এই ধরনের পরামিতিগুলির মানগুলি প্রিন্ট করে:

জাভা

private static void printQueryInfo(McfData mcfData) {
  Query query = mcfData.getQuery();

  System.out.println("Query Info:");
  System.out.println("Ids: " + query.getIds());
  System.out.println("Start Date: " + query.getStartDate());
  System.out.println("End Date: " + query.getEndDate());
  System.out.println("Metrics: " + query.getMetrics());       // List of Analytics metrics
  System.out.println("Dimensions: " + query.getDimensions()); // List of Analytics dimensions
  System.out.println("Sort: " + query.getSort());             // List of sorte metrics or dimensions
  System.out.println("Segment: " + query.getSegment());
  System.out.println("Filters: " + query.getFilters());
  System.out.println("Start Index: " + query.getStartIndex());
  System.out.println("Max Results: " + query.getMaxResults());
}

query.getMetrics() , query.getDimensions() , এবং query.getSort() ছাড়া অন্য পদ্ধতিগুলি একটি String প্রদান করে। উদাহরণস্বরূপ, query.getStartDate() রিপোর্টের শুরুর তারিখ (একটি String ) প্রদান করে।

পৃষ্ঠা সংখ্যা তথ্য

যেকোন মাল্টি-চ্যানেল ফানেল রিপোর্টিং API অনুরোধ মাল্টি-চ্যানেল ফানেল ডেটার কয়েক হাজার সারির সাথে মেলে। মাল্টি-চ্যানেল ফানেল রিপোর্টিং API একটি নির্দিষ্ট সময়ে শুধুমাত্র একটি উপসেট প্রদান করবে, যা ডেটার একক পৃষ্ঠা হিসাবে উল্লেখ করা হয়। সমস্ত পৃষ্ঠা ডেটা পুনরুদ্ধার করতে, পৃষ্ঠা সংখ্যা ক্ষেত্র ব্যবহার করুন। নিম্নোক্ত পদ্ধতিটি পৃষ্ঠা সংখ্যা তথ্য মুদ্রণ করে:

জাভা

private static void printPaginationInfo(McfData mcfData) {
  System.out.println("Pagination Info:");
  System.out.println("Previous Link: " + mcfData.getPreviousLink());
  System.out.println("Next Link: " + mcfData.getNextLink());
  System.out.println("Items Per Page: " + mcfData.getItemsPerPage());
  System.out.println("Total Results: " + mcfData.getTotalResults());
}

পদ্ধতি কল mcfData.getTotalResults() কোয়েরির জন্য মোট সারির সংখ্যা প্রদান করে, যা কোয়েরি দ্বারা প্রত্যাবর্তিত সারির মোট সংখ্যার চেয়ে বেশি হতে পারে। এবং পদ্ধতি কল mcfData.getItemsPerPage() ক্যোয়ারী প্রতিক্রিয়া ধারণ করতে পারে সর্বোচ্চ সংখ্যক সারি প্রদান করে।

পদ্ধতি কল mcfData.getPreviousLink() পূর্ববর্তী পৃষ্ঠার লিঙ্ক ফেরত দেয় এবং mcfData.getNextLink() পরবর্তী পৃষ্ঠার লিঙ্কটি ফেরত দেয়।

সমস্ত ফলাফলের জন্য মোট

সমস্ত ফলাফলের উপর অনুরোধ করা মেট্রিক্সের মোট মান পেতে, শুধুমাত্র ক্যোয়ারী রেসপন্সে ফিরে আসা ফলাফল নয়, প্রশ্নের উত্তরে getTotalsForAllResults() পদ্ধতিতে কল করুন, একটি McfData অবজেক্ট। গড় গণনা করতে মোট মান ব্যবহার করুন।

জাভা

private static void printTotalsForAllResults(McfData mcfData) {
  System.out.println("Metric totals over all results:");
  Map<String, String> totalsMap = mcfData.getTotalsForAllResults();
  for (Map.Entry<String, String> entry : totalsMap.entrySet()) {
    System.out.println(entry.getKey() + " : " + entry.getValue());
  }
}

কাজের নমুনা

জাভা

Google API Java ক্লায়েন্ট লাইব্রেরি মাল্টি-চ্যানেল ফানেল রিপোর্টিং API নমুনা