Chẩn đoán

Sau đây là quy trình công việc được đề xuất để xác minh tình trạng của lượt tải sự kiện và đối tượng lên, đồng thời xác định các vấn đề về dữ liệu của bạn.

  1. Gửi yêu cầu để gửi sự kiện hoặc gửi/xoá thành viên đối tượng.

  2. Kiểm tra trạng thái tổng thể của từng yêu cầu. Một yêu cầu thành công sẽ có a Status với code bằng 0 (giá trị enum OK, HTTP phản hồi 200 OK) và trả về a IngestEventsResponse, IngestAudienceMembersResponse hoặc RemoveAudienceMembersResponse.

    Nếu một yêu cầu không thành công, hãy sửa đổi yêu cầu để giải quyết lỗi và gửi lại yêu cầu.

    Nếu một yêu cầu thành công, hãy ghi lại request_id của phản hồi để bạn có thể dùng mã này để truy xuất thông tin chẩn đoán ở bước tiếp theo.

  3. Chờ 30 phút, sau đó gửi RetrieveRequestStatus yêu cầu cho từng thành công request_id.

    Định kỳ lặp lại bước này cho từng request_id cho đến khi trạng thái đích của từng đích đạt đến SUCCESS, PARTIAL_SUCCESS, hoặc FAILURE. Sử dụng thuật toán thời gian đợi tăng theo cấp luỹ thừa để đợi giữa mỗi yêu cầu.

  4. Xem xét từng RetrieveRequestStatusResponse để xác nhận rằng lượt tải lên của bạn đang hoạt động đúng cách và xác định mọi vấn đề về dữ liệu của bạn.

  5. Khắc phục các vấn đề về dữ liệu.

  6. Quay lại bước 1 và lặp lại cho đến khi bạn giải quyết xong mọi vấn đề về lượt tải lên.

Gửi yêu cầu

A RetrieveRequestStatusRequest yêu cầu một giá trị request_id duy nhất. Gửi một yêu cầu trạng thái riêng cho từng mã yêu cầu mà bạn đã ghi lại từ một yêu cầu nhập thành công.

Định kỳ gửi RetrieveRequestStatusRequest bằng thuật toán thời gian đợi tăng theo cấp luỹ thừa cho đến khi request_status đạt đến SUCCESS, FAILURE hoặc PARTIAL_SUCCESS cho mọi đích trong yêu cầu ban đầu. Quá trình này có thể mất đến 24 giờ, mặc dù Data Manager API có thể hoàn tất quá trình xử lý một số yêu cầu chỉ trong 30 phút.

Dưới đây là ví dụ về thời gian đợi ban đầu hợp lý và cấu hình thử lại giúp cân bằng mức độ hoạt động và mức sử dụng hạn mức:

Cài đặt Giá trị
Thời gian đợi trước yêu cầu chẩn đoán đầu tiên (phút) 30
Hệ số thời gian đợi 1.3
Thời gian đợi tối đa (phút) 60 (1 giờ)
Tổng thời gian tối đa (phút) 1440 (24 giờ)

Dưới đây là trình tự các yêu cầu và thời gian đã trôi qua với cấu hình này:

Biểu đồ

Chiến lược thăm dò ý kiến

Dữ liệu

Lần thử Thời gian kể từ yêu cầu nhập (hh:mm) Độ trễ trước lần thử Ghi chú
1 00:30 30,0 phút Lần kiểm tra đầu tiên về trạng thái có sẵn
2 01:09 39,0 phút
3 01:59 50,7 phút
4 02:59 60,0 phút Độ trễ hiện được giới hạn ở mức 1 giờ
5 03:59 60,0 phút
6 04:59 60,0 phút
7 05:59 60,0 phút
8 06:59 60,0 phút
9 07:59 60,0 phút
10 08:59 60,0 phút
11 09:59 60,0 phút
12 10:59 60,0 phút
13 11:59 60,0 phút Mốc 12 giờ
14 12:59 60,0 phút
15 13:59 60,0 phút
16 14:59 60,0 phút
17 15:59 60,0 phút
18 16:59 60,0 phút
19 17:59 60,0 phút
20 18:59 60,0 phút
21 19:59 60,0 phút
22 20:59 60,0 phút
23 21:59 60,0 phút
24 22:59 60,0 phút
25 23:59 60,0 phút Yêu cầu cuối cùng trước tổng thời gian tối đa là 24 giờ

Thêm một lượng nhỏ biên độ ngẫu nhiên vào độ trễ thời gian đợi để ngăn vấn đề "đàn bò rống" khi nhiều ứng dụng đồng thời thử lại.

Xem lại câu trả lời

