API การรายงาน Funnel หลากหลายแชแนล - คู่มือนักพัฒนาซอฟต์แวร์

เอกสารนี้จะอธิบายวิธีใช้ API การรายงาน Funnel หลากหลายแชแนลเพื่อเข้าถึงข้อมูล Funnel หลากหลายแชแนล

เกริ่นนำ

API การรายงาน Funnel หลากหลายแชแนลให้คุณเข้าถึงข้อมูลแบบตารางในรายงานมาตรฐานและรายงานที่กำหนดเองของช่องทางหลากหลายแชแนล หากต้องการเข้าถึงข้อมูล คุณต้องสร้างการค้นหาที่ระบุข้อมูลพร็อพเพอร์ตี้ (โปรไฟล์) วันที่เริ่มต้นและวันที่สิ้นสุด รวมถึงมิติข้อมูลและเมตริกที่รวมกันเป็นส่วนหัวคอลัมน์ในตาราง การค้นหานี้จะส่งไปยัง API การรายงาน Funnel หลากหลายแชแนลและ API การรายงาน Funnel หลากหลายแชแนลจะส่งข้อมูลทั้งหมดในรูปแบบของตาราง

หากคุณเพิ่งเริ่มใช้ API โปรดอ่าน ภาพรวม API การรายงาน Funnel หลากหลายแชแนลเพื่อให้ทราบข้อมูลเบื้องต้นเกี่ยวกับวัตถุประสงค์ของ API การรายงาน Funnel หลากหลายแชแนลและข้อมูลที่มีให้

ก่อนที่คุณจะเริ่มต้น

คู่มือนี้ใช้ไลบรารีไคลเอ็นต์ Java เพื่อเข้าถึง API การรายงาน Funnel หลากหลายแชแนล ไลบรารีของไคลเอ็นต์แต่ละรายการจะมีออบเจ็กต์บริการ Analytics รายการเดียวสำหรับเรียกใช้ API การรายงาน Funnel หลากหลายแชแนลเพื่อรับข้อมูล หากคุณไม่ได้ใช้ไลบรารีของไคลเอ็นต์เพื่อเข้าถึง API โปรดอ่าน คู่มืออ้างอิงสำหรับ API การรายงานช่องทางหลากหลายแชแนล

วิธีสร้างออบเจ็กต์บริการ Analytics

  1. ลงทะเบียนแอปพลิเคชันใน คอนโซล Google API
  2. ให้สิทธิ์เข้าถึงข้อมูล Google Analytics
  3. เขียนโค้ดเพื่อสร้างออบเจ็กต์บริการ Analytics

หากคุณยังไม่ได้ทําขั้นตอนเหล่านี้ ให้หยุดและอ่าน บทแนะนำ Hello Analytics API ซึ่งจะแนะนำขั้นตอนเริ่มต้นในการสร้างแอปพลิเคชัน Google Analytics API หลังจากจบบทแนะนำ ให้อ่านคู่มือต่อไปนี้ต่อ

เช่น โค้ดต่อไปนี้ สร้างออบเจ็กต์บริการ Analytics ที่ได้รับอนุญาต

Java

Analytics analytics = initializeAnalytics();

ใช้ออบเจ็กต์บริการ Analytics analytics เพื่อเรียกใช้ API การรายงาน Funnel หลากหลายแชแนล

ภาพรวม

หากต้องการใช้ API การรายงาน Funnel หลากหลายแชแนลเพื่อดึงข้อมูล ให้เขียนแอปพลิเคชันไปที่

  1. ค้นหา API การรายงาน Funnel หลากหลายแชแนล
  2. ทำงานกับผลลัพธ์ที่แสดงจาก API

ค้นหา API การรายงาน Funnel หลากหลายแชแนล

วิธีขอข้อมูลจาก API การรายงาน Funnel หลากหลายแชแนล

  1. สร้างออบเจ็กต์การค้นหาของ API การรายงาน Funnel หลากหลายแชแนล
  2. ใช้ออบเจ็กต์การค้นหาเพื่อขอข้อมูลจากเซิร์ฟเวอร์ Funnel หลากหลายแชแนล

สร้างการค้นหา API การรายงาน Funnel หลากหลายแชแนล

หากต้องการสร้างออบเจ็กต์การค้นหาของ API การรายงาน Funnel หลากหลายแชแนล ให้เรียกใช้เมธอดนี้

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

พารามิเตอร์แรกที่ส่งไปยังเมธอดคือรหัสตารางที่ไม่ซ้ำในรูปแบบ ga:XXXX โดย XXXX คือรหัสของข้อมูลพร็อพเพอร์ตี้ (โปรไฟล์) ของ Analytics ที่มีข้อมูลที่ขอ ใช้ออบเจ็กต์การค้นหาเพื่อระบุพารามิเตอร์การค้นหา (เช่น setDimensions) ดังตัวอย่างต่อไปนี้

Java

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 การรายงาน Funnel หลากหลายแชแนล

