API Báo cáo phễu đa kênh - Hướng dẫn tham khảo

Tài liệu này cung cấp tài liệu tham khảo đầy đủ cho cả truy vấn và phản hồi về API Báo cáo phễu đa kênh.

Giới thiệu

API Báo cáo phễu đa kênh cho phép bạn yêu cầu dữ liệu báo cáo Phễu đa kênh trên Google Analytics. Mỗi báo cáo bao gồm số liệu thống kê lấy từ dữ liệu mà mã theo dõi gửi lại cho Analytics, được sắp xếp dưới dạng phương diện và chỉ số. Bằng cách chọn kết hợp phương diện và chỉ số của riêng mình, bạn có thể sử dụng API Báo cáo để tạo báo cáo tuỳ chỉnh theo quy cách của riêng bạn.

API này chứa một phương thức yêu cầu dữ liệu báo cáo: report.get. Với phương thức này, bạn cung cấp mã bảng tương ứng với chế độ xem (hồ sơ) mà bạn muốn truy xuất dữ liệu. Ngoài ra, bạn cần chỉ định những thông tin sau:

  • Kết hợp phương diện và chỉ số.
  • Phạm vi ngày.
  • Một tập hợp các tham số tuỳ chọn kiểm soát dữ liệu được trả về

API này cung cấp phương thức report.get tại một điểm cuối REST: https://www.googleapis.com/analytics/v3/data/mcf. Phần sau đây trình bày một yêu cầu mẫu và mô tả từng thông số.

Yêu cầu

API cung cấp một phương thức duy nhất để yêu cầu dữ liệu:

analytics.data.mcf.get()

API này cũng có thể được truy vấn dưới dạng một điểm cuối REST:

Authorization: Bearer {oauth2-token}

GET https://www.googleapis.com/analytics/v3/data/mcf
  ?ids=ga:12345
  &metrics=mcf:totalConversions,mcf:totalConversionValue
  &start-date=2011-10-01
  &end-date=2011-10-31

Mỗi tham số truy vấn URL chỉ định một tham số truy vấn API phải được mã hoá URL.

Tất cả các yêu cầu đến API Báo cáo phễu đa kênh đều phải được uỷ quyền, tốt nhất là thông qua OAuth 2.0.

Tóm tắt về tham số truy vấn

Bảng sau đây tóm tắt tất cả các tham số truy vấn được API Báo cáo phễu đa kênh chấp nhận. Nhấp vào tên của từng thông số để xem nội dung mô tả chi tiết.

Tên Giá trị Bắt buộc Tóm tắt
ids string Mã bảng duy nhất của biểu mẫu ga:XXXX, trong đó XXXX là mã chế độ xem (hồ sơ) Analytics mà truy vấn sẽ truy xuất dữ liệu.
start-date string Ngày bắt đầu tìm nạp dữ liệu Analytics. Các yêu cầu có thể chỉ định ngày bắt đầu có định dạng là YYYY-MM-DD hoặc là ngày tương đối (ví dụ: today, yesterday hoặc NdaysAgo, trong đó N là số nguyên dương).
end-date string Ngày kết thúc tìm nạp dữ liệu Analytics. Yêu cầu có thể chỉ định ngày kết thúc có định dạng YYYY-MM-DD hoặc là ngày tương đối (ví dụ: today, yesterday hoặc NdaysAgo, trong đó N là số nguyên dương).
metrics string Danh sách các chỉ số được phân tách bằng dấu phẩy, chẳng hạn như mcf:totalConversions,mcf:totalConversionValue. Truy vấn hợp lệ phải chỉ định ít nhất một chỉ số.
dimensions string no Danh sách các phương diện được phân tách bằng dấu phẩy dành cho báo cáo Phễu đa kênh, chẳng hạn như mcf:source,mcf:keyword.
sort string no Danh sách các phương diện và chỉ số được phân tách bằng dấu phẩy cho biết thứ tự sắp xếp và hướng sắp xếp của dữ liệu được trả về.
filters string no Những bộ lọc phương diện hoặc chỉ số hạn chế dữ liệu được trả về cho yêu cầu của bạn.
samplingLevel string no Mức lấy mẫu mong muốn. Giá trị được phép:
  • DEFAULT – Trả về phản hồi có kích thước mẫu cân bằng giữa tốc độ và độ chính xác.
  • FASTER – Trả về câu trả lời nhanh với kích thước mẫu nhỏ hơn.
  • HIGHER_PRECISION – Trả về phản hồi chính xác hơn bằng cách sử dụng một cỡ mẫu lớn, nhưng điều này có thể khiến phản hồi chậm hơn.