The request_status_per_destination trong a RetrieveRequestStatusResponse chứa một mục riêng cho từng đích trong yêu cầu nhập tương ứng.

Ví dụ: nếu IngestAudienceMembersRequest của bạn chứa 3 mục trong danh sách destinations để gửi dữ liệu đến 3 đối tượng khác nhau, thì phản hồi trạng thái sẽ chứa 3 mục trong request_status_per_destination (mỗi mục cho một đối tượng).

Kiểm tra trạng thái tổng thể của đích

Bước đầu tiên là kiểm tra trường request_status để xác định xem API Trình quản lý dữ liệu đã hoàn tất quá trình xử lý dữ liệu cho destination của RequestStatusPerDestination hay chưa.

Sau đây là các giá trị có thể có của request_status:

  • PROCESSING: Dữ liệu cho đích vẫn đang được xử lý. Các cảnh báo và lỗi không được điền sẵn cho đích ở giai đoạn này.

  • SUCCESS: Quá trình xử lý yêu cầu cho đích đã hoàn tất mà không có lỗi nào. Kiểm tra các cảnh báo được gắn cờ trong quá trình xử lý.

  • FAILURE: Tất cả hồ sơ cho đích đều không thành công do lỗi. Kiểm tra các cảnh báo và lỗi để xác định lý do tất cả hồ sơ không thành công. Ngoài ra, hãy kiểm tra các cảnh báo được gắn cờ trong quá trình xử lý.

  • PARTIAL_SUCCESS: Một số hồ sơ cho đích đã thành công, nhưng những hồ sơ khác không thành công do lỗi. Kiểm tra các lỗi để xác định lý do một số hồ sơ không thành công. Ngoài ra, hãy kiểm tra các cảnh báo được gắn cờ trong quá trình xử lý.

Kiểm tra trạng thái sự kiện hoặc đối tượng theo đích

Kiểm tra trường trạng thái tương ứng với loại yêu cầu nhập. Chỉ một trong các trường sau được đặt trên mỗi RequestStatusPerDestination:

Trạng thái nhập sự kiện

Trường events_ingestion_status được điền sẵn nếu yêu cầu là IngestEventsRequest.

Kiểm tra record_count của IngestEventStatus để xác nhận rằng tổng số hồ sơ nhận được khớp với kỳ vọng của bạn. record_count bao gồm cả hồ sơ thành công và không thành công.

Trạng thái nhập thành viên đối tượng

Trường audience_members_ingestion_status được điền sẵn nếu yêu cầu là IngestAudienceMembersRequest. Sau đây là trường IngestAudienceMembersStatus để kiểm tra từng loại dữ liệu đối tượng. Chỉ một trong các trường này được đặt.

user_data_ingestion_status

Kiểm tra record_count của IngestUserDataStatus để xác nhận rằng tổng số hồ sơ nhận được khớp với kỳ vọng của bạn. record_count bao gồm cả hồ sơ thành công và không thành công.

Kiểm tra user_identifier_count để xác nhận rằng số lượng giá trị nhận dạng người dùng nhận được khớp với kỳ vọng của bạn.

Nếu yêu cầu có đủ số lượng hồ sơ, thì upload_match_rate_range sẽ chứa phạm vi tỷ lệ khớp cho các hồ sơ trong yêu cầu.

mobile_data_ingestion_status

Kiểm tra record_count của IngestMobileDataStatus để xác nhận rằng tổng số hồ sơ nhận được khớp với kỳ vọng của bạn. record_count bao gồm cả hồ sơ thành công và không thành công.

Kiểm tra mobile_id_count để xác nhận rằng số lượng mã di động nhận được khớp với kỳ vọng của bạn.

pair_data_ingestion_status

Kiểm tra record_count của IngestPairDataStatus để xác nhận rằng tổng số hồ sơ nhận được khớp với kỳ vọng của bạn. record_count bao gồm cả hồ sơ thành công và không thành công.

Kiểm tra pair_id_count để xác nhận rằng số lượng mã PAIR nhận được khớp với kỳ vọng của bạn.

ppid_data_ingestion_status

Kiểm tra record_count của IngestPpidDataStatus để xác nhận rằng tổng số hồ sơ nhận được khớp với kỳ vọng của bạn. record_count bao gồm cả hồ sơ thành công và không thành công.

Kiểm tra ppid_count để xác nhận rằng số lượng PPID nhận được khớp với kỳ vọng của bạn.

user_id_data_ingestion_status

Kiểm tra record_count của IngestUserIdDataStatus để xác nhận rằng tổng số hồ sơ nhận được khớp với kỳ vọng của bạn. record_count bao gồm cả hồ sơ thành công và không thành công.

