API sự kiện máy chủ đến máy chủ dành cho thiết bị di động (S2S trên thiết bị di động)

Khái quát: Các sự kiện Máy chủ đến Máy chủ (S2S) dành cho API di động sẽ gửi những sự kiện xảy ra bên ngoài ứng dụng tới AppsFlyer. Các sự kiện S2S cũng được phân bổ theo cách tương tự như các sự kiện SDK và khả dụng trên khắp nền tảng.  

S2S_us-en.png

API sự kiện máy chủ đến máy chủ cho thiết bị di động

Nền tảng AppsFlyer sẽ phân bổ và ghi nhận các sự kiện trong ứng dụng di động mà AppsFlyer SDK và API đã gửi lên. Hãy sử dụng API S2S để báo cáo những sự kiện diễn ra ngoài phạm vi ứng dụng; ví dụ: người dùng gia hạn gói đăng ký thông qua giao diện web. Sau khi được ghi nhận, các sự kiện S2S sẽ xuất hiện trên toàn nền tảng, bao gồm bảng điều khiển, dữ liệu thô và dữ liệu phân tích. Để biết những sự kiện web cho PBA, hãy xem S2S Web cho PBA.

AppsFlyer sẽ điền vào các sự kiện S2S với:

  • Những giá trị gửi trong thông báo S2S
  • Một số giá trị phân bổ lượt cài đặt AppsFlyer, chẳng hạn như thời gian cài đặt, nguồn truyền thông.

Hướng dẫn sử dụng API

Tạo lệnh gọi API bằng thông tin có trong các phần sau. 

Thông tin về API S2S

Điểm cuối API

https://api2.appsflyer.com/inappevent/app_id

  • app_id: Mã định danh ứng dụng được dùng trong bảng điều khiển AppsFlyer. Chèn đúng theo mã hiển thị trên bảng điều khiển.
  • Các ứng dụng trên iOS: Đảm bảo phải thêm tiền tố id.  Nếu không thêm tiền tố, hệ thống sẽ trả về mã hợp lệ 200 OK, mà không ghi nhận sự kiện.
  • Windows: Lấy ID ứng dụng từ Microsoft App Store.
  • Ví dụ đối với Android: https://api2.appsflyer.com/inappevent/com.appsflyer.myapp
    iOS:https://api2.appsflyer.com/inappevent/id123456789
    Windows:https://api2.appsflyer.com/inappevent/a1b2c3d4e5f6
Phương thức HTTP POST
Loại nội dung được chấp nhận application/json
Ủy quyền

--header 'authentication: dev_key'

  • dev_key là mã thông báo xác thực trong tiêu đề. 
  • Để lấy mã khóa dev key trong AppsFlyer hãy đi đến, App Settings (Cài đặt của Ứng dụng) > Dev Key
Đưa máy chủ vào danh sách cho phép để nhận thông báo phản hồi

Đưa Phạm vi địa chỉ IP AWS vào danh sách trắng để nhận thông báo phản hồi nếu bạn đặt hệ thống máy chủ của mình ở phía sau tường lửa. 

Giới hạn tải trọng JSON 

Kích cỡ tải trọng JSON: tối đa 1KB

Giới hạn tỷ lệ

Khối lượng giới hạn đối với POST: 60.000 POST/phút. Để tăng ngưỡng giới hạn này, hãy liên hệ với CSM.

Hướng dẫn mã hóa
Mã hóa URL