หลังจากสร้างออบเจ็กต์การค้นหา ให้เรียกใช้เมธอด execute บนออบเจ็กต์เพื่อขอข้อมูลจากเซิร์ฟเวอร์ Funnel หลากหลายแชแนล เช่น

Java

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 การรายงาน Funnel หลากหลายแชแนลสําเร็จ ระบบจะแสดงผลข้อมูลการรายงานและข้อมูล

ข้อมูลการรายงาน Funnel หลากหลายแชแนล

การค้นหาจะแสดงข้อมูลการรายงานแบบตารางต่อไปนี้

  • ข้อมูลส่วนหัวของคอลัมน์
  • ข้อมูลแถว

ข้อมูลส่วนหัวของคอลัมน์

การตอบกลับการค้นหามีช่องส่วนหัวของคอลัมน์ที่มีข้อมูลส่วนหัวของตาราง ช่องนี้คือรายการ (หรืออาร์เรย์) ของออบเจ็กต์ ColumnHeaders โดยแต่ละออบเจ็กต์จะมีชื่อคอลัมน์ ประเภทคอลัมน์ และประเภทข้อมูลคอลัมน์ ลำดับคอลัมน์คือคอลัมน์มิติข้อมูลตามด้วยคอลัมน์เมตริกในลำดับเดียวกันกับที่ระบุไว้ในการค้นหาเดิม ตัวอย่างเช่น วิธีการต่อไปนี้พิมพ์ส่วนหัวของคอลัมน์

Java

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 จะแสดงผลเป็น List แบบ 2 มิติของ McfData.Rows McfData.Rows แต่ละรายการแสดง 1 เซลล์ซึ่งเป็นค่าพื้นฐานของประเภท String หรือเป็นค่าเส้นทาง Conversion ประเภท McfData.Rows.ConversionPathValue ลำดับของเซลล์ในแถวจะเหมือนกับช่องในออบเจ็กต์ส่วนหัวของคอลัมน์ที่อธิบายข้างต้น

เนื่องจากข้อมูลในแต่ละเซลล์จะแสดงผลเป็นสตริงหรือเป็นประเภทลำดับ Funnel หลากหลายแชแนล ช่อง DataType ในออบเจ็กต์ส่วนหัวของแต่ละคอลัมน์จึงมีประโยชน์อย่างยิ่งในการแยกวิเคราะห์ค่าเป็นประเภทที่เหมาะสม โปรดดู คู่มืออ้างอิงสำหรับข้อมูลประเภทที่เป็นไปได้ทั้งหมด

ตัวอย่างเช่น วิธีการต่อไปนี้จะพิมพ์ส่วนหัวและแถวของตาราง

Java

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");
  }
}

ตัวอย่างต่อไปนี้แสดงวิธีแยกวิเคราะห์ออบเจ็กต์ ประเภทลำดับช่องทางหลากหลายแชแนลและแปลงเป็นสตริง

Java

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();
}

ข้อมูลการรายงาน

นอกเหนือจากข้อมูลการรายงานแล้ว การค้นหายังแสดงผลข้อมูล (เช่น รหัสรายงาน) เกี่ยวกับข้อมูลด้วย ตัวอย่างเช่น วิธีการต่อไปนี้ จะพิมพ์ข้อมูลรายงาน

Java

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) จึงไม่ตรงกับค่าที่แสดงบนเว็บอินเทอร์เฟซ ดูรายละเอียดเพิ่มเติมในการสุ่มตัวอย่าง

ดูข้อมูล (โปรไฟล์)

คำตอบในการค้นหาประกอบด้วยรหัสเว็บพร็อพเพอร์ตี้ ชื่อและรหัสข้อมูลพร็อพเพอร์ตี้ (โปรไฟล์) ตลอดจนรหัสของบัญชี Analytics ที่มีข้อมูลพร็อพเพอร์ตี้ (โปรไฟล์) ตัวอย่างเช่น วิธีการต่อไปนี้พิมพ์ไปยังเทอร์มินัล (เอาต์พุตมาตรฐาน)

Java

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 ที่มีค่าของพารามิเตอร์การค้นหาคำขอข้อมูลทั้งหมด ตัวอย่างเช่น วิธีการต่อไปนี้จะพิมพ์ค่าของพารามิเตอร์ดังกล่าว

Java

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 การรายงาน Funnel หลากหลายแชแนลอาจตรงกับข้อมูล Funnel หลากหลายแชแนลหลายแสนแถว API การรายงาน Funnel หลากหลายแชแนลจะแสดงเฉพาะข้อมูลชุดย่อย ซึ่งเรียกว่าข้อมูลหน้าเว็บเดียวในช่วงเวลาหนึ่งๆ หากต้องการดึงข้อมูลทุกหน้า ให้ใช้ช่องการใส่เลขหน้า วิธีการต่อไปนี้จะพิมพ์ข้อมูลการใส่เลขหน้า

Java

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 ใช้ค่ารวมเพื่อคำนวณค่าเฉลี่ย

Java

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());
  }
}

ตัวอย่างการทำงาน

Java

ตัวอย่าง API การรายงาน Funnel หลากหลายแชแนล ไลบรารีของไคลเอ็นต์ Google API Java