Sensor Tower, Apptopia, data.ai, 42matters, AppstoreSpy. Năm nhà cung cấp, một sản phẩm: dữ liệu app store mới nhất, được phân loại theo quốc gia, phân phối theo lịch trình mà người khác trả tiền để duy trì. Thị trường chung của họ trị giá 975 triệu đô la vào năm 2025 và đang trên đà đạt 1.21 tỷ đô la trong năm nay (Global Growth Insights, 2025).
Nếu bạn đang xây dựng bất kỳ thứ gì liên quan (một công cụ ASO, một thước đo cạnh tranh cho chiến lược ad-tech di động, một mô hình đánh giá danh mục đầu tư cho VC tập trung vào thiết bị di động), cuối cùng bạn sẽ gặp cùng một ngã rẽ. Trả thuế cho nhà cung cấp, hoặc tự thu thập dữ liệu.
Thử thách
Dữ liệu app store nhìn từ bên ngoài có vẻ đơn giản. Nó là dữ liệu công khai. Apple cung cấp phần lớn thông qua iTunes JSON lookup cũ của họ. Google Play hiển thị nó trên trình duyệt. Làm sao có thể khó được?
Sau đó bạn thử làm điều đó ở quy mô production và mọi giả định đều sụp đổ.
Điều đầu tiên thất bại là vị trí địa lý. Thứ hạng của một trò chơi trên US Top Charts không liên quan gì đến thứ hạng của nó ở Brazil, và cả hai lại khác với Nhật Bản. Giá thay đổi theo từng quốc gia. Tính khả dụng thay đổi theo từng quốc gia. Mô tả được bản địa hóa, đôi khi thành một câu chuyện tiếp thị hoàn toàn khác. Nếu bạn đang đo lường một ứng dụng cho nhà phát hành chỉ ở Mỹ, một khu vực thu thập là đủ. Nếu bạn đang đo lường bất kỳ thứ gì có tham vọng toàn cầu, bạn cần hàng chục khu vực thu thập, và bạn cần chúng thực sự phân giải từ quốc gia mà chúng tuyên bố. Các CDN của cửa hàng sẽ kiểm tra điều này.
Điều thứ hai thất bại là độ mới. Xếp hạng danh mục thay đổi hàng giờ. Cảm xúc đánh giá về một bản phát hành mới có thể đảo ngược trong một ngày nếu một bản vá làm hỏng thứ gì đó. Nếu dữ liệu của bạn đã cũ một ngày, khách hàng của bạn đã thấy sự thay đổi trên Twitter. Nền tảng của bạn là một chỉ báo theo sau, không phải là thông tin tình báo.
Điều thứ ba là ngân sách thu thập. Các public endpoint của Apple chịu đựng được lưu lượng truy cập ổn định. Google Play thì không. Các trang danh sách của Play render JavaScript, các trang biểu đồ phân trang thông qua các lệnh gọi XHR với các token chống lạm dụng luân phiên, và cả hai cửa hàng đều nhận dạng fingerprint các trình scraper ở tầng TLS trước khi chúng xem xét đến các header của bạn. Ngay khi quy mô thu thập của bạn vượt qua những gì một IP có thể làm một cách lịch sự, cả hai cửa hàng đều ngừng trả về các phản hồi có ý nghĩa. Bạn nhận được các danh sách thưa thớt, thiếu trang đánh giá, hoặc không có gì cả.
Điều thứ tư là pipeline đánh giá. Một ứng dụng phổ biến duy nhất trên Play tạo ra hàng nghìn đánh giá mỗi ngày trên mọi locale mà nó phát hành. Nếu bạn muốn tín hiệu cảm xúc mà bạn có thể tin tưởng, bạn không thể lấy mẫu. Bạn đang kéo toàn bộ luồng dữ liệu, theo từng quốc gia, mãi mãi, không có khoảng trống. Đó là cùng một dạng vấn đề mà chúng ta đã đề cập trong việc tổng hợp đánh giá sản phẩm ở quy mô lớn, chuyển sang một nền tảng khác.
Không có vấn đề nào trong số này là vấn đề của trình scraper. Chúng là các vấn đề về hạ tầng.
Cách tiếp cận
Tin tốt là một khi bạn tách biệt bốn vấn đề, mỗi vấn đề đều có một câu trả lời rõ ràng.
Đối với geography, bạn cần một proxy layer cho phép bạn ghim quốc gia đầu ra theo từng request, và sau đó thực sự xác thực rằng đầu ra phân giải đúng từ nơi nó khai báo. Các proxy pool giá rẻ luôn báo sai về quốc gia. Nếu bạn đang thu thập bảng xếp hạng Play của Đức từ một IP phân giải địa lý sang Hà Lan, bạn sẽ nhận được kết quả của Hà Lan với metadata của Đức và không bao giờ nhận ra. Một nền tảng như FourA giải quyết vấn đề này tại tầng Proxy Finder: chọn quốc gia, lấy một đầu ra thực sự ở quốc gia đó, và tái sử dụng cùng một đầu ra trên các cuộc gọi tiếp theo để session của bạn luôn nhất quán.
Về độ mới của dữ liệu, giải pháp không phải là thêm nhiều scraper. Đó là một lịch trình tốt hơn. Các trang xếp hạng được đặt vào luồng nhanh (vài phút một lần cho các danh mục bạn quan tâm, theo từng quốc gia). Các trang chi tiết được đặt vào luồng trung bình (hàng giờ, chỉ khi sự thay đổi thứ hạng gắn cờ chúng). Các đánh giá có một mốc cơ sở luồng chậm (quét toàn bộ hàng ngày) cộng với một trigger luồng nhanh khi thứ hạng hoặc xếp hạng thay đổi. Lịch trình đó là hàng trăm dòng code nằm trên một nền tảng dữ liệu, chứ không phải bản thân nền tảng đó.
Về ngân sách thu thập trên Play, bạn cần đường dẫn render bằng JS ở những nơi quan trọng và đường dẫn trực tiếp ở những nơi không quan trọng. Một số trang Play sẽ giao cho bạn JSON sạch nếu bạn gửi đúng request; những trang khác cần một trình duyệt thực, cookie thực, và một giải pháp anti-bot thực sự để trả về bất cứ thứ gì ngoài một CAPTCHA. Auto điều phối quyết định đó trên FourA: đi theo đường dẫn giá rẻ trước, nâng cấp lên Browser khi đường dẫn giá rẻ thất bại. Trong môi trường production, bạn chạy lại đường dẫn chiến thắng trực tiếp với Single hoặc Browser để bạn không phải trả chi phí điều phối trên mỗi request.
Đối với review pipeline, throughput và tính lũy đẳng quan trọng hơn những đoạn code thông minh. Bạn cần một request layer trả về các response sạch và có cấu trúc (không phải "đôi khi là JSON, đôi khi là HTML, đôi khi là một CAPTCHA"), một cơ chế retry không tự ý loại bỏ, và theo dõi kết quả theo từng request để bạn có thể phát hiện khi một quốc gia bắt đầu suy giảm chất lượng trước khi khách hàng thấy dữ liệu cũ.
Kết quả
Một đội ngũ in-house làm đúng bốn điều này có thể sánh ngang với gói đăng ký của nhà cung cấp chỉ với một phần nhỏ chi phí. Bài toán chi phí thay đổi nhanh chóng khi bạn vượt qua điểm hòa vốn: các vị trí ASO tầm trung có thể lên tới năm con số mỗi tháng cho mỗi quốc gia được hỗ trợ; một collection stack nhỏ trên hạ tầng kiểu FourA hỗ trợ cùng các quốc gia đó với một phần nhỏ chi phí (kịch bản minh họa dựa trên giá cả công khai của công cụ ASO).
Quan trọng hơn chi phí, bạn sở hữu toàn bộ pipeline. Khi khách hàng của bạn hỏi "tại sao thứ hạng đó lại tăng vọt vào thứ Ba", bạn có thể trả lời từ lịch sử raw response thay vì nhún vai trước dashboard của nhà cung cấp.
Các đội ngũ mà chúng tôi thấy thành công ở đây có chung ba thói quen. Họ theo dõi tỷ lệ thành công theo từng quốc gia như một metric quan trọng hàng đầu. Việc giảm từ 98% xuống 82% ở một quốc gia là một cảnh báo sớm, không phải là một ghi chú phụ. Họ lưu trữ các raw response, không chỉ các trường đã parse, vì các parser sẽ thay đổi và các bug cũ cần được chạy lại trên code mới. Và họ không bao giờ tin tưởng số lượng review từ một khoảng thời gian thu thập duy nhất. Mọi store đều có những giờ hoạt động kém. Giá trị trung bình động là nền tảng để bạn xây dựng.
Điểm chính cần nhớ
Intelligence của app store không phải là vấn đề về scraping. Đó là vấn đề về scheduling, vấn đề về địa lý và vấn đề về session-consistency, chạy trên một request layer luôn phải đáng tin cậy trong khi cả hai store đều tích cực cố gắng làm cho nó trở nên không đáng tin cậy.
Các nhà cung cấp bán dữ liệu app store cũng phải chịu mức thuế infrastructure giống như bạn. Vấn đề là bạn muốn trả chi phí đó một lần theo cách của mình, hay trả hàng tháng theo cách của họ.