Mã hóa (tỉ lệ phần trăm) các ký tự dùng để mã hóa (https://tools.ietf.org/html/rfc3986#section-2.1) trước khi tạo URL phương thức. 

TLS

Sử dụng TLS 1.2 trở lên. Các thuật toán mã hóa được hỗ trợ

Thông tin về API S2S

Các thông số về tải trọng

  • Thông số tải trọng bao gồm một hoặc nhiều mã định danh thiết bị (tùy thuộc vào hệ điều hành).
  • Điều gì sẽ xảy ra nếu tôi không thể gửi mã định danh thiết bị?
    • Bạn có thể không gửi được mã định danh vì một lý do ngoài tầm kiểm soát của mình, chẳng hạn như do người dùng đã giới hạn theo dõi quảng cáo (LAT) hoặc sử dụng iOS 14 và không đồng ý ATT (không thu thập IDFA).
    • Trong trường hợp đó, hãy lưu ý rằng việc không  gửi mã định danh thiết bị/ID quảng cáo có thể gây ra lỗi phân bổ,  nghĩa là AppsFlyer không thể phân bổ sự kiện cho nguồn truyền thông. Các sự kiện được ghi nhận và hiển thị trong báo cáo và trang tổng quan. 
Hệ điều hành Tên mã định danh Mô tả

iOS

iconAFios.png

 

idfa 

Hãy điền bằng IDFA thiết bị, nếu có thể.

Định dạng: Chuỗi

Ví dụ: "idfa": "9876F1SS-2983-3855-27RR-2R626772VFNB"

idfv

Hãy điền bằng IDFA thiết bị, nếu có thể.

Định dạng: Chuỗi
Ví dụ: "idfv": "95C9BD22-4A4C-41C8-9548-ED07C5C8C145"

Android

iconAFand.png

advertising_id

Hãy điền bằng GAID thiết bị (ID quảng cáo), nếu có thể

Định dạng: Chuỗi

Ví dụ: "advertising_id": "9c9a82fb-d5de-4cd1-90c3-527441c11828"

oaid

Định dạng: Chuỗi

Ví dụ: "oaid": "1fe9a970-efbb-29e0-0bdd-f5dbbf751ab5"

amazon_aid

Định dạng: Chuỗi

imei

Định dạng: Chuỗi

Ví dụ: "imei": "AA-BBBBBB-CCCCCC-D"

Mã định danh của thiết bị
Tên thông số Bắt buộc Mô tả

appsflyer_id

Là mã định danh duy nhất do AppsFlyer tạo khi ứng dụng khởi chạy lần đầu. 

  • Định dạng: Chuỗi
  • Ví dụ: "appsflyer_id": "1415211453000-6513894"

customer_user_id

Không

Customer user ID, là mã định danh người dùng duy nhất do chủ sở hữu ứng dụng thiết đặt.

  • Đinh dạng: Chuỗi. 
  • Ví dụ: "customer_user_id": "my_customer_number1234" 

att

Không

Trạng thái cấp quyền ATTrackingManager của iOS

  • Nếu phiên bản hệ điều hành của thiết bị là iOS 14 hoặc cao hơn, hãy điền att bằng ATTrackingManager.
    • Định dạng: Số nguyên có một chữ số 
    • Ví dụ: 1
  • Các giá trị iOS cho ATTrackingManager là:
    • 0: Không xác định
    • 1: Bị hạn chế
    • 2: Bị từ chối
    • 3: Cấp quyền

Lưu ý! 

  • Là một phần của chính sách bảo mật của Apple, chúng tôi khuyên bạn nên điền att bằng giá trị ATTrackingManager. 
  • Bạn có thể gửi thông số này trước thời điểm phát hành chính thức của iOS14; chúng tôi sẽ bắt đầu xử lý thông số đó sau khi phát hành chính thức. 

 

ip

Không

Địa chỉ IP của thiết bị di động trong khi xảy ra sự kiện.

  • Nếu gửi địa chỉ IP, địa chỉ này sẽ được dùng để điền các trường địa lý.
  • Nếu không gửi địa chỉ IP, AppsFlyer sẽ sử dụng các giá trị từ sự kiện phân bổ lượt cài đặt để điền vào trường địa chỉ IP và trường địa lý. 
  • Định dạng: Chuỗi chứa địa chỉ IPV4 hoặc IPV6
  • Ví dụ: "ip": "192.0.2.1
af_events_api Ngưng hỗ trợ
  • Không còn được hỗ trợ kể từ ngày 6 tháng 7 năm 2020.
  • Nếu không cần thông số này, bạn có thể không dừng gửi thông số. Việc đó hoàn toàn không ảnh hưởng đến hoạt động phân bổ. 

Tên của sự kiện

Xác định rõ tên sự kiện. Đảm bảo rằng tên sự kiện tuân thủ đúng các yêu cầu của nhà tiếp thị.

  • Định dạng: Chuỗi
  • Ví dụ: "eventName": "af_purchase"

Giá trị của sự kiện

If you send an event without a value then send: "eventValue":""

  • Không được định dạng hay thêm ký hiệu khi gửi giá trị sự kiện. 
  • Đối với af_revenue bạn có thể sử dụng dấu phẩy thập phân. Phải có dấu - đứng trước giá trị âm
  • Định dạng: Chuỗi dưới dạng JSON
  • Ví dụ: "eventValue": "{ \"af_revenue\": \"6\", \"af_content_type\": \"wallets\", \"af_content_id\": \"15854\", \"af_quantity\" :\"1\" }"

app_version_name

Không

Mã định danh hoặc phiên bản ứng dụng của bạn.

  • Định dạng: Chuỗi
  • Ví dụ: "app_version_name": "my_app_version"

app_store

Không

Tương đương với AF_STORE trong ứng dụng Android. Cửa hàng mà ứng dụng đã được tải xuống. 

  • Trường dữ liệu thô: Cài đặt App Store
  • Định dạng: Chuỗi
  • Ví dụ: my_android_store_is_best

Thời gian sự kiện

Không

Thời gian xảy ra sự kiện theo múi giờ UTC.

  • Mặc định: Nếu không gửi eventTime, thời gian sẽ được thiết đặt thành thời gian đến của thông báo HTTP.
  • Định dạng: chuỗi yyyy-mm-dd hh:mm:ss.sss thời gian phải theo chuẩn múi giờ UTC.
  • Ví dụ: "eventTime":"2019-05-15 12:17:01.123" có nghĩa là 12:17:01 UTC. 

Cuối ngày:

  • Nếu bạn thực thi eventTime, sự kiện phải được gửi tới AppsFlyer chậm nhất là 02:00 giờ ngày hôm sau. Tức là, nếu sự kiện xảy ra vào thứ Hai lúc 17:00 giờ theo múi giờ UTC, thì sự kiện đó phải được gửi tới hệ thống máy chủ của AppsFlyer chậm nhất lúc 02:00 giờ thứ Ba theo múi giờ UTC. 
  • Nếu hệ thống tiếp nhận sự kiện vào cuối ngày, hệ thống sẽ ghi nhãn thời gian là thời gian đến thực tế.
  • Những sự kiện nào có thời gian trong tương lai, nghĩa là sau thời gian đến, sự kiện đó sẽ có nhãn thời gian là thời gian đến. 

Ví dụ:

  • Thời gian đều theo chuẩn múi giờ UTC
  • Sự kiện đã được gửi lên với thông tin eventTime = 21:00 giờ thứ Hai.
Thời gian đến Thời gian do AppsFlyer ghi nhận Nhận xét
01:00 giờ thứ Ba 21:00 giờ thứ Hai Đến trước giờ đóng cửa.
09:00 giờ thứ Tư  09:00 giờ thứ Tư Đến sau giờ đóng cửa. Thời gian được thiết đặt thành thời gian đến. 

eventCurrency

Không

Mã tiền tệ sử dụng mã 3 ký tự ISO 4217 và BCN (Bitcoin)

  • Mặc định: USD
  • Ví dụ: "eventCurrency": "ZAR"

bundleIdentifier

Không

Mã định danh ứng dụng duy nhất. Trong dữ liệu thô, thông số sẽ điền ID Gói.

  • Định dạng: Chuỗi
  • Ví dụ: "bundleIdentifer": "com.myapp"

sharing_filter

Không

Bộ lọc chia sẻ chặn việc chia sẻ các sự kiện S2S thông qua đăng lại/API với các đối tác tích hợp và hoạt động tích hợp của bên thứ ba khác. 

Sử dụng bộ lọc để đáp ứng các yêu cầu theo quy định như GDPR và CCPA, để tuân thủ cơ chế lựa chọn không tham gia của người dùng và vì các lý do về logic kinh doanh khác. 

sharing_filter có các tùy chọn sau:

  • all: Tất cả các đối tác đều bị chặn. Không chia sẻ sự kiện với bất kỳ ai.  Ví dụ: "sharing_filter": "all"
  • Danh sách id đối tác trong một mảng. Dịnh dạng ["partnerid_1", "partnerid_2", "partnerid_n"]  Ví dụ: "sharing_filter": ["googleadwords_int", "adcolony_int"]

Để biết danh sách id đối tác, hãy liên hệ với bộ phận hỗ trợ CSM hoặc AppsFlyer của bạn. 

Ví dụ về Curl

curl --location --request POST 'https://api2.appsflyer.com/inappevent/<app_id_placeholder>' \
--header 'authentication: <dev_key_placeholder>
' \
--header 'Content-Type: application/json' \
--data-raw '{
  "appsflyer_id": "9999999999999-9999999999999999999",
	"advertising_id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
	"customer_user_id" : "example_customer_id_123",
	"ip": "199.0.2.1",
	"app_version_name" : "example_version_name",
	"eventTime" : "2020-02-25 12:00.000",
	"eventName": "af_purchase",
	"eventCurrency": "ZAR",
	"eventValue": 
	"{
		\"af_revenue\": \"1006\",
		\"af_content_type\": \"wallets\",
		\"af_content_id\": \"15854\",
		\"af_quantity\" :\"1\"
   }"
}
'

Mã phản hồi

Mã Phản hồi  Thông báo Cách xử lý
200 OK

Sau khi nhận được thông báo, hệ thống sẽ thực hiện quy trình xác thực dữ liệu tối thiểu. Như vậy, bạn có thể nhận được phản hồi là OK ngay cả khi hệ thống chưa thực sự ghi nhận sự kiện vào AppsFlyer. Để gỡ lỗi cho sự kiện:

  • Sử dụng ví dụ về CURL trong bài viết này"
    • Cập nhật thông tin chi tiết về mã khóa dev key và id ứng dụng.
    • Thay đổi các thông số appsflyer_id và eventTime. Sử dụng thời gian hiện tại và appsflyer_id mới được phân bổ là không tự nhiên.
  • Gửi lệnh gọi.
    • Hệ thống sẽ trả về thông báo 200 OK.
    • Kiểm tra để xem liệu sự kiện đó đã được ghi nhận chính xác hay chưa, bao gồm cả doanh thu
    • Thay đổi thông tin khác nếu cần và kiểm thử lại.
400 Không thể xác thực Đảm bảo rằng mã khóa xác thực đã chính xác.
400  appsflyer_id là trường bắt buộc
  •  Đảm bảo bạn chuyển AppsFlyer ID chính xác trong JSON.
  • JSON được tạo chuỗi() và định dạng chính xác.
401 Không được phép Khi mã khóa được cung cấp trong tiêu đề xác thực không phải là mã khóa <dev_key> cho ứng dụng này.
400 Lỗi yêu cầu

Khi yêu cầu không đáp ứng ít nhất một trong các tiêu chí về xác thực.

400  Tải trọng bị thiếu hoặc không phân tách được
  • Hãy đảm bảo rằng JSON được xâu chuỗi và định dạng chính xác.
  • Nếu có nhiều sự kiện trong tải trọng JSON. Hãy đảm bảo rằng bạn chỉ gửi một sự kiện đối với mỗi yêu cầu.
500  Lỗi Máy chủ Nội bộ  Xác minh rằng JSON đã được tạo chuỗi() và định dạng chính xác.
 

Thử nghiệm

Cân nhắc: 

  • Nếu muốn thử nghiệm, hãy sử dụng ID AppsFlyer của lượt cài đặt không tự nhiên để sự kiện thử nghiệm tiến hành phân bổ trong thời gian thực. Các sự kiện tự nhiên trễ một vài giờ khi phân bổ.
  • Hệ thống sử dụng sự kiện phân bổ lượt cài đặt của người dùng để điền dữ liệu vào một số trường sự kiện. Ví dụ, thời gian cài đặt và nguồn truyền thông. 

Để phân bổ thiết bị thử nghiệm là lượt cài đặt không tự nhiên:

  1. Tạo đường dẫn phân bổ tùy chỉnh để thử nghiệm các thông báo S2S. Thiết đặt thông số nguồn truyền thông trên liên kết là s2s_test. Ví dụ: &pid=s2s_test 
  2. Đăng ký thiết bị thử nghiệm
  3. Gỡ cài đặt ứng dụng khỏi thiết bị thử nghiệm.
  4. Gửi liên kết tới thiết bị thử nghiệm.
  5. Nhấp vào liên kết.
  6. Cài đặt, sau đó khởi chạy ứng dụng.
  7. Trong bảng điều khiển, hãy kiểm tra xem lượt cài đặt đã được phân bổ chưa.
  8. Tìm nạp ID AppsFlyer để sử dụng trong thông báo S2S của bạn.

