En la presente entrada vamos a revisar como extraer la información de nuestra cuenta de Facebook con Power Query. Power Query es una utilidad proporcionada por Power BI  para obtener los datos históricos de nuestras cuentas de Facebook. En este capítulo vamos a crear un caso práctico que nos ayudará a aprender de Power Query y Power BI y además nos dará métodos para utilizar self-service BI basado los datos de Facebook.

Introducción.-

Durante el presente fin de semana he investigado las formas de obtener la historia detrás de los datos de Facebook usando Power Query. Power Query puede conectar a muchos data sources (orígenes de datos), en este sentido Facebook es uno de los data sources disponibles que Power Query puede utilizar.

Power Query.-

Power Query es un Microsoft Data Connectivity y una tencnología de Data Preparation que ayuda a los usuarios de negocio a conectarse a datos guardados en cientos de data sources (orígenes de datos), sin tener que escribir ninguna línea de código y sin poseer experiencia en programación.

Soporta tanto conectores para servicios Microsoft Azure y muchos otros conectores para servicios online de terceros. Power Query proporciona también, Custom Connectors SDK de tal forma que terceros puedan crear sus propios conectores dentro del ámbito de Power Query.

A continuación dejo abajo algunos enlaces para aprender más sobre Power Query:

https://docs.microsoft.com/en-us/power-query/power-query-what-is-power-query

https://docs.microsoft.com/en-us/power-query/power-query-quickstart-using-power-bi

También, Microsoft dispone de un add-in para Excel el cual se puede instalar y nos proporciona una experiencia de Business Intelligence self-service en Excel.

Este add-in se puede bajar de:

http://www.microsoft.com/en-us/download/details.aspx?id=39379

Más info sobre Power View, Power Map, Power BI y Q&A del sitio oficial de Microsoft Power BI aquí:

https://docs.microsoft.com/en-us/power-bi/power-bi-overview

Empezamos, vamos a obtener los datos históricos de nuestra historia de Facebook.-

Lo primero que hacemos es bajarnos de la web de powerbi.com la aplicación PowerBI Desktop que es gratis. Una vez instalada vamos a Get Data después More y pulsamos en Online Services, aquí podremos ver la opción de Facebook si hacemos scroll.

Power BI Facebook

Hacemos click en Facebook para empezar nuestro análisis.

Se puede utilizar el editor de Power Query dentro del Power BI Desktop abriéndose un editor de Power Query como se muestra más abajo.

Power Query Editor
Power Query Editor

En este punto vamos a New Source Tab -> Online Sevice -> Facebook que nos abrirá una nueva ventana la cual nos pedirá las credenciales Facebook. Una vez que nos logamos en nuestra cuenta de Facebook podemos acceder a los datos de likes, comentarios, amigos, etc.

Conectar a nuestra cuenta de Facebook con Power BI
Conexión a Facebook, hay que poner Me en lugar de tu usuario.

En la pantalla que sale hay que poner Me y seleccionar el tipo de información que queremos importar. En mi caso voy a utilizar el Feed de Facebook para ver todo el contenido de mi cuenta.

Feed de Facebook

Una vez que haces click en cargar, se cargarán los datos con el nombre de Query1 los cuales se pueden renombrar.

Cargados los datos puedes renombrar la query llamada Query1 por el nombre Facebook Feed, con el botón derecho del ratón. Ahora con el editor Avanzado se puede ver la forma en que se cargan los datos dentro del archivo de Power BI. La forma en que se han cargado es con Lenguaje M o Power Query.

El código en Lenguaje M se muestra a continuación. En este caso estamos utilizando el API Facebook Graph v2.8.

Facebook Graph API

El API Graph es la forma de conseguir los datos de Facebook o guardar datos dentro de la plataforma de Facebook. Es una librería HTTP a través de la cual se pueden consultar datos, postear nuevas historias, administrar publicidad, subir fotos y realizar una gran variedad de tareas diferentes dentro de Facebook.

Aquí dejo un enlace donde se puede aprender mucho sobre la librería Graph de Facebook.

https://developers.facebook.com/docs/graph-api/overview

Adicionalmente, podemos editar la consulta dentro de Power Query y modificarla para crear nuestrsa propia consulta dentro de Facebook,por ejemplo, podemos seleccionar un año en particular en este caso vamos a hacer el análisis sobre el año 2019 de los datos de Facebook.

