DataForSEO so với API chỉ liên kết: những thay đổi trong đường ống R của bạn
Tháo gỡ một đường ống giả định, từng bước một. Chúng tôi liệt kê những gì di chuyển, những gì giữ nguyên và những gì bạn mất đi khi thu hẹp nguồn chỉ còn liên kết.
Đội ngũ nghiên cứu CranSEO ·

Đường ống, từng giai đoạn
Xác thực
Khóa của chúng tôi được truyền dưới dạng tham số truy vấn hoặc tiêu đề Authorization Bearer. Các hành động miễn phí không cần, vì vậy các ô đầu tiên của sổ ghi chú có thể chạy cho bất kỳ ai.
Yêu cầu
Một lệnh GET cho mỗi hành động, với q cho tên miền. Phân trang sử dụng page và per (10 đến 5000), sắp xếp sử dụng sort và order.
Phân tích cú pháp
Mọi phản hồi đều là JSON với trường ok. Những trường đã xác thực thêm _credits, hiển thị chi phí và số dư còn lại.
Lưu trữ
Ghi tibble và ngày chụp cùng lúc. Đồ thị làm mới khoảng hàng tháng, vì vậy ngày là một phần của dữ liệu.
Báo cáo
Hiển thị từ tệp đã lưu, không phải từ lệnh gọi trực tiếp, vì tài liệu quarto sẽ cho cùng một biểu đồ vào ngày mai.
Những gì bạn đạt được và những gì bạn đánh đổi
| Mối quan tâm | API chỉ liên kết | Nhà cung cấp rộng hơn |
|---|---|---|
| Phạm vi | Liên kết ngược, tên miền giới thiệu, neo, trang hàng đầu, DR | Thường thêm dữ liệu SERP và từ khóa |
| Thanh toán | Theo mỗi lệnh gọi, 1 tín dụng = $0.0001, không có gói đăng ký | Kiểm tra bảng giá của riêng họ |
| Độ tươi mới | Làm mới khoảng hàng tháng | Kiểm tra tài liệu của riêng họ |
| Số hàng mỗi lệnh gọi | Tối đa 1,000, tính phí một lần | Thay đổi theo điểm cuối |
| Tín hiệu thất bại | HTTP 401 khóa không hợp lệ, HTTP 402 không có tín dụng | Thay đổi |

Sai lầm tốn kém nhất trong loại đường ống này
Hầu hết các đường ống thất bại về chi phí, không phải mã. Một vòng lặp gọi một điểm cuối mỗi hàng biến một công việc rẻ tiền thành một công việc đắt đỏ.
Với chúng tôi, một lệnh gọi có cùng chi phí cho 10 hàng hoặc 1,000, vì vậy quy tắc đảo ngược: yêu cầu trang lớn nhất bạn có thể sử dụng. Đặt per thành 1000, sắp xếp theo những gì bạn cần và dừng phân trang khi câu hỏi đã được trả lời.
Phân trang sâu được giới hạn ở 50,000 hàng, đây là một tính năng cho các nhà phân tích bị cám dỗ muốn kéo mọi thứ. Nếu một tên miền có nhiều liên kết hơn mức đó, bạn có lẽ muốn toppages hoặc anchors thay thế.
So sánh chi tiêu của vòng lặp cũ của bạn với phiên bản gọi một lần trước khi bạn ăn mừng. Đôi khi khoản tiết kiệm bằng không vì nhà cung cấp cũ đã tính phí theo yêu cầu.
Kết luận về việc tháo gỡ này
Thu hẹp nguồn chỉ khi báo cáo hẹp
Nếu hầu hết các cột trong tibble của bạn là liên kết, API chỉ liên kết sẽ loại bỏ mã phân tích và chi phí. Nếu một nửa các cột là dữ liệu SERP, hãy giữ nhà cung cấp hiện tại của bạn và thêm chúng tôi cho phần còn lại.
- Giữ các ô demo trên các hành động miễn phí
- Ghim ngày chụp trong đầu ra
- Mong đợi nhịp điệu hàng tháng, không phải hàng ngày
Câu hỏi từ việc tháo gỡ
Tôi có cần viết lại toàn bộ đường ống của mình không?
Không. Chỉ thay thế giai đoạn liên kết. Giữ các giai đoạn SERP và từ khóa của bạn ở vị trí hiện tại, ghi tibble liên kết vào một tệp riêng và kết hợp hai tệp đó ở phía downstream trên cột tên miền.
CORS có mở cho sổ ghi chú trình duyệt không?
Có. CORS mở, vì vậy một ứng dụng Shiny hoặc một ô Observable có thể gọi các hành động miễn phí trực tiếp. Giữ các khóa trả phí ở phía máy chủ, vì bất kỳ thứ gì trong mã trình duyệt đều có thể bị đọc bởi khách truy cập.
Tôi kiểm tra xử lý lỗi rẻ như thế nào?
Gửi một khóa sai cố ý để xem HTTP 401 mà không tốn gì. Trường hợp HTTP 402 chỉ xuất hiện khi số dư trống, vì vậy hãy mô phỏng nó trong các bài kiểm tra của bạn thay vì làm cạn tín dụng.
Tổng số có khớp chính xác với nhà cung cấp khác không?
Không. Mỗi nhà cung cấp thu thập dữ liệu khác nhau và làm mới theo lịch trình riêng. So sánh các bậc độ lớn và xu hướng, và coi DR ở đây là một chỉ số logarit riêng biệt, do nội bộ tính toán.
Lỗi, thử lại và các lỗi bạn có thể lên kế hoạch
Các lỗi là nơi một đường ống chỉ liên kết và một đường ống rộng hơn trông giống nhau nhất. Mã thường bị bỏ dở ở đó. Đưa các đường dẫn lỗi vào so sánh, vì quyết định dataforseo vs link-only sẽ khác một khi lỗi được đưa ra bàn.
HTTP 401 và HTTP 402 là hai cái cần xử lý
Hai mã trạng thái quan trọng nhất. HTTP 401 có nghĩa là khóa bị thiếu hoặc sai, và cách khắc phục nằm trong cấu hình của bạn hơn là trong dữ liệu của bạn. HTTP 402 có nghĩa là số dư tín dụng đã hết, và cách khắc phục là nạp tiền từ trang tài khoản, không phải thay đổi mã.
Viết cả hai dưới dạng các nhánh rõ ràng. Một lệnh bắt chung nuốt mã trạng thái và ghi một bảng trống là cách xảy ra việc kéo một phần im lặng.
Thời gian chờ và các tệp một phần
Thời gian chờ không phải là mã trạng thái, vì vậy mã của chính bạn phải coi đó là một lỗi. Bao bọc lệnh gọi sao cho thời gian chờ dừng quá trình chạy trước khi bất kỳ đầu ra nào được ghi.
Ghi vào một tệp tạm thời và đổi tên nó khi thành công. Một tệp được ghi một phần trông giống như hoàn chỉnh là kết quả tồi tệ nhất của một quá trình bị gián đoạn, vì không ai nghĩ đến việc chất vấn nó.
Thử lại và nhịp điệu
Trang này không trích dẫn số yêu cầu mỗi giây, vì vậy hãy kích thước đường ống theo số lệnh gọi mỗi chu kỳ. Đó là số điều khiển chi phí, và đó là số bạn kiểm soát được.
Chỉ thử lại các lỗi mạng, với thời gian chờ giữa các lần thử. Không bao giờ thử lại HTTP 401 hoặc HTTP 402, vì mỗi lần sẽ thất bại theo cùng một cách vào lần thử tiếp theo.
Vị trí của khóa trong quá trình kiểm tra
Giữ khóa trong biến môi trường trên máy của bạn và trong kho bí mật CI, không bao giờ trong một tệp mà các bài kiểm tra đọc. Các hành động miễn phí không cần khóa, vì vậy lần chạy thử nghiệm đầu tiên an toàn cho bất kỳ ai sao chép dự án.
Hỏi cùng một câu hỏi cho mọi đường ống bạn chạm vào: ai có thể đọc khóa, và nó được ghi ở đâu? Một khóa xuất hiện trong tệp nhật ký là một lỗ hổng, ngay cả khi sổ ghi chú riêng tư.
Ghi lại chi phí của mỗi lệnh gọi
Mọi phản hồi từ một lệnh gọi đã xác thực đều mang trường credits, hiển thị chi phí và số dư còn lại. Sao chép nó vào nhật ký của bạn bên cạnh dấu thời gian và tên hành động, để một câu hỏi về chi phí có thể được trả lời từ tệp thay vì từ bộ nhớ.
Đọc nhật ký một lần mỗi tháng, không phải một lần mỗi năm. Sự gia tăng chậm trong chi phí mỗi chu kỳ dễ bị bỏ qua trong biểu đồ và rõ ràng trong một cột số.
Một lần chạy thất bại cũng nên để lại nhật ký của nó, với mã trạng thái và bước mà nó dừng lại. Một nhật ký chỉ ghi lại các thành công ẩn dòng bạn cần.

Đếm hàng qua các giai đoạn
Nhiều lỗi đường ống tốn kém là lỗi đếm. Một bảng mất hàng trong một lệnh join, một bộ lọc hoặc một lệnh loại bỏ trùng lặp, và biểu đồ vẫn trông hợp lý sau đó.
Viết một số đếm tại mỗi lần chuyển giao
Hãy nghĩ về đường ống như một chuỗi các bảng: phản hồi API, tibble đã phân tích cú pháp, tệp đã lưu và báo cáo. Một số đếm tại mỗi lần chuyển giao cho thấy giai đoạn nào đã mất hàng, nếu có.
Các nhà phân tích thường chỉ đếm ở cuối. Khi đó nguyên nhân nằm ở ba giai đoạn trước đó, và tibble đã được định hình lại hai lần kể từ đó.
Một hàng mỗi tên miền, một hàng mỗi liên kết
Độ mịn phụ thuộc vào hành động. Một lần kéo tên miền giới thiệu có một hàng mỗi trang liên kết, trong khi một lần kéo liên kết ngược có một hàng mỗi liên kết, và một trang có thể gửi nhiều liên kết như vậy. Đếm ở độ mịn sai và hai số chính xác sẽ trông như không khớp.
Đặt độ mịn trong tên tệp đã lưu hoặc trong nhận xét tiêu đề, để người tiếp theo không phải đoán. Bảng thuật ngữ hành động liệt kê độ mịn của mỗi hành động.
Phân trang và trần 50,000 hàng
Phân trang với page và per hoạt động lên đến 5000 hàng mỗi trang, nhưng phân trang sâu dừng ở 50,000 hàng. Một lần kéo dự kiến nhiều hơn mức đó sẽ bị giới hạn, và số đếm của nó có thể trông khá tròn trịa.
So sánh số bạn nhận được với tổng số bạn mong đợi. Khi chúng khác nhau, hãy kiểm tra hành động, cách sắp xếp và kích thước trang trước khi đổ lỗi cho nguồn.
Một phép đếm ví dụ, giả định
Giả sử một lần kéo giả định yêu cầu các trang liên kết cho 30 tên miền mục tiêu và trả về 30 hàng đếm. Được nối với các điểm số, bảng giữ 27 hàng. Ba hàng bị thiếu cần được xem xét trước khi bất kỳ biểu đồ nào được vẽ, bắt đầu bằng các khóa của chúng.
Viết ba hàng đó bằng tên, không chỉ là một số đếm. Một số đếm cho bạn biết rằng các hàng đã bị mất, trong khi các tên cho bạn biết các khóa nào cần làm sạch.
Các lệnh join ẩn hàng một cách lặng lẽ
Một lệnh join trái giữ mọi hàng của bảng trái, vì vậy một điểm số bị thiếu sẽ hiển thị dưới dạng NA thay vì một hàng biến mất. Một lệnh join trong ẩn cùng một vấn đề bằng cách loại bỏ hàng hoàn toàn.
Chọn loại join một cách có chủ đích, và đếm các điểm số NA sau khi join. Số đếm đó thuộc về nhật ký bên cạnh trường tín dụng.
Một kế hoạch kiểm tra ngắn trước khi bạn chuyển đổi
Chạy cả hai nguồn cho một chu kỳ. Cùng tên miền, cùng ngày.
Lấy 30 tên miền bạn biết rõ, kéo số đếm tên miền giới thiệu từ nhà cung cấp hiện tại của bạn và từ CranSEO, và vẽ chúng lên nhau trên các trục log. Bạn nên thấy một đường chéo thô, không phải một đường chính xác, vì việc thu thập dữ liệu khác nhau và ours làm mới khoảng hàng tháng; DataForSEO, Ahrefs và Semrush mỗi bên đều thấy một web hơi khác nhau.
Đọc các giá trị ngoại lai, không phải trung bình. Nơi số đếm của chúng tôi thấp hơn nhiều, hãy kiểm tra xem tên miền có mới hoặc vừa di chuyển không. Nơi nó cao hơn nhiều, hãy kiểm tra các tên miền phụ. Bảng thuật ngữ định nghĩa những gì chúng tôi tính là một tên miền giới thiệu, và sổ tay chạy cho thấy cách lưu trữ cả hai lần kéo cạnh nhau.
Trước lần chạy sản xuất đầu tiên
- Khóa được đọc từ môi trường, và một bài kiểm tra bao gồm một khóa bị thiếu
- Một lệnh gọi thử nghiệm trên một tên miền duy nhất, được ghi lại với trường tín dụng của nó
- Các nhánh rõ ràng cho HTTP 401 và HTTP 402
- Một số đếm được ghi ở mỗi giai đoạn
- Ngày chụp được ghi bên cạnh mọi tệp đã lưu