Hace poco me puse con una tarea que tenía pendiente desde el verano: automatizar la descarga de informes del iTunes Connect.
El 30 de Agosto, en el Apple Developer Connection (en el iOS Developer News también) publicaron esto: Automatically Download iTunes Connect Reports. Lo que nos contaban ahí es que habían desarrollado una nueva herramienta para poder descargar los informes de ventas del iTunes Connect sin tener que acceder a dicho portal. Esto está muy bien, primero porque la descarga de varios informes es bastante tediosa, segundo porque es normal que no te acuerdes de entrar a descargarlos y puedes automatizar la descarga y tercero porque las herramientas para el seguimiento de las ventas brillan por su ausencia así que si empiezan a hacer alguna es una buena señal.
A los cuatro días ya podía encontrarse en la web este enlace: A Bash script to download all available reports using Apple's ‘Auto-Ingest’ Tool for iTunes Connect Sales & Trends Reports
Voy a insistir un poco más en la importancia de la planificación de estas descargas: tanto con esta herramienta como desde el portal solo puedes descargarte los últimos 14 informes diarios y los últimos 13 informes semanales (de ventas, no los que echan en la primera de TVE los sábados por la noche). Si planificas una tarea de descarga diaria, mal se tiene que dar para que al menos una vez en 14 días tu Mac no esté encendido a la/s hora/s planificada/s. En el enlace de iPad DevZone nos mostraban un Bash script para ejecutar la descarga, con comprobación de existencia de fichero descargado para no repetir además de los pasos a seguir para planificar este script correctamente.
Lo que escribo a continuación es, básicamente, la traducción del contenido de ese post con alguna aclaración más para los que no tengan ni idea de lo que es un script bash ni de como se planifica (yo era uno de esos hasta hace quince días).
1.- Creamos un directorio para nuestros scripts, por ejemplo: ~/bin/itc (para los no familiarizados con esta notación esto es crear una carpeta que se llame "bin" dentro de nuestra carpeta de usuario que, a su vez, contenga otra carpeta llamada "itc")
2.- Con nuestro editor de texto favorito (yo lo hice con TextWrangler) creamos un archivo llamado "downloaditcreportssh" y lo guardamos en la carpeta "itc" que hemos creado antes. A continuación copiamos uno de los scripts que están al final de este post, lo pegamos y modificamos los parámetros de la sección de "Configuration" con nuestros propios datos. USERNAME es nuestro usuario de acceso al iTC, USERPASSWD la contraseña, VENDORID el código de compañía y DIR_DEST el directorio donde vamos a descargar los informes. En mi caso particular, el directorio de descarga está dentro de la carpeta de DropBox que tengo en el Mac y así tengo el backup de los informes automatizado... ;-)
3.- En la misma carpeta donde dejamos este fichero, tenemos que tener la herramienta de descarga automática que no es otra cosa que una clase Java. Si no la has descargado todavía puedes hacerlo desde este enlace. Tendrás que tener Java instalado para poder utilizar esta herramienta. Los siguientes pasos ya hay que darlos en el Terminal.
4.- Si queremos ejecutar manualmente el script, escribimos en el terminal lo siguiente:
$ ~/bin/itc/download_itc_reports.sh
5.- Para planificarlo tendremos que usar otra herramienta escondida dentro del Terminal: Crontab
6.- Para editar las entradas de Crontab escribimos lo siguiente en el terminal:
$ crontab -e
7.- En una nueva linea en blanco (o en la primera si no tenemos nada) escribimos lo siguiente
0 13,14,16 * * * ~/bin/itc/download_itc_reports.sh
8.- Breve explicación sobre crontab. Cada registro consta de seis argumentos: minutos, horas, día del mes, mes, día de la semana y comando a ejecutar. Varios valores para el mismo argumento se separan por comas. El ejemplo se entiende como: "en el minuto cero de las 13, 14 y 16 horas de cualquier día, de cualquier mes y cualquier día de la semana ejecutar el comando ~/bin/itc/downloaditcreports.sh. Puedes encontrar más información de crontab en este enlace.
9.- Si ya hemos creado otro script (por ejemplo: uno para informes diarios y otro para los semanales) habría que incluir otra linea con la planificación deseada y el nombre del script.
10.- Una vez que hemos terminado de editar, guardamos y comprobamos nuestro trabajo escribiendo en el terminal:
$ crontab -l
11.- Y ya está, si el Mac está encendido a las horas planificadas se ejecutarán los scripts.
Los informes son ficheros planos que pueden ser importados a cualquier hoja de cálculo o base de datos que nos hayamos creado. Yo uso una aplicación que se llama AppStar Lite que permite importar estos informes y visualizarlos de una forma agradable.
Actualmente podemos descargarnos dos tipos de informe: Diarios y Semanales. A continuación hay un script para cada uno. Además, cada tipo de informe tiene dos subtipos: Summary y Opt-In. No tengo muy clara la diferencia entre los primeros y los segundos. Los scripts están escritos para descargar los Summary, para descargar los Opt-In simplemente habría que cambiar una palabra por la otra.
Script para descarga de informes diarios:
Script para descarga de informes semanales: