Báo cáo CSV có thể được gửi bằng API Kéo, Tải xuống, Email, và Khóa dữ liệu*
Phương pháp bạn sử dụng phụ thuộc vào kích thước và tần suất bạn sử dụng cùng một báo cáo. Nói chung, đối với các báo cáo, bạn cần đặc biệt sử dụng phương pháp tải xuống/email.
Xem thêm:
- Về cách lựa chọn giữa API và Hộp khóa dữ liệu
- Lợi ích của việc sử dụng API Push và API Pull cùng nhau
Bạn có thể tạo liên kết API theo cách thủ công như được mô tả trong tài liệu này hoặc đã được chuẩn bị sẵn sàng trong AppsFlyer. Để nhận API đã được chuẩn bị: Đi tới Tích hợp > Truy cập API.(Lưu ý: Khi người dùng quản trị viên trong AppsFlyer thay đổi, khóa API cũng thay đổi)
Nếu bạn sử dụng phương pháp tạo thủ công để tạo liên kết API thì hãy đảm bảo rằng:
- Các tham số được viết thường vì chúng có phân biệt chữ hoa chữ thường.
- Bạn không dùng một trường hai lần trong cùng một URL. Làm như vậy sẽ dẫn đến việc tải xuống tệp trống.
Lưu ý:
Thay đổi quản trị viên tài khoản AppsFlyer: Liên kết API kéo yêu cầu khóa API được tạo khi tài khoản AppsFlyer được tạo lần đầu tiên. Nếu quản trị viên tài khoản thay đổi thì API cũng thay đổi. Ví dụ, điều này có nghĩa là nếu bạn có các URL API kéo có trong tập lệnh và chủ sở hữu tài khoản thay đổi, bạn cần cập nhật URL API kéo bằng khóa API mới.
- Các tham số được viết thường vì chúng có phân biệt chữ hoa chữ thường.
- Không dùng một trường hai lần trong cùng một URL. Làm như vậy sẽ dẫn đến việc tải xuống tệp trống.
Tham số API (bắt buộc)
- api_token
- Là Khóa Ủy quyền API bên ngoài của người dùng: "{Account owner API Key should be used}"
- từ
- Ngày báo cáo ở dạng "yyyy-mm-dd" hoặc "yyyy-mm-dd hh:mm". Ví dụ: 2010-01-01 hoặc 2010-01-01%2000%3A15 - (Tham số giờ chỉ dành cho báo cáo thô).
- tới
- Ngày kết thúc báo cáo. Định dạng giống với từ
Tham số lọc API (tùy chọn)
Lọc theo nguồn phương tiện truyền thông
Lọc các báo cáo để chỉ liệt kê một nguồn phương tiện cụ thể có sẵn bằng cách thêm tham số danh mục và nguồn phương tiện vào URL yêu cầu:
- danh mục
- Để nhận dữ liệu Facebook, thiết lập
category=facebook
trên URL. Để nhận dữ liệu Twitter, thiết lậpcategory=twitter
trên URL. Đối với bất kỳ nguồn phương tiện truyền thông nào, thiết lậpcategory=standard
- media_source
- Cung cấp tên của một nguồn phương tiện truyền thông (
media_source=[SOURCE_NAME]
) như xuất hiện trên bảng điều khiển của AppsFlyer.
Ví dụ
1: Báo cáo được lọc của Google Adwords
https://hq.appsflyer.com/export/com.greatapp/installs_report/v5?api_token=xxxx
&from=2018-04-09&to=2018-05-09&category=standard&media_source=googleadwords_int
2: Báo cáo được lọc của Facebook
https://hq.appsflyer.com/export/com.greatapp/installs_report/v5?api_token=xxxx
&from=2018-04-09&to=2018-05-09&category=facebook&media_source=facebook
Lọc theo Tên Sự kiện
Lọc dữ liệu báo cáo sự kiện trong ứng dụng thô để chỉ bao gồm một sự kiện cụ thể, bằng cách sử dụng tham số event_name
. Để lọc nhiều sự kiện, hãy sử dụng danh sách các sự kiện được phân tách bằng dấu phẩy.
Ví dụ: event_name=af_purchase,ftd
Đối với Xuất báo cáo Nhắm mục tiêu lại
Sử dụng reattr=true
để nhận được kết quả được phân bổ tới nhứng chiến dịch nhắm mục tiêu lại.
Các Trưởng Bổ Sung
Thông qua API Pull, bạn có thể thêm một số trường, hoàn thành toàn cảnh dữ liệu thô và các sự kiện trong ứng dụng trong một số trường hợp.
Để thêm các trường mới, hãy thêm "&additional_fields=
" vào liên kết theo dõi, theo sau bởi danh sách các sự kiện được phân tách bởi dấu phẩy. Xem các ví dụ về API Pull ở bên dưới.
Kết quả là một báo cáo CSV có các cột được thêm vào, có chứa thông tin khi có liên quan.
Tên trường | Liên quan tới |
---|---|
rejected_reason rejected_reason_value |
Quy tắc Xác thực |
blocked_reason |
Protect360 (Giải pháp chống Gian lận) |
install_app_store | Thị trường Android không phải Google Play |
custom_data | Lấy dữ liệu tùy chỉnh |
gp_referrer | Trường Google Play - nhấp vào đây để xem thêm thông tin. |
gp_click_time | Trường Google Play - nhấp vào đây để biết thêm thông tin. |
gp_install_begin | Trường Google Play - nhấp vào đây để biết thêm thông tin. |
keyword_match_type |
Các kết quả loại khớp từ khóa bằng cách API mạng tìm kiếm hoặc liên kết phân bổ sẽ được ánh xạ tới báo cáo thô. Lưu ý: Google AdWords và Apple Search Ads là các mạng duy nhất trả về thông số này cho các chiến dịch tìm kiếm. |
network_account_id |
ID tài khoản nguồn truyền thông |
gp_broadcast_referrer |
Google Play Broadcast Referrer |
amazon_aid |
Amazon Fire ID |
Múi giờ và Tiền tệ
timezone (tùy chọn)
Bạn có thể lấy dữ liệu thô API Pull trong MỌI múi giờ hợp lệ:
- Thêm
&timezone=[Joda-Time]
trong liên kết API Pull để nhận được báo cáo trong múi giờ ưa thích (xem lưu ý bên dưới) - Thêm
&timezone=[Giá trị số]
trong liên kết API Pull để nhận được báo cáo trong múi giờ số đã chỉ định. Ví dụ: đối với múi giờ UTC+10: 00 thêm vào liên kết&timezone=%2B10:00
Chỉ có thể sử dụng giá trị số cho múi giờ khi kéo báo cáo dữ liệu thô. Không hoạt động với báo cáo tổng hợp như báo cáo hiệu suất. - Nếu không, dữ liệu được nhận trong múi giờ UTC mặc định.
Lưu ý
1. Định dạng múi giờ Joda-Time tính đến thời gian tiết kiệm ánh sáng ban ngày.
2. Giá trị Joda-Time PHẢI giống hệt với các giá trị có thể có trong trang cài đặt ứng dụng. Ví dụ: nếu bạn muốn lấy dữ liệu theo múi giờ của Pháp, hãy kiểm tra danh sách múi giờ trong trang cài đặt ứng dụng, đó là "Châu Âu/Paris" cho Pháp. Giá trị múi giờ trong URL Pull API nên là &timezone=Europe%2fParis
. Kéo dữ liệu trong múi giờ đã chọn chỉ khả dụng kể từ ngày việc thiết lập múi giờ được thực hiện. Mọi dữ liệu trước ngày thay đổi được hiển thị dưới dạng GMT mặc định.
tiền tệ (tùy chọn)
- Được sử dụng để nhận dữ liệu Doanh thu và Chi phí bằng loại tiền bạn đã chọn, thay vì bằng USD, là tùy chọn mặc định. Điều này được cài đặt bởi quản trị viên tài khoản.
Để nhận dữ liệu bằng loại tiền bạn muốn, vui lòng thêm thông tin sau vào liên kết yêu cầu của bạn: ¤cy=preferred
- được sử dụng để nhận dữ liệu Doanh thu và Chi phí bằng tiền tệ bạn đã chọn.
Lưu ý
Nói chung, các URL API Pull không cần phải được mã hóa. Tuy nhiên, nếu sử dụng các tham số có giá trị không tương thích URL, bạn sẽ cần URL mã hóa chúng. Ví dụ: sử dụng tham số giờ và múi giờ.
Chính sách và Giới hạn Sử dụng API
Chính sách API của AppsFlyer đảm bảo chất lượng dịch vụ cao cho người dùng API Pull bằng cách giới hạn tổng số yêu cầu hàng ngày và ngăn chặn lạm dụng dịch vụ.
Xem chi tiết về chính sách API dành cho dữ liệu tổng hợp qua API Pull và dành cho dữ liệu thô qua API Pull.
Số lượng bản ghi tối đa cho mỗi báo cáo là 200K. Nếu bạn nhận được một báo cáo có 200K hàng thì bạn có một số kết quả bị bỏ sót.
Lời khuyên
Nếu dữ liệu hàng ngày của bạn vượt quá 200K rows, bạn có thể chia các tệp của mình theo ngày VÀ thời gian trong ngày, sử dụng định dạng ngày/giờ "yyyy-mm-dd hh: mm" trong các tham số from và to trên URL API Pull.
Ví dụ: một chủ sở hữu ứng dụng có tới 300K lượt cài đặt mới hàng ngày từ tất cả các nguồn. Chủ sở hữu ứng dụng quyết định chia các cuộc gọi API Pull hàng ngày thành 2 cuộc gọi sau mỗi 12 giờ. Cuộc gọi URL đầu tiên bao gồm from=yyyy-mm-dd 00:00&to=yyyy-mm-dd 12:00 và cuộc gọi thứ hai from=yyyy-mm-dd 12:00&to=yyyy-mm-dd+1 00:00 (trước khi mã hóa)
Lưu ý rằng tham số tới
không được bao gồm. Vậy from=yyyy-mm-dd 00:00&to=yyyy-mm-dd 12:00 kéo dữ liệu từ nửa đêm cho tới 11:59.
Để dùng định dạng giờ, bạn cần mã hóa URL các phần ngày + thời gian, nhưng KHÔNG PHẢI các trường "to=" và "from=". Ví dụ, "from=2019-01-01 00:00&to=2019-01-01 23:59" trước khi mã hóa cần được gửi đi dưới dạng "from=2019-01-01%2000%3A00&to=2019-01-01%2023%3A59".
Lưu ý
Theo mặc định, Báo cáo hiệu suất API Pull chỉ hiển thị dữ liệu Facebook ở cấp chiến dịch. Thêm "&category=facebook" để cho phép báo cáo hiển thị thông tin Facebook ở cả cấp độ Bộ Quảng cáo và Quảng cáo. Điều này chỉ liên quan đến Facebook.
Bảo mật API
Tất cả các liên kết API Pull sử dụng các kết nối https được mã hóa an toàn.
Ví dụ về Liên kết Pull API
Bạn có thể nhận được mã API chính xác bao gồm mã thông báo API trong AppsFlyer. Chuyển đến Tích hợp > Truy cập API.
Danh mục Báo cáo | Loại Báo cáo | Ví dụ Liên kết |
---|---|---|
Báo cáo dữ liệu thô | Báo cáo lượt cài đặt | https://hq.appsflyer.com/export/id123456789/installs_report/v5?api_token=<API TOKEN HERE>&from=yyyy-mm-dd&to=yyyy-mm-dd |
Báo cáo lượt chuyển đổi nhắm mục tiêu lại | https://hq.appsflyer.com/export/id578915438/installs_report/v5?api_token=<API TOKEN HERE>&from=yyyy-mm-dd&to=yyyy-mm-dd&additional_fields=install_app_store,contributor1_match_type,contributor2_match_type,contributor3_match_type,match_type,device_category,gp_referrer,gp_click_time,gp_install_begin,amazon_aid,keyword_match_type&reattr=true | |
Báo cáo Sự kiện trong Ứng dụng Xem: Lọc theo tên sự kiện |
https://hq.appsflyer.com/export/id123456789/in_app_events_report/v5?api_token=<API TOKEN HERE>&from=yyyy-mm-dd&to=yyyy-mm-dd | |
Nhắm lại mục tiêu báo cáo sự kiện trong ứng dụng Xem: Lọc theo tên sự kiện |
|
|
Báo cáo Gỡ cài đặt |
|
|
Báo cáo Cài đặt Tự nhiên | https://hq.appsflyer.com/export/id123456789/organic_installs_report/v5?api_token=<API TOKEN HERE>&from=yyyy-mm-dd&to=yyyy-mm-dd | |
Báo cáo Sự kiện trong Ứng dụng Hữu cơ Xem: Lọc theo tên sự kiện |
https://hq.appsflyer.com/export/id123456789/organic_in_app_events_report/v5?api_token=<API TOKEN HERE>&from=yyyy-mm-dd&to=yyyy-mm-dd | |
Báo cáo Quy tắc Xác thực | Báo cáo Cài đặt không Hợp lệ | https://hq.appsflyer.com/export/id123456789/invalid_installs_report/v5?api_token=<API TOKEN HERE>&from=yyyy-mm-dd&to=yyyy-mm-dd&additional_fields=rejected_reason,rejected_reason_value |
Báo cáo Sự kiện trong Ứng dụng không Hợp lệ Xem: Lọc theo tên sự kiện |
https://hq.appsflyer.com/export/id123456789/invalid_in_app_events_report/v5?api_token=<API TOKEN HERE>&from=yyyy-mm-dd&to=yyyy-mm-dd&additional_fields=rejected_reason,rejected_reason_value |
Phiên bản API (V5)
-
Không thay đổi:
-
API hiện tại (v4) vẫn có sẵn để sử dụng
-
Phiên bản không áp dụng bất kỳ thay đổi nào đối với định dạng tệp hoặc tiêu đề
-
(Báo cáo hiệu suất) tổng hợp cung cấp thông tin chi tiết về hiệu quả của các chiến dịch quảng cáo. Các báo cáo này có thể là dựa trên LTV hoặc hoạt động để kiểm tra thông số kỹ thuật báo cáo.
Tham số API (bắt buộc)
- api_token
- Là Khóa Ủy quyền API bên ngoài của người dùng: "{Account owner API Key should be used}". Mã thông báo API chỉ được hiển thị cho chủ tài khoản
Tham số lọc API (tùy chọn)
Lọc theo nguồn phương tiện truyền thông
Lọc các báo cáo để chỉ liệt kê một nguồn phương tiện cụ thể có sẵn bằng cách thêm tham số danh mục và nguồn phương tiện vào URL yêu cầu:
- danh mục
- Để nhận dữ liệu Facebook, thiết lập
category=facebook
trên URL. Đối với bất kỳ nguồn phương tiện truyền thông nào, thiết lậpcategory=standard
- media_source
- Cung cấp tên của một nguồn phương tiện truyền thông (
media_source=[SOURCE_NAME]
) như xuất hiện trên bảng điều khiển của AppsFlyer.
Ví dụ
1: Báo cáo được lọc của Google Adwords
https://hq.appsflyer.com/export/com.greatapp/partners_report/v5?api_token=xxxx
&from=2018-04-09&to=2018-05-09&category=standard&media_source=googleadwords_int
2: Báo cáo được lọc của Facebook
https://hq.appsflyer.com/export/com.greatapp/partners_report/v5?api_token=xxxx
&from=2018-04-09&to=2018-05-09&category=facebook&media_source=facebook
Đối với Xuất báo cáo Nhắm mục tiêu lại
Sử dụng reattr=true
để nhận được kết quả được phân bổ tới nhứng chiến dịch nhắm mục tiêu lại.
Quan trọng!
Phạm vi ngày và nguồn truyền thông có thể ảnh hưởng các cột sự kiện nào xuất hiện trong báo cáo.
Nếu bạn dùng dữ liệu và đẩy dữ liệu vào hệ BI, hãy đảm bảo tính đến các điểm khác biệt có khả năng xảy ra trong cột sự kiện xuất hiện trong báo cáo.
Múi giờ và Tiền tệ
timezone (tùy chọn)
Bạn có thể nhận dữ liệu tổng hợp thông qua API Pull trong UTC hoặc múi giờ ưa thích của ứng dụng, được thiết lập trong trang Cài đặt ứng dụng:
1. Thêm &timezone=[selected Joda-Time]
trong liên kết API Pull để nhận được báo cáo trong múi giờ ưa thích của ứng dụng (xem lưu ý bên dưới)
2. Nếu không, dữ liệu được nhận trong múi giờ UTC mặc định.
Lưu ý
1. Định dạng múi giờ Joda-Time tính đến thời gian tiết kiệm ánh sáng ban ngày.
2. Giá trị Joda-Time PHẢI giống hệt với các giá trị được thiết lập trong trang cài đặt ứng dụng. Ví dụ, nếu múi giờ được chọn trong cài đặt ứng dụng là "Châu Âu/Paris", thì giá trị múi giờ trong URL của API Pull nên là &timezone=Europe%2fParis
tiền tệ (tùy chọn)
- Được sử dụng để nhận dữ liệu Doanh thu và Chi phí bằng loại tiền bạn đã chọn, thay vì bằng USD, là tùy chọn mặc định. Điều này được cài đặt bởi quản trị viên tài khoản.
currency=preferred
- được sử dụng để nhận dữ liệu Doanh thu và Chi phí bằng tiền tệ bạn đã chọn.
Lưu ý
Nói chung, các URL API Pull không cần phải được mã hóa. Tuy nhiên, nếu sử dụng các tham số có giá trị không tương thích URL, bạn sẽ cần URL mã hóa chúng. Ví dụ: sử dụng tham số giờ và múi giờ.
Chính sách API
Chính sách API của AppsFlyer đảm bảo chất lượng dịch vụ cao cho người dùng API Pull bằng cách giới hạn tổng số yêu cầu hàng ngày và ngăn chặn lạm dụng dịch vụ.
Số lượng bản ghi tối đa cho mỗi báo cáo là 200K. Nếu bạn nhận được một báo cáo có 200K hàng thì bạn có một số kết quả bị bỏ sót.
Lời khuyên
Nếu dữ liệu hàng ngày của bạn vượt quá 200K rows, bạn có thể chia các tệp của mình theo ngày VÀ thời gian trong ngày, sử dụng định dạng ngày/giờ "yyyy-mm-dd hh: mm" trong các tham số from và to trên URL API Pull.
Ví dụ: một chủ sở hữu ứng dụng có tới 300K lượt cài đặt mới hàng ngày từ tất cả các nguồn. Chủ sở hữu ứng dụng quyết định chia các cuộc gọi API Pull hàng ngày thành 2 cuộc gọi sau mỗi 12 giờ. Cuộc gọi URL đầu tiên bao gồm from=yyyy-mm-dd 00:00&to=yyyy-mm-dd 11:59 và cuộc gọi thứ hai from=yyyy-mm-dd 12:00&to=yyyy-mm-dd 23:59 (trước khi mã hóa)
Lưu ý
Theo mặc định, Báo cáo hiệu suất API Pull chỉ hiển thị dữ liệu Facebook ở cấp chiến dịch. Thêm "&category=facebook" để cho phép báo cáo bao gồm thông tin Facebook ở cả cấp độ Bộ Quảng cáo và Quảng cáo. Điều này chỉ liên quan đến Facebook. Điều này chỉ liên quan đến Facebook.
Bảo mật API
Tất cả các liên kết Pull API sử dụng các kết nối https được mã hóa an toàn.
Để biết thêm chi tiết, hãy truy cập tại đây.
Ví dụ về Liên kết Pull API
Danh mục Báo cáo | Tên báo cáo | Ví dụ Liên kết |
---|---|---|
(Báo cáo hiệu suất) tổng hợp |
(LTV) |
https://hq.appsflyer.com/export/id123456789/partners_report/v5?api_token=<API TOKEN HERE>&from=yyyy-mm-dd&to=yyyy-mm-dd |
Đối tác theo ngày (LTV) |
https://hq.appsflyer.com/export/id123456789/partners_by_date_report/v5?api_token=<API TOKEN HERE>&from=yyyy-mm-dd&to=yyyy-mm-dd | |
(LTV) |
https://hq.appsflyer.com/export/id123456789/daily_report/v5?api_token=<API TOKEN HERE>&from=yyyy-mm-dd&to=yyyy-mm-dd | |
Địa lý (LTV) |
https://hq.appsflyer.com/export/id123456789/geo_report/v5?api_token=<API TOKEN HERE>&from=yyyy-mm-dd&to=yyyy-mm-dd | |
Địa lý theo ngày (LTV) |
https://hq.appsflyer.com/export/id123456789/geo_by_date_report/v5?api_token=<API TOKEN HERE>&from=yyyy-mm-dd&to=yyyy-mm-dd | |
Báo cáo nhắm mục tiêu lại |
Đối tác (Hoạt động) |
https://hq.appsflyer.com/export/id123456789/partners_report/v5?api_token=<API TOKEN HERE>&from=yyyy-mm-dd&to=yyyy-mm-dd&reattr=true |
(Hoạt động) |
https://hq.appsflyer.com/export/id123456789/partners_by_date_report/v5?api_token=<API TOKEN HERE>&from=yyyy-mm-dd&to=yyyy-mm-dd&reattr=true | |
(Hoạt động) |
https://hq.appsflyer.com/export/id123456789/daily_report/v5?api_token=<API TOKEN HERE>&from=yyyy-mm-dd&to=yyyy-mm-dd&reattr=true | |
(Hoạt động) |
https://hq.appsflyer.com/export/id123456789/geo_report/v5?api_token=<API TOKEN HERE>&from=yyyy-mm-dd&to=yyyy-mm-dd&reattr=true | |
(Hoạt động) |
https://hq.appsflyer.com/export/id123456789/geo_by_date_report/v5?api_token=<API TOKEN HERE>&from=yyyy-mm-dd&to=yyyy-mm-dd&reattr=true |
Phiên bản API (V5)
-
Thay đổi:
-
Trong các báo cáo hiệu suất Phiên bản (v5) có chứa nhiều đối tác, chỉ nhóm dữ liệu Facebook theo chiến dịch. Báo cáo hiệu suất chỉ chứa dữ liệu Facebook (bằng cách chỉ định &category=facebook), hãy nhóm dữ liệu theo chiến dịch và nhóm quảng cáo.
-
Trang xuất dữ liệu cho các báo cáo tổng hợp sử dụng phiên bản API (v5)
-
-
Không thay đổi:
-
API hiện tại (v4) vẫn có sẵn để sử dụng
-
Phiên bản không áp dụng bất kỳ thay đổi nào đối với định dạng tệp hoặc tiêu đề
-
Lưu ý
Để sử dụng Báo cáo Hiệu suất V4, chuyển v5 thành v4.
Ví dụ, v5 (màu đỏ) nên được chuyển thành v4.
https://hq.appsflyer.com/export/i{app_
Dữ liệu tổng hợp Protect360 như xuất hiện trong bảng phát hiện nâng cao trong bảng điều khiển.
Tham số API (bắt buộc)
- api_token
- Là Khóa Ủy quyền API bên ngoài của người dùng: "{Account owner API Key should be used}"
- từ
- Ngày báo cáo ở dạng "yyyy-mm-dd" hoặc "yyyy-mm-dd hh:mm". Ví dụ: 2010-01-01 hoặc 2010-01-01%2000%3A15 - (Tham số giờ chỉ dành cho báo cáo thô).
- tới
- Ngày kết thúc báo cáo. Định dạng giống như từ
KPI (bắt buộc)
Tham số Protect360 ở API kéo và API chính là giống nhau.
Để biết danh sách KPI có sẵn và mô tả về chúng, truy cập vào đây.
Tham số lọc API (tùy chọn)
Lọc theo nguồn phương tiện truyền thông
Lọc các báo cáo để chỉ liệt kê một nguồn phương tiện cụ thể có sẵn bằng cách thêm: pid=tên nguồn phương tiện truyền thông.
Múi giờ và Tiền tệ
timezone (tùy chọn)
Bạn có thể nhận dữ liệu tổng hợp P360 thông qua API Pull trong UTC hoặc múi giờ ưa thích của ứng dụng, được thiết lập trong trang Cài đặt ứng dụng:
1. Thêm &timezone=preferred
trong liên kết API Pull để nhận được báo cáo trong múi giờ ưa thích của ứng dụng
2. Nếu không, dữ liệu được nhận trong múi giờ UTC mặc định.
tiền tệ (tùy chọn)
- Được sử dụng để nhận dữ liệu Doanh thu và Chi phí bằng loại tiền bạn đã chọn, thay vì bằng USD, là tùy chọn mặc định. Điều này được cài đặt bởi quản trị viên tài khoản.
currency=preferred
- được sử dụng để nhận dữ liệu Doanh thu và Chi phí bằng tiền tệ bạn đã chọn.
Lưu ý
Nói chung, các URL API Pull không cần phải được mã hóa. Tuy nhiên, nếu sử dụng các tham số có giá trị không tương thích URL, bạn sẽ cần URL mã hóa chúng. Ví dụ: sử dụng tham số giờ và múi giờ.
Bảo mật API
Tất cả các liên kết API Pull sử dụng các kết nối https được mã hóa an toàn.
Ví dụ về Liên kết Pull API
Lưu ý: Để xem tất cả các liên kết API kéo có sẵn: Trong Appsflyer, hãy truy cập, Tích hợp > Truy cập API.
Danh mục Báo cáo | Loại Báo cáo | Liên kết |
---|---|---|
P360 - Báo cáo Phát hiện Nâng cao Tổng hợp |
Báo cáo Đối tác | https://hq1.appsflyer.com/master/p360/reports/v4?api_token=<API Token>&app_id=<APP_ID>&from=yyyy-mm-dd&to=yyyy-mm-dd&groupings=pid,af_siteid&kpis=protect360_total_installs,install_fraud_new_devices_installs,install_fraud_new_devices_installs_rate,install_fraud_new_devices_loyal_user_rate,install_fraud_lat_devices_installs,install_fraud_lat_devices_install_rate,install_fraud_lat_devices_loyal_user_rate,install_fraud_suspicious_devices_installs,install_fraud_suspicious_devices_install_rate,install_fraud_suspicious_devices_loyal_user_rate,install_fraud_clean_device_installs,install_fraud_clean_device_install_rate,install_fraud_clean_device_loyal_user_rate,clicks,cr,click_flood_under_5_min_rate,click_flood_from_5_to_60_min_rate,click_flood_over_60_min_rate,contribution_rate,install_hijacking_up_to_10_sec_rate,install_hijacking_10_to_30_sec_rate,install_hijacking_over_30_sec_rate |
Báo cáo Hàng ngày Đối tác | https://hq1.appsflyer.com/master/p360/reports/v4?api_token=<API-TOKEN>&app_id=<APP_ID>&from=yyyy-mm-dd&to=yyyy-mm-dd&groupings=pid,af_siteid,install_time&kpis=protect360_total_installs,install_fraud_new_devices_installs,install_fraud_new_devices_installs_rate,install_fraud_new_devices_loyal_user_rate,install_fraud_lat_devices_installs,install_fraud_lat_devices_install_rate,install_fraud_lat_devices_loyal_user_rate,install_fraud_suspicious_devices_installs,install_fraud_suspicious_devices_install_rate,install_fraud_suspicious_devices_loyal_user_rate,install_fraud_clean_device_installs,install_fraud_clean_device_install_rate,install_fraud_clean_device_loyal_user_rate,clicks,cr,click_flood_under_5_min_rate,click_flood_from_5_to_60_min_rate,click_flood_over_60_min_rate,contribution_rate,install_hijacking_up_to_10_sec_rate,install_hijacking_10_to_30_sec_rate,install_hijacking_over_30_sec_rate | |
Báo cáo Địa lý | https://hq1.appsflyer.com/master/p360/reports/v4?api_token=<API-Token>&app_id=<APP_ID>&from=yyyy-mm-dd&to=yyyy-mm-dd&groupings=geo&kpis=protect360_total_installs,install_fraud_new_devices_installs,install_fraud_new_devices_installs_rate,install_fraud_new_devices_loyal_user_rate,install_fraud_lat_devices_installs,install_fraud_lat_devices_install_rate,install_fraud_lat_devices_loyal_user_rate,install_fraud_suspicious_devices_installs,install_fraud_suspicious_devices_install_rate,install_fraud_suspicious_devices_loyal_user_rate,install_fraud_clean_device_installs,install_fraud_clean_device_install_rate,install_fraud_clean_device_loyal_user_rate,clicks,cr,click_flood_under_5_min_rate,click_flood_from_5_to_60_min_rate,click_flood_over_60_min_rate,contribution_rate,install_hijacking_up_to_10_sec_rate,install_hijacking_10_to_30_sec_rate,install_hijacking_over_30_sec_rate | |
Báo cáo Địa lý Hàng ngày | https://hq1.appsflyer.com/master/p360/reports/v4?api_token=<API-TOKEN>&app_id=<APP_ID>&from=yyyy-mm-dd&to=yyyy-mm-dd&groupings=geo,install_time&kpis=protect360_total_installs,install_fraud_new_devices_installs,install_fraud_new_devices_installs_rate,install_fraud_new_devices_loyal_user_rate,install_fraud_lat_devices_installs,install_fraud_lat_devices_install_rate,install_fraud_lat_devices_loyal_user_rate,install_fraud_suspicious_devices_installs,install_fraud_suspicious_devices_install_rate,install_fraud_suspicious_devices_loyal_user_rate,install_fraud_clean_device_installs,install_fraud_clean_device_install_rate,install_fraud_clean_device_loyal_user_rate,clicks,cr,click_flood_under_5_min_rate,click_flood_from_5_to_60_min_rate,click_flood_over_60_min_rate,contribution_rate,install_hijacking_up_to_10_sec_rate,install_hijacking_10_to_30_sec_rate,install_hijacking_over_30_sec_rate | |
Báo cáo Chiến dịch Đối tác | https://hq1.appsflyer.com/master/p360/reports/v4?api_token=<API_TOKEN>&app_id=<APP_ID>&from=yyyy-mm-dd&to=yyyy-mm-dd&groupings=pid,af_siteid,c&kpis=protect360_total_installs,install_fraud_new_devices_installs,install_fraud_new_devices_installs_rate,install_fraud_new_devices_loyal_user_rate,install_fraud_lat_devices_installs,install_fraud_lat_devices_install_rate,install_fraud_lat_devices_loyal_user_rate,install_fraud_suspicious_devices_installs,install_fraud_suspicious_devices_install_rate,install_fraud_suspicious_devices_loyal_user_rate,install_fraud_clean_device_installs,install_fraud_clean_device_install_rate,install_fraud_clean_device_loyal_user_rate,clicks,cr,click_flood_under_5_min_rate,click_flood_from_5_to_60_min_rate,click_flood_over_60_min_rate,contribution_rate,install_hijacking_up_to_10_sec_rate,install_hijacking_10_to_30_sec_rate,install_hijacking_over_30_sec_rate |
Phiên bản API (V5)
-
Thay đổi:
-
Trong các báo cáo hiệu suất Phiên bản (v5) có chứa nhiều đối tác, chỉ nhóm dữ liệu Facebook theo chiến dịch. Báo cáo hiệu suất chỉ chứa dữ liệu Facebook (bằng cách chỉ định &category=facebook), hãy nhóm dữ liệu theo chiến dịch và nhóm quảng cáo.
-
Trang xuất dữ liệu cho các báo cáo tổng hợp sử dụng phiên bản API (v5)
-
-
Không thay đổi:
-
API hiện tại (v4) vẫn có sẵn để sử dụng
-
Phiên bản không áp dụng bất kỳ thay đổi nào đối với định dạng tệp hoặc tiêu đề
-
Lưu ý
Để sử dụng Báo cáo Hiệu suất V4, chuyển v5 thành v4.
Ví dụ, v5 (màu đỏ) nên được chuyển thành v4.
https://hq.appsflyer.com/export/i{app_
Các tập lệnh để truy xuất dữ liệu từ API Pull
Thông thường, sẽ thuận tiện hơn khi thiết lập các tập lệnh tự động để lấy dữ liệu theo định kỳ.
Dưới đây bạn có thể tìm thấy các tập lệnh để lấy dữ liệu từ API Pull. Các tập lệnh mẫu kéo dữ liệu từ báo cáo cài đặt. Chỉnh sửa tập lệnh để phù hợp với yêu cầu của bạn về mặt báo cáo và dữ liệu mà bạn muốn truy xuất.
import okhttp3.*;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.util.concurrent.TimeUnit;
public class PullApi {
public static void main(String[] args){
String appID = "<APP_ID>";
String reportType = "<REPORT_TYPE>";
String apiToken = "<API_TOKEN>";
String from = "<FROM_DATE>";
String to = "<TO_DATE>";
String requestUrl = "https://hq.appsflyer.com/export/" + appID + "/" + reportType + "/v5?api_token=" + apiToken + "&from=" + from + "&to=" + to;
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(30, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.build();
Request request = new Request.Builder()
.url(requestUrl)
.addHeader("Accept", "text/csv")
.build();
try {
Response response = client.newCall(request).execute();
if(response.code() != 200) {
if(response.code() == 404) {
System.out.println("There is a problem with the request URL. Please make sure it is correct");
}
else {
assert response.body() != null;
System.out.println("There was a problem retrieving the data: " + response.body().string());
}
} else {
assert response.body() != null;
String data = response.body().string();
BufferedWriter writer;
writer = new BufferedWriter(new FileWriter(appID + "-" + reportType + "-" + from + "-to-" + to + ".csv"));
writer.write("");
writer.write(data);
writer.close();
}
System.exit(0);
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
}
request = require('request');
const fs = require('fs');
const appID = '<APP_ID>';
const reportType = '<REPORT_TYPE>';
const apiToken = '<API_TOKEN>';
const from = '<FROM_DATA>';
const to = '<T0_DATE>';
const requestUrl = `https://hq.appsflyer.com/export/${appID}/${reportType}/v5?api_token=${apiToken}&from=${from}&to=${to}`;
request(requestUrl, (error, response, body) => {
if (error) {
console.log('There was a problem retrieving data:', error);
}
else if (response.statusCode != 200) {
if (response.statusCode === 404) {
console.log('There is a problem with the request URL. Make sure that it is correct');
} else {
console.log('There was a problem retrieving data:', response.body);
}
} else {
fs.writeFile(`${appID}-${reportType}-${from}-to-${to}.csv`, response.body, (err) => {
if (err) {
console.log('There was a problem writing to file: ', err);
} else {
console.log('File was saved');
}
});
}
});
import requests
app_id = '<APP_ID>'
report_type = '<REPORT_TYPE>'
params = {
'api_token': '<API_TOKEN>',
'from': 'FROM_DATE',
'to': 'TO_DATE'
}
request_url = 'https://hq.appsflyer.com/export/{}/{}/v5'.format(app_id, report_type)
res = requests.request('GET', request_url, params=params)
if res.status_code != 200:
if res.status_code == 404:
print('There is a problem with the request URL. Make sure that it is correct')
else:
print('There was a problem retrieving data: ', res.text)
else:
f = open('{}-{}-{}-to-{}.csv'.format(app_id, report_type, params['from'], params['to']), 'w', newline='', encoding="utf-8")
f.write(res.text)
f.close()
using System;
using RestSharp;
using System.Text;
using System.Net;
using System.IO;
namespace Pull_API
{
class PullAPi
{
static void Main(string[] args)
{
var appID = "<APP_ID>";
var reportType = "<REPORT_TYPE>";
var apiToken = "<API_TOKEN>";
var from = "<FROM_DATE>";
var to = "<TO_DATE>";
var requestUrl = "https://hq.appsflyer.com/export/" + appID + "/" + reportType + "/v5?api_token=" + apiToken + "&from=" + from + "&to=" + to;
var client = new RestClient(requestUrl);
var request = new RestRequest(Method.GET);
request.AddHeader("Accept", "text/csv; charset=UTF-8");
IRestResponse response = client.Execute(request);
HttpStatusCode statusCode = response.StatusCode;
int numericStatusCode = (int)statusCode;
if(numericStatusCode != 200){
if(numericStatusCode == 404){
Console.WriteLine("There is a problem with the request URL. Make sure that it is correct.");
} else {
Console.WriteLine("There was a problem retrieving data: " + response.Content);
}
} else {
System.IO.File.WriteAllText(@"" + appID + "-" + reportType + "-" + from + "-to-" + to + ".csv", response.Content);
Console.WriteLine("Data retrieved succesfully");
}
}
}
}
<?
$appID = '<APP_ID>';
$reportType = '<REPORT_TYPE>';
$apiToken = '<API_TOKEN>';
$from = '<FROM_DATE>';
$to = '<TO_DATE>';
$query = http_build_query([
'api_token' => $apiToken,
'from' => $from,
'to' => $to
]);
$requestUrl = 'https://hq.appsflyer.com/export/' . $appID . '/' . $reportType . '/v5?'.$query;
$report = $appID . '-' . $report . '-' . $from . '-to-' . $to;
$curl = curl_init($requestUrl);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_ENCODING, "");
curl_setopt($curl, CURLOPT_NOSIGNAL, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_MAXREDIRS, 10);
curl_setopt($curl, CURLOPT_FAILONERROR, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 100);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
"cache-control: no-cache",
"Accept: text/csv; charset=UTF-8"
));
$response = curl_exec($curl);
$info = curl_getinfo($curl);
$err = curl_error($curl);
curl_close($curl);
var_dump($response);
if ($err) {
echo $info['http_code'];
echo "cURL Error #: " . $err . '. ';
if ($info['http_code'] == 404) {
echo 'There is a problem with the request URL. Make sure that it is correct';
}
if ($info['http_code'] == 401) {
echo 'There was a problem retrieving data: authentication failed.';
}
echo PHP_EOL;
} else {
$fp = fopen($report, 'w+');
fwrite($fp, $response);
fclose($fp);
echo $response;
}
?>
Lỗi API và Khắc phục sự cố
Phần này thảo luận về các lỗi API phổ biến và cách xử lý chúng.
Tệp CSV trống được tải xuống
Nếu các yêu cầu kéo tạo ra tệp CSV trống, điều đó có nghĩa là một trường nhất định xuất hiện trên URL nhiều hơn một lần.
Mã thông báo API được cung cấp không hợp lệ
Thông báo lỗi
Mã thông báo API được cung cấp không hợp lệ
Mã lỗi
401
Mô tả
Máy chủ không thể xác thực yêu cầu. Mã thông báo API bị thiếu hoặc không hợp lệ.
Cách xử lý
Đảm bảo rằng URL chứa mã thông báo API chính xác. Mã thông báo API được truyền trong tham số api_token
.
Phạm vi ngày truy vấn API được giới hạn trong 3 tháng vừa qua
Thông báo lỗi
Máy chủ không thể thực hiện theo yêu cầu vì yêu cầu không đúng định dạng hoặc không chính xác.
Phạm vi ngày truy vấn API được giới hạn trong 3 tháng vừa qua
Mã lỗi
400
Mô tả
Thông báo lỗi này được trả về khi bạn cố gắng truy vấn dữ liệu kéo dài hơn phạm vi 3 tháng.
Cách xử lý
Hãy chắc chắn hạn chế phạm vi ngày xuống còn 3 tháng hoặc ngắn hơn sử dụng các tham số đến
và từ
.