Para nuestro informe voy a utilizar todo el rango de datos para tener más datos. Al hacer click en Close and Apply, los datos se cargan en nuestro informe para empezar a hacer el análisis de los mismos.

Nos aparece una pantalla hasta que se apliquen los datos al informe que por ahora está en blanco.

Power Query Análisis 1

A continuación, vasmos a analizar los datos de Facebook del apartado de Feed, para ello primero cambiamos el tipo del dato del campo «created_time» a tipo DateTime.

Seguidamente, creamos un gráfico Stacked Column de la sección de Visualización de la derecha del panel de Power BI y un gráfico de líneas. El campo «created_time» se pone en el eje de las x, Axis y el campo «id» se pone en Value. Automáticamente, la medida que se crea al introducir el camp «id» en Value será un «COUNT», en ambos casos.

Como se puede observar, los gráficos muestran el número de Feeds que se han publicado año por año en Facebook, se puede ver que he utilizado Facebook con más asiduidad en los años 2018 y 2019.

De la misma forma, podemos añadir una tabla en la que se muestren los mensajes que se han publicado en mi cuenta con todo el detalle de los mismos.

Recolocando un poco el informe terminamos el primer análisis.

Pasamos al siguiente tipo de análisis.

Power Query Analysis 2

Tracking de Fotos de Facebook por Localización

Vamos a analizar ahora las fotos que se han hecho en un país o ciudad que he visitado y que he subido a Facebook. Para hacer esto necesitas añadir un nuevo data feed y crear una nueva pestaña dentro de Power BI.

Repite lo mismo que hicimos al principìo del artículo para conectarnos a los datos de mi cuenta de Facebook, pero en este caso hay que seleccionar el apartado de Posts del desplegable.

A continuación, seleccionamos una query en blanco de la lista desplegable Get Data, nos abrirá una query llamada Query1, seguidamente pulsamos en el editor avanzado. Dentro del Editor avanzado podemos empezar a crear nuestra Query para hacer un tracking de las Photos por ubicación de Facebook, en mi caso utilizaré la siguiente consulta en Lenguaje M.

Esta es la consulta creada.

let
Source = Facebook.Graph(«https://graph.facebook.com/v2.8/me/posts?fields=place,message,story,status_type,created_time,id,permalink_url,picture&with=location»),
#»Expanded place» = Table.ExpandRecordColumn(Source,»place»,{«location»},{«place.location»}),
#»Expanded place.location» = Table.ExpandRecordColumn(#»Expanded place»,»place.location»,{«city»,»country»,»latitude»,»longitude»,»street»,»zip»,»located_in»}
,{«place.location.city»,»place.location.country»,»place.location.latitude»,»place.location.longitude»,»place.location.street»
,»place.location.zip»,»place.location.located_in»}
),
#»Changed Type» = Table.TransformColumnTypes(#»Expanded place.location»,{{«place.location.latitude»,type number},{«place.location.longitude», type number},{«created_time», type datetime}}),
#»Filtered Rows» = Table.SelectRows(#»Changed Type»,each true)

in
#»Filtered Rows»

Renombramos la consulta Query1 a Facebook Photos by Location.

Ahora tenemos que cambiar el tipo de los siguientes campos para que se puedan renderizar las imágenes, los campos de Geo-Localización, etc. En la tab Modeling seleccionamos el tipo correcto de cada uno de los siguientes campos:

Field Data Category

picture Image URL

permalink_url Web URL

city City

country Country/Region

latitude Latitude

longitude Longitude

En el siguiente paso vamos a utilizar una visualización de mapa de ArcGIS, en la cual vamos a utilizar Size el campo Picture (COUNT of) el campo place.location.city en Location y en Color ponemos el camp place.location.country.

Otro tipo de visualización que podemos utilizar es una matriz con las imágenes de las fotos de Facebook, en este caso el campo que se utilizamos es el campo «Picture» en columnas y el campo «place.location.city» en Values, la Matrix renderiza las imágenes o fotos que tenemos en nuestra cuenta de Facebook.

Así podemos seguir la pista de nuestras fotos de Facebook y saber en que parte del mundo nos la hicimos.

El resultado final puede ser este.

Este artículo es muy útil, además se puede utilizar en otro tipo de cuadros de mando que necesiten renderizar imágenes o latitudes y longitudes.

En el siguiente enlace os podéis descargar el pequeño cuadro de mando que he utilizado para explicar el artículo.