start-index integer no Hàng dữ liệu đầu tiên cần truy xuất, bắt đầu từ 1. Hãy dùng tham số này làm cơ chế phân trang cùng với tham số max-results.
max-results integer no Số hàng tối đa được đưa vào phản hồi.

Chi tiết tham số truy vấn

ids

ids=ga:12345
Bắt buộc.
Mã nhận dạng duy nhất dùng để truy xuất dữ liệu Phễu đa kênh. Mã nhận dạng này là sự nối không gian tên ga: với mã chế độ xem (hồ sơ) của báo cáo. Bạn có thể truy xuất mã chế độ xem (hồ sơ) cho báo cáo của mình bằng cách sử dụng phương thức analytics.management.profiles.list. Phương thức này cung cấp id trong tài nguyên Chế độ xem (Hồ sơ) trong API Quản lý Google Analytics.

Trở lại đầu trang


ngày bắt đầu

start-date=2011-10-01
Bắt buộc.
Tất cả các yêu cầu về dữ liệu Phễu đa kênh đều phải chỉ định phạm vi ngày. Nếu bạn không đưa các tham số start-dateend-date vào yêu cầu, thì máy chủ sẽ trả về lỗi. Bạn có thể đặt giá trị ngày cho một ngày cụ thể bằng mẫu YYYY-MM-DD hoặc mẫu tương đối bằng cách sử dụng today, yesterday hoặc NdaysAgo. Giá trị phải khớp với [0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]+(daysAgo).
start-date hợp lệ sớm nhất là 2011-01-01. Không có giới hạn giới hạn trên cho start-date.
Ngày tương đối luôn tương ứng với ngày hiện tại tại thời điểm truy vấn và dựa trên múi giờ của chế độ xem (hồ sơ) được chỉ định trong truy vấn.

Ví dụ về phạm vi ngày trong 7 ngày qua (bắt đầu từ hôm qua) sử dụng ngày tương đối:

  &start-date=7daysAgo
  &end-date=yesterday

Trở lại đầu trang


ngày kết thúc

end-date=2011-10-31
Bắt buộc.
Tất cả các yêu cầu về dữ liệu Phễu đa kênh đều phải chỉ định phạm vi ngày. Nếu bạn không đưa các tham số start-dateend-date vào yêu cầu, thì máy chủ sẽ trả về lỗi. Bạn có thể đặt giá trị ngày cho một ngày cụ thể bằng mẫu YYYY-MM-DD hoặc mẫu tương đối bằng cách sử dụng today, yesterday hoặc NdaysAgo. Giá trị phải khớp với [0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]+(daysAgo).
end-date hợp lệ sớm nhất là 2005-01-01. Không có giới hạn giới hạn trên đối với end-date.
Ngày tương đối luôn tương ứng với ngày hiện tại tại thời điểm truy vấn và dựa trên múi giờ của chế độ xem (hồ sơ) được chỉ định trong truy vấn.

Ví dụ về phạm vi ngày trong 10 ngày qua (bắt đầu từ hôm nay) sử dụng ngày tương đối:

  &start-date=9daysAgo
  &end-date=today

Trở lại đầu trang


phương diện

dimensions=mcf:source,mcf:keyword
Không bắt buộc.

Thông số thứ nguyên xác định các khóa dữ liệu chính cho báo cáo Phễu đa kênh, chẳng hạn như mcf:source hoặc mcf:medium. Sử dụng phương diện để phân đoạn các chỉ số lượt chuyển đổi. Ví dụ: mặc dù bạn có thể hỏi về tổng số lượt chuyển đổi trên trang web của mình, nhưng bạn nên hỏi về số lượt chuyển đổi được phân đoạn theo phương tiện. Trong trường hợp này, bạn sẽ thấy số lượt chuyển đổi từ lượt chuyển đổi tự nhiên, lượt giới thiệu, email, v.v.

