Full text
1
2
3 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA GRADO EN INGENIERIA INFORMATICA SISTEMA PARA LA GESTION DE MARKETING DIGITAL SYSTEM FOR MANAGING DIGITAL MARKETING Realizado por Jose Miguel Torres Maldonado Tutorizado por Francisco López Valverde Departamento Lenguajes y Ciencias de la Computación UNIVERSIDAD DE MÁLAGA MÁLAGA, SEPTIEMBRE 2016 Fecha defensa: El Secretario del Tribunal
4
Resumen: El gran auge del Internet, ha dado lugar a que las empresas lleven sus campañas publicitarias al mundo virtual, por lo que ahora se hace necesario tener herramientas y servicios para controlar todo lo que ocurre con el marketing digital, es esto lo que da sentido a este trabajo, la creacion de una aplicación capaz de obtener tus datos de publicidad online, tratarlos y presentarlos al usuario de una forma que sea accesible y transparente, para que este tome decisiones apoyandose en ellos. Hoy en dia, cualquier empresa de cierto tamaño ya usa servicios de marketing digital, como Google Adwords, por lo que esta herramienta tratará de facilitar el trabajo con este servicio, ya sea para crear una campaña publicitaria, como para modificarla si esta no esta logrando los resultados previstos, detenerla si se han cumplido los objetivos… , tambien incluyendo como funcionalidad extra la posibilidad de crear y ejecutar reglas automatizadas que mantengan el sistema de forma autonoma. Palabras claves: sistema de gestion,marketing digital,Google Adwords,aplicación web,aplicación de escritorio,JAVA,JAVA FX Abstract: The rise of Internet, has done companies bring their advertising campaign to the virtual world, so is necessary to have tools and servicies for control all things about marketing digital now, that situation is the mean of this project, the creation of an application to get, edit and show your marketing data easily. That way an user could make a decissions suport by the data obtained. Nowadays, some company use digital marketing services like Google Adwords, so this tool will try to facilitate that work with that service. For example creating a campaign, edit a campaign due to that is not achieve the objectives, stop it if the goal is accomplished…etc, Also this application include the posibility of creating and executing automatic rules that are keep the system. Keywords: System for managing digital marketing, manage, Google Adwords,web application, desktop application,JAVA,JAVA FX 5
6
7 Índice General Índice de contenidos ..................................................................................... 9 Capítulo 1. Introducción .............................................................................. 11 1.1 Introducción ..................................................................................... 11 1.2 Motivación ....................................................................................... 11 1.3 Estructura de la memoria................................................................. 12 1.4 Objetivo ........................................................................................... 12 Capítulo 2. Antecedentes y estado actual del sistema. ............................ 13 2.1 Marketing digital .............................................................................. 13 2.2 Servicios de Anuncios PPC ............................................................. 13 2.3 Google Adwords .............................................................................. 13 Capítulo 3. Especificación de Requisitos. ................................................. 14 3.1 Requisitos Funcionales ................................................................... 14 3.1.1 Actores .................................................................................................... 14 3.1.2 Casos de uso .......................................................................................... 15 3.1.2.1 Descripción de los casos de uso ........................................................ 17 3.2 Requisitos no funcionales ................................................................ 19 3.2.1 Interfaz .................................................................................................... 19 3.2.2 Rendimiento ............................................................................................ 19 3.2.3 Fiabilidad, seguridad ............................................................................... 19 3.2.4 Usabilidad ............................................................................................... 19 3.3 Restricciones ................................................................................... 19 3.3.1 Para aplicación Web ................................................................................... 19 3.3.2 Para aplicación local ................................................................................... 20 Capítulo 4. Arquitectura de la aplicación. .................................................. 21 4.1 Patrón Arquitectónico utilizado ........................................................ 21 4.1.1 Ventajas del MVC ................................................................................... 21 4.1.2 MVC Programación Web ........................................................................ 22 4.1.2 MVC Programación Local ....................................................................... 23 4.2 Cambio obligado de diseño ............................................................. 24 Capítulo 5. Sistema de Gestión de Marketing digital ................................ 27 5.1 Fases de desarrollo de mi aplicación ................................................... 27 5.1.1 Creación de la Base de Datos .................................................................... 27
8 5.1.2 Creación de las ventanas de interacción con el usuario ......................... 29 5.1.3 Ejecución de Reglas ............................................................................... 41 Capítulo 6. Caso Práctico ............................................................................ 42 6.1 Crear un cliente .................................................................................... 42 6.2 Crear una Campaña ............................................................................. 44 6.3 Crear un Grupo de Anuncios ................................................................ 45 6.4 Crear Anuncios ..................................................................................... 46 6.5 Crear Palabras Claves ......................................................................... 47 6.6 Comprobación en Adwords .................................................................. 49 6.7 Crear una Regla ................................................................................... 51 6.8 Ejecución de la Regla ........................................................................... 52 Capítulo 7. Conclusión ................................................................................ 54 7.1 Conclusiones e Inconvenientes ............................................................ 54 7.2 Conclusion and Issues ......................................................................... 55 Bibliografía ................................................................................................... 56 Anexos Técnicos ......................................................................................... 57 1 Inicializador de la Base de Datos ........................................................ 57 2 Base de Datos - Ampliada .................................................................. 58
9 Índice de contenidos Figura 1. Logos de diferentes servicios PPC ................................................. 13 Tabla 1.1. Casos de Uso Manager. ............................................................... 15 Tabla 1.2. Casos de Uso Cliente. .................................................................. 16 Tabla 2. Caso de uso de la creación de una cuenta ...................................... 17 Tabla 3. Caso de uso de listado de cuentas .................................................. 17 Tabla 4. Caso de uso del listado de Reglas ................................................... 17 Tabla 5. Caso de uso del listado de Campañas ............................................. 17 Tabla 6. Caso de uso de Crear Campaña ...................................................... 17 Tabla 7. Caso de uso de Editar Campaña ..................................................... 18 Tabla 8. Caso de uso de Crear Grupo ........................................................... 18 Tabla 9. Caso de uso de Editar Grupo ........................................................... 18 Tabla 10. Caso de uso de Crear Anuncio ...................................................... 18 Tabla 11. Caso de uso de Editar Anuncio ...................................................... 18 Figura 2. Logos de herramientas necesarias ................................................. 19 Figura 3. Logos de herramientas necesarias ................................................. 20 Figura 4. Esquema de MVC ........................................................................... 21 Figura 5. Ciclo del MVC ................................................................................. 21 Figura 6. Estructura Web ............................................................................... 22 Figura 7. Estructura Local .............................................................................. 23 Figura 8. Esquema de BBDD ......................................................................... 27 Tabla 12. Listado de Tablas y su función ....................................................... 28 Figura 9. Ventana de inicio de sesión ............................................................ 29 Figura 10. Ventana de confirmación para comenzar la descarga de Datos ... 29 Tabla 13. Pseudocodigo del Ejecutador ........................................................ 41
16 Cliente Tabla 2.2. Casos de Uso Cliente.
17 3.1.2.1 Descripción de los casos de uso Nombre Creación de una cuenta Cliente Objetivo Llevar a cabo la creación de una cuenta cliente en el sistema Actores Manager Descripción El Manager comenzará con la introducción de los datos en el sistema del futuro cliente Post-Condición El Cliente ya puede comenzar a usar su cuenta en el sistema, sin necesidad de tener que recordar su Google ID. Tabla 3. Caso de uso de la creación de una cuenta Nombre Listado de Cuentas Objetivo Ver todas las cuentas que hay en el sistema Actores Manager Descripción El Manager podrá ver todas las cuentas que hay en su sistema Post-Condición Se ha de visualizar todas las cuentas que hay y sus respectivos Google ID Tabla 4. Caso de uso de listado de cuentas Nombre Listado de Reglas Objetivo Ver todas las reglas que hay en el sistema Actores Manager Descripción El Manager podrá ver todas las reglas automatizadas creadas por los clientes que hay en su sistema Post-Condición Se ha de visualizar todas las reglas que hay Tabla 4. Caso de uso del listado de Reglas Nombre Listado de Campañas Objetivo Ver todas las campañas que hay en el sistema Actores Manager Descripción El Manager podrá ver todas las campañas creadas y cuál ha sido el cliente que lo hizo Post-Condición Se ha de visualizar todas las campañas que hay Tabla 5. Caso de uso del listado de Campañas Nombre Creación de una Campaña Objetivo Llevar a cabo la creación de una campaña en el sistema Actores Cliente Descripción El Cliente comenzará con la introducción de los datos en el sistema de la futura campaña publicitaria Post-Condición El Cliente ya puede ver su campaña creada en el sistema Tabla 6. Caso de uso de Crear Campaña
18 Nombre Edición de una Campaña Objetivo Llevar a cabo la edición de una campaña en el sistema Actores Cliente Descripción El Cliente comenzará con la introducción de los datos que se deseen modificar en el sistema para la campaña seleccionada Post-Condición El Cliente ya puede ver su campaña actualizada en el sistema Tabla 7. Caso de uso de Editar Campaña Nombre Creación de un Grupo de Anuncios Objetivo Llevar a cabo la creación de un grupo de anuncios en el sistema Actores Cliente Descripción El Cliente comenzará con la introducción de los datos en el sistema del futuro grupo de anuncios Post-Condición El Cliente ya puede ver su grupo creado en el sistema Tabla 8. Caso de uso de Crear Grupo Nombre Edición de un Grupo de Anuncios Objetivo Llevar a cabo la edición de un grupo de anuncios en el sistema Actores Cliente Descripción El Cliente comenzará con la introducción de los datos que se deseen modificar en el sistema para el grupo seleccionado Post-Condición El Cliente ya puede ver su grupo actualizado en el sistema Tabla 9. Caso de uso de Editar Grupo Nombre Creación de un Anuncio Objetivo Llevar a cabo la creación de un anuncio en el sistema Actores Cliente Descripción El Cliente comenzará con la introducción de los datos en el sistema del futuro anuncio Post-Condición El Cliente ya puede ver su anuncio creado en el sistema Tabla 10. Caso de uso de Crear Anuncio Nombre Edición de un Anuncio Objetivo Llevar a cabo la edición de un anuncio en el sistema Actores Cliente Descripción El Cliente comenzará con la introducción de los datos que se deseen modificar en el sistema para el anuncio seleccionado Post-Condición El Cliente ya puede ver su anuncio actualizado en el sistema Tabla 11. Caso de uso de Editar Anuncio
19 3.2 Requisitos no funcionales Estos requisitos como serán las características técnicas que tendrá el sistema. 3.2.1 Interfaz Ha de ser una interfaz sencilla de manera que se puedan visualizar bien los módulos de la aplicación con imágenes y colores agradables a la vista, con un tamaño correcto para la visualización, siempre teniendo en cuenta que los datos se vean de la forma más clara posible. 3.2.2 Rendimiento Ha de tener un tiempo rápido de respuesta para todas las funcionalidades como lo son la creación de los clientes, la creación y la gestión de campañas… Se hará todo lo posible para garantizar la optimización de la aplicación para que los tiempos de respuesta sean lo más corto posible. 3.2.3 Fiabilidad, seguridad El sistema ha de asegurar que no se compromete ningún dato en la transmisión de estos entre la fuente Adwords y la base de datos de la aplicación. 3.2.4 Usabilidad El sistema tendrá que ser flexible y débilmente acoplada para garantizar su crecimiento, por si fuera necesario añadir nuevos requerimientos en un futuro. 3.3 Restricciones 3.3.1 Para aplicación Web Para poder ejecutar la aplicación son necesario lo siguiente: • Un servidor con Apache TomEE y MySQL para correr el servidor y la base de datos. • Netbeans, entorno IDE para el desarrollo en JAVA EE. • JAVA, lenguaje escogido para la creación del sistema y con el complemento EclipseLink. • API Adwords, con token de Desarrollador para poder realizar peticiones a los servidores de Google Figura 2. Logos de herramientas necesarias
20 3.3.2 Para aplicación local Para poder ejecutar la aplicación son necesario lo siguiente: • Un equipo con MySQL para la base de datos y JAVA para la ejecución del Ejecutor de reglas. • Netbeans, entorno IDE para el desarrollo en JAVA SE. • JAVA, lenguaje escogido para la creación del sistema y JAVA FX para la creación de la GUI, con los complementos PDFbox, EclipseLink y JAVA MAIL. • API Adwords, con token de Desarrollador para poder realizar peticiones a los servidores de Google Figura 3. Logos de herramientas necesarias
21 Capítulo 4. Arquitectura de la aplicación. La arquitectura con la que se ha enfocado el proyecto es Modelo-VistaControlador (MVC), enfocado de cierta forma según el caso de cada versión. 4.1 Patrón Arquitectónico utilizado Es un patrón de diseño software que se basa en la separación de los datos y la lógica de negocio de una aplicación, de la interfaz de usuario y de las clases encargadas de gestionar los eventos y las comunicaciones. Para ello se realiza la construcción de tres componentes distintos que son el modelo, la vista y el controlador, es decir por un lado se definen componentes para la representación de la información, y por otro lado para la interacción del usuario. Figura 4. Esquema de MVC Figura 5. Ciclo del MVC 4.1.1 Ventajas del MVC • Es posible tener diferentes vistas para un mismo modelo. • Es posible modificar las vistas o simplemente diseñar nuevas sin tener que modificar el modelo • Proporciona un mecanismo de configuración a componentes complejos mucho más tratable que el puramente basado en eventos
22 4.1.2 MVC Programación Web El código se ejecuta en el navegador del cliente, la aplicación debe mostrar los datos que están en el servidor en un contexto donde los usuarios puedan visualizarlos correctamente. La información sobre los eventos del usuario debe volver al servidor y reflejar los cambios. • Vista: La página HTML. • Controlador: Código que genera el contenido HTML y obtiene los datos dinámicamente. • Modelo: La información almacenada en una base de datos, junto con las reglas de negocio diseñadas para el tratado de esa información. Figura 6. Estructura Web Modelo Controlador Usuario Vista Cambia Usa Muestra Actualiza
23 4.1.2 MVC Programación Local El código se ejecuta en el ordenador del cliente, no tendríamos problemas debidos a los diferentes Sistemas Operativos disponibles ya que JAVA nos da la capacidad de ser una aplicación multiplataforma, que incluso dado el momento se podría cargar como applet para que actuara de “Aplicación Web”, la aplicación debe mostrar los datos que están en el servidor en un contexto donde los usuarios puedan visualizarlos correctamente. La información sobre los eventos del usuario debe volver al servidor y reflejar los cambios. • Vista: La interfaz gráfica desarrollada con JAVA FX. • Controlador: Código JAVA que modifica la interfaz y obtiene los datos dinámicamente. • Modelo: La información almacenada en una base de datos, junto con las reglas de negocio diseñadas para el tratado de esa información. Figura 7. Estructura Local Modelo Controlador Usuario Vista Cambia Usa Muestra Actualiza
24 4.2 Cambio obligado de diseño Este trabajo fin de grado tenía como objetivo el desarrollo de una aplicación web, pero debido a numerosos problemas que impedían avanzar en un tiempo razonable y después de haberlo tratado con mi tutor, decidí cambiar “el rumbo” hacia una aplicación local, cuyos cimientos y prioridades serán las mismas que las de la versión web que se tenía prevista diseñar. Ya desde un principio la documentación por parte de Google sobre sus diferentes APIs está organizada de una forma un poco caótica, pero es un mal menor comparado con el que me hizo tomar esta decisión. Luego los trámites necesarios para obtener un token de desarrollador y para configurar el resto de parámetros que son necesarios para poder realizar una llamada desde la API también son bastantes y muy liosos. De todas formas, conseguí superar todos estos escollos que de eso se trata un proyecto como este. Pero el problema surgió cuando la API de Adwords se ejecutaba en un servidor con capacidades de contenedor de JAVA como Glassfish, TomEE, Wildfly…, en todos daba un error irrecuperable que muy posiblemente se deba a un tema de incompatibilidades con las versiones de JAVA que cargan esos servicios con la API de Adwords, ya que las librerías se importaban correctamente, se compilaba y se desplegaba sin incidencias pero cuando se ejecutaba alguna línea que correspondiera con usar la API, automáticamente recibía una excepción, que después de mucho tiempo tratándola con mi tutor, con personal del departamento e incluso con el soporte técnico de Google, no dábamos con la solución, que a priori parecía ser problema de TomEE, pero daba el mismo fallo usáramos el contenedor que usáramos. Por este motivo me he visto obligado a cambiar el planteamiento inicial de una aplicación web a una aplicación de escritorio. A continuación, una captura del error que salía continuamente y que ha sido imposible de arreglar:
25
32 Listado de Campañas MCC CLIENTE A continuación, se detallan todas las acciones posibles dentro del apartado Campañas. Acción Descripción Captura Activar/Pausar Si seleccionas una campaña de la tabla inferior cambias su estado de ENABLED a PAUSED y viceversa. Eliminar Si seleccionas una campaña de la tabla habrás pedido la eliminación de tal campaña, tendrás que aceptar o cancelar en un cuadro de confirmación.
33 Nuevo Si pulsas abrirás una nueva ventana, donde introducirás los datos necesarios. Editar Si seleccionas una campaña de la tabla inferior, accederás a una ventana donde podrás editar ciertos aspectos. Actualizar Se actualizarán todas las vistas de la aplicación con los nuevos datos y modificaciones realizadas Este botón es común a todas las vistas, una vez que lo pulses tendrás que actuar como en el Inicio de sesión solo pulsar Entendido y esperar con calma. Listado de Grupo de Anuncios MCC CLIENTE A continuación, se detallan todas las acciones posibles dentro del apartado Grupo de Anuncios. Acción Descripción Captura
34 Activar/Pausar Si seleccionas un grupo de Anuncios de la tabla inferior cambias su estado de ENABLED a PAUSED y viceversa. Eliminar Si seleccionas un grupo de Anuncios de la tabla habrás solicitado su eliminación, tendrás que aceptar o cancelar en un cuadro de confirmación. Nuevo Si pulsas abrirás una nueva ventana, donde introducirás los datos necesarios. Editar Si seleccionas un grupo de la tabla inferior, entraras en una ventana donde podrás editar ciertos aspectos. Actualizar Se actualizarán todas las vistas de la aplicación con los nuevos datos y modificaciones realizadas Este botón es común a todas las vistas, una vez que lo pulses tendrás que actuar como en el Inicio de sesión solo pulsar Entendido y esperar con calma.
35 Listado de Anuncios MCC CLIENTE Como se puede observar en las capturas anteriores, existe una opción para ver anuncios deshabilitados, ya que en este apartado no es posible la eliminacion de estos. A continuación, se detallan todas las acciones posibles dentro del apartado Anuncios. Acción Descripción Captura Activar/Pausar Si seleccionas un Anuncio de la tabla inferior cambias su estado de ENABLED a PAUSED y viceversa. Deshabilitar Si seleccionas un Anuncio de la tabla habrás solicitado su deshabilitacion3, tendrás que aceptar o cancelar en un cuadro de confirmación. Nuevo Si lo pulsas entraras en una nueva ventana, donde introducirás los datos necesarios. 3 Se procede a su deshabilitacion, ya que con Anuncios no se puede realizar su eliminado del sistema
36 Ver Si seleccionas un elemento de la tabla inferior, entraras en una ventana donde verlo en detalle. Actualizar Se actualizarán todas las vistas de la aplicación con los nuevos datos y modificaciones realizadas Este botón es común a todas las vistas, una vez que lo pulses tendrás que actuar como en el Inicio de sesión solo pulsar Entendido y esperar con calma. Listado de Palabras Claves MCC CLIENTE
37 A continuación, se detallan todas las acciones posibles dentro del apartado Palabras Claves. Acción Descripción Captura Activar/Pausar Si seleccionas una Palabra de la tabla inferior cambias su estado de ENABLED a PAUSED y viceversa. Eliminar Si seleccionas una Palabra de la tabla habrás solicitado su eliminación, tendrás que aceptar o cancelar en un cuadro de confirmación. Nuevo Si lo pulsas entraras en una nueva ventana, donde introducirás los datos necesarios. Actualizar Se actualizarán todas las vistas de la aplicación con los nuevos datos y modificaciones realizadas Este botón es común a todas las vistas, una vez que lo pulses tendrás que actuar como en el Inicio de sesión solo pulsar Entendido y esperar con calma.
38 Listado de Reglas MCC CLIENTE A continuación, se detallan todas las acciones posibles dentro del apartado Reglas. Acción Descripción Captura Histórico Exclusivo MCC Se abrirá una ventana donde podremos ver, por fecha o todo el Log creado por el Ejecutor. Activar/Pausar Si seleccionas una Regla de la tabla inferior cambias su estado de ENABLED a PAUSED y viceversa.
39 Eliminar Si seleccionas una Regla de la tabla habrás solicitado su borrado, tendrás que aceptar o cancelar en un cuadro de confirmación. Nuevo 1. Si lo pulsas entraras en una nueva ventana, donde seleccionaras el tipo de regla que quieres crear. 2. Una vez seleccionado pasaras a una ventana donde introducirás los datos necesarios Ver Si seleccionas un elemento de la tabla inferior, entraras en una ventana donde verlo en detalle. Actualizar Se actualizarán todas las vistas de la aplicación con los nuevos datos y modificaciones realizadas Este botón es común a todas las vistas, una vez que lo pulses tendrás que actuar como en el Inicio de sesión solo pulsar Entendido y esperar con calma.
40 Ver Perfil Pulsando en el Botón que está al lado de nuestro nombre se abre esta ventana MCC CLIENTE Cerrar Sesión Pulsando en el Botón con una Puerta que está al lado de nuestro nombre se procede a cerrar la sesión
41 5.1.3 Ejecución de Reglas Para la ejecución de las Reglas, se ha creado un programa independiente que estará en modo daemon, por lo cual siempre estará en ejecución. Su función será cada hora en punto empezará a revisar las reglas existentes en el sistema, a comprobar si se satisfacen los requisitos de este si existen, si se cumplen la regla ejecutara los cambios programados sobre el o los objetos seleccionados. A continuación, un pseudocodigo del Ejecutor de reglas: Mientras(Verdadero) { Si (hora==XX:00) { Por cada Regla r { Si (r esta activada y r.fecha==fecha y r.hora==hora){ Para Objeto o de r { Si (r.Condiciones existen) { Si ComprobarCondiciones(o,r) { Ejecutar r; EscribirAuditoria(o,r,Si); } Si no { EscribirAuditoria(o,r,No); } } Si no { Ejecutar r; EscribirAuditoria(o,r,Si); } } } } Esperar (); } } Tabla 13. Pseudocodigo del Ejecutador
48 Aceptamos y actualizamos como siempre.
49 6.6 Comprobación en Adwords Después de todo este camino, podemos comprobar el correcto funcionamiento de la aplicación si accedemos al sitio web de Google Adwords y vemos que todo se ha creado y funciona correctamente. Clientes Campañas Grupo de Anuncios
50 Anuncios Palabras Claves
51 6.7 Crear una Regla Esta aplicación contiene como funcionalidad extra la posibilidad de crear reglas para una ejecución automatizada, en este apartado vamos a crear una regla que detenga nuestra campaña de captación de abonados cuando hallamos superados los 40.000 clics. Pestaña Reglas Nuevo. Se nos pedirá seleccionar el tipo de regla que queremos crear, en este caso “Detener campañas”. Como nuestro cliente espera tener mucho éxito ha decido que paremos la campaña si el día 19 de septiembre superamos el objetivo marcado, así que programamos una regla para ese día.
52 Pulsamos en Crear y actualizamos como siempre. 6.8 Ejecución de la Regla En este momento todo queda en manos del Ejecutor que estará en constante ejecución en el servidor. Salida del Ejecutor llegado el día, y con una cantidad de clics en la campaña de 41500, por lo que hemos cumplido el requisito.
53 Si miramos el estado de la campaña, podemos ver que efectivamente se ha cambiado el estado a PAUSED. Además, si accedemos como MCC, podemos ver un histórico creado por el Ejecutor4 4 El día no coincide con el 19/9/2016, al estar ejecutándose bajo un entorno de pruebas
54 Capítulo 7. Conclusión 7.1 Conclusiones e Inconvenientes El objetivo inicial de este trabajo de fin de grado era la creación de un Sistema para la gestión de Marketing Digital, en el que los usuarios que tuvieran que trabajar con Adwords, lo pudieran hacer de una forma más accesible, para lograr esto se pretendía la creación de una aplicación Web, pero que no ha sido posible debido a la cantidad de problemas generados por las librerías de Google, que siendo claros, lo hacen bien para que te veas obligados a usar su interfaz en lugar de una externa, además tal y como ellos indican en la primera parte de sus manuales: “Solo intente trabajar con la API de Adwords, si tiene usted un equipo de Ingeniería para dedicarse exclusivamente a ello” Por lo que tal y como se indicaba en el Capítulo 4 de esta memoria, el objetivo final tuvo que virar hacia una aplicación de escritorio. La creación de la aplicación ha sido satisfactoria, ya que he podido aplicar mi cierta experiencia en JPA, además de empezar a conocer la API de Adwords, digo empezar porque está en constante cambio y evolución, que aparte de que es gigantesca, te obligan a realizar cambios en la aplicación diariamente, también el primer contacto con algo como JAVA FX destinado a sustituir el Swing que utilizamos y que ciertamente había utilizado. Como líneas futuras se puede entrever que la aplicación puede ser muy ampliable, hasta llegar a contener todas y cada una de las opciones tantas como Google nos da, siempre respetando el principio de accesibilidad, que cualquiera sea capaz de usarla y que no se sienta abrumado. También la ampliación de las reglas de tal forma que el sistema puede mantenerse por sí solo por las reglas implementadas por los usuarios o apoyándose en un sistema de Inteligencia Artificial para tomar las decisiones.
55 7.2 Conclusion and Issues The initial objective of this project was the creation of a System for managing Digital Marketing, where users could work with Adwords in a more accessible way, to get this goal, we pretended to create a web application, but it has not been possible due to the problems generated by Google libraries, so you are bound to use their tools instead of your own custom tools. In the beginning of the Google’s manuals, they say: “You only try to work with our Adwords’ API, if you have an engineer team to do it” So, how I said in the Chapter 4 of this memoir, the final goal was changed to a desktop application. Creating this application has been satisfying, because I applied my experience with JPA, besides I started to know Adwords and its API, although that is changing and evolving continually, apart from this interface is quite huge, that situation makes you must change your application everyday, also I have a first contact with JAVA FX which is intended to replace Swing to do a GUI. For the future, we can see this application can be extended to contain with all options like Google’s web interface, respecting the principle of accessibility. Extending the rules to create a system that will be a self-contained, support by an Artificial Intelligent to making decisions too.
56 Bibliografía • API de Adwords https://developers.google.com/adwords/api/docs/guides/start • Report Types of Adwords https://developers.google.com/adwords/api/docs/appendix/reports • API de JAVA FX https://docs.oracle.com/javafx/2/api/ • API de PDFbox https://pdfbox.apache.org/docs/2.0.0/javadocs/ • API de JAVA 8 https://docs.oracle.com/javase/8/docs/api/ • API de EclipseLink http://www.eclipse.org/eclipselink/api/2.6/index.html • Ejemplo de JAVA MAIL vía GSMTP http://crunchify.com/java-mailapi-example-send-an-email-via-gmail-smtp/
57 Anexos Técnicos 1 Inicializador de la Base de Datos La aplicación para comenzar a funcionar necesita que por lo menos los datos del MCC estén en la base de datos desde el principio, por lo que se ha creado un programa aparte cuya única finalidad es crear las tablas y rellenar la tabla manager. public class IniciarBD { public static void main(String[] args){ EntityManagerFactory emf = createEntityManagerFactory("tfg-FXPU"); EntityManager em = emf.createEntityManager(); EntityTransaction tx=em.getTransaction(); Manager m=new Manager(); m.setNOMBRE("JOSE"); m.setAPELLIDO1("TORRES"); m.setEMAIL("[email protected]"); m.setMCC_id("232-124-0484"); m.setPASSWORD("123456"); m.setDIRECCION("Campus Teatinos S/N"); m.setTELEFONO("123456789"); m.setId_manager(Long.MAX_VALUE); tx.begin(); em.merge(m); tx.commit(); em.close(); emf.close(); } }