Ir al contenido
CranSEO
CranSEORegistrarse

DataForSEO frente a una API solo de enlaces: qué cambia en tu pipeline en R

Un desmontaje de un pipeline imaginario, paso a paso. Enumeramos qué se mueve, qué se mantiene y qué pierdes al reducir la fuente a enlaces.

Equipo de investigación de CranSEO ·

Dos vías de ferrocarril divergentes en un bosque brumoso representando las decisiones del pipeline

El pipeline, etapa por etapa

01

Autenticación

Nuestra clave viaja como un parámetro de consulta o un encabezado Authorization Bearer. Las acciones gratuitas no requieren ninguna, por lo que las primeras celdas de un cuaderno pueden ejecutarse para cualquiera.

02

Solicitud

Una GET por acción, con q para el dominio. La paginación usa page y per (de 10 a 5000), la ordenación usa sort y order.

03

Análisis

Cada respuesta es JSON con un campo ok. Las autenticadas añaden _credits, mostrando el coste y el saldo restante.

04

Almacenamiento

Escribe el tibble y la fecha de la instantánea juntos. El gráfico se actualiza aproximadamente cada mes, por lo que la fecha es parte de los datos.

05

Informe

Renderiza desde el archivo almacenado, no desde una llamada en vivo, para que el documento de quarto proporcione el mismo gráfico mañana.

Lo que ganas y lo que renuncias

PreocupaciónAPI solo de enlacesProveedor más amplio
AlcanceBacklinks, dominios de referencia, texto de anclaje, páginas principales, DRSuele añadir datos de SERP y palabras clave
FacturaciónPor llamada, 1 crédito = $0.0001, sin suscripciónConsulta su propia lista de precios
FrescuraActualización aproximadamente mensualConsulta su propia documentación
Filas por llamadaHasta 1.000, facturado una vezVaría según el endpoint
Señales de falloHTTP 401 clave incorrecta, HTTP 402 sin créditoVaría
Grúa levantando una viga de acero fácilmente versus una pequeña herramienta luchando por mostrar eficiencia

El error que más cuesta en este tipo de pipeline

La mayoría de los pipelines fallan por dinero, no por código. Un bucle que llama a un endpoint una vez por fila convierte un trabajo barato en uno caro.

Con nosotros, una llamada cuesta lo mismo para 10 filas o 1.000, por lo que la regla se invierte: pide la página más grande que puedas usar. Establece per en 1000, ordena por lo que necesitas y deja de paginar cuando se responda la pregunta.

La paginación profunda está limitada a 50.000 filas, lo cual es una característica para analistas tentados a extraer todo. Si un dominio tiene más enlaces que eso, probablemente quieras toppages o anchors en su lugar.

Compara el gasto de tu bucle antiguo con la versión de una sola llamada antes de celebrar. A veces el ahorro es cero porque el proveedor antiguo ya facturaba por solicitud.

Veredicto sobre este desmontaje

Reduce la fuente solo si el informe es estrecho

Si la mayoría de las columnas en tu tibble son enlaces, una API solo de enlaces elimina código de análisis y coste. Si la mitad de las columnas son datos de SERP, mantén tu proveedor actual y añade el nuestro para el resto.

  • Mantén las celdas de demostración en acciones gratuitas
  • Fija la fecha de la instantánea en la salida
  • Espera un ritmo mensual, no uno diario

Preguntas del desmontaje

¿Necesito reescribir todo mi pipeline?

No. Reemplaza solo la etapa de enlaces. Mantén tus etapas de SERP y palabras clave donde están, escribe el tibble de enlaces en su propio archivo y une ambos downstream en la columna de dominio.

¿Está CORS abierto para cuadernos del navegador?

Sí. CORS está abierto, por lo que una aplicación Shiny o una celda de Observable puede llamar a las acciones gratuitas directamente. Mantén las claves pagadas en el lado del servidor, porque cualquier cosa en el código del navegador puede ser leída por los visitantes.

¿Cómo pruebo el manejo de errores de forma económica?

Envía una clave deliberadamente incorrecta para ver HTTP 401 sin gastar nada. El caso HTTP 402 solo aparece cuando el saldo está vacío, así que simúlalo en tus pruebas en lugar de drenar créditos.

¿Coincidirán los totales exactamente con otro proveedor?

No. Cada proveedor rastrea de forma diferente y se actualiza según su propio horario. Compara órdenes de magnitud y tendencias, y trata DR aquí como una métrica separada, logarítmica e interna.

Errores, reintentos y los fallos que puedes planificar

Los fallos son donde un pipeline solo de enlaces y uno más amplio se parecen más. El código queda incompleto allí. Incluye las rutas de fallo en la comparación, porque una decisión dataforseo vs link-only se ve diferente una vez que los errores están sobre la mesa.

HTTP 401 y HTTP 402 son los dos que debes manejar

Dos códigos de estado son los más importantes. HTTP 401 significa que falta la clave o es incorrecta, y la solución está en tu configuración en lugar de en tus datos. HTTP 402 significa que el saldo de créditos se ha agotado, y la solución es una recarga desde la página de la cuenta, no un cambio de código.

Escribe ambas como ramas explícitas. Una captura genérica que traga el estado y escribe una tabla vacía es cómo ocurre una extracción parcial silenciosa.

Timeouts y archivos parciales

Un timeout no es un código de estado, por lo que tu propio código debe tratarlo como un fallo. Envuelve la llamada para que un timeout detenga la ejecución antes de que se escriba cualquier salida.

Escribe en un archivo temporal y renómbralo en caso de éxito. Un archivo medio escrito que parece completo es el peor resultado de una ejecución interrumpida, porque nadie piensa en cuestionarlo.

Reintentos y ritmo

Esta página no cita una figura de solicitudes por segundo, por lo que dimensiona el pipeline por llamadas por ciclo. Ese es el número que impulsa el coste, y es el que controlas.

Reintenta solo errores de red, con una pausa entre intentos. Nunca reintentes un 401 o un 402, porque cada uno fallará de la misma manera en el siguiente intento.

Dónde vive la clave durante las pruebas

Mantén la clave en una variable de entorno en tu máquina y en el almacén de secretos de CI, nunca en un archivo que lean las pruebas. Las acciones gratuitas no necesitan clave, por lo que la primera ejecución de prueba es segura para cualquiera que clone el proyecto.

Haz la misma pregunta a cada pipeline que toques: ¿quién puede leer la clave y dónde está escrita? Una clave que aparece en un archivo de registro es una filtración, incluso cuando el cuaderno en sí es privado.

Registrar el coste de cada llamada

Cada respuesta de una llamada autenticada lleva el campo credits, que muestra el coste y el saldo restante. Copialo en tu registro junto con la marca de tiempo y el nombre de la acción, para que una pregunta de coste pueda responderse desde el archivo en lugar de desde la memoria.

Lee el registro una vez al mes, no una vez al año. Un aumento lento en el coste por ciclo es fácil de pasar por alto en un gráfico y obvio en una columna de números.

Una ejecución fallida también debe dejar su registro, con el código de estado y el paso donde se detuvo. Un registro que solo registra éxitos oculta la línea que necesitabas.

Rompecabezas de madera con piezas faltantes en un banco de trabajo representando la pérdida de datos

Contar filas entre etapas

Muchos errores costosos del pipeline son errores de conteo. Una tabla pierde filas en una unión, un filtro o una desduplicación, y el gráfico aún parece plausible después.

Escribe un conteo en cada entrega

Piensa en el pipeline como una cadena de tablas: la respuesta de la API, el tibble analizado, el archivo almacenado y el informe. Un conteo de filas en cada entrega muestra qué etapa perdió filas, si alguna lo hizo.

Los analistas a menudo cuentan solo al final. Para entonces, la causa está tres etapas atrás, y el tibble se ha remodelado dos veces desde entonces.

Una fila por dominio, una fila por enlace

El grano depende de la acción. Una extracción de dominios de referencia tiene una fila por sitio vinculante, mientras que una extracción de backlinks tiene una fila por enlace, y un sitio puede enviar muchos de ellos. Cuenta en el grano incorrecto y dos números correctos parecerán estar en desacuerdo.

Pon el grano en el nombre del archivo almacenado o en un comentario de encabezado, para que la siguiente persona no tenga que adivinar. El glosario de acciones lista el grano de cada acción.

Paginación y el techo de 50.000 filas

La paginación con page y per funciona hasta 5000 filas por página, pero la paginación profunda se detiene en 50.000 filas. Una extracción que espera más de eso vuelve limitada, y su conteo puede parecer sospechosamente redondo.

Compara el número que recibiste con el total que esperabas. Cuando difieren, verifica la acción, su ordenación y el tamaño de página antes de culpar a la fuente.

Un conteo trabajado, hipotéticamente

Digamos que una extracción hipotética pide sitios de enlace para 30 dominios objetivo y devuelve 30 filas de conteos. Unido a las puntuaciones, la tabla mantiene 27 filas. Las tres filas faltantes necesitan un examen antes de que se dibuje cualquier gráfico, comenzando con sus claves.

Escribe esas tres por nombre, no solo como un conteo. Un conteo te dice que faltaron filas, mientras que los nombres te dicen qué claves limpiar.

Uniones que pierden filas silenciosamente

Una unión izquierda mantiene todas las filas de la tabla izquierda, por lo que una puntuación faltante aparece como NA en lugar de como una fila desaparecida. Una unión interna oculta el mismo problema eliminando la fila por completo.

Elige el tipo de unión a propósito, y cuenta las puntuaciones NA después de la unión. Ese conteo pertenece al registro junto al campo de créditos.

Un plan de prueba breve antes de cambiar

Ejecuta ambas fuentes durante un ciclo. Mismos dominios, mismo día.

Toma 30 dominios que conozcas bien, extrae conteos de dominios de referencia de tu proveedor actual y de CranSEO, y grafícalos uno contra otro en ejes logarítmicos. Deberías ver una diagonal aproximada, no una exacta, porque los rastros difieren y los nuestros se actualizan aproximadamente cada mes; DataForSEO, Ahrefs y Semrush ven una web ligeramente diferente.

Lee los valores atípicos, no el promedio. Donde nuestro conteo está muy por debajo, verifica si el dominio es nuevo o se mudó recientemente. Donde está muy por encima, verifica subdominios. El glosario define lo que contamos como un dominio de referencia, y el libro de instrucciones muestra cómo almacenar ambas extracciones lado a lado.

Antes de la primera ejecución en producción

  • La clave se lee del entorno, y una prueba cubre una clave faltante
  • Una llamada de prueba en un solo dominio, registrada con su campo de créditos
  • Ramas explícitas para HTTP 401 y HTTP 402
  • Un conteo de filas escrito en cada etapa
  • La fecha de la instantánea escrita junto a cada archivo almacenado