Kiểm tra user_id_count để xác nhận rằng số lượng mã người dùng nhận được khớp với kỳ vọng của bạn.

composite_data_ingestion_status

Kiểm tra record_count của IngestCompositeDataStatus để xác nhận rằng tổng số hồ sơ nhận được khớp với kỳ vọng của bạn. record_count bao gồm cả hồ sơ thành công và không thành công.

Kiểm tra data_type_counts để xác nhận rằng số lượng giá trị nhận dạng khớp với kỳ vọng của bạn. Danh sách này cung cấp bảng chi tiết về tất cả giá trị nhận dạng nhận được (chẳng hạn như địa chỉ email, số điện thoại, địa chỉ thực tế và địa chỉ IP) theo DataType.

Nếu yêu cầu có đủ số lượng hồ sơ, thì upload_match_rate_range sẽ chứa phạm vi tỷ lệ khớp cho các hồ sơ trong yêu cầu.

Trạng thái xoá thành viên đối tượng

Trường audience_members_removal_status được điền sẵn nếu yêu cầu là RemoveAudienceMembersRequest. Sau đây là trường RemoveAudienceMembersStatus để kiểm tra từng loại dữ liệu đối tượng. Chỉ một trong các trường này được đặt.

user_data_removal_status
Trạng thái xoá đối với dữ liệu người dùng.
mobile_data_removal_status
Trạng thái xoá đối với dữ liệu di động.
pair_data_removal_status
Trạng thái xoá đối với dữ liệu PAIR.
ppid_data_removal_status
Trạng thái xoá đối với dữ liệu PPID.
user_id_data_removal_status
Trạng thái xoá đối với dữ liệu Mã người dùng
composite_data_removal_status
Trạng thái xoá đối với dữ liệu Tổng hợp

Kiểm tra record_count để xác nhận rằng tổng số hồ sơ nhận được khớp với kỳ vọng của bạn. record_count bao gồm cả hồ sơ thành công và không thành công.

Ngoài ra, hãy kiểm tra user_identifier_count, mobile_id_count, pair_id_count, ppid_count hoặc user_id_count để xác nhận tổng số giá trị nhận dạng nhận được.

Đối với dữ liệu tổng hợp, hãy kiểm tra data_type_counts để xác nhận rằng số lượng giá trị nhận dạng khớp với kỳ vọng của bạn. Danh sách này cung cấp thông tin phân tích về tất cả giá trị nhận dạng nhận được (chẳng hạn như địa chỉ email, số điện thoại, địa chỉ thực tế và địa chỉ IP) theo DataType.

Kiểm tra cảnh báo và lỗi

Ngoài các trường trạng thái cho đích và loại yêu cầu, RetrieveRequestStatusResponse còn chứa bảng chi tiết về các cảnh báo và lỗi cho yêu cầu.

  • Lỗi cho biết rằng API đã hoàn toàn từ chối hồ sơ.
  • Cảnh báo cho biết rằng API không từ chối hồ sơ, nhưng phải bỏ qua một số phần dữ liệu của hồ sơ.

Ví dụ: nếu Event chứa dữ liệu được mã hoá UserIdentifierAdIdentifiers như gclid, đồng thời không thể giải mã dữ liệu UserIdentifier, thì Data Manager API vẫn xử lý hồ sơ bằng AdIdentifiers nhưng trả về cảnh báo PROCESSING_WARNING_REASON_USER_IDENTIFIER_DECRYPTION_ERROR.

Tuy nhiên, nếu Event không chứa AdIdentifiers và không thể giải mã dữ liệu UserIdentifier, thì Data Manager API sẽ từ chối toàn bộ hồ sơ và báo cáo lỗi PROCESSING_ERROR_REASON_USER_IDENTIFIER_DECRYPTION_ERROREvent hợp lệ phải có ít nhất một trong các giá trị ad_identifiers hoặc user_data.

Sau đây là các trường phản hồi chứa thông tin cảnh báo và lỗi. Các trường này được điền sẵn khi trạng thái tổng thể của đích đạt đến SUCCESS, PARTIAL_SUCCESS, hoặc FAILURE.

warning_info

Danh sách các đối tượng WarningCount. Mỗi WarningCount chứa một reason với loại cảnh báo và một record_count cho biết số lượng hồ sơ có loại cảnh báo đó.

Kiểm tra warning_info ngay cả khi trạng thái tổng thể của đích là SUCCESS.

error_info

Danh sách các đối tượng ErrorCount. Mỗi ErrorCount chứa một reason với loại lỗi và một record_count cho biết số lượng hồ sơ không thành công do loại lỗi đó.