Khi sử dụng dimensions trong một yêu cầu dữ liệu, hãy lưu ý các hạn chế sau:

  • Bạn có thể cung cấp tối đa 7 phương diện trong bất kỳ truy vấn nào.
  • Bạn không thể gửi một truy vấn chỉ gồm các phương diện: bạn phải kết hợp mọi phương diện được yêu cầu với ít nhất một chỉ số.

Giá trị không có sẵn

Khi không thể xác định giá trị của phương diện, Analytics sẽ sử dụng chuỗi đặc biệt (not set).

Trở lại đầu trang


metrics

metrics=mcf:totalConversions,mcf:totalConversionValue
Bắt buộc.

Số liệu thống kê tổng hợp về hoạt động của người dùng trên trang web của bạn, chẳng hạn như tổng số lượt chuyển đổi hoặc tổng giá trị lượt chuyển đổi. Nếu một truy vấn không có tham số dimensions, thì các chỉ số được trả về sẽ cung cấp các giá trị tổng hợp cho phạm vi ngày được yêu cầu, chẳng hạn như tổng giá trị lượt chuyển đổi. Tuy nhiên, khi phương diện được yêu cầu, các giá trị sẽ được phân đoạn theo giá trị phương diện. Ví dụ: mcf:totalConversions được yêu cầu cùng với mcf:source sẽ trả về tổng số lượt chuyển đổi trên mỗi nguồn.

Khi yêu cầu chỉ số, hãy lưu ý:

  • Mỗi yêu cầu đều phải cung cấp ít nhất một chỉ số; một yêu cầu không thể chỉ bao gồm các phương diện.
  • Bạn có thể cung cấp tối đa 10 chỉ số cho bất kỳ truy vấn nào.

Trở lại đầu trang


sắp xếp

sort=mcf:source,mcf:medium
Không bắt buộc.

Danh sách các chỉ số và phương diện cho biết thứ tự sắp xếp và hướng sắp xếp của dữ liệu được trả về.

  • Thứ tự sắp xếp được chỉ định theo thứ tự từ trái sang phải của các chỉ số và phương diện được liệt kê.
  • direction sắp xếp mặc định là tăng dần và bạn có thể thay đổi thành giảm dần bằng cách sử dụng tiền tố dấu trừ (-) trên trường được yêu cầu.

Việc sắp xếp kết quả của một truy vấn cho phép bạn đặt nhiều câu hỏi về dữ liệu của mình. Ví dụ: để giải đáp câu hỏi "Những nguồn chuyển đổi hàng đầu của tôi là gì và thông qua những phương tiện nào?" bạn có thể tạo truy vấn bằng thông số sau. Trước tiên, trình phân tích này sẽ sắp xếp theo mcf:source, sau đó là mcf:medium, cả hai đều theo thứ tự tăng dần:

sort=mcf:source,mcf:medium

Để trả lời câu hỏi liên quan "Những phương tiện chuyển đổi hàng đầu của tôi là gì và từ những nguồn nào?", bạn có thể tạo truy vấn bằng thông số sau. Trước tiên, trình phân tích này sẽ sắp xếp theo mcf:medium, sau đó là mcf:source, cả hai đều theo thứ tự tăng dần:

sort=mcf:medium,mcf:source

Khi sử dụng tham số sort, hãy lưu ý những điều sau:

  • Chỉ sắp xếp theo những phương diện hoặc giá trị chỉ số mà bạn đã sử dụng trong thông số dimensions hoặc metrics. Nếu yêu cầu của bạn sắp xếp trên một trường không được biểu thị trong thông số phương diện hoặc chỉ số, thì bạn sẽ gặp lỗi.
  • Theo mặc định, các chuỗi được sắp xếp theo thứ tự bảng chữ cái tăng dần trong ngôn ngữ en-US.
  • Theo mặc định, các số được sắp xếp theo thứ tự số tăng dần.
  • Theo mặc định, ngày được sắp xếp theo thứ tự tăng dần theo ngày.

Trở lại đầu trang


bộ lọc

filters=mcf:medium%3D%3Dreferral
Không bắt buộc.

