เอกสารนี้จะอธิบายวิธีใช้ API การรายงาน Funnel หลากหลายแชแนลเพื่อเข้าถึงข้อมูล Funnel หลากหลายแชแนล
เกริ่นนำ
API การรายงาน Funnel หลากหลายแชแนลให้คุณเข้าถึงข้อมูลแบบตารางในรายงานมาตรฐานและรายงานที่กำหนดเองของช่องทางหลากหลายแชแนล หากต้องการเข้าถึงข้อมูล คุณต้องสร้างการค้นหาที่ระบุข้อมูลพร็อพเพอร์ตี้ (โปรไฟล์) วันที่เริ่มต้นและวันที่สิ้นสุด รวมถึงมิติข้อมูลและเมตริกที่รวมกันเป็นส่วนหัวคอลัมน์ในตาราง การค้นหานี้จะส่งไปยัง API การรายงาน Funnel หลากหลายแชแนลและ API การรายงาน Funnel หลากหลายแชแนลจะส่งข้อมูลทั้งหมดในรูปแบบของตาราง
หากคุณเพิ่งเริ่มใช้ API โปรดอ่าน ภาพรวม API การรายงาน Funnel หลากหลายแชแนลเพื่อให้ทราบข้อมูลเบื้องต้นเกี่ยวกับวัตถุประสงค์ของ API การรายงาน Funnel หลากหลายแชแนลและข้อมูลที่มีให้
ก่อนที่คุณจะเริ่มต้น
คู่มือนี้ใช้ไลบรารีไคลเอ็นต์ Java เพื่อเข้าถึง API การรายงาน Funnel หลากหลายแชแนล ไลบรารีของไคลเอ็นต์แต่ละรายการจะมีออบเจ็กต์บริการ Analytics รายการเดียวสำหรับเรียกใช้ API การรายงาน Funnel หลากหลายแชแนลเพื่อรับข้อมูล หากคุณไม่ได้ใช้ไลบรารีของไคลเอ็นต์เพื่อเข้าถึง API โปรดอ่าน คู่มืออ้างอิงสำหรับ API การรายงานช่องทางหลากหลายแชแนล
วิธีสร้างออบเจ็กต์บริการ Analytics
- ลงทะเบียนแอปพลิเคชันใน คอนโซล Google API
- ให้สิทธิ์เข้าถึงข้อมูล Google Analytics
- เขียนโค้ดเพื่อสร้างออบเจ็กต์บริการ Analytics
หากคุณยังไม่ได้ทําขั้นตอนเหล่านี้ ให้หยุดและอ่าน บทแนะนำ Hello Analytics API ซึ่งจะแนะนำขั้นตอนเริ่มต้นในการสร้างแอปพลิเคชัน Google Analytics API หลังจากจบบทแนะนำ ให้อ่านคู่มือต่อไปนี้ต่อ
เช่น โค้ดต่อไปนี้ สร้างออบเจ็กต์บริการ Analytics ที่ได้รับอนุญาต
Java
Analytics analytics = initializeAnalytics();
ใช้ออบเจ็กต์บริการ Analytics analytics
เพื่อเรียกใช้ API การรายงาน Funnel หลากหลายแชแนล
ภาพรวม
หากต้องการใช้ API การรายงาน Funnel หลากหลายแชแนลเพื่อดึงข้อมูล ให้เขียนแอปพลิเคชันไปที่
- ค้นหา API การรายงาน Funnel หลากหลายแชแนล
- ทำงานกับผลลัพธ์ที่แสดงจาก API
ค้นหา API การรายงาน Funnel หลากหลายแชแนล
วิธีขอข้อมูลจาก API การรายงาน Funnel หลากหลายแชแนล
- สร้างออบเจ็กต์การค้นหาของ API การรายงาน Funnel หลากหลายแชแนล
- ใช้ออบเจ็กต์การค้นหาเพื่อขอข้อมูลจากเซิร์ฟเวอร์ 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