Tổng quan: Bài viết này dành cho khách hàng sử dụng AppsFlyer, thường được gọi là nhà quảng cáo hoặc chủ sở hữu ứng dụng, sử dụng Nền tảng để ghi nhận việc sử dụng và phân bổ ứng dụng. Chủ sở hữu ứng dụng triển khai API OpenDSR (Yêu cầu Chủ thể Dữ liệu) để tuân thủ các luật bảo vệ dữ liệu hiện hành như GDPR (Châu Âu), CCPA (California), LGPD (Brazil) và PDPA (Thái Lan).
Tuyên bố của luật sư chúng tôi: Không nội dung nào được nêu trong tài liệu này là thông tin tư vấn pháp lý. Những nội dung này chỉ nhằm cung cấp thông tin và sự tiện lợi cho bạn. Bạn nên hợp tác chặt chẽ với các cố vấn pháp lý và các cố vấn chuyên môn khác để xác định chính xác cách thức mà GDPR, CCPA hay bất kỳ luật nào khác có khả năng có hoặc không áp dụng đối với bạn. Mối quan hệ riêng tư giữa bạn và AppsFlyer được điều chỉnh bởi Chính sách Quyền riêng tư về Dịch vụ của AppsFlyer. Đối với bất kỳ câu hỏi nào liên quan đến Chính sách Quyền riêng tư về Dịch vụ này hoặc để liên hệ với nhân viên bảo vệ dữ liệu của chúng tôi, vui lòng gửi thư cho chúng tôi theo địa chỉ privacy@appsflyer.com. Theo mục đích của Điều 27 của Quy định chung về bảo vệ dữ liệu, đại diện trong Liên minh Châu Âu của AppsFlyer là AppsFlyer Germany GmbH, Schönhauser Allee 180, 10119 Berlin, Đức (liên hệ privacy@appsflyer.com; +49-30-166373500).
Quy định về quyền riêng tư
Trong bài viết này, các tham chiếu đến các quy định về quyền riêng tư sẽ bao gồm các quy định được liệt kê trong bảng sau đây.
Quy định | Biểu tượng | Mô tả |
---|---|---|
GDPR | Quy định Bảo vệ Dữ liệu Chung là quy định của EU liên quan đến việc bảo vệ dữ liệu và quyền riêng tư của công dân Liên minh Châu Âu | |
CCPA | Đạo luật Quyền riêng tư của Người tiêu dùng California | |
LGPD | Lei Geral de Proteção de Dados | |
PDPA | Đạo luật Bảo vệ Dữ liệu Cá nhân |
Các thuật ngữ như quy định về quyền riêng tư, GDPR, CCPA, LGPD và PDPA được sử dụng có thể thay thế cho nhau trong bài viết này.
Sáng kiến OpenDSR
Để giải quyết và quản lý các yêu cầu do Chủ thể Dữ liệu gửi theo các quy định về quyền riêng tư, AppsFlyer, cùng với mParticle, Amplitude và Braze, đã khởi tạo giao thức OpenDSR (trước đây gọi là OpenGDPR).
OpenDSR là một khuôn khổ mã nguồn mở giúp tạo điều kiện cho hoạt động hợp tác giữa các công ty công nghệ để sử dụng dữ liệu khách hàng một cách công bằng và minh bạch. Giao thức này cho phép các nhà cung cấp thực hiện các hành động bảo vệ dữ liệu trên nhiều hệ thống xử lý và lưu trữ dữ liệu khách hàng.
Tìm hiểu thêm về sáng kiến OpenDSR.
Các định nghĩa
Điều khoản DSR | Thuật ngữ AppsFlyer | Mô tả |
---|---|---|
Chủ thể Dữ liệu | Người dùng Ứng dụng hoặc Người dùng cuối | Người dùng Ứng dụng là người dùng có dữ liệu được thu thập |
Người kiểm soát Dữ liệu | Chủ sở hữu Ứng dụng hoặc Nhà quảng cáo | Chủ sở hữu Ứng dụng xác định mục đích và phương tiện xử lý dữ liệu cá nhân. |
Người xử lý Dữ liệu | AppsFlyer và các đối tác của mình | AppsFlyer và các đối tác xử lý dữ liệu cá nhân thay mặt cho người kiểm soát dữ liệu |
Yêu cầu DSR
DSR quy định chi tiết các quyền bắt buộc của Chủ thể Dữ liệu mà Đơn vị Kiểm soát Dữ liệu phải tuân thủ. Đối với mục đích API, các quyền này được chuyển thành các loại yêu cầu. Các chi tiết sau đây xác định cách AppsFlyer xử lý các loại yêu cầu khác nhau.
Loại yêu cầu (Quyền) |
Định nghĩa GDPR |
Xử lý yêu cầu của AppsFlyer |
---|---|---|
Quyền truy cập |
|
Chủ sở hữu Ứng dụng nhận được một bản sao dữ liệu cá nhân đã xử lý của Người dùng Ứng dụng. |
Tính khả chuyển |
Người dùng Ứng dụng cần nhận tất cả dữ liệu cá nhân của họ theo định dạng có cấu trúc, thường được sử dụng và có thể đọc được – chẳng hạn như tệp CSV. |
Chủ sở hữu Ứng dụng nhận được một bản sao dữ liệu cá nhân đã xử lý của Người dùng Ứng dụng. |
Quyền hiệu chỉnh |
Cho phép Người dùng Ứng dụng sửa dữ liệu của họ nếu họ thấy không chính xác hoặc không trung thực. Chủ sở hữu Ứng dụng được yêu cầu phải xóa hoặc sửa dữ liệu không chính xác hoặc không đầy đủ. |
|
Quyền xóa |
Quyền xóa yêu cầu Chủ sở hữu Ứng dụng xóa dữ liệu cá nhân trong vòng 14 ngày kể từ ngày nhận được yêu cầu. |
Dữ liệu bị xóa |
GDPR của AppsFlyer Yêu cầu API
Sử dụng API Yêu cầu GDPR theo mô tả trong phần này để tuân thủ DSR.
- Yêu cầu GDPR: Thực hiện một trong các loại yêu cầu trên: truy cập, tính khả chuyển, quyền xóa, hiệu chỉnh.
- Yêu cầu Trạng thái - Truy vấn trạng thái hiện tại của yêu cầu GDPR
- Yêu cầu Phát hiện: Yêu cầu thông tin về phiên bản API được hỗ trợ và Định dạng Dữ liệu
- Hủy: Hủy một yêu cầu GDPR trong giai đoạn chờ xử lý
Chủ sở hữu Ứng dụng cần thực hiện các thay đổi về giao diện người dùng cho ứng dụng của họ để Người dùng Ứng dụng có thể gửi yêu cầu. Lưu ý rằng yêu cầu GDPR là cho một người dùng tại một thời điểm.
1. Yêu cầu GDPR
Quy trình yêu cầu GDPR
Các loại yêu cầu GDPR, quyền truy cập, tính khả chuyển, quyền xóa và hiệu chính, có cùng một luồng:
- Người dùng Ứng dụng gửi yêu cầu.
- Chủ sở hữu Ứng dụng tạo yêu cầu GDPR (xem bên dưới) và gửi đến AppsFlyer.
- AppsFlyer nhận được yêu cầu và trả lời là "201 OK" cho các yêu cầu hợp lệ.
- Trong 48 giờ sau, yêu cầu được xếp hàng đợi và có trạng thái là đang chờ xử lý. Người dùng Ứng dụng có thể hủy yêu cầu.
- Sau 48 giờ, trạng thái yêu cầu sẽ thay đổi thành đang xử lý. AppsFlyer gửi đăng lại thay đổi trạng thái. Tại thời điểm này, sẽ không thể hủy bỏ yêu cầu.
- Trong vòng 14 ngày (xem ghi chú bên dưới), AppsFlyer đáp ứng yêu cầu và trạng thái yêu cầu sẽ cập nhật thành đã hoàn thành. AppsFlyer gửi đăng lại thay đổi trạng thái.
- Trong trường hợp xóa hoặc hiệu chỉnh, dữ liệu của Người dùng Ứng dụng sẽ bị xóa.
- Trong trường hợp khả năng di chuyển hoặc quyền truy cập, dữ liệu của Người dùng Ứng dụng có thể được truy cập trong bảng điều khiển AppsFlyer theo GDPR hoặc thông qua API Yêu cầu (xem bên dưới).
Lưu ý: Thời hạn 14 ngày này bắt đầu sau khi thời gian chờ xử lý 48 giờ kết thúc. Do đó, tổng thời gian để thực hiện yêu cầu là 16 ngày kể từ khi Chủ sở hữu Ứng dụng gửi yêu cầu đến AppsFlyer.
Định dạng yêu cầu GDPR
API Yêu cầu GDPR có thể được gửi qua HTTP POST tới điểm cuối sau:
https://hq1.appsflyer.com/api/gdpr/v1/opendsr_requests
Đối với việc cấp quyền API, hãy sử dụng cùng mã thông báo API V2 như đối với API Pull. Người dùng quản trị có thể truy xuất mã thông báo từ trang mã thông báo API trong bảng điều khiển. Thêm mã thông báo vào tiêu đề yêu cầu như sau: 'Authorization': 'Bearer %AuthTokenV2%'
Tham số
Tên Thuộc tính | Bắt buộc | Mô tả |
---|---|---|
subject_request_id | Có | Chuỗi UUID v4. Được Người kiểm soát tạo tại thời điểm gửi yêu cầu tới Người xử lý. Sau đó, chuỗi này có thể được sử dụng để kiểm tra trạng thái của yêu cầu, cập nhật hoặc hủy bỏ yêu cầu. |
subject_request_type | Có |
Giá trị chuỗi đại diện cho loại Yêu cầu GDPR. Các giá trị được hỗ trợ:
|
subject_identities | Có |
|
submitted_time | Có |
|
property_id | Có |
Chuỗi đại diện cho ứng dụng dành cho thiết bị di động trong phạm vi của yêu cầu Ví dụ:
|
phiên_bản_api | Không | Chuỗi phiên bản đại diện cho phiên bản mong muốn của API yêu cầu GDPR |
status_callback_urls | Không, nhưng khuyến nghị |
|
platform |
Không |
Giá trị là một trong những nền tảng DSR được hỗ trợ: |
Có |
Đối với yêu cầu nền tảng CTV, PC hoặc Console, sẽ tính cả bất kỳ nền tảng nào sau đây: |
Đối tượng Subject_identities
Loại đối tượng | Bắt buộc | Mô tả |
---|---|---|
identity_type | Có |
|
identity_value | Có |
|
identity_format | Có |
|
Ví dụ: yêu cầu xóa GDPR
Ví dụ về yêu cầu xóa đối với các nền tảng android
, ios
, web
, windowsphone
:
curl --location --request POST 'https://hq1.appsflyer.com/api/gdpr/v1/opendsr_requests' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer %AuthTokenv2% \
--data-raw '{
"subject_request_id":"f4e5a271-f25e-4107-b681-************",
"subject_request_type":"erasure",
"submitted_time":"2020-07-05T10:00:00Z",
"platform": "android",
"subject_identities":[
{
"identity_type":"android_advertising_id",
"identity_value":"55*****-****-****-************",
"identity_format":"raw"
}
],
"api_version":"0.1",
"property_id":"com.*********.*******.********",
"status_callback_urls":[
"https://examplecontroller.com/opengdpr_callbacks"
]
}'
Ví dụ về yêu cầu xóa đối với nền tảngCTV
, PC
và Console
:
curl --location --request POST 'https://hq1.appsflyer.com/api/gdpr/v1/opendsr_requests' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer %AuthTokenv2% \
--data-raw '
{"requester": "test@email.com",
"subject_request_id":"valid-uuid4-string",
"subject_request_type":"erasure",
"submitted_time":"2020-07-05T10:00:00Z",
"subject_identities":[
{
"identity_type":"appsflyer_id",
"identity_value":"valid-appsflyer-id-string",
"identity_format":"raw"
}
],
"api_version":"0.1",
"property_id":"app-id",
"platform": "roku",
"status_callback_urls":[
"https://examplecontroller.com/opengdpr_callbacks"
]
}'
Ví dụ về mã yêu cầu xóa của GDPR
/*
using the okhttp package install from maven
https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp
*/
import okhttp3.*;
import java.io.IOException;
public class GdprSendRequest {
public static void main(String[] args){
OkHttpClient client = new OkHttpClient();
RequestBody body = RequestBody.create(null, "" +
"{\r\n\"subject_request_id\": \"\"," +
"\r\n\"subject_request_type\": \"erasure\"," +
"\r\n\"platform\": \"android\"," +
"\r\n\"submitted_time\": \"2018-11-02T15:00:00Z\"," +
"\r\n\"subject_identities\": [\r\n" +
"{\r\n\"identity_type\": \"android_advertising_id\"," +
"\r\n\"identity_value\": \"\"," +
"\r\n\"identity_format\": \"raw\"\r\n}" +
"\r\n]," +
"\r\n\"property_id\": \"com.example.application\"}");
Request request = new Request.Builder()
.url("https://hq1.appsflyer.com/api/gdpr/v1/opendsr_requests/opendsr_requests")
.post(body)
.addHeader("Content-Type", "application/json")
.addHeader("Accept", "application/json")
.addHeader("Authorization: Bearer", "")
.build();
try {
Response response = client.newCall(request).execute();
System.out.println(response.code());
System.out.println(response.body().string());
System.exit(0);
} catch (IOException e) {
e.printStackTrace();
System.exit(1);
}
}
}
""" using the requests python package,
install using pip install requests """
import requests
import json
headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization: Bearer": ""
}
body = {
"subject_request_id": "",
"subject_request_type": "erasure",
"submitted_time": "2018-10-02T15:00:00Z",
"platform": "android",
"subject_identities": [
{ "identity_type": "android_advertising_id",
"identity_value": "",
"identity_format": "raw" }
],
"property_id": "com.example.application"
}
body = json.dumps(body)
res = requests.request("POST",
"https://hq1.appsflyer.com/api/gdpr/v1/opendsr_requests",
headers=headers, data=body, params=params)
print(res.text)
/* using the request npm package,
install using npm install request */
var request = require("request");
var options = { method: 'POST',
url: 'https://hq1.appsflyer.com/api/gdpr/v1/opendsr_requests',
headers:
{ Accept: 'application/json',
'Content-Type': 'application/json',
'Authorization: Bearer': '' },
body:
{ subject_request_id: '',
subject_request_type: 'erasure',
submitted_time: '2018-10-02T15:00:00Z',
platform: 'android',
subject_identities:
[ { identity_type: 'android_advertising_id',
identity_value: '',
identity_format: 'raw' } ],
property_id: 'com.example.application'
},
json: true };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
using System;
using RestSharp;
namespace CS
{
class Gdpr
{
static void Main(string[] args)
{
var url = "https://hq1.appsflyer.com/api/gdpr/v1/opendsr_requests";
var client = new RestClient(url);
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Accept", "application/json");
request.AddHeader("Authorization: Bearer", "")
var body = "{\r\n\"subject_request_id\": \"\"," +
"\r\n \"subject_request_type\": \"erasure\"," +
"\r\n \"submitted_time\": \"2018-11-02T15:00:00Z\"," +
"\r\n \"platform\": \"android\"," +
"\r\n \"subject_identities\": [\r\n" +
"{ \r\n \"identity_type\": \"android_advertising_id\"," +
"\r\n \"identity_value\": \"\"," +
"\r\n \"identity_format\": \"raw\"\r\n }" +
"\r\n ]," +
"\r\n \"property_id\": \"com.example.application\"}";
request.AddParameter("undefined", body,ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
// handle response by reading response.StatusCode
Console.WriteLine(response.Content);
}
}
2. Yêu cầu trạng thái
Mỗi yêu cầu GDPR đã gửi đi, sau này có thể được truy vấn về trạng thái của nó, bằng cách nêu rõ subject_request_id
. Có bốn loại trạng thái được hỗ trợ:
- đang chờ xử lý - Một yêu cầu chính xác đã được nhận và hiện đang xếp hàng đợi
- in_progress - Yêu cầu hiện đang được thực hiện
- đã hoàn thành - Yêu cầu đã được hoàn thành
- đã hủy - Yêu cầu đã bị hủy
Định dạng yêu cầu trạng thái
Yêu cầu trạng thái có thể được gửi qua HTTP GET tới điểm cuối dưới đây:
https://hq1.appsflyer.com/api/gdpr/v1/opendsr_requests/<req_id>
Ví dụ về phản hồi trạng thái
HTTP/1.1 200 OK
Content-Type: application/json
X-OpenGDPR-Processor Domain: example processor.com
X-OpenGDPR-Signature:
kiGlog3PdQx+FQmB8wYwFC1fekbJG7Dm9WdqgmXc9uKkFRSM4uPzylLi7j083461xLZ+mUloo3tpsmyIZpt5eMfgo7ejXPh6lqB4ZgCnN6+1b6Q3NoNcn/+11UOrvmDj772wvg6uIAFzsSVSjMQxRs8LAmHqFO4cF2pbuoPuK2diHOixxLj6+t97q0nZM7u3wmgkwF9EHIo3C6G1SI04/odvyY/VdMZgj3H1fLnz+X5rc42/wU4974u3iBrKgUnv0fcB4YB+L6Q3GsMbmYzuAbe0HpVA17ud/bVoyQZAkrW2yoSy1x4Ts6XKba6pLifIHf446Bubsf5r7x1kg6Eo7B8zur666NyWOYrglkOzU4IYO8ifJFRZZXazOgk7ggn9obEd78GBc3kjKKZdwaCrLx7WV5y9TMDCf+2FILOJM/MwTUy1dLZiaFHhGdzld2AjbjK1CfVzyPssch0iQYYtbR49GhumvkYl11S4oDfu0c3t/xUCZWg0hoR3XL3B7NjcrlrQinB1KbyTNZccKR0F4Lk9fDgwTVkrAg152UqPyzXxpdzXjfkDkSEgAevXQwVJWBNf18bMIEgdH2usF/XauQoyrne7rcMIWBISPgtBPj3mhcrwscjGVsxqJva8KCVCKD/4Axmo9DISib5/7A6uczJxQG2Bcrdj++vQqK2succ=
{
"controller_id":"example_controller_id",
"expected_completion_time":"2018-11-01T15:00:01Z",
"subject_request_id":"a7551968-d5d6-44b2-9831-815ac9017798",
"request_status":"pending",
}
Postback trạng thái
Như được mô tả trong Quy trình Yêu cầu GDPR ở trên, khi trạng thái của yêu cầu GDPR thay đổi, từ pending thành in_progress thành completed, AppsFlyer gửi một postback GDPR tới các điểm cuối yêu cầu, được xác định với thuộc tính status_callback_urls.
Ví dụ về đăng lại trạng thái:
POST /opengdpr_callbacks HTTP/1.1
Host: examplecontroller.com
Content-Type: application/json
X-OpenGDPR-Processor Domain: gdpr.appsflyer.com
X-OpenGDPR-Signature: kiGlog3PdQx+FQmB8wYwFC1fekbJG7Dm9WdqgmXc9uKkFRSM4uPzylLi7j083461xLZ+mUloo3tpsmyIZpt5eMfgo7ejXPh6lqB4ZgCnN6+1b6Q3NoNcn/+11UOrvmDj772wvg6uIAFzsSVSjMQxRs8LAmHqFO4cF2pbuoPuK2diHOixxLj6+t97q0nZM7u3wmgkwF9EHIo3C6G1SI04/odvyY/VdMZgj3H1fLnz+X5rc42/wU4974u3iBrKgUnv0fcB4YB+L6Q3GsMbmYzuAbe0HpVA17ud/bVoyQZAkrW2yoSy1x4Ts6XKba6pLifIHf446Bubsf5r7x1kg6Eo7B8zur666NyWOYrglkOzU4IYO8ifJFRZZXazOgk7ggn9obEd78GBc3kjKKZdwaCrLx7WV5y9TMDCf+2FILOJM/MwTUy1dLZiaFHhGdzld2AjbjK1CfVzyPssch0iQYYtbR49GhumvkYl11S4oDfu0c3t/xUCZWg0hoR3XL3B7NjcrlrQinB1KbyTNZccKR0F4Lk9fDgwTVkrAg152UqPyzXxpdzXjfkDkSEgAevXQwVJWBNf18bMIEgdH2usF/XauQoyrne7rcMIWBISPgtBPj3mhcrwscjGVsxqJva8KCVCKD/4Axmo9DISib5/7A6uczJxQG2Bcrdj++vQqK2succ=
{
"controller_id":"example controller id at the processor",
"expected_completion_time":"2018-11-01T15:00:01Z",
"status_callback_url":"https://examplecontroller.com/opengdpr_callbacks",
"Subject_request_id":"a7551968-d5d6-44b2-9831-815ac9017798",
"Request_status":"pending"
}
Xác thực đăng lại
Để xác thực tính xác thực của các đăng lại gửi đến:
- Tạo danh sách cho phép gồm tất cả các miền của bộ xử lý mà bạn cho phép thực hiện lệnh gọi lại.
-
Nếu giá trị tiêu đề của
X-OpenGDPR-Processor-Domain
nằm trong danh sách cho phép của bạn, hãy tìm nạp chứng chỉ.- URL chứng chỉ là giá trị
processor_certificate
trong nội dung phản hồi/discovery
. - Bạn cũng có thể tìm nạp chứng chỉ trực tiếp từ điểm cuối AppsFlyer bằng cách sử dụng mã thông báo API V2 làm mã thông báo truy cập trong tiêu đề cấp quyền:
GET https://hq1.appsflyer.com/api/gdpr/v1/certificate
- URL chứng chỉ là giá trị
-
Xác thực chứng chỉ bằng thư viện để xác nhận rằng chứng chỉ:
- Được cấp bởi một cơ quan đáng tin cậy.
- Được cấp cho cùng một chuỗi được cung cấp trong giá trị tiêu đề
X-OpenGDPR-Processor-Domain
. - Chưa hết hạn sử dụng.
- Sau khi bạn xác nhận chứng chỉ hợp lệ, hãy sử dụng chứng chỉ đó để xác thực tiêu đề
X-OpenGDPR-Signature
đối với nội dung yêu cầu thô. AppsFlyer sử dụng RSA SHA256 làm thuật toán ký. -
Nhận phản hồi trong tiêu đề trạng thái:
202 Accepted
nếu xác thực thành công.401 Unauthorized
nếu chữ ký không xác thực được hoặc miền của bộ xử lý không có trong danh sách cho phép của bạn.
3. Yêu cầu báo cáo
Khi Yêu cầu Truy cập hoặc Yêu cầu Khả năng Di chuyển đã được hoàn tất, bạn có thể tải xuống báo cáo qua HTTP GET tới điểm cuối sau:
https://hq1.appsflyer.com/api/gdpr/v1/download/[REQUEST_ID]
Báo cáo được tạo sẽ khả dụng trong mười bốn ngày kể từ thời điểm hoàn thành.
4. Quá trình yêu cầu khám phá
Để tìm hiểu về các định dạng được AppsFlyer hỗ trợ, có thể gửi yêu cầu phát hiện qua HTTP GET tới điểm cuối sau:
https://hq1.appsflyer.com/api/gdpr/v1/discovery
Ví dụ về yêu cầu phát hiện
HTTP/1.1 200 OK
Content-Type: application/json
{
"api_version": "0.1",
"supported_identities": [
{
"identity_type": "android_advertising_id",
"identity_format": "raw"
},
],
"supported_subject_request_types": [
"erasure", "access", "portability", "rectification"
],
"processor_certificate": "https://exampleprocessor.com/cert.pem"
}
5. Yêu cầu Hủy
Có thể hủy yêu cầu GDPR, dựa trên subject_request_id
, nhưng chỉ hủy được trong gia đoạn chờ xử lý.
Để gửi một HTTP DELETE với subject_request_id
:
https://hq1.appsflyer.com/api/gdpr/v1/opendsr_requests/<req_id>
Phản hồi Hủy
Khi nhận được yêu cầu hủy GDPR, AppsFlyer sẽ trả về phản hồi HTTP có mã trạng thái 202 và một số thông số khác.
Sau khi đã hủy bỏ yêu cầu, AppsFlyer sẽ gửi một đăng lại với trạng thái đã hủy.
6. API Kiểm tra yêu cầu GDPR
API này của AppsFlyer là một API kiểm tra của API Yêu cầu GDPR.
Nó hoạt động như thế nào?
API kiểm tra hoạt động như sau:
1. Sau khi yêu cầu GDPR được thực hiện, yêu cầu sẽ ngay lập tức được đặt vào trạng thái 'Đang chờ xử lý'. Để phục vụ mục đích kiểm tra, trạng thái này thay đổi sau mỗi 30 giây.
2. Nếu một điểm cuối cho một postback trạng thái đã được chèn vào yêu cầu GDPR, một postback đầu tiên được gửi ngay sau khi yêu cầu và thêm hai postback trạng thái được gửi sau 30 giây.
Điểm cuối Kiểm tra Yêu cầu GDPR: POST
https://hq1.appsflyer.com/api/gdpr/v1/stub
Điểm cuối Kiểm tra Yêu cầu Trạng thái: GET
https://hq1.appsflyer.com/api/gdpr/v1/stub/:requestId
Điểm cuối Kiểm tra Yêu cầu Khám phá: GET
https://hq1.appsflyer.com/api/gdpr/v1/stub/discovery
Điểm cuối Kiểm tra Yêu cầu Hủy: DELETE
https://hq1.appsflyer.com/api/gdpr/v1/stub/:requestId
Điểm cuối Kiểm tra Chứng chỉ: GET
https://hq1.appsflyer.com/api/gdpr/v1/stubcertificate
Điểm cuối Kiểm tra Báo cáo Truy cập/Khả năng Di chuyển: GET
https://hq1.appsflyer.com/api/gdpr/v1/stub/download/:requestId
Lưu ý
- Mã thông báo API V2 hợp lệ phải được chèn vào tiêu đề yêu cầu như sau:
'Authorization': 'Bearer %AuthTokenV2%'
- Trong thuộc tính ‘property_id’, ID Ứng dụng phải thuộc về chủ tài khoản (theo mã thông báo API).
7. Nhật ký yêu cầu
Người dùng quản trị có thể truy cập các yêu cầu GDPR được gửi trong Bảng điều khiển Nhật ký.
Đối với các yêu cầu truy cập và khả chuyển đã hoàn tất, bạn cũng có thể tải xuống báo cáo từ bên trong bảng điều khiển này.
Để truy cập Bảng điều khiển Nhật ký:
- 1. Truy cập bảng điều khiển chính và nhấp vào tên người dùng của bạn.
- Nhấp vào Nhật ký và cửa sổ sau đây sẽ mở ra:
8. Thông báo lỗi và mã trả về cho API GDPR
Thông báo lỗi và mã trả về HTTP cho API GDPR được trình bày chi tiết trong phần này.
Mã trả về cho API GDPR
Mã trả về | Mô tả |
---|---|
201 | Đã tạo |
202 | Đã nhận yêu cầu hủy |
400 |
Lỗi yêu cầu. Phần nội dung có chứa mã lỗi và thông báo như được liệt kê trong bảng bên dưới. |
Mã trả về HTTP 400 - lỗi yêu cầu
Thông báo có mã trả về là 400 có chứa JSON kèm theo mã lỗi và thông báo.
{ "error":
{ "code":400, "af_gdpr_code": "%AF error code%", "message":"%error message text%"
}
}
Thông báo lỗi yêu cầu có mã trả về 400
Mã lỗi |
Mô tả lỗi (thông báo) |
---|---|
e111 | Vượt quá giới hạn lưu lượng |
e211 | Không thể hủy yêu cầu có trạng thái không hợp lệ |
e212 | Yêu cầu này không được phép. Đang xóa mã định danh. |
e213 | Đã tồn tại yêu cầu này |
e214 | Không tìm thấy yêu cầu |
e311 | content-type yêu cầu không hợp lệ |
e312 | Phiên bản API không hợp lệ |
e313 | subject_request_id không hợp lệ |
e314 | Định dạng submitted_time không hợp lệ |
e315 | Độ dài status_callback_url không hợp lệ |
e316 | Định dạng status_callback_url không hợp lệ |
e317 | Định dạng app_id không hợp lệ |
e318 | identity_type không hợp lệ |
e319 | Nền tảng ứng dụng không khớp với hình thức nhận dạng |
e320 | identity_type không hợp lệ |
e321 | Người dùng LAT không được hỗ trợ thông qua api |
e322 | subject_request_type không hợp lệ |
e323 | Định dạng subject_identities không hợp lệ |
e324 | Độ dài subject_identities không hợp lệ |
e325 | Giá trị subject_identities không hợp lệ |
e411 | AppID không chính xác hoặc không thuộc về tài khoản của bạn |
e412 | Không có quyền để hủy yêu cầu xóa |
e413 | Không có quyền để xem yêu cầu |
e511 | Đã xảy ra sự cố nội bộ, vui lòng chờ 60 phút và thử lại. Nếu sự cố vẫn tiếp diễn, vui lòng liên hệ bộ phận hỗ trợ AppsFlyer. support@AppsFlyer.com |
Đặc điểm và hạn chế
- Giới hạn tốc độ: 80 yêu cầu GDPR cứ sau 2 phút ở cấp tài khoản (tương đương với 2.400 yêu cầu mỗi giờ và 57.600 mỗi ngày). Số yêu cầu vượt quá giới hạn này sẽ không thành công.
- UI hiển thị tối đa 200 yêu cầu được chọn ngẫu nhiên.
- Việc kiểm tra trạng thái của yêu cầu từ hơn 60 ngày trước sẽ trả về "không tìm thấy yêu cầu".