Cấu hình nâng cao – SDK iOS

Tài liệu này cung cấp góc nhìn về một số tính năng cấu hình nâng cao của Google Analytics SDK cho iOS phiên bản 2.

Tổng quan

SDK Google Analytics dành cho iOS sử dụng hai lớp để quản lý trạng thái chung của quá trình triển khai và gửi dữ liệu đến máy chủ của Google Analytics.

  • GAI – một singleton xử lý trạng thái chung của quá trình triển khai, bao gồm cả việc nhận các đối tượng GAITracker mới, cũng như chế độ cài đặt chọn không tham gia ở cấp ứng dụng và cài đặt điều phối.
  • GAITracker – lớp mà từ đó bạn gửi dữ liệu đến Google Analytics. Bạn có thể tạo thực thể cho nhiều trình theo dõi, mỗi mã cho một mã tài sản duy nhất.

Sử dụng nhiều thiết bị theo dõi

Kể từ phiên bản 2 của SDK, bạn có thể sử dụng nhiều trình theo dõi trong một lần triển khai, một trình theo dõi cho mỗi mã theo dõi duy nhất. Tất cả trình theo dõi đều có cùng trạng thái toàn cầu do singleton GAI của bạn nắm giữ.

Trong ví dụ sau, một lượt xem màn hình được gửi đến hai thuộc tính riêng biệt bằng cách sử dụng hai trình theo dõi, mỗi trình theo dõi có một mã thuộc tính duy nhất riêng:

#import "RootViewController.h"
#import "GAI.h"

@interface RootViewController ()

@end

@implementation RootViewController
{
- (void)viewDidLoad {
  [super viewDidLoad];

  // Send a screen view to the first property.
  id tracker1 = [[GAI sharedInstance] trackerWithTrackingId:@"UA-XXXX-Y"];
  [tracker1 sendView:@"/HomeScreen"];

  // Send another screen view to the second property.
  id tracker2 = [[GAI sharedInstance] trackerWithTrackingId:@"UA-XXXX-Z"];
  [tracker2 sendView:@"Home"];
}

@end

Xin lưu ý rằng các tính năng đo lường tự động, như đo lường màn hình tự động và đo lường ngoại lệ chưa nắm bắt, sẽ chỉ sử dụng một trình theo dõi để gửi dữ liệu đến Google Analytics. Nếu đang sử dụng các tính năng này và muốn gửi dữ liệu bằng các công cụ theo dõi khác, bạn cần thực hiện việc này theo cách thủ công.

Để tham khảo, tính năng tự động đo lường màn hình sẽ sử dụng trình theo dõi được chỉ định trong thuộc tính tracker của một GAITrackedViewController nhất định. Tính năng đo lường ngoại lệ chưa phát hiện được sẽ sử dụng trình theo dõi mặc định được chỉ định trong thực thể GAI của bạn.

Thiết bị theo dõi mặc định

Mặc dù quá trình triển khai có thể sử dụng nhiều trình theo dõi, nhưng trên toàn cầu, quá trình này chỉ có một trình theo dõi mặc định. Tracker đầu tiên được truy xuất sẽ trở thành công cụ theo dõi mặc định.

Để tải thiết bị theo dõi mặc định, hãy sử dụng:

// Get default tracker.
id myDefault = [GAI sharedInstance].defaultTracker;

Để đặt thiết bị theo dõi mặc định, hãy sử dụng:

// Get a new tracker.
id newTracker = [[GAI sharedInstance]trackerWithTrackingId:@"UA-NEW-TRACKING-ID");

// Set the new tracker as the default tracker, globally.
[GAI sharedInstance].defaultTracker = newTracker;

Lấy mẫu

Bạn có thể bật tính năng lấy mẫu phía máy khách để giới hạn số lượt truy cập được gửi đến Google Analytics. Nếu ứng dụng của bạn có số lượng lớn người dùng hoặc gửi một lượng lớn dữ liệu đến Google Analytics, thì việc bật tính năng lấy mẫu sẽ giúp đảm bảo báo cáo không bị gián đoạn.

Ví dụ: để triển khai lấy mẫu phía máy khách với tỷ lệ 50%, hãy sử dụng mã sau:

// Set a sample rate of 50%.
[tracker setSampleRate:50.0];  // Sample rate is a double.

Chọn không tham gia cấp ứng dụng

Bạn có thể bật cờ chọn không tham gia cấp ứng dụng để vô hiệu hoá Google Analytics trên toàn bộ ứng dụng. Sau khi được đặt, cờ này sẽ duy trì trong suốt thời gian hoạt động của ứng dụng hoặc cho đến khi được đặt lại.

Để cài đặt chọn không tham gia cấp ứng dụng, hãy sử dụng:

// Get the app-level opt out preference.
if ([GAI sharedInstance].optOut) {
  ... // Alert the user they have opted out.
}

Để đặt cờ chọn không tham gia ở cấp ứng dụng, hãy sử dụng:


// Set the app-level opt out preference.
[[GAI sharedInstance].setOptOut = YES];

Kiểm tra và gỡ lỗi

SDK Google Analytics dành cho iOS cung cấp một chế độ gỡ lỗi giúp in thông tin hữu ích về dữ liệu nào đang được gửi đến Google Analytics trong nhật ký của bạn.

// Enable debug mode.
[GAI sharedInstance].debug = YES;