Để gửi thông báo thử nghiệm S2S:

  1. Sử dụng ID AppsFlyer được phân bổ để tạo thông báo S2S. Xem nội dung dưới đây để biết các ví dụ về mã.
  2. Gửi thông báo.
  3. Thực hiện một trong những thao tác sau để xem cách hệ thống ghi nhận thông báo trong AppsFlyer:
  4. Kiểm tra và xác nhận:
    • Các giá trị được gửi trong thông báo S2S đã được điền chính xác trong báo cáo. Đặc biệt lưu ý đến các trường Ngày sự kiện, Tiền tệ sự kiện, Doanh thu sự kiện và Giá trị sự kiện.
    • Nguồn phân bổ và thời gian cài đặt sẽ do AppsFlyer điền.
    • Hệ thống sẽ không điền những giá trị được chính SDK cung cấp, chẳng hạn như phiên bản SDK.

Mã mẫu khi gửi thông báo S2S

JavaPythonNode JSC#PHPGo
/* using the okhttp package 
install from maven https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp */
import okhttp3.*;
import java.io.IOException;

public class SendRequest {
  public static void main(String[] args) {

    OkHttpClient client = new OkHttpClient();
    MediaType mediaType = MediaType.parse("application/json");

    RequestBody body = RequestBody.create(mediaType, "" +
        "{\r\n\t\"appsflyer_id\": \"<APPS_FLYER_ID>\"," +
        "\r\n\t\"customer_user_id\": \"123456\",\r\n\t\"eventName\": \"af_purchase\",\r\n\t\"" +
        "eventValue\": \"{\\\"af_revenue\\\":\\\"6\\\" ,\\\"af_content_id\\\":\\\"15854\\\"}\",\r\n\t\"" +
        "eventCurrency\": \"USD\",\r\n\t\"" +
        "eventTime\": \"2018-08-10 4:17:00.000\",\r\n\t\"");

    Request request = new Request.Builder()
        .url("https://api2.appsflyer.com/inappevent/<APP_ID>")
        .post(body)
        .addHeader("Content-Type", "application/json")
        .addHeader("authentication", "<YOUR_DEV_KEY>")
        .build();

    try {
      Response response = client.newCall(request).execute();
      System.out.println(response.code());
      System.out.println(response.body().string());
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

Việc gửi ID quảng cáo/mã định danh thiết bị là rất quan trọng

  • ID quảng cáo/mã định danh thiết bị là bắt buộc để đảm bảo đăng lại đến các SRN như Facebook và Google Ads. Nếu bạn không thể gửi ID, thì lưu ý rằng bạn cũng không thể gửi đăng lại.
  • Nếu bạn chỉ gửi ID AppsFlyer, các sự kiện trong ứng dụng sẽ được ghi nhận và phân bổ một cách chính xác.

Điền các thông số

Sự khác biệt giữa Tự nhiên và Không tự nhiên

Khi AppsFlyer xử lý các sự kiện trong ứng dụng S2S, hệ thống sẽ sử dụng ID AppsFlyer để điền vào các trường phân bổ nhằm xác định sự kiện cài đặt được liên kết đứng trước các sự kiện trong ứng dụng.

Điều này có nghĩa rằng một số dữ liệu mà AppsFlyer liên kết với các sự kiện trong ứng dụng S2S không tự nhiên thì không được liên kết với các sự kiện trong ứng dụng S2S tự nhiên.

 Ví dụ

Ví dụ, nếu bạn so sánh báo cáo dữ liệu thô của các sự kiện trong ứng dụng S2S tự nhiên và không tự nhiên, các sự kiện không tự nhiên có chứa dữ liệu mà các sự kiện trong ứng dụng tự nhiên không có.

Các sự kiện trong ứng dụng không tự nhiên có chứa dữ liệu về nguồn truyền thông, chiến dịch, loại tương tác và thời gian tương tác được phân bổ.

Mặt khác, các sự kiện trong ứng dụng tự nhiên sẽ theo sau lượt cài đặt tự nhiên. Lượt cài đặt tự nhiên không có dữ liệu liên quan đến chiến dịch, các nguồn truyền thông hoặc loại tương tác được phân bổ và thời gian cài đặt.

Ánh xạ ID AppsFlyer với customer user ID (CUID)

Phải có Backend logic để hệ thống lấy giá trị và điền thông số. Phần dưới đây mô tả cách thức bạn có thể lấy ID AppsFlyer:

  • ID AppsFlyer là thông tin bắt buộc và được dùng để phân bổ sự kiện.
  • Hệ thống tạo ra ID này khi người dùng cài đặt ứng dụng di động lần đầu.
  • Để có thể ánh xạ CUID tới ID AppsFlyer, bạn cần thiết đặt CUID trong ứng dụng. 

Để giúp bạn dễ dàng biết được người dùng nào đã thực hiện sự kiện nào, hãy triển khai luồng bên dưới:

  • Thiết lập customer user ID khi người dùng cài đặt ứng dụng.
  • Báo cáo dữ liệu thô của AppsFlyer bao gồm CUID và ID AppsFlyer. Sử dụng một trong các công cụ phân phối dữ liệu để lấy dữ liệu này hoặc API Push AppsFlyer. 
  • Sử dụng báo cáo dữ liệu thô để so khớp CUID với ID AppsFlyer. 
  • ID AppsFlyer có trong SDK, SDK được tích hợp sẵn trong ứng dụng của bạn (Android/iOS).
  • Ánh xạ ID AppsFlyer với customer user ID trong hệ thống nội bộ của bạn (một thao tác quan trọng phục vụ mục đích sử dụng sau này).

Sau khi bạn ánh xạ ID AppsFlyer với CUID, bạn có thể so khớp người dùng với những sự kiện được thực hiện. Sau đó, bạn có thể lấy các giá trị khác (giá trị sự kiện, tiền tệ sự kiện, thời gian sự kiện, v.v.) và gửi sự kiện trong ứng dụng máy chủ đến máy chủ. 

 Ví dụ về nội dung yêu cầu

{
  "appsflyer_id": "1415211453000-6513894",
	"advertising_id": "38412345-8cf0-aa78-b23e-10b96e40000d",
	"eventName": "af_purchase",
	"eventValue": 
	"{
		\"af_revenue\": \"6\",
		\"af_content_type\": \"wallets\",
		\"af_content_id\": \"15854\",
		\"af_quantity\" :\"1\"
   }",
	"eventCurrency": "USD",
	"ip": "1.2.3.4",
	"eventTime": "2014-05-15 12:17:00.000"
}


Trong trường hợp này, AppsFlyer nhận được một sự kiện trong ứng dụng S2S, đại diện cho sự kiện mua hàng có doanh thu, cũng như các thuộc tính bổ sung, chẳng hạn như loại nội dung, v.v.

Đang tìm nạp ID AppsFlyer

appsflyer_id là thông số bắt buộc trong các thông báo sự kiện máy chủ đến máy chủ. AppsFlyer sử dụng thông số này để phân bổ sự kiện tới thiết bị ban đầu và nguồn truyền thông được phân bổ. Bạn có thể lấy ID bằng một trong các phương thức sau:

 Lời khuyên

Khi thử nghiệm các thông báo S2S, nếu bạn đang sử dụng dữ liệu thô, hãy tìm bản ghi có nguồn truyền thông "s2s_test". Đây là thiết bị thử nghiệm của bạn và ID Thiết bị AppsFlyer là ID bạn cần.

Gửi doanh thu âm

Hệ thống có thể gửi các sự kiện có giá trị doanh thu âm. Ví dụ: nếu hủy lệnh mua. Thông số af_revenue có thể mang các giá trị âm để ghi nhận sự kiện này. 

Nếu bạn điền af_quantity, bạn có thể muốn điền một giá trị âm vào trường đó, tùy thuộc vào logic hệ thống của bạn. AppsFlyer không sử dụng af_quantity.

Ví dụ về doanh thu âm

{
	"eventName": "cancel_purchase",
	"eventValue": 
	"{
		\"af_revenue\": \"-6\",
		\"af_content_type\": \"wallets\",
		\"af_content_id\": \"15854\",
		\"af_quantity\" :\"1\"
   }",
	"eventCurrency": "USD",
	
}

Gửi các sự kiện mà không có giá trị sự kiện

Nếu bạn muốn gửi các sự kiện mà không có giá trị sự kiện, chỉ cần chuyển một chuỗi rỗng tới giá trị sự kiện: "event_value":""

Sau đó, theo cấu hình của nhà quảng cáo, AppsFlyer có thể gửi các sự kiện trong ứng dụng phong phú cho các nguồn phương tiện để nhắm mục tiêu nâng cao, tối ưu hóa và tạo đối tượng.

Xử lý sự cố

Các sự kiện không hiển thị trong bảng điều khiển

  • Điểm cuối: Xác minh rằng điểm cuối được sử dụng là điểm cuối chính xác.
  • Xác minh rằng tải trọng chứa các thông số bắt buộc. Xem tại đây.
  • Kiểm tra xem ID AppsFlyer mà bạn sử dụng để khởi chạy sự kiện có phải là một appsflyer_id thực sự hay không, có thực sự được cài đặt trên ứng dụng cụ thể không. Không phải một ID thử nghiệm được cung cấp trong tài liệu. Xem tại đây.
  • Các sự kiện S2S không hỗ trợ nhiều sự kiện trong một yêu cầu S2S. Phải gửi riêng từng sự kiện. 
  • Trong bảng điều khiển tổng quan, phạm vi ngày liên quan đến ngày cài đặt ứng dụng (LTV), chứ không phải ngày sự kiện.
    • Đảm bảo rằng bạn chọn đúng phạm vi ngày.
    • Đảm bảo rằng phạm vi ngày trong bảng điều khiển tương ứng với ngày cài đặt trên thiết bị (appsflyer_id), chứ không phải ngày sự kiện.
  • Báo cáo dữ liệu thô về sự kiện cho biết: phạm vi ngày liên quan đến ngày sự kiện, chứ không phải ngày cài đặt. 

Các sự kiện không chứa giá trị doanh thu

Nếu bạn gửi sự kiện S2S nhưng hệ thống chưa ghi nhận doanh thu, hãy đảm bảo rằng hệ thống đã tạo chuỗi cho JSON mà bạn gửi. Phần quan trọng nhất là thông số giá trị sự kiện trong JSON. Phải tạo chuỗi như minh họa trong ví dụ bên dưới.

"{\"af_revenue\":\"6\" ,\"af_content_type\":\"wallets\"}"

Nếu không được tạo chuỗi, thì giá trị sự kiện sẽ không được xử lý theo đúng cách và doanh thu sẽ không được ghi nhận.

Không bao giờ được định dạng các giá trị doanh thu. Doanh thu có thể chứa dấu phẩy thập phân, nhưng không bắt buộc. Không bao gồm mã hoặc ký hiệu tiền tệ, cũng như dấu phân cách ,. Giá trị doanh thu có thể bắt đầu bằng tiền tố -

  • Ví dụ về các giá trị hợp lệ: 123, -123.45123.456 
  • Ví dụ về các giá trị không hợp lệ: 1,234.561,234

Trong sự kiện S2S, không phải tất cả các trường đều được hệ thống điền

Hệ thống điền vào các trường dữ liệu thô bằng cách sử dụng giá trị được gửi trong lệnh gọi S2S và điền vào các trường khác bằng thông tin từ sự kiện cài đặt.  Hệ thống sử dụng SDK AppsFlyer để quan sát hành vi tương tự, chứ không giống hệt nhau cho các sự kiện trong ứng dụng. Có một vài điểm khác biệt, cụ thể đó là các trường sau không được hệ thống điền dữ liệu cho các sự kiện S2S:

  • wifi
  • người điều hành
  • ngôn ngữ
  • Loại thiết bị
  • Danh mục thiết bị
  • Phiên bản Ứng dụng: Bạn có thể sử dụng app_version_name
  • Tên ứng dụng
Bài viết này có hữu ích không?