Tham số chuỗi truy vấn filters hạn chế dữ liệu trả về từ yêu cầu của bạn. Để sử dụng tham số filters, hãy cung cấp phương diện hoặc chỉ số cần lọc, theo sau là biểu thức lọc. Ví dụ: truy vấn sau đây yêu cầu mcf:totalConversionsmcf:source cho chế độ xem (hồ sơ) 12134, trong đó phương diện mcf:medium là chuỗi referral:

https://www.googleapis.com/analytics/v3/data/mcf
?ids=mcf:12134
&dimensions=mcf:source
&metrics=mcf:totalConversions
&filters=mcf:medium%3D%3Dreferral
&start-date=2011-10-01
&end-date=2011-10-31

Hãy đọc Tài liệu tham khảo chính về API Báo cáo chính để biết thông tin chi tiết.

Trở lại đầu trang


samplingLevel

samplingLevel=DEFAULT
Không bắt buộc.
Sử dụng tham số này để đặt cấp độ lấy mẫu (tức là số phiên được dùng để tính toán kết quả) cho một truy vấn báo cáo. Các giá trị được phép phù hợp với giao diện web và bao gồm:
  • DEFAULT – Trả về phản hồi có kích thước mẫu cân bằng giữa tốc độ và độ chính xác.
  • FASTER – Trả về câu trả lời nhanh với kích thước mẫu nhỏ hơn.
  • HIGHER_PRECISION – Trả về phản hồi chính xác hơn bằng cách sử dụng một cỡ mẫu lớn, nhưng điều này có thể khiến phản hồi chậm hơn.
Nếu bạn không cung cấp thông tin, cấp độ lấy mẫu DEFAULT sẽ được sử dụng.
Xem phần Lấy mẫu để biết thông tin chi tiết về cách tính tỷ lệ phần trăm số phiên được dùng cho một truy vấn.

Trở lại đầu trang


max-results

max-results=100
Không bắt buộc.

Số hàng tối đa được đưa vào phản hồi này. Bạn có thể sử dụng thuộc tính này kết hợp với start-index để truy xuất một tập hợp con các phần tử hoặc dùng riêng phần tử này để hạn chế số lượng phần tử được trả về, bắt đầu bằng phần tử đầu tiên. Nếu max-results không được cung cấp, truy vấn sẽ trả về giá trị tối đa mặc định là 1.000 hàng.

API Báo cáo phễu đa kênh sẽ trả về tối đa 10.000 hàng cho mỗi yêu cầu, bất kể bạn yêu cầu bao nhiêu hàng. Phương diện này cũng có thể trả về ít hàng hơn so với yêu cầu nếu không có nhiều phân khúc phương diện như bạn mong đợi. Ví dụ: có thể có dưới 300 giá trị cho mcf:medium. Vì vậy, khi chỉ phân đoạn theo phương tiện, bạn không thể có quá 300 hàng, ngay cả khi đặt max-results thành giá trị cao hơn.

Trở lại đầu trang


Phản hồi

Nếu thành công, yêu cầu này sẽ trả về một nội dung phản hồi có cấu trúc JSON được xác định dưới đây.

Lưu ý: thuật ngữ "Kết quả" dùng để chỉ toàn bộ tập hợp các hàng khớp với cụm từ tìm kiếm, còn "phản hồi" dùng để chỉ tập hợp các hàng được trả về trên trang kết quả hiện tại. Các giá trị này có thể khác nếu tổng số kết quả lớn hơn kích thước trang cho phản hồi hiện tại, như giải thích trong itemsPerPage.

Định dạng phản hồi

JSON
{
  "kind": "analytics#mcfData",
  "id": string,
  "query": {
    "start-date": string,
    "end-date": string,
    "ids": string,
    "dimensions": [
      string
    ],
    "metrics": [
      string
    ],
    "sort": [
      string
    ],
    "filters": string,
    "samplingLevel": string,
    "start-index": integer,
    "max-results": integer
  },
  "itemsPerPage": integer,
  "totalResults": integer,
  "selfLink": string,
  "previousLink": string,
  "nextLink": string,
  "profileInfo": {
    "profileId": string,
    "accountId": string,
    "webPropertyId": string,
    "internalWebPropertyId": string,
    "profileName": string,
    "tableId": string
  },
  "containsSampledData": boolean,
  "sampleSize": string,
  "sampleSpace": string,
  "columnHeaders": [
    {
      "name": string,
      "columnType": string,
      "dataType": string
    }
  ],
  "totalsForAllResults": [
    {
      metricName: string,
      ...
    }
  ]
  "rows": [
    [
      McfData.Rows
    ]
  ],
}

