Cómo usar la API y el conector a Data Studio de SEMrush

Por Juan González Villa

No es ningún secreto mi gran afición a Data Studio. Lo que algunos quizá no sepan es que otra de mis grandes fijaciones es automatizar todas las tareas rutinarias dentro del día a día de mi agencia. Por eso no me pude resistir a probar dos funcionalidades avanzadas de Semrush: su API y sus conectores a Data Studio.

Sé de entrada que esto no es para todos los públicos, ya que estos features sólo están incluidos a partir del plan Business. Pero, ojo, porque tanto agencias como departamentos in-house de SEO pueden ahorrar mucho tiempo con algunas de las cosas que voy a mostrar en el post.

Qué es una API y por qué usar la API de SEMrush en lugar de su interfaz web

Para aquellos a los que “API” les suene a cosas de programadores, decir que una API no es más que un medio para acceder, de forma rápida y escalable, a los datos de una fuente, sin hacer la llamada directamente desde la aplicación de la que provienen los datos.

Por ejemplo, en el caso de SEMrush, su API nos sirve para añadir datos a nuestros documentos de Excel o Google Sheets, o a nuestras herramientas SEO, sin necesidad de acceder directamente a la interfaz de la herramienta y hacer un copia y pega o una exportación de datos.

¿Qué tiene de malo hacerlo por copia y pega o exportando un CSV? Pues, si sólo vamos a hacer unas pocas consultas, no pasa nada, pero si necesitamos hacer cientos o no digamos miles de llamadas a la potentísima base de datos de SEMrush, copiar o exportar deja de ser una opción.

La API de SEMrush en realidad no es una, sino tres: la Analytics API, Projects API y Accounts API. Cada una de ellas tiene diferentes informes que podemos conectar.

Por ejemplo, dentro de la Analytics API podemos hacer una llamada para extraer datos sobre keywords (por varios métodos diferentes), sobre dominios o sobre backlinks.

Las posibilidades son demasiadas como para enumerarlas aquí, y lo mejor es echar un vistazo a la lista completa que hay en la documentación oficial de la API de SEMrush.

Por ahora, vamos a ver unos cuantos casos en los que usar la API nos puede ahorrar mucho tiempo, y cómo hacerlo.

Tareas SEO en bulk o en bloque con Google Sheets

Son todos aquellos usos en los que tienes una carga de trabajo bien delimitada y repetitiva. Lo puedes hacer mucho más rápido si no pasas por la interfaz web de SEMrush.

Imagina que un cliente te ha pasado una lista de mil quinientas palabras clave en las que le interesa posicionar o investigar la oportunidad de tráfico orgánico. No tiene datos, sólo la keyword en sí. Por lo tanto, tú debes agregar una serie de columnas con todos los datos relevantes para cada palabra clave.

Para empezar, vas a usar la API Keyword Overview de SEMrush. Con ella, añadirás el volumen de la búsqueda, el precio medio del CPC, el nivel de competencia y el número de resultados totales que devuelve Google para esa búsqueda.

La forma en la que se ejecuta una llamada es por medio de una url con esta estructura:

https://api.semrush.com/?type=phrase_this&key=[tu_api_key]&phrase=[tu_palabra_clave]&database=[codigo_pais]&export_columns=Ph,Nq,Cp,Co,Nr,Td

(Aviso: la url de arriba tal cual no funcionará, ya que necesitas cambiar los parámetros que van entre corchetes por una api key, una palabra clave y un código de base de datos de país, respectivamente)

Cada uno de los seis parámetros que va al final (export columns) corresponde, en este orden, a: Keyword; Search Volume; CPC; Competition; Number of Results; Trends

Ahora, si queremos integrar estos datos dentro de una hoja de Google Sheets, debemos hacerlo de la siguiente forma:

