Trước khi thuê mặt bằng, hãy hỏi Google Maps xem quanh đó có bao nhiêu đối thủ giống bạn
Một quyết định thuê mặt bằng thường chỉ dựa trên cảm giác đi ngang qua
Rất nhiều người chọn mặt bằng mở quán cà phê, tiệm nail, hay cửa hàng tiện lợi theo cách khá giống nhau: đi ngang qua khu đó vài lần, thấy đông người, thấy vị trí đẹp, mặt tiền rộng, rồi quyết định ký hợp đồng thuê ba năm. Vấn đề là "thấy đông người" không đồng nghĩa với "còn chỗ cho một cửa hàng mới". Rất có thể khu vực đó đông người vì đã có sẵn mười quán cà phê khác đang chia nhau đúng lượng khách đó, và cửa hàng thứ mười một của bạn chỉ đang nhảy vào chia thêm một miếng bánh đã bị cắt quá nhỏ.
Cảm giác đi ngang qua đường không cho bạn biết được mật độ cạnh tranh thực sự, vì bạn không thể đi hết các con hẻm xung quanh, không đếm được hết các quán nằm trong tầng hai của các toà nhà, và chắc chắn không có thời gian ngồi quan sát lưu lượng khách của từng đối thủ trong nhiều ngày liên tiếp.
Google Maps đang giữ đúng loại dữ liệu bạn cần, chỉ là không ai đọc nó theo cách có hệ thống
Điều ít người để ý là Google Maps đã âm thầm chứa gần như toàn bộ dữ liệu cần thiết để đánh giá mật độ cạnh tranh của một khu vực: tên từng cửa hàng, loại hình kinh doanh, số lượng đánh giá, điểm đánh giá trung bình, khoảng giá, giờ mở cửa, và cả khoảng cách chính xác giữa các địa điểm với nhau. Vấn đề là dữ liệu này nằm rải rác trên hàng chục, hàng trăm địa điểm riêng lẻ, mở từng cái lên xem thủ công thì mất cả tuần và bạn vẫn dễ bỏ sót.
Đây chính là bài toán mà việc crawl dữ liệu, tức là tự động hoá quá trình mở và đọc từng trang kết quả, được sinh ra để giải quyết.
Vì sao crawl Google Maps khó hơn crawl một trang web bán hàng thông thường
Google Maps không giống các trang thương mại điện tử tĩnh mà bạn có thể tải về toàn bộ nội dung HTML rồi đọc trực tiếp. Danh sách địa điểm được tải dần khi bạn cuộn, bản đồ render bằng công nghệ đồ hoạy phức tạp, và Google có hệ thống phát hiện truy cập tự động khá chặt, đặc biệt khi có nhiều yêu cầu bất thường từ cùng một địa chỉ IP trong thời gian ngắn.
Ngoài ra, kết quả Google Maps trả về cũng phụ thuộc vào vị trí giả định của người xem. Nếu bạn crawl từ một máy chủ đặt ở một quốc gia khác, thứ tự và cả nội dung kết quả có thể lệch khá xa so với những gì một khách hàng thật đang đứng tại khu vực đó nhìn thấy trên điện thoại của họ.
Google Maps cũng không phải trường hợp duy nhất khó nhằn kiểu này. Các trang đặt vé máy bay thường bật một lớp thử thách ngay khi phát hiện tốc độ click nhanh bất thường, các trang bất động sản lớn theo dõi cả cách con trỏ di chuyển trước khi cho phép xem số điện thoại liên hệ, còn LinkedIn thì giới hạn số lượt xem hồ sơ trong một khung giờ khá gắt với bất kỳ tài khoản nào có dấu hiệu duyệt nhanh hơn tốc độ đọc của người thật. Điểm chung của các hệ thống này là chúng không chỉ nhìn vào một request đơn lẻ, mà nhìn vào cả một chuỗi hành vi: chuột di chuyển có tự nhiên không, giữa hai lượt click có khoảng nghỉ hợp lý không, trang có được cuộn qua trước khi một nút được bấm không. Một script gọi thẳng vào HTML gần như chắc chắn bị lộ ở lớp này, vì nó chẳng "di chuột" gì cả trước khi click.
Cách một trình duyệt thật xử lý được cả hai vấn đề
Vì Google Maps được thiết kế cho người dùng thật tương tác bằng cách cuộn, click, phóng to bản đồ, cách hiệu quả nhất để lấy đúng dữ liệu là dùng một trình duyệt thật để mô phỏng đúng những hành động đó, thay vì gọi trực tiếp vào một API ẩn của Google mà có thể thay đổi bất kỳ lúc nào.
Đây là hướng mà tmproxy đang phát triển với Paladin, một trình duyệt vận hành trên nền tảng đám mây được thiết kế để trông giống một người dùng thật đến từng chi tiết: mỗi lượt truy cập có vân tay thiết bị riêng, được gán một proxy dân cư đúng khu vực địa lý cần khảo sát, và các hành động như cuộn danh sách, di chuyển bản đồ, click vào từng địa điểm được thực hiện với tốc độ và chuyển động gần giống người dùng thật, không phải các bước nhảy tức thời đặc trưng của script tự động thông thường.
Nhờ gán đúng proxy theo khu vực, kết quả trả về sẽ phản ánh đúng những gì một khách hàng thật đứng tại chính con phố đó nhìn thấy khi mở Google Maps tìm quán cà phê gần mình, chứ không phải một kết quả chung chung tính từ vị trí máy chủ ở nơi khác.
Một điểm khiến việc này dễ triển khai hơn nhiều so với hình dung ban đầu là Paladin có thể điều khiển giống hệt Playwright hoặc Puppeteer, hai công cụ quen thuộc với bất kỳ ai từng viết script tự động hoá trình duyệt. Vì Paladin mở ra một kết nối Chrome DevTools Protocol tiêu chuẩn, người viết crawler không cần học lại một bộ lệnh riêng, mà chỉ cần kết nối vào phiên trình duyệt đã được "hoá trang" sẵn đó rồi viết logic cuộn trang, chờ phần tử xuất hiện, đọc dữ liệu như vẫn làm với Playwright thông thường. Cái khác duy nhất là trình duyệt phía sau đã có vân tay riêng và proxy đúng vùng gán sẵn trước khi một dòng lệnh nào chạy tới.
Từ dữ liệu thô đến quyết định thuê mặt bằng
Sau khi thu thập được danh sách các địa điểm cùng loại hình kinh doanh trong một bán kính nhất định, chẳng hạn năm trăm mét quanh mặt bằng đang cân nhắc, có vài chỉ số đáng nhìn vào trước khi quyết định.
Chỉ số đầu tiên là số lượng đối thủ trực tiếp, tức cùng loại hình kinh doanh, trong bán kính đó. Con số này cho bạn biết độ bão hoà thô của khu vực.
Chỉ số thứ hai là điểm đánh giá trung bình và số lượng đánh giá của các đối thủ đó. Một khu vực có nhiều quán nhưng điểm đánh giá trung bình thấp, ít review, có thể là dấu hiệu chất lượng chung của khu vực chưa cao, và một quán mới làm tốt có cơ hội nổi bật nhanh. Ngược lại, một khu vực có ít quán nhưng điểm đánh giá đều rất cao với hàng nghìn lượt đánh giá mỗi quán lại là dấu hiệu khách hàng ở đó đã trung thành với một vài thương hiệu quen, việc chen vào sẽ khó hơn nhiều so với con số ít đối thủ khiến bạn tưởng là dễ.
Chỉ số thứ ba là khoảng giá được thể hiện trên hồ sơ của từng địa điểm, giúp bạn ước lượng mức chi tiêu trung bình khách hàng khu vực này đang chấp nhận, từ đó đối chiếu với mức giá bạn định bán có phù hợp với thị trường hay không.
Một cách tiếp cận thực tế cho người không có nền tảng kỹ thuật
Không phải ai cân nhắc mở quán cũng biết viết code để tự crawl dữ liệu, và điều đó hoàn toàn bình thường. Điểm quan trọng cần nhớ không phải là bạn phải tự làm được việc này, mà là bạn hiểu được loại dữ liệu nào tồn tại và có thể thu thập được, để khi làm việc với người hỗ trợ kỹ thuật hoặc dùng công cụ có sẵn, bạn biết đặt đúng câu hỏi: đếm được bao nhiêu đối thủ cùng loại trong bán kính bao nhiêu mét, điểm đánh giá trung bình của khu vực là bao nhiêu, và khoảng giá phổ biến đang ở mức nào.
Kết
Chọn mặt bằng theo cảm giác đi ngang qua đường bỏ sót một lượng thông tin lớn mà chính Google Maps đang lưu trữ sẵn, chỉ là chưa ai đọc nó theo cách có hệ thống. Dùng một trình duyệt thật, gán đúng proxy theo khu vực để mô phỏng góc nhìn của khách hàng địa phương, và tổng hợp lại thành các chỉ số về mật độ, chất lượng và mức giá của đối thủ, là cách để một quyết định thuê mặt bằng ba năm không còn dựa hoàn toàn vào cảm giác.
All rights reserved