Trở lại đầu trang

Trường câu trả lời

Các thuộc tính của cấu trúc nội dung phản hồi được xác định như sau:

Tên thuộc tính Giá trị Nội dung mô tả
kind string Loại tài nguyên. Giá trị là "analytics#mcfData".
id string Mã nhận dạng cho phản hồi dữ liệu này.
query object Đối tượng này chứa tất cả các giá trị được truyền dưới dạng tham số đến truy vấn. Ý nghĩa của từng trường được giải thích trong nội dung mô tả về tham số truy vấn tương ứng.
query.start-date string Ngày bắt đầu.
query.end-date string Ngày kết thúc.
query.ids string Mã bảng duy nhất.
query.dimensions[] list Danh sách phương diện phân tích.
query.metrics[] list Danh sách các chỉ số phân tích.
query.sort[] list Danh sách các chỉ số hoặc phương diện mà dữ liệu được sắp xếp.
query.filters string Danh sách các bộ lọc chỉ số hoặc phương diện được phân tách bằng dấu phẩy.
query.samplingLevel string Requested sampling level.
query.start-index integer Chỉ mục bắt đầu của các hàng. Giá trị mặc định là 1.
query.max-results integer Số kết quả tối đa mỗi trang.
startIndex integer Chỉ mục bắt đầu của các hàng do tham số truy vấn start-index chỉ định. Giá trị mặc định là 1.
itemsPerPage integer Số hàng tối đa mà phản hồi có thể chứa, bất kể số hàng thực tế được trả về. Nếu tham số truy vấn max-results được chỉ định, thì giá trị của itemsPerPage sẽ nhỏ hơn của max-results hoặc 10.000. Giá trị mặc định của itemsPerPage là 1000.
totalResults integer Tổng số hàng trong kết quả truy vấn, bất kể số lượng hàng được trả về trong phản hồi. Đối với những truy vấn dẫn đến một số lượng lớn các hàng, totalResults có thể lớn hơn itemsPerPage. Xem phần Phân trang để biết thêm thông tin giải thích về totalResultsitemsPerPage đối với các truy vấn lớn.
profileInfo object Thông tin về chế độ xem (hồ sơ) mà dữ liệu được yêu cầu. Dữ liệu Chế độ xem (Hồ sơ) có sẵn thông qua API Quản lý Google Analytics.
profileInfo.profileId string Mã chế độ xem (Hồ sơ), chẳng hạn như 1174.
profileInfo.accountId string Mã tài khoản chứa chế độ xem (hồ sơ) này, chẳng hạn như 30481.
profileInfo.webPropertyId string Mã thuộc tính web chứa chế độ xem (hồ sơ) này, chẳng hạn như UA-30481-1.
profileInfo.internalWebPropertyId string Mã nhận dạng nội bộ của thuộc tính web chứa chế độ xem (hồ sơ) này, chẳng hạn như UA-30481-1.
profileInfo.profileName string Tên của chế độ xem (hồ sơ).
profileInfo.tableId string Mã bảng cho chế độ xem (hồ sơ), bao gồm "ga:" theo sau là mã chế độ xem (hồ sơ).
containsSampledData boolean Đúng nếu phản hồi chứa dữ liệu được lấy mẫu.
sampleSize string Số lượng mẫu dùng để tính toán dữ liệu được lấy mẫu.
sampleSpace string Tổng kích thước không gian lấy mẫu. Giá trị này cho biết tổng kích thước không gian mẫu có sẵn mà từ đó các mẫu được chọn.
columnHeaders[] list Tiêu đề cột liệt kê tên phương diện, theo sau là tên chỉ số. Thứ tự của các phương diện và chỉ số giống với thứ tự được chỉ định trong yêu cầu thông qua các thông số metricsdimensions. Số lượng tiêu đề là số lượng phương diện + số lượng chỉ số.
columnHeaders[].name string Tên của phương diện hoặc chỉ số.
columnHeaders[].columnType string Loại cột. "PHƯƠNG DIỆN" hoặc "CHỈ SỐ".
columnHeaders[].dataType string Kiểu dữ liệu. Các tiêu đề cột phương diện chỉ có "STRING" hoặc "MCF_SEQUENCE" là loại dữ liệu. Tiêu đề cột chỉ số có các loại dữ liệu cho các giá trị chỉ số như "INTEGER", "DOUBLE", "CURRENCY", v.v.
totalsForAllResults object Tổng giá trị cho các chỉ số được yêu cầu dưới dạng cặp khoá-giá trị của tên và giá trị chỉ số. Thứ tự của các giá trị tổng của chỉ số giống với thứ tự của các chỉ số được chỉ định trong yêu cầu.
rows[] list

Báo cáo các hàng dữ liệu, trong đó mỗi hàng chứa một danh sách các đối tượng Mcf.Rows. Danh sách bên trong này biểu thị các giá trị thứ nguyên, theo sau là các giá trị chỉ số theo cùng thứ tự như được chỉ định trong yêu cầu. Mỗi hàng có một danh sách gồm N trường, trong đó N = số phương diện + số lượng chỉ số.

Đối tượng Mcf.Rows gói một đối tượng khác có thể thuộc loại primitiveValue hoặc conversionPathValue. Giá trị phương diện có thể thuộc một trong hai loại, còn tất cả giá trị chỉ số đều thuộc loại primitiveValue.

primitiveValue chỉ đơn giản là một chuỗi được gói trong một đối tượng. Ví dụ:

{
  "primitiveValue": "2183"
}

conversionPathValue là một đối tượng được bao bọc xung quanh một mảng các đối tượng, trong đó mỗi đối tượng chứa một chuỗi nodeValue và một chuỗi interactionType không bắt buộc. Ví dụ:

{
  "conversionPathValue": [
    {
      "interactionType" : "CLICK",
      "nodeValue" : "google"
    },
    {
      "interactionType" : "CLICK",
      "nodeValue" : "google"
    }
  ]
}

Trở lại đầu trang

Mã lỗi

API Báo cáo phễu đa kênh sẽ trả về mã trạng thái HTTP 200 nếu yêu cầu thành công. Nếu có lỗi xảy ra trong quá trình xử lý truy vấn, API sẽ trả về mã lỗi và nội dung mô tả. Mỗi ứng dụng sử dụng API phân tích đều cần triển khai logic xử lý lỗi thích hợp. Để biết thông tin chi tiết về mã lỗi và cách xử lý, hãy đọc Hướng dẫn tham khảo về Phản hồi lỗi.

Trở lại đầu trang

Hãy dùng thử!

Sử dụng APIs Explorer bên dưới để gọi phương thức này trên dữ liệu trực tiếp và xem phản hồi.

Trở lại đầu trang

Lấy mẫu

Google Analytics sẽ nhanh chóng tính toán một số kiểu kết hợp phương diện và chỉ số nhất định. Để trả về dữ liệu trong một thời gian hợp lý, Google Analytics có thể chỉ xử lý một mẫu dữ liệu.

Bạn có thể chỉ định cấp độ lấy mẫu để sử dụng cho một yêu cầu bằng cách đặt tham số samplingLevel.

Nếu phản hồi của API Báo cáo MCF chứa dữ liệu được lấy mẫu, thì trường phản hồi containsSampledData sẽ là true. Ngoài ra, 2 thuộc tính sẽ cung cấp thông tin về cấp độ lấy mẫu cho truy vấn: sampleSizesampleSpace. Với 2 giá trị này, bạn có thể tính toán tỷ lệ phần trăm số phiên được dùng cho truy vấn. Ví dụ: nếu sampleSize201,000sampleSpace220,000 thì báo cáo sẽ dựa trên (201.000 / 220.000) * 100 = 91,36% số phiên.

Vui lòng xem phần Lấy mẫu để biết nội dung mô tả chung về hoạt động lấy mẫu và cách sử dụng phương pháp lấy mẫu trong Google Analytics.

Trở lại đầu trang

Xử lý kết quả dữ liệu lớn

Nếu bạn muốn truy vấn của mình trả về một tập hợp kết quả lớn, hãy sử dụng các nguyên tắc dưới đây để giúp bạn tối ưu hoá truy vấn API, tránh lỗi và giảm thiểu việc vượt quá hạn mức. Xin lưu ý rằng chúng tôi thiết lập một đường cơ sở về hiệu suất bằng cách cho phép tối đa 7 phương diện và 10 chỉ số trong một yêu cầu API bất kỳ. Mặc dù một số truy vấn chỉ định số lượng lớn chỉ số và phương diện có thể mất nhiều thời gian xử lý hơn so với các truy vấn khác, nhưng việc giới hạn số lượng chỉ số được yêu cầu có thể là không đủ để cải thiện hiệu suất truy vấn. Thay vào đó, bạn có thể sử dụng các kỹ thuật sau để có kết quả hiệu suất tốt nhất.

Giảm phương diện cho mỗi truy vấn

API cho phép chỉ định tối đa 7 phương diện trong một yêu cầu bất kỳ. Nhiều lần, Google Analytics phải nhanh chóng tính toán kết quả của những truy vấn phức tạp này. Việc này có thể đặc biệt tốn thời gian nếu số lượng hàng thu được quá lớn. Ví dụ: việc truy vấn từ khoá theo thành phố theo giờ có thể khớp với hàng triệu hàng dữ liệu. Bạn có thể cải thiện hiệu suất bằng cách giảm số lượng hàng mà Google Analytics cần xử lý bằng cách giới hạn số lượng phương diện trong truy vấn của bạn.

Tách truy vấn theo Phạm vi ngày

Thay vì phân trang theo kết quả theo ngày tháng của một phạm vi ngày dài, hãy cân nhắc tạo các truy vấn riêng trong một tuần – hoặc thậm chí một ngày – mỗi lần. Tất nhiên, đối với một tập dữ liệu lớn, ngay cả một yêu cầu dữ liệu trong một ngày cũng có thể trả về nhiều hơn max-results, trong trường hợp đó là không thể tránh được việc phân trang. Tuy nhiên, trong mọi trường hợp, nếu số hàng phù hợp với truy vấn của bạn nhiều hơn max-results, thì việc chia nhỏ phạm vi ngày có thể làm giảm tổng thời gian truy xuất kết quả. Phương pháp này có thể cải thiện hiệu suất trong cả truy vấn đơn luồng và truy vấn song song.

Paging

Việc phân trang kết quả có thể là một cách hữu ích để chia các tập hợp kết quả lớn thành các phần có thể quản lý. Trường totalResults cho biết có bao nhiêu hàng phù hợp, còn itemsPerPage cho biết số hàng tối đa có thể trả về trong kết quả. Nếu tỷ lệ totalResults so với itemsPerPage ở mức cao, thì các truy vấn riêng lẻ có thể mất nhiều thời gian hơn mức cần thiết. Nếu chỉ cần một số lượng hàng hạn chế, chẳng hạn như cho mục đích hiển thị, bạn có thể đặt giới hạn rõ ràng về kích thước phản hồi thông qua tham số max-results. Tuy nhiên, nếu ứng dụng của bạn cần xử lý toàn bộ một tập hợp lớn kết quả, thì việc yêu cầu số hàng tối đa được phép có thể hiệu quả hơn.

Sử dụng gzip

Một cách dễ dàng và thuận tiện để giảm băng thông cần thiết cho mỗi yêu cầu là bật tính năng nén gzip. Mặc dù việc này yêu cầu thêm thời gian của CPU để giải nén kết quả, nhưng việc đánh đổi chi phí mạng thường rất đáng để thực hiện. Để nhận được phản hồi được mã hoá bằng gzip, bạn phải làm hai việc: Đặt tiêu đề Accept-Encoding và sửa đổi tác nhân người dùng để chứa chuỗi gzip. Dưới đây là ví dụ về các tiêu đề HTTP được định dạng đúng cách để bật chức năng nén gzip:

Accept-Encoding: gzip
User-Agent: my program (gzip)