=transpose(importdata(“https://api.semrush.com/?type=phrase_this&key=[tu_api_key]&phrase=”&B2&”&database=”us”&export_columns=Nq,Cp,Co,Nr”)

Vamos a analizar esta fórmula en detalle.

  • La función importdata es la fórmula empleada en Google Sheets para extraer datos de una url que funciona como endpoint de una API (la url en la que están los datos en formato JSON). Prueba a copiar y pegar la url que he puesto arriba en tu navegador, con tu api key por supuesto, y verás cómo aparecen los datos.
  • La fórmula transpose es para mostrar los datos en horizontal, es decir, cada uno en una columna, y no unos encima de otros. De esta forma podremos trabajar en Sheets teniendo una keyword en cada columna.
  • En el parámetro key= insertamos la variable ”&A2&” porque queremos que tome como valor la palabra clave que aparece en la columna B. Al copia o extender toda la fórmula hacia las filas de abajo, este valor se irá actualizando para reflejear el de la fila correspondiente.
  • El parámetro database es para indicar en qué país queremos investigar los datos de las palabras clave.
  • No añadimos los parámetros Ph (palabra clave) y Td (Trend) porque no los necesitamos.

Ahora, en las columnas a la derecha de nuestras palabras clave nos quedaría lo siguiente:

keyword overview api semrush google sheets

Sólo nos faltan tres pequeños pasos:

  1. Añadir cuatro nuevas columna a la derecha de los valores. En la primera (E) introduciremos esta fórmula, para separar cada valor: =split(D2, “;”, true)
  2. Ahora podemos ocultar las columnas C y D, ya que no necesitan estar visibles
  3. Por último, en la primera fila ponemos los encabezados de columna necesarios

Y el resultado es este:

split keyword overview semrush api en google sheets

Por supuesto, por ahora sólo hemos arañado la superficie. Hay muchas más bases de datos a las que podemos llamar.

Por ejemplo, para completar la información sobre cada keyword algo muy útil es añadir la Dificultad de palabra clave, algo que en la interfaz de SEMrush se consulta por separado. Repitiendo este proceso, pero llamando a la Analytics API por el método Keyword Difficulty.

Pero, ¿por qué quedarse ahí? Partiendo de una lista de keywords, podemos sacar frases relacionadas de manera escalable, usando los métodos “Broad Match Keywords”, o “Phrase Questions”.

Y por supuesto, podemos combinar en Google Sheets varios conjuntos de datos, y a partir de ahí inyectar los datos de SEMrush.

Por ejemplo, imagina que has escrapeado, con Screaming Frog o cualquier otro crawler, el sitio completo de tu competencia, extrayendo todos los H1, H2, etc. de cada url.

Ahora, puedes unir de una sola tacada los datos que da SEMrush para cada una de las keywords que está trabajando tu competencia en sus encabezados. ¿Te va gustando esto de trabajar con la API en lugar de con la interfaz web?

Librería de SEMrush para Google Sheets (Opensourceseo)

Antes de seguir, llega el momento de presentar un atajo muy útil para trabajar con Google Sheets. Si no estás demasiado cómodo manejándote con fórmulas y organizando luego los datos que salen para dejar una tabla clara y sencilla de consultar, te recomiendo usar la librería de SEMrush para Google Sheets, desarrollada por David Sottimano.

Con ella, simplificas mucho el trabajo, ya que lo único que debes hacer es copiar la hoja con la librería y añadir tu api key.

A partir de ahí, las llamadas a la API ya están “construidas” en el formato que Sheets entiende, y por tanto es como trabajar con fórmulas sencillas de Sheets. No necesitas construir la llamada cada vez, ni organizar o darle formato a los resultados.

Con la librería, la llamada que hice en el apartado anterior (y los 3 pasos siguientes para ordenar los resultados) se reduce a esto, que es mucho más manejable:

=KEYWORD_VOLUME_SEMRUSH(B2, “us”, true, true)

Y además, incluye cosas muy útiles como auto complete y ayuda para las fórmulas, una ventana de referencia de todas las fórmulas disponibles que se abre dentro del propio Google Sheets, y cacheado por defecto de 25 minutos para cada llamada (ampliable a lo que tú quieras), para que no gastes puntos de tu API a lo tonto mientras te encuentras trabajando.

Hay 8 fórmulas ya configuradas, que incluyen:

  • Domain Organic Keywords
  • Domain Overview
  • Keyword Difficulty
  • Keyword Volume
  • Related Queries
  • SERPs
  • Phrase Questions
  • URL Organic Keywords

Con esto, tienes munición suficiente para organizar estudios muy potentes de dominios, keywords, serps o urls. Y lo mejor es que no necesitas tener conocimientos más allá de los básicos de Google Sheets.

Automatizaciones e integraciones con otras herramientas

Hemos empezado a automatizar tareas (evitando la tarea repetitiva de copiar y pegar por cada palabra clave o dominio consultado), pero al fin y al cabo hasta ahora lo hemos hecho todo desde un documento de Google Sheets en el que tenemos que meter un input manual para realizar la integración.

Podemos ir más allá, usando la API para su verdadero fin: crear flujos de trabajo automatizados, en los que las aplicaciones se comuniquen entre sí, sin necesidad de que hagamos nada, aparte de algunos inputs mínimos, que una vez organizado el proceso, no deben robarnos más de unos segundos.

Por ejemplo, podemos poner en marcha un proceso automatizado que nos genere un estudio completo de sitio, competidores y principales palabras clave orgánicas, cada vez que nos llega un lead.

El trigger o desencadenante para este proceso puede ser un mensaje desde un formulario en nuestra web (siempre que hayamos creado un campo en el que el lead introduce su dominio), o podría ser un evento recurrente (como por ejemplo, cada semana o cada mes).

Como he mencionado al principio, desde la API podemos hacer llamadas a nuestros proyectos de Site Audit de SEMrush, con lo cual sería posible una vez al mes, o a la semana, “recuperar” los datos del último rastreo y llevarlos a un informe completo en una hoja de Google Sheets, que luego podrías pasar a Data Studio. Como se suele decir en este tipo de posts, las posibilidades son infinitas.

Ahora, ¿cómo poner en marcha este proceso si no sabemos programar? Los que no sabemos programar más allá de lo básico (yo estoy en ello pero por ahora no paso de noob) tenemos unos aliados de primera: las herramientas de automatización tipo Zapier, Integromat, etc.

Enseñar cómo funcionan estos servicios se sale de los límites de este post, pero básicamente en todos ellos partimos de un trigger o disparador (recibir un email, actualizar una hoja de cálculo) que pone en marcha un proceso con una serie de servicios conectados.

Por ejemplo, podemos definir un flujo en el que a partir de la recepción de un email creamos un nuevo documento de Sheets con una serie de llamadas a la API de SEMrush, donde el dominio del lead (especificado en el email) es la variable que determina qué dominio vamos a examinar con la API.

Esto implica que en la columna A de la nueva fila que añades cada vez que se ejecuta el escenario, debes tener preparada una fórmula del tipo de las que vimos en el apartado anterior, con una variable que será el dominio a analizar.

Así sería a grandes rasgos un escenario preparado en Integromat para automatizar el proceso que acabo de describir:

integromat api semrush gmail y google sheets

Con sólo un email como desencadenante y sin necesidad de hacer nada manualmente, estoy investigando 4 dimensiones de un dominio (su información básica según SEMrush, sus competidores, sus keywords posicionadas y sus backlinks) y colocando los datos en otras tantas hojas de Google Sheets. Y cuando se ha hecho todo (en unos pocos segundos) me llega un email con el enlace a la hoja de cálculo. Viva la automatización.

Conectores de Data Studio de SEMrush: qué se puede hacer con ellos y cómo usarlos

Bien, vamos a Data Studio. Como quizá sabréis ya por este post, por este webinar o por mi presentación en el SEonthebeach 2019, Data Studio es una herramienta gratuita y muy potente para visualizar y analizar datos y también para automatizar el reporting de una agencia SEO o de marketing digital.

Realmente, todo lo que hemos hecho hasta ahora con Google Sheets se puede llevar a Data Studio (mediante el conector de Google Sheets), para darle luego a los datos el método de visualización que queramos.

Pero si tenemos acceso al plan Business de SEMrush, podemos usar un atajo, mediante uno de los dos conectores oficiales de SEMrush para Data Studio.

El primer conector (Domain Analytics Connector) sirve para hacer consultas sobre cualquier dominio que esté incluido en la base de datos de SEMrush. Sería parecido a usar la Analytics API, aunque está limitado a información sobre dominios. No hay acceso directo a info sobre keywords o backlinks, por ejemplo.

El segundo conector (Position Tracking Connector) sirve para traer datos de nuestros proyectos en los que estemos trackeando posiciones orgánicas de un dominio. Sería por tanto parecido a la Projects API, pero no puede pasar datos de proyectos de auditorías, sólo de trackeo de keywords.

Cómo conectarte a SEMrush en Data Studio

El primer paso es escoger uno de los dos conectores. Esto se hace desde la galería de conectores, a la que accedes por defecto cada vez que creas una nueva fuente de datos en un informe de Data Studio.

Se te pedirá que te conectes a tu cuenta de SEMrush y que apruebes la conexión con Data Studio. Importante: si no tienes una cuenta SEMrush Business, el conector no funcionará.

A continuación, tendrás una primera pantalla en la que deberás elegir el tipo de consulta que vas a hacer a la base de datos (Visión general del dominio, Palabras Clave orgánicas o Palabras clave de pago para el conector de Domain Analytics), tu dominio y si quieres analizar la raíz o un subdominio:

pasted image 0 1

Tendrás que seleccionar después los campos que quieres conectar a Data Studio. En este paso puedes conectarlos todos, sólo algunos, o crear tus propios campos personalizados:

pasted image 0

Hecho esto, ya tendrás los datos del conector elegido como una fuente de datos activa en tu informe de Data Studio, y podrás visualizarla a tu gusto, ya sea por sí sola o combinadas con otras fuentes presentes en el estudio (datos de Search Console, un rastreo de Screaming Frog, etc.)

Si tienes dudas o quieres consultar los métodos disponibles con cada conector, aquí tienes la documentación oficial de SEMrush sobre sus conectores (en inglés).

Limitaciones de los conectores y cómo integrar más datos de SEMrush en Data Studio

¿Son las limitaciones de los conectores oficiales de SEMrush algo inamovible? No, sólo quiere decir que si queremos integrar otars dimensiones o fuentes de datos, vamos a tener que hacer algo manual.

Ya se mediante la API y Google Sheets (o un CSV), como he explicado antes, o descargando manualmente de SEMrush la info que nos interesa y conectando luego el CSV a Data Studio.

Por ejemplo, así es como plasmo en Data Studio la información descargable en CSV del Backlink Audit de un dominio en SEMrush:

plantilla data studio seo off page semrush backlink audit

Conclusión

Es cierto que empezar a usar la API de SEMrush tiene un coste de entrada algo alto, pero si trabajas con el volumen suficiente de proyectos, como suele ser el caso en agencias, redes de sitios, etc. el tiempo que te ahorrarás trabajando de esta manera pronto justificará de sobra la inversión.

Como ves, sacarle todo el jugo a una API no es algo limitado a programadores. Con unas pocas herramientas, a disposición de cualquiera (Google Sheets, Zapier o Integromat, Data Studio), puedes hacer auténticas maravillas.

Y yo sólo te he enseñado la punta del iceberg. Tus necesidades y tu imaginación marcarán los límites de lo que puedes llegar a hacer con la bestialidad de datos que te brinda la API de SEMrush.

Suscríbete a mi newsletter semanal (a veces quincenal) ;)

* indicates required

Consentimiento (obligatorio)

El responsable de recoger y guardar estos datos que me das voluntariamente es un servidor, Juan González Villa, con la única finalidad de informarte con nuevos posts en mi blog, eventos profesionales y enviarte mi newsletter.

Tienes derecho a cancelar tu suscripción en cualquier momento y puedes ejercer tu derecho a rectificar o solicitar eliminación de tus datos, tal y como se recoge en la Política de Privacidad.

Utilizamos Mailchimp como nuestra plataforma de marketing. Al hacer clic a continuación para suscribirse, reconoces que tu información será transferida a Mailchimp para su procesamiento. Obtenga más información sobre las prácticas de privacidad de Mailchimp aquí.

4 comentarios en “Cómo usar la API y el conector a Data Studio de SEMrush”

  1. Hello Juan!

    No he probado aun el conector en data studio (tengo que ponerme y actualizar informes) pero antiguamente la formula transpose daba problemas a la hora de extraer datos de proyectos dados de alta dentro de semrush.

    Hace ya tiempo lo comenté en un articulo y lo solucioné así: https://es.semrush.com/blog/extraer-datos-json-api-semrush/

    Por si le quieres pegar un vistazo y tal.

    Quizá por aquí puedas tirar para automatizar esa parte manual que comentas.

    Espero que te sea útil para rascar los json de proyectos que dan más problemas =)

    Responder

Deja un comentario