Proyecto realizado por el alumno/a:
Alfredo Barral Bello
Fdo.: ……………………………… Fecha: 1/9/2011
Autorizada la entrega del proyecto cuya información no es de carácter confidencial
EL DIRECTOR DEL PROYECTO
Eduardo Alcalde Lancharro
Fdo.: ……………………………… Fecha: 1/9/2011
Vº Bº del Coordinador de Proyectos
Eduardo Alcalde Lancharro
Fdo.: ……………………………… Fecha: 7/9/2011
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
SISTEMA DE GESTIÓN Y ANÁLISIS DE
PUBLICIDAD EN TELEVISIÓN
Autor: Alfredo Barral Bello
Director: Eduardo Alcalde Lancharro
Madrid Septiembre 2011
I
Resumen del proyecto
Título del Proyecto
Sistema de gestión y análisis de publicidad en televisión.
Autores
Autor: Alfredo Barral Bello.
Director: Eduardo Alcalde Lancharro.
Resumen
El presente proyecto consiste en el desarrollo de una aplicación de gestión de
datos de audiencia de campañas publicitarias en televisión. Dicha aplicación servirá
además como herramienta de análisis de costes de mercado y consulta de
información para clientes, con el fin de optimizar sus costes a la hora de contratar la
difusión de sus campañas publicitarias con las distintas empresas de medios de
comunicación.
II
La potencial utilidad de esta herramienta se debe al acceso a información de
referencia de costes en los diferentes canales del medio, información que no es de
dominio público y para cuyo acceso se recurre normalmente a la consultoría de
medios. El objetivo de la herramienta es facilitar y automatizar algunos de los
procedimientos que manejan un gran volumen de información de esta tarea de
consultoría.
Palabras clave
Publicidad, televisión, consultoría, medios, comunicación.
Descripción del Proyecto
Se trata de una plataforma de consulta on-line que presenta la información en
un entorno gráfico intuitivo y accesible. Con este fin se ha desarrollado en formato de
plataforma web utilizando para ello una arquitectura en tres capas, aprovechando las
nuevas tecnologías de desarrollo de aplicaciones en internet.
La aplicación se nutre de dos fuentes principales de información: datos de
clientes de las agencias de medios, obtenidos mediante la combinación de datos de
campañas de los clientes y sus resultados de audiencia, y datos de mercado
obtenidos a través de agencias de análisis estadísticos de mercado.
Resultados
El producto del presente proyecto es una aplicación web enriquecida (RIA)
que ofrece al usuario mecanismos visuales interactivos para consultar información
acerca del comportamiento de las campañas publicitarias de cada cliente.
III
La información a consultar está dividida en tres bloques principales:
Información del cliente, información de mercado y herramientas.
La información del cliente incluye el resumen del análisis de costes, el análisis
cualitativo por campañas, y un esquema de la inflación en la inversión en publicidad
del cliente en los últimos años.
La información de mercado está compuesta por un gráfico interactivo de
análisis de la inflación global en todo el país en años anteriores, así como por varios
histogramas de análisis del comportamiento general del mercado según cada medio
de comunicación y para los diferentes sectores.
La sección de herramientas contiene utilidades para extrapolar los datos
almacenados en la aplicación y realizar predicciones sobre su comportamiento
futuro, con el fin de optimizar la distribución de la inversión en publicidad.
IV
Conclusiones
Durante las etapas de prueba la plataforma ha tenido buena aceptación entre
los usuarios. Como se deseaba, la presentación de resultados en este nuevo formato
constituye un valor adicional para sus usuarios como complemento al sistema de
presentación tradicional.
Además es una herramienta con un alto potencial de evolución y crecimiento,
y al momento de finalización de este proyecto ya se han establecido nuevos
requisitos para su ampliación a nuevos aspectos de análisis y nuevas herramientas.
Referencias
[BARR01] Barranco de Areba, Jesús. "Metodología del Análisis estructurado de sistemas". Universidad Pontificia Comillas, 2001.
[LABR10] Labriola, Michael & Tapper, Jeff. "Adobe Flex 4, Training from the Source". Adobe Press, 2010.
V
Project Abstract
Project title
Advertising management and analysis System in television.
Authors
Author: Alfredo Barral Bello.
Director: Eduardo Alcalde Lancharro.
Abstract
The main goal of this project is the development of a web application for
advertising and television audience management. The application will also serve as a
helpdesk for media market analysis, providing tools for its users to improve the
results of their advertising campaigns. The potential of this application responds to
access to private quality reference information from different sources in a single
VI
platform, becoming a useful consulting data server in combination with the
assistance of media agencies.
Key words
Advertising, television, consulting, media, communication.
Project description
The developed application is intended to gather all the relevant information
from the media market and provide a friendly presentation solution, including
different procedures involving big amounts of data. The system is fed by two main
sources of information: advertising data provided by media agencies, including
advertising results and negotiation patterns, and market data references from
marketing analysis statistics providers. The system is constructed over a three-layer
architecture, based in new internet-oriented development technologies.
Results
The final product of the current project is a Rich Internet Application (RIA)
featuring interactive reference graphics and mechanisms for client advertising
campaigns management and data consulting.
Information is classified in three main blocks: client data, market information
and tools.
Client information includes the cost analysis summary, campaigns quality
summary and diagram of the inflation of client costs and the advertising investment
for the last years.
VII
Market Information features an interactive inflation analysis graph for the
national market, and several analysis histograms of the market behavior for the
media and each different sector.
Tools section features forecasting utilities to predict the market future
movements from the application stored data, and optimize the distribution of the
advertising investment.
Conclusions
The current System has had a good acceptance among users during the testing
stage. As desired, result presentations in this new format represent an added value
source for users, being an useful complement to the traditional presentation format.
In addition, the System is a tool with great growing and evolution potential.
At the moment of the Project signature there have already been established new
requirements for a new expansion covering more analysis aspects and new
algorithms and utilities.
References
[BARR01] Barranco de Areba, Jesús. "Metodología del Análisis estructurado de sistemas". Universidad Pontificia Comillas, 2001.
[LABR10] Labriola, Michael & Tapper, Jeff. "Adobe Flex 4, Training from the Source". Adobe Press, 2010.
VIII
Índice
Capítulo 1: Introducción ..................................................................................................... 1
Capítulo 2: Consultoría de Medios .................................................................................... 4
Ø 2.1 Lógica de Negocio ............................................................................................. 4
o 2.1.1 Análisis de Cliente .................................................................................... 5
o 2.1.2 Análisis de Mercado.................................................................................. 6
o 2.1.3 Negociación ............................................................................................... 7
Ø 2.2 Estado del Arte................................................................................................... 8
Ø 2.3 Conclusiones .................................................................................................... 11
Capítulo 3: Metodología ................................................................................................... 13
Capítulo 4: Identificación de Necesidades ...................................................................... 16
Ø 4.1 Objetivo del Sistema ........................................................................................ 16
Ø 4.2 Alcance del Sistema ......................................................................................... 17
Ø 4.3 Tipología de Usuarios ..................................................................................... 17
Ø 4.4 Restricciones ..................................................................................................... 17
IX
Capítulo 5. Análisis de Requisitos .................................................................................. 19
Ø 5.1 Hojas de Requisitos ......................................................................................... 20
Capítulo 6: Rich Internet Applications ............................................................................ 23
Ø 6.1 Introducción ..................................................................................................... 23
Ø 6.2 Alternativas a RIA ........................................................................................... 25
Ø 6.3 Conclusiones .................................................................................................... 28
Capítulo 7: Estudio de la Arquitectura ........................................................................... 29
Ø 7.1 Maven ............................................................................................................... 29
Ø 7.2 Framework MWC ............................................................................................ 30
Ø 7.3 Flex .................................................................................................................... 31
o 7.3.1 Flex 4 ........................................................................................................ 32
o 7.3.2 Flex mate .................................................................................................. 33
Ø 7.4 Java .................................................................................................................... 34
o 7.4.1 Spring ....................................................................................................... 34
Ø 7.5 Conexión Remota ............................................................................................. 35
Ø 7.6 Alimentación de la B.D. ................................................................................... 35
Ø 7.7 Servidor Web .................................................................................................... 37
Ø 7.8 Seguridad ......................................................................................................... 38
Capítulo 8: Diseño ............................................................................................................. 40
Ø 8.1 Modelo de Datos .............................................................................................. 40
Ø 8.2 Estructura de la Base de Datos ....................................................................... 40
Ø 8.3 Estructura de Clases ........................................................................................ 47
o 8.3.1 Estructura de Clases Java ....................................................................... 47
o 8.3.2 Objetos DAO ............................................................................................ 54
X
Capítulo 9: Recursos ......................................................................................................... 56
Ø 9.1 Hardware y Servicios ...................................................................................... 56
Ø 9.2 Software ............................................................................................................ 57
Ø 9.3 Planificación ..................................................................................................... 57
Ø 9.4 Valoración Económica ..................................................................................... 58
Capítulo 10. Mejoras Funcionales ................................................................................... 60
Capítulo 11. Conclusiones ................................................................................................ 62
Capítulo 12. Bibliografía ................................................................................................... 63
ANEXO I: Glosario de Términos .................................................................................... 64
ANEXO II: Manual de Usuario ........................................................................................ 72
ANEXO III: Flujo de Comunicación ................................................................................ 88
1
Capítulo 1
Introducción
Los medios de comunicación son instrumentos fundamentales del desarrollo y
mantenimiento de la sociedad actual, y la publicidad en estos medios ha sido el
mecanismo que los ha mantenido, hasta el punto de convertirse en una parte
estructural de los propios sistemas de comunicación.
La publicidad constituye el pilar que sostiene la industria de la comunicación
en general, y de la televisión en particular. La eficacia de la publicidad televisiva está
fuera de duda por el poder sugestivo del su componente audiovisual. Esta
característica permite apelar a la empatía con el espectador y ayudar a crear una
imagen para el producto. Además es un medio de muy amplia cobertura y alta
disponibilidad de espacio publicitario. Todo ello hace que su impacto a corto plazo
sea mayor que el del resto de medios.
La televisión irrumpió con fuerza en la sociedad en el segundo tercio del siglo
XX. A partir de ese momento se convertiría en el medio publicitario por excelencia,
especialmente a partir de su popularización en los años cincuenta.
2
En España la televisión pública comenzó sus emisiones regulares en 1956, y ya
en los años iniciales se empezaron a emitir las primeras pautas publicitarias.
La aparición de las televisiones autonómicas en el año 1986 y posteriormente
las cadenas privadas a partir de 1990 alteró completamente el ámbito comercial de la
televisión en España. La televisión pública apenas se mantenía con sus ingresos
publicitarios y se vio obligada a compartir su porción de pastel con sus nuevas
competidoras. Este cambio propició el comienzo de lucha por las audiencias que
atrajesen las inversiones publicitarias y se produjo una reorganización del sector en
torno a un enfoque centrado en dichos datos de audiencia.
La medición de audiencias consiste en el registro constante de datos y
estadísticas de emisión. Tanto las empresas que dedican importantes esfuerzos en
marketing como las consultoras que las asesoran recurren habitualmente a fuentes de
datos provenientes de entidades dedicadas a la elaboración de estudios de mercado y
de audiencias como Infoadex o SOFRES.
Infoadex es una empresa de estudios estadísticos que presenta anualmente
informes de inversión y datos publicitarios en medios convencionales (televisión,
radio, diarios, cine, internet...) y también no convencionales. Colabora con varias
asociaciones representativas de anunciantes, agencias de medios y de publicidad.
SOFRES en cambio es una empresa especializada en audimetría, medición de
audiencias en televisión por medio de dispositivos conectados a los televisores.
Dispone de un parque de más 4000 audímetros distribuidos por todo el país, y que
componen la principal fuente estadística de datos de audiencia en televisión a nivel
nacional.
La interpretación de los datos estadísticos recogidos por estas entidades es de
vital importancia para cuantificar los resultados de las campañas publicitarias y
tratar de obtener cada vez un mejor servicio. Sin embargo no es común que los
3
anunciantes tengan su propio equipo de análisis, sino que delegan esas tareas en
empresas especializadas en este campo.
4
Capítulo 2
Consultoría de Medios
La consultoría de medios es una materia centrada en la realización de estudios
de mercado y asesoría de marketing con el fin de potenciar los resultados
publicitarios de determinados productos y servicios dentro del mercado o del sector
correspondiente. La subcontratación externa de estas tareas a empresas dedicadas a
este tipo de consultoría es una práctica generalizada y añade una mayor profundidad
al análisis, ya que éstas proveen una mejor inteligencia de mercado y un mayor
archivo histórico de datos.
2.1 Lógica de Negocio
El cometido principal de las empresas de consultoría consiste en el realizar
análisis de resultados de campañas publicitarias. Para ello utilizan información de las
entidades de medición de audiencias, información de mercado de dominio público e
información obtenida de sus clientes, referente a la negociación de sus campañas.
5
Los principales servicios que aporta la consultoría son el análisis de resultados
de sus clientes, el análisis de mercado, y la asistencia en la negociación de los clientes
con los diferentes proveedores de espacios publicitarios.
2.1.1 Análisis de Cliente
Dentro del análisis de cliente existen 3 perspectivas a valorar:
• La diferencia de costes respecto al comportamiento de mercado, denominado
coste versus Index.
• La diferencia de coste respecto a un periodo anterior, o inflación.
• La valoración cualitativa de las campañas publicitarias frente a la cuantitativa,
que se conoce como RAC (o Rack).
El coste versus Index es el principal dato de referencia para los agentes de
marketing de un cliente a la hora de valorar la negociación de una campaña
publicitaria. Lo que indica este valor es la relación porcentual entre la diferencia de
coste entre los campañas que se han contratado respecto a lo que está pagando el
consumidor medio de espacios publicitarios por el mismo servicio. Un valor negativo
indica un coste más bajo que la media de mercado para los espacios publicitarios del
cliente. Su análisis resulta imprescindible a la hora de auditar los resultados de una
campaña publicitaria.
La inflación es un concepto habitual de los análisis económicos que ha sido
adoptado igualmente en el ámbito del análisis del mercado publicitario. Representa
en este contexto la diferencia porcentual de coste para un mismo servicio en dos
períodos equivalentes. El análisis de la inflación proporciona una mejor idea de la
tendencia del comportamiento de los servicios publicitarios de un cliente en el
tiempo.
6
El RAC es el análisis de los elementos cualitativos de una o varias campañas
frente a su valoración cuantitativa. Un análisis de RAC consta de dos parámetros
globales, referentes a la valoración de sus componentes cualitativos y valoración de
coste respectivamente. Estos parámetros se representan en una escala valuada entre
[-100, 100], con el 0 como valor neutro en el rango. El resultado cualitativo de RAC se
obtiene del promedio de diferentes parámetros relativos a propiedades de la emisión
publicitaria de la campaña, como el tiempo en Prime Time, cobertura, público
objetivo, posicionamiento en bloques publicitarios, etc. Estos subcomponentes que
conforman el parámetro cualitativo del RAC pueden analizarse por separado y
evaluarse en la misma escala.
El análisis RAC ofrece una visión de conjunto en dos aspectos diferentes, como
son la valoración del coste pactado en la negociación por la que se contratan los
espacios publicitarios así como la valoración de la calidad obtenida por la
explotación de esos espacios.
2.1.2 Análisis de Mercado
El otro ámbito de análisis corresponde al comportamiento del mercado. Este
análisis no está sujeto a interpretaciones subjetivas como podría ser el análisis de
cliente, ya que no se realiza sobre datos de un único actor, sino sobre toda la masa de
información del mercado publicitario. El análisis de Mercado sí ofrece una valoración
de la tendencia general real de todo el universo de consumidores y servidores de
espacios publicitarios.
La inflación es también, a nivel de mercado, un factor de análisis fundamental.
Es el mismo concepto de la inflación por cliente solo que ampliado a todo el espectro
del marco publicitario. La comparación de ambas inflaciones resulta útil para el
cliente del mismo modo que lo es el análisis del coste versus Index.
7
El otro dato principal del análisis de mercado además de la variación de costes
es la cantidad total invertida. El análisis de la inversión se realiza de tres formas
diferentes, a saber: inversión general acumulada, inversión por medio de
comunicación e inversión por sector comercial.
• Inversión general: Análisis de la variación en el tiempo de la inversión total en
publicidad, independientemente de su naturaleza.
• Inversión por Medios: Análisis de la inversión en cada uno de los diferentes
soportes de medios de comunicación y difusión, como son la televisión, radio,
prensa, o internet.
• Inversiones por Sector: Análisis de la inversión correspondiente a los diferentes
sectores comerciales, como comunicaciones, finanzas, turismo, alimentación,
salud, educación, higiene, construcción …
Estos análisis de mercado evalúan para diferentes períodos las variaciones de
la cantidad invertida en publicidad en todo el mercado español. Suelen presentarse
además tanto en notación absoluta como relativa (de forma porcentual).
2.1.3 Negociación
El conocimiento del mercado, de los diferentes proveedores y el rendimiento
medio de campañas pasadas propias o ajenas mediante instrumentos de análisis
resulta fundamental a la hora de abordar la trascendental tarea de negociar los
espacios publicitarios. Las posibilidades de negociación con un canal de televisión
para una campaña son muy amplias.
La unidad básica de negociación son los Gross Rating Points, también llamados
ratings o simplemente GRP. Los clientes no contratan tiempo de emisión en antera, ni
un número fijo de spots. Lo que negocian y contratan con los diferentes canales es
una cantidad GRP, equivalente a un conjunto de impactos en un público objetivo
determinado.
8
Entre las diferentes variables a escoger, la negociación incluirá el reparto del
tiempo de emisión que se desea para cada franja horaria, o en spots de
posicionamiento privilegiado en la parrilla. Todos estos factores, así como el público
objetivo escogido, la duración de los spots a emitir, o el reparto de inversión entre
cada proveedor serán las principales elecciones a realizar e influirán directamente en
el coste final de la negociación de espacio para la campaña publicitaria, así como en
la calidad del servicio obtenido en forma de un mejor impacto y por tanto un mayor
retorno de la inversión en el futuro.
El óptimo equilibrio entre cantidad y factores cualitativos en la contratación de
espacios publicitarios no es un cálculo determinista, y para ayudar a prever y
planificar estas valoraciones existe la consultoría de medios.
2.2 Estado del Arte
La auditoría y consultoría de medios es una rama poco explotada
tecnológicamente. La generalidad de las actividades desarrolladas en este campo no
van más allá de la utilización de recursos comunes de los paquetes básicos de
ofimática, a saber: programas de hojas de cálculo y presentaciones por
transparencias.
La universalidad de uso de estas herramientas responde al constante cambio
en que se ve envuelto el mercado publicitario, que paradójicamente es uno de los
más innovadores en lo que a adaptación a las nuevas tecnologías se refiere.
Constantemente nacen nuevos formatos publicitarios, modalidades de tarificación,
sistemas de medición de audiencias e innumerables servicios adicionales,
constituyendo un mercado en constante renovación. La creciente explotación
publicitaria de un medio como Internet es el mejor ejemplo de ello. Esta efervescencia
dificulta el establecimiento de algoritmos fijos que sustenten las necesidades de
cálculo de forma general para un entorno compuesto por una gran diversidad de
9
actores, cada uno con unas preferencias y necesidades muy específicas y en ocasiones
cambiantes en el tiempo.
Además, el volumen de datos que mueve este mercado es considerable,
dificultad añadida al constante movimiento del entorno que compromete además su
coherencia.
Es por ello que la flexibilidad que ofrece la programación por medio de
macros en hojas de cálculo se impone sobre otros lenguajes de programación.
Esta situación hace de los programas de presentaciones por transparencias la
solución más directa a la hora de representar los resultados de forma gráfica, dado
que los principales proveedores de software de cálculo incluyen en el mismo paquete
una herramienta de creación de presentaciones, cuyos contenidos son compatibles y
fácilmente exportables entre un programa y otro.
En este contexto el principal proveedor de software es Microsoft con su
paquete de ofimática Microsoft Office, que cuenta con las herramientas Microsoft
Excel y Microsoft PowerPoint.
Los analistas se encuentran periódicamente ante la necesidad de construir
documentos de presentación de forma manual, tarea que resulta generalmente
10
repetitiva, constituyendo una carga adicional de trabajo cada vez que los resultados
de un análisis deben ser presentados a sus clientes.
Ejemplos de gráficos estáticos en presentaciones de consultoría
Habitualmente una parte importante del contenido de estas presentaciones
corresponde a componentes gráficos redundantes que deben ser replicados una y
11
otra vez para distintos subconjuntos de datos de una misma familia para encapsular
el alto volumen de información.
Este sistema de elaboración de presentaciones se traduce además en la
asincronía de disposición de estos resultados por parte del cliente, dependiendo cada
actualización de los mismos en una nueva hornada de informes generados específica
e individualmente por los consultores.
El tiempo empleado en la elaboración de estos informes finales se resta de la
potencial capacidad de ofrecer un mejor y más atractivo servicio, en un entorno
gráfico superior con soporte para tecnologías multimedia. En lugar de ello, las
representaciones gráficas de resultados son simplistas y estáticas.
2.3 Conclusiones
La principal dificultad de procesar el volumen de datos externos que se
provee a las consultoras de medios es su heterogeneidad, lo que casi dificulta el
diseño de una solución global para el procesamiento de la información. Sin embargo
el tratamiento que se da a esos datos en las consultoras produce una serie de
informes de formato estándar, a partir de los cuales sí es viable alimentar una
herramienta que presente estos resultados de una forma dinámica, atractiva y más
accesible para el cliente final.
Adicionalmente, sería también factible el desarrollo de herramientas analíticas
para determinados procesos de cálculo a partir de dichos informes intermedios.
Se espera, por tanto, que la inversión en el desarrollo de una plataforma de
estas características suponga un incentivo para la afiliación de clientes mediante la
diferenciación y adición de valor en un servicio tradicionalmente homogéneo en el
mercado.
12
Este desarrollo no pretende competir con las herramientas tradicionales, sino
convertirse en un elemento adicional de asistencia para los clientes de consultoría.
13
Capítulo 3
Metodología
El desarrollo de una aplicación de esta magnitud precisa de la elección de una
adecuada metodología que conduzca el trabajo en las diferentes etapas del proyecto
en la dirección correcta.
3.1 Ciclo de Vida
La metodología propuesta para el proyecto consiste en la construcción de
sucesivos Prototipos Funcionales de la aplicación, añadiendo en cada etapa nuevo
contenido y funcionalidades. Se trata por tanto de un modelo de Ciclo Incremental
(prototipos sucesivos ejecutables).
Esta metodología permite la participación del Actor Secundario, en este caso el
propio cliente, a lo largo del desarrollo de la aplicación, al producir en cada iteración
un prototipo ejecutable con resultados reales. También disminuye el riesgo de error y
facilita la gestión de cambios.
14
Figura 1: Modelo de Ciclo de Vida Incremental con prototipos
La primera etapa del proyecto consiste en la planificación de las tareas y el
estudio de los problemas y sus técnicas de resolución.
En la fase cíclica del proyecto, la primera iteración consistirá en el diseño y
desarrollo de un primer prototipo de la aplicación.
El objetivo de este primer prototipo será implementar un motor algorítmico
que realice la alimentación offline de datos del Sistema. A partir de ese primer
modelo se añadirán los distintos elementos gráficos que formarán parte del interfaz.
15
El resto de funcionalidades de análisis y consulta se añadirán en siguientes
iteraciones con sus respectivas herramientas gráficas hasta obtener una herramienta
final que produzca todos los resultados en formato visual.
16
Capítulo 4
Identificación de Necesidades
En esta fase inicial del ciclo de vida del proyecto se analizarán las diferentes
características que definirán la funcionalidad de la aplicación a desarrollar.
4.1 Objetivo del Sistema
El objetivo del sistema a desarrollar consiste en la creación de una plataforma
online multimedia de consulta de información, en concreto de resultados de análisis
de campañas publicitarias en televisión.
El sistema ofrecerá una solución compacta y a la vez detallada a la
problemática de generación de informes de resultados en consultoría de medios.
En principio la nueva solución será complementaría a la presentación de datos
de la forma tradicional, con vistas a establecerse en un futuro como herramienta
principal para realizar la presentación de resultados a los clientes de consultoría de
medios, a la vez que sirve de herramienta de consulta típica para los clientes finales.
17
Además se pretende integrar en la aplicación una serie de herramientas de
cálculo que añadan servicios adicionales en el ámbito del análisis de mercado.
4.2 Alcance del Sistema
La funcionalidad de la plataforma abarca las siguientes áreas:
• Almacenamiento de la Información: Los datos de que se nutrirá la aplicación no
están alojados en una base de datos de dominio público, por lo que será necesaria
la integración en el sistema de un módulo propio de gestión de datos.
• Sistema interactivo de consulta: La información se mostrará de forma dinámica en
función de los parámetros que indique el usuario.
• Sistema de herramientas de simulación: El sistema dispondrá de una fuente de
previsión de datos a futuro que proveerá a una sección de herramientas de
simulación interactivas.
4.3 Tipología de Usuarios
El usuario típico de la plataforma serán los empleados de marketing y análisis
de las empresas clientes de consultoría de medios de comunicación. Su perfil medio
es el de un usuario sin conocimientos técnicos en informática, y no familiarizado con
este tipo de aplicaciones. Ello supone un reto adicional a la hora de realizar un diseño
sencillo e intuitivo pero que a su vez ofrezca agilidad y calidad de servicio.
4.4 Restricciones
Se identifican para el desarrollo del presente proyecto las siguientes
restricciones:
18
• Restricciones temporales: Al ser un proyecto escalable en cada nueva iteración, en
caso de haberlas, se establecerán junto con los nuevos requisitos las restricciones
temporales que se estimen adecuadas. El tiempo para esta primera versión es de 9
meses.
• Restricciones de diseño: La imagen del producto final debe adecuarse a la imagen
corporativa de la empresa, respetando ciertos patrones de tamaño, estilo y color
en ciertos elementos del interfaz gráfico.
En principio no se han definido restricciones económicas o de alguna otra
índole.
19
Capítulo 5
Análisis de Requisitos
Analizados ya el contexto y el objetivo del sistema, el análisis de requisitos
supone una síntesis de las necesidades particulares que han sido requeridas para la
aplicación.
La principal característica especificada para la aplicación es un aspecto
atractivo y funcional, navegación intuitiva y fácil manejo, y además que suponga una
mejora sobre la realización de informes secuenciales tradicionales. Se ha especificado
también la necesidad de su implantación en un entorno online y de amplia
compatibilidad. Además es preciso que el sistema a desarrollar sea escalable
posibilitando desarrollos futuros. Se ha considerado también la necesidad de un filtro
de contenidos que preserve la privacidad de los datos entre diferentes usuarios.
Finalmente también se requiere la pronta producción de un primer prototipo
funcional de la aplicación que sirva como referencia para la evolución del sistema.
La naturaleza de la información a manejar es confidencial, lo cual implica la
necesidad de implementar también un sistema de acceso que discrimine qué
20
información ha de mostrarse en cada caso y qué permisos se habilitan en función del
usuario que acceda.
5.1 Hojas de Requisitos
Atendiendo a las diferentes características especificadas para el desarrollo de
la aplicación se han generado las correspondientes hojas de requisitos.
Fecha: 1/9/2010 Estado: Aceptado Fuente: Reunión con el cliente Prioridad: Alta Proyecto: Optimizamed Cliente: Media Value S.L. Identificador Requisito: R01 Descripción Requisito:
Desarrollo en un entorno de alta compatibilidad, con una interfaz atractiva e intuitiva para el usuario. Tipo Requisito: Funcional Beneficios:
Una herramienta amigable para el usuario que no requiera conocimientos técnicos específicos para su uso.
Soluciones sugeridas:
Las RIA son aplicaciones fácilmente integrables en cualquier entorno, además cuentan con soporte para cualquier tipo de elementos multimedia.
Documentos Relacionados:
Requisitos Relacionados: R02 Fecha: 1/9/2010 Estado: Aceptado Fuente: Reunión con el cliente Prioridad: Alta Proyecto: Optimizamed Cliente: Media Value S.L. Identificador Requisito: R02
Descripción Requisito:
Desarrollo en un entorno on-line. Tipo Requisito: Funcional Beneficios:
21
Al estar alojada en un servidor de Internet, se dota a la plataforma de una gran flexibilidad de acceso, tanto en localización como en variedad de dispositivos cliente.
Soluciones sugeridas:
Descartada la posibilidad de una aplicación desktop, se escoge Flex como lenguaje para desarrollar la capa de presentación. Satisface igualmente las condiciones del requisito R01. Documentos Relacionados:
Requisitos Relacionados: R01
Fecha: 1/9/2010 Estado: Aceptado Fuente: Reunión con el cliente Prioridad: Alta Proyecto: Optimizamed Cliente: Media Value S.L. Identificador Requisito: R03
Descripción Requisito:
Lanzamiento temprano de un prototipo funcional. Tipo Requisito: Funcional Beneficios:
Dar a conocer la plataforma cuanto antes a los clientes e incluso implicarlos en su desarrollo. Soluciones sugeridas:
Utilización de una metodología de ciclo de vida incremental con prototipos. Documentos Relacionados:
Requisitos Relacionados: R04
Fecha: 1/9/2010 Estado: Aceptado Fuente: Reunión con el cliente Prioridad: Alta Proyecto: Optimizamed Cliente: Media Value S.L. Identificador Requisito: R04
Descripción Requisito:
Diseñar una solución escalable que facilite futuros desarrollos en la plataforma.
22
Tipo Requisito: Funcional Beneficios:
Facilitar el desarrollo de nuevas versiones de la aplicación. Soluciones sugeridas:
Utilización de un patrón de diseño basado en la arquitectura MVC (Modelo Vista Controlador).
Documentos Relacionados:
Requisitos Relacionados: R03
Fecha: 1/9/2010 Estado: Aceptado Fuente: Reunión con el cliente Prioridad: Alta Proyecto: Optimizamed Cliente: Media Value S.L. Identificador Requisito: R05
Descripción Requisito:
Implantación de un sistema de filtro de contenidos por usuario. Tipo Requisito: De seguridad Beneficios:
Facilitar el desarrollo de nuevas versiones de la aplicación. Soluciones sugeridas:
Para acelerar el desarrollo en la etapa inicial, se implementará un sistema de gestión de contenidos de forma programática, estructurada sobre el módulo Spring Security.
Documentos Relacionados:
Requisitos Relacionados: R04
23
Capítulo 6
Rich Internet Applications
6.1 Introducción
Para el desarrollo de este proyecto se ha optado por la creación de una
aplicación web de contenidos gráficamente complejos. Estas aplicaciones son las
denominadas RIA.
El concepto de RIA, acrónimo de Rich Internet Application (Aplicaciones de
Internet Enriquecidas) fue concebido en 2002 por Jeremy Allaire. El paradigma de las
RIA consiste en llevar a internet las capacidades de las aplicaciones clásicas de
escritorio frente a la tendencia tradicional de presentar los contenidos en documentos
HTML, dotándolas así de un mayor nivel de alcance.
Las páginas HTML clásicas son estáticas y sus formularios simples, de modo
que el flujo de navegación consiste en un conjunto más o menos lineal de páginas
que se deben cargar de una en una según son seleccionadas por el usuario. En una
aplicación de escritorio, en cambio, el acceso a todo el contenido de la aplicación es
inmediato una vez se ha cargado el programa.
24
Como primera medida para solucionar el factor estático de las páginas HTML
apareció Javascript, una manera de realizar cambios en los formularios de una página
web de forma dinámica y programática. Sin embargo la navegación sigue consis-
tiendo en el acceso secuencial a una serie de documentos. Además el uso de Javascrpit
genera múltiples incompatibilidades en la generalidad de navegadores de internet y
no soporta bien la programación orientada a objetos.
Estos problemas se solucionan al incorporar a la ejecución el agente de la
máquina virtual. Una máquina virtual es un software con capacidad para ejecutar
programas como si fuese un procesador, que se despliega directamente en la
máquina del usuario. Un programa diseñado para ser procesado en un ordenador de
escritorio podía ser adaptado para ejecutarse en internet por medio de una máquina
virtual. Los applets de Java son el primer y mejor ejemplo de una aplicación
compilada a un fichero ejecutable comprimido (.jar), cargado en una máquina virtual
(Java Virtual Machine) y desplegado en una página web.
De modo que se diferencian dos tipos de RIA:
• Basadas en estándares soportados por los navegadores de internet (Javascript,
DOM, Ajax...)
• Basadas en máquinas virtuales (también llamadas sandboxes).
Resumiendo, las principales características que definen a las RIA son:
• Interfaz de usuario enriquecida, haciendo más fácil la interacción con el usuario
final, incluyendo funcionalidades comunes y cálculos en el lado del cliente sin la
necesidad de enviar la información al servidor.
• Comunicación asíncrona. No se producen recargas de página, ya que desde el
principio se carga la página completa y según el usuario navega se actualizan el
resto de partes de la misma, y sólo se produce comunicación con el servidor
25
cuando se necesitan datos externos como datos de una Base de Datos o de
ficheros alojados en el servidor.
• Reducción de la carga del servidor, ya que parte del procesamiento se traslada a
la máquina del usuario.
Los inconvenientes que tiene la creación de RIA tienen que ver con la
compatibilidad de sus plugins, y por tanto de su disponibilidad a nivel de diferentes
plataformas.
• Las RIA ejecutadas en máquinas virtuales dependen de la disponibilidad de los
plugins correspondientes para cada navegador, sumado al inconveniente de
necesitar su instalación previamente para la ejecución de cualquier programa.
• En caso de las RIA sin máquina virtual, como ya se ha apuntado anteriormente en
este documento, la compatibilidad con los diferentes navegadores es también su
principal vulnerabilidad.
Las RIA podrán ser ejecutadas en cualquier dispositivo móvil en el que esté
disponible la respectiva máquina virtual o tenga un navegador compatible.
6.2 Alternativas a RIA
Alternativamente a la creación de un nuevo sistema informático, existían otras
opciones para desarrollar una solución para crear presentaciones atractivas para los
resultados de consultoría. Dos distintos ejemplos de herramientas con este fin son
QlikView y Xcelsius.
26
QlikView
QlikView es un software que forma parte de las llamadas Herramientas de
Inteligencia de Negocios (Business Intelligence Tools), una solución empresarial
formada por herramientas para el análisis, explotación y representación de datos.
Consiste en una estructura atómica integrada por un Dashboard o pantalla de
control desde el que se administran las fuentes de información, que pueden ser tanto
locales como fuentes de datos externas, que el propio software sincroniza en su
propia Base de Datos. El Dashboard proporciona un resumen visual en conjunto de la
situación del negocio.
QlikView realiza además funciones de minería de datos y generación de vistas
e informes como medio de exportación de datos.
Los principales inconvenientes que supondría el uso de QlikView para este
proyecto son los siguientes:
• No ofrece ventajas frente a modelos de datos cambiantes como es el caso de los
Medios de Comunicación.
27
• Es un software propietario, una solución cerrada y limitada a procesos de análisis.
• Precisa de una etapa de aprendizaje por parte del desarrollador, además de
conocimientos específicos sobre el ámbito de negocio.
• Supone un alto coste inicial.
• Necesita hardware potente, ya que carga todo su contenido en la memoria RAM
de la máquina.
• La libertad de diseño es también limitada.
Xcelsius
Xcelsius es un software de creación de presentaciones por diapositivas, con un
funcionamiento básico similar a los típicos programas incluidos en los paquetes de
ofimática.
Fundamentalmente consiste en una combinación de la funcionalidad de una
hoja de cálculo y un visor de presentaciones con objetos Flash mediante la
integración del plugin Adobe Flash Player. Dirigido a usuarios de productos
Microsoft, requiere de fuentes de datos en formato de archivos de Microsoft Excel, si
bien sus productos son exportables a multitud de formatos.
Funcionalmente se presenta como sustituto de Microsoft PowerPoint en el que
realizar presentaciones interactivas y visualmente atractivas .
28
Sin embargo no ofrece más que un aspecto mejorado a costa de inversión
adicional en tiempo de desarrollo de cada presentación, algo que los consultores
podrían estar haciendo actualmente a menor escala en sus presentaciones, y sin
embargo no ocurre así.
Xcelsius tiene sentido en consultoría como reemplazo del PowerPoint para
usuarios técnicamente más avanzados, o bien para situaciones puntuales en las que
un informe concreto requiera una presentación más cuidada, pero únicamente
supone una mejora visual respecto al paquete de creación de presentaciones básico.
6.3 Conclusiones
El desarrollo de RIA ofrece en conjunto mejores resultados que las posibles
alternativas para esta tarea. Diseñar una RIA ofrece mayor libertad a nivel de interfaz
y también en el aspecto funcional para desarrollo de nuevas herramientas, lo que
supone un gran atractivo para el proyecto a medio plazo.
29
Capítulo 7
Estudio de la Arquitectura
A continuación se describen los diferentes componentes que forman la
arquitectura de la aplicación y su cometido.
7.1 Maven
Maven es una herramienta de gestión y construcción de proyectos Java.
Automatiza el proceso de compilación y construcción de un proyecto estructurado en
módulos a partir de la descripción del mismo almacenada en unos archivos de
configuración, los Project Object Models (POMs), presentes en cada uno de los
módulos del proyecto. Estos objetos POM están codificados en lenguaje XML.
Además en la configuración del constructor Maven se puede incluir las
direcciones de los repositorios de código y documentación que se necesiten para el
proyecto, y serán actualizados mediante la descarga de sus últimos plugins y
dependencias en tiempo de compilación, y de forma automatizada. Todos estos
elementos (que serán denominados por el programa como artifacts o artefactos) serán
30
descargados a un único repositorio local común para todos los proyectos de Maven,
evitando de esta forma que múltiples referencias comunes a los mismos artefactos en
diferentes proyectos desemboquen en el almacenamiento de información redundante
en el ordenador.
El resultado de la construcción del proyecto con Maven será el archivo
comprimido ejecutable (en el presente caso un archivo .war) a desplegar en el
directorio del servidor de aplicaciones.
7.2 Framework MVC
El patrón de diseño elegido para este proyecto es el Modelo Vista Controlador
(MVC). Es un patrón de diseño que impone la separación entre las fuentes de datos,
el procesamiento y producto de una aplicación. Divide la funcionalidad de la
aplicación en los 3 módulos que dan nombre al patrón: modelo, vista y controlador.
La vista es la interfaz que maneja el usuario. En MVC no hay ningún
subproceso o funcionalidad en las vistas, si no que sirven exclusivamente como vía
para mostrar resultados y permitir al usuario interactuar con los contenidos.
El modelo representa los algoritmos y procedimientos de negocio. Un único
módulo puede servir a múltiples interfaces de pantalla reduciendo así la duplicación
de código.
31
El controlador es el intérprete de las peticiones del usuario y realiza las
llamadas a los procedimientos correspondientes.
Dado que el modelo es autónomo e independiente del controlador y la vista,
es más susceptible a cambios en la lógica de negocio o el modelo de datos. Los tres
bloques se comportan de modo similar a cajas negras independientes tales que las
modificaciones de una de ellas son transparentes a las demás.
Además la segmentación en módulos de este patrón facilita el filtrado de
contenidos por usuario, facilitando el desarrollo de una interfaz cambiante que
discrimine qué elementos mostrar en cada caso según el nivel o la naturaleza del
usuario.
7.3 Flex
Flex ofrece un entorno de desarrollo de aplicaciones basado en etiquetas
(como el desarrollo tradicional de páginas web en HTML) con acceso a una amplia
librería de objetos complejos a través del lenguaje MXML (basado en XML), aunque
también soporta el desarrollo de forma programática por medio de scripts en
lenguaje ActionScript.
Flex es una tecnología que facilita en gran medida el trabajo del desarrollador,
ya que incluye una gran cantidad de componentes muy completos y con funciones
complejas muy bien desarrolladas. Además está ampliamente documentada y cuenta
con una gran batería de ejemplos y tutoriales para un más fácil aprendizaje de las
distintas herramientas.
32
Será Flex por tanto la tecnología RIA que se utilizará para construir la capa de
presentación de la aplicación.
Las aplicaciones Flex se compilan y construyen sobre objetos Flash, y por tanto
para su ejecución es necesaria la instalación previa del plugin Adobe Flash Player.
Afortunadamente este plugin es un complemento de uso generalizado, ya que está
instalado en el 98% de los equipos con conexión a internet.
7.3.1 Flex 4
Flex 4 es la última versión distribuida de Flex, aparecida en marzo de 2010.
Esta versión busca desvincular el trabajo de desarrolladores y diseñadores
estableciendo un nuevo sistema de arquitectura de personalización de componentes,
denominada Skinning.
En Flex 4 a cada componente se le asocia un skin, o “piel”, una clase que
determina por medio de la declaración de objetos gráficos más simples el aspecto del
componente. Además el skin incorpora también una lógica de estados del
componente para gestionar sus cambios de aspecto al producirse dichas transiciones
de estado.
33
Esta arquitectura de diseño posibilita una mayor independencia entre el
diseño y el desarrollo, ya que los diseñadores pueden crear todo un paquete temático
de skins para el conjunto de componentes de una aplicación que pueden ser aplicados
mediante la declaración de una simple dependencia.
Para instaurar el uso de skins Flex 4 incluye una nueva librería de
componentes personalizables llamada Spark. Todos estos componentes predefinidos
tienen un skin por defecto que incluye la apariencia de los componentes Flex
tradicionales.
Además de la nueva mecánica de componentes, Flex 4 ha incluido otras
importantes novedades en cuanto al desarrollo: nuevas etiquetas XML para
encapsular componentes no gráficos, nuevos efectos multimedia, nueva gestión de
estados e integración de layouts dentro de los componentes que funcionan como
contenedores de otros.
7.3.2 Flex Mate
Mate es un framework de control de eventos para Flex basado en etiquetas. Las
aplicaciones Flex son aplicaciones orientadas a eventos. Flex Mate permite definir de
forma sencilla el controlador de los eventos, sus parámetros, y canaliza la lógica tras
la respuesta a estos eventos.
34
Además Mate ofrece un mecanismo de inyección de dependencias de datos
entre objetos utilizado para la actualización en tiempo real de la aplicación al recibir
la información solicitada por medio de consultas a la base de datos.
En el patrón actual de diseño, Flex Mate es el encargado de comunicar, por
medio de estos eventos, el módulo de presentación (la vista) con las clases Flex del
módulo controlador.
7.4 Java
Para la lógica del bloque modelo de la aplicación se ha utilizado Java por su
compatibilidad con el resto de componentes de la arquitectura. Java ofrece además
soluciones eficaces y estructuradas para la metodología de acceso a datos, diseño de
entidades y gestión de dependencias del proyecto.
35
7.4.1 Spring
Spring es un módulo Java de control de relaciones e inyección de
dependencias entre objetos que promueve la construcción de aplicaciones basadas en
objetos simples denominados POJOs (Plain Old Java Object).
Spring permite la adición de múltiples funcionalidades a través de la conexión
de diferentes plugins, utilizables en cualquier proyecto basado en Java.
El cometido de la tecnología Spring en el proyecto es gestionar las
dependencias remotas entre objetos Flex y Java. También controla el acceso a la base
de datos a través del plugin Spring JDBC. Todas estas dependencias se configuran a
través de sencillos scripts XML
7.5 Conexión Remota
BlazeDS es una tecnología de intercomunicación entre procesos de servidores
Java y aplicaciones Flex que permite la conexión e intercambio de información de
estas aplicaciones.
36
Consiste principalmente en tres servicios:
• El servicio remoto permite la comunicación entre procesos Flex y Java
permitiendo la invocación intermodular de métodos de sus objetos.
• El servicio de mensajes ofrece una infraestructura de publicación/suscripción que
permite a los programas cliente de Flex e intercambiar mensajes en tiempo real
con el servidor.
• El servicio Proxy permite a las aplicaciones Flex hacer peticiones de servicio cross-
domain (transferencia de información entre fuentes de diferentes dominios de
seguridad).
BlazeDS permite una comunicación fluida, sincronizada y bilateral entre el
módulo de acceso a datos y el módulo de presentación de la aplicación,
complementando así una de las carencias de Flex en la gestión de fuentes de datos
externas al abrir un portal de comunicación con otras tecnologías que sí incluyan esta
funcionalidad.
BlazeDS será la tecnología encargada de comunicar los algoritmos que
componen la parte de controlador del modelo de aplicación funcionando a modo de
intérprete para la comunicación entre Flex y Java e la aplicación.
37
7.6 Alimentación de la B.D.
El almacenamiento de información para la plataforma se realizará en una base
de datos MySQL.
La carga de datos se ha separado de la aplicación en un módulo adicional con
el fin de hacerla más sencilla.
Este módulo está formado por una serie de scripts PHP que utilizando la
librería de código abierto PHPExcel capturan la información de las hojas de cálculo
que sirve la fuente de datos y crean las sentencias SQL necesarias para insertar la
información en el Sistema de Bases de Datos.
Estos scripts pueden ejecutarse indistintamente en modo online u offline, ya
sea en el servidor Apache incluido en los servicios del servidor web, o bien en un
38
intérprete de PHP a nivel local en una réplica de la base de datos, que será luego
exportada a su destino original en el espacio reservado en el servidor.
7.7 Servidor web
Se utilizará Tomcat como servidor web para la ejecución del proyecto. Tomcat
no es un servidor de Aplicaciones propiamente dicho, es un servidor web con
soporte para servlets, JSPs, y en general aplicaciones basadas en Java, por tanto
perfectamente compatible con las tecnologías que componen la arquitectura del
sistema.
Estará alojado en un servidor con acceso a internet contratado para este
propósito. El archivo .war construido por Maven será desplegado en el directorio de
aplicaciones de Tomcat a través de un software de transferencia FTP, como WinSCP.
7.8 Seguridad
Spring Security es un módulo de Spring que constituye una estructura de
control de seguridad de autenticación para sistemas informáticos. Su implantación es
sencilla y se configura con tan solo unas pocas líneas en un fichero de configuración
XML.
39
Además Spring-Security mantiene las tareas de autorización (o control de
acceso) para diferentes niveles de acceso, gestionando los diferentes permisos de los
usuarios.
40
Capítulo 8
Diseño
8.1 Modelo de Datos
El modelo de datos de la plataforma es bastante sencillo. Los datos se
organizan en 7 entidades distintas e independientes entre sí, correspondiéndose cada
una con una fuente externa de datos. Es una solución sencilla que no compromete el
proyecto a riesgo de retrasos en la etapa inicial del desarrollo.
Las 7 entidades se corresponden con las 7 tablas existentes en la Base de Datos:
8.2 Estructura de la Base de Datos
Afinidad
La tabla de afinidad contiene las equivalencias en forma de porcentajes de
correlación entre los principales parámetros cuantitativos de un análisis, para cada
target específico respecto a los targets de compra de las cadenas de televisión.
41
Campo
Tipo
Clave
Nulo
Descripción
id int PK No Identificador de cada entrada
target_compra varchar(50)
SK* No Target negociado con las cadenas
core_target varchar(50)
SK* No Target final de la campaña publicitaria
cadena varchar(50)
SK* No Canal de televisión
afinidad_total
double
No
Porcentaje de correlación de Coste/Rating entre dos targets
afinidad_pt
double
No
Porcentaje de correlación de Prime Time entre dos targets
afinidad_pib
double
No
Porcentaje de correlación de Posicionamiento entre dos targets
Análisis de Campaña
La tabla de análisis de campaña contiene en cada entrada el resultado de una
campaña en una fecha concreta para un canal de televisión, así como los parámetros
equivalentes del Index ponderados a sus parámetros.
Campo
Tipo
Clave
Nulo
Descripción
id int PK No Identificador de cada entrada
cliente varchar(50)
SK* No Nombre del cliente
campaign varchar(50)
No Nombre de la campaña publicitaria
fecha_ini Date SK* No Fecha de inicio de la campaña
fecha_fin Date SK* No Fecha de finalización de la campaña
cadena varchar(50)
SK* No Canal de televisión
target varchar(50)
SK* No Público objetivo del análisis
inversion double No Cantidad invertida
inversion_index double No Cantidad invertida equivalente por el Index
inversion_index_pond double No Cantidad invertida equivalente y ponderada por el Index
42
grp20 double No Número de ratings alcanzados
cgrp20 double No Coste por rating
cgrp20_index double No Coste por rating del Index
cgrp20_index_pond double No Coste por rating ponderado del Index
prime_time double No Porcentaje de emisión en Prime Time
primera double No Porcentaje de emisión en primeras posiciones de un bloque
segunda double No Porcentaje de emisión en segundas posiciones de un bloque
tercera double No Porcentaje de emisión en terceras posiciones de un bloque
penultima double No Porcentaje de emisión en penúltimas posiciones de un bloque
ultima double No Porcentaje de emisión en últimas posiciones de un bloque
is_compra smallint(6)
No Determina si el target analizado es el de compra de la campaña
is_core smallint(6)
No Determina si el target analizado es el core target de la campaña
43
Análisis de Index
La tabla de Análisis de Index contiene en cada entrada el resultado medio de
una hipotética campaña para un canal de televisión según el comportamiento del
mercado exclusivamente.
Campo
Tipo
Clave
Nulo
Descripción
id int PK No Identificador de cada entrada
cliente varchar(50) SK* No Nombre del cliente
periodo Date SK* No Fecha de inicio del periodo de facturación correspondiente
cadena varchar(50) SK* No Canal de televisión
target varchar(50) SK* No Público objetivo del análisis
grp20 double No Número de ratings alcanzados
cgrp20 double No Coste por rating
prime_time double No Porcentaje de emisión en Prime Time
primera double No Porcentaje de emisión en primeras posiciones de un bloque
segunda double No Porcentaje de emisión en segundas posiciones de un bloque
tercera double No Porcentaje de emisión en terceras posiciones de un bloque
penultima double No Porcentaje de emisión en penúltimas posiciones de un bloque
ultima double No Porcentaje de emisión en últimas posiciones de un bloque
44
Forecast
La tabla de forecast contiene las previsiones para los principales parámetros
cuantitativos de comportamiento de campañas de mercado (Coste/Rating, Prime Time
y Posicionamiento) para cada cadena y período de facturación a corto plazo.
Campo
Tipo
Clave
Nulo
Descripción
id int PK No
Identificador de cada entrada
fecha_ini Date SK* No
Fecha de inicio
fecha_fin Date SK* No
Fecha de finalización
cadena varchar(50) SK* No
Canal de televisión
target varchar(50) SK* No
Público objetivo
forecast_index double No
Previsión de coste por rating para el Index
forecast_pt double No
Previsión de porcentaje de emisión en Prime Time
primera double No
Previsión de porcentaje de emisión en primeras posiciones de un bloque
segunda double No
Previsión de porcentaje de emisión en segundas posiciones de un bloque
tercera double No
Previsión de porcentaje de emisión en terceras posiciones de un bloque
penultima double No
Previsión de porcentaje de emisión en penúltimas posiciones de un bloque
ultima double No
Previsión de porcentaje de emisión en últimas posiciones de un bloque
45
RAC
La tabla de RAC contiene informes de evaluación de campañas publicitarias
pasadas en función de diferentes parámetros de coste y calidad.
Campo
Tipo
Clave
Nulo
Descripción
id int PK No Identificador de cada entrada
cliente varchar(50) SK* No Nombre del cliente
campaign varchar(50) No Nombre de la campaña publicitaria
fecha_ini Date SK* No Fecha de inicio de la campaña
fecha_fin Date SK* No Fecha de finalización de la campaña
target varchar(50) SK* No Público objetivo del análisis
trimestre varchar(50) No Trimestre al que es asignada la campaña
grp_actual double No Número de ratings alcanzados
coste_score double No Evaluación global del coste de la campaña
total_rac_score double No Evaluación global de la calidad de la campaña
prime_time_score_panel double No Evaluación de la distribución de la emisión en Prime Time
coverage_score_panel double No Evaluación de la cobertura
targetting_score_panel double No Evaluación de la selección de target
pib_score_panel double No Evaluación de la distribución del posicionamiento en bloque
top20_score_panel double No Evaluación de la emisión en los espacios más importantes
Resumen de Mercado
La tabla de resumen de mercado contiene la distribución de la inversión en
España en los diferentes ámbitos comerciales en los últimos años, por meses.
Campo
Tipo
Clave
Nulo
Descripción
id int(11) PK No Identificador de cada entrada
mes int(11) SK* No Mes del año
anio int(11) SK* No Año
CINE double No Inversión en cine
46
DIARIOS double No Inversión en diarios
EXTERIOR double No Inversión en el exterior
INTERNET double No Inversión en internet
RADIO double No Inversión en radio
REVISTAS double No Inversión en revistas
SUPLEMENTOS_ Y_DOMINICALES
double No Inversión en suplementos
TELEVISION double No Inversión en televisión
TELEVISION_TEMATICA double No Inversión en televisión temática
ALIMENTACION double No Inversión en alimentación
AUTOMOCION double No Inversión en automoción
BEBIDAS double No Inversión en bebidas
BELLEZA_E_HIGIENE double No Inversión en belleza e higiene
CONSTRUCCION double No Inversión en construcción
CULTURA_ENSENANZA_ MEDIOS_COMUNICAC
double No Inversión en cultura, enseñanza y medios
DEPORTES_Y_ TIEMPO_LIBRE
double No Inversión en deportes
DISTRIBUCION_Y_ RESTAURACION
double No Inversión en distribución y restauración
ENERGIA double No Inversión en energía
EQUIPOS_DE_OFICINA_ Y_COMERCIO
double No Inversión en comercio y equipos de oficina
FINANZAS double No Inversión en finanzas
HOGAR double No Inversión en hogar
INDUSTRIAL_MATERIAL_ TRABAJO_AGROPE
double No Inversión en material industrial
LIMPIEZA double No Inversión en limpieza
OBJETOS_PERSONALES double No Inversión en objetos personales
SALUD double No Inversión en salud
SERVICIOS_PUBLICOS_ Y_PRIVADOS
double No Inversión en servicios
TABACO double No Inversión en tabaco
TELECOMUNICACIONES_ E_INTERNET
double No Inversión en telecomunicaciones
TEXTIL_Y_VESTIMENTA double No Inversión en textil
TRANSPORTE_VIAJES_ Y_TURISMO
double No Inversión en transporte y turismo
VARIOS double No Inversión en otros campos no listados
Descripción de Gráficos
La tabla de descripciones contiene textos explicativos de cada tipo de gráfico
según cliente.
47
Campo
Tipo
Clave
Nulo
Descripción
id int PK No Identificador de cada entrada
cliente varchar(50) SK* No Nombre del cliente
nombre_grafico varchar(50) No Nombre del gráfico
texto varchar(8192) No Texto explicativo
Cuatro de estas entidades (analisis_campaign, analisis_index, rac y resumen)
corresponden a datos utilizados para alimentar sus respectivos gráficos. Dos más
(afinidad y forecast) son datos de referencia para cálculos a realizar por la
herramienta de predicciones. La entidad restante corresponde a la tabla donde se
almacenan textos descriptivos de los resultados de cada gráfico, que serán renovados
por los analistas en cada actualización.
No se descarta en un futuro una revisión de este diseño que incluya entidades
relacionadas con las ya existentes. Parece razonable la inclusión de una entidad
'usuario' o 'cliente' que se relacione con las cuatro entidades de datos de gráficos y la
de descripciones. Esta inclusión se hará más probable a medida que aumente el
número de clientes de la plataforma o se requiera, en su caso, que la aplicación
almacene datos de registro de actividad de sus usuarios.
8.3 Estructura de Clases
El modelo de clases es idéntico al de entidades, ya que se corresponden
directamente con las entidades del Modelo de Datos.
8.3.1 Estructura de Clases Java
En los siguientes diagramas se presenta la estructura de las clases Java para las
entidades del diseño.
48
Afinidad
49
Análisis de Mercado (Index)
50
Análisis de Campaña
51
Descripción de Gráficos
Forecast
52
RAC
53
Resumen
54
8.3.2 Objetos de Acceso a Datos
Siguiendo el patrón de diseño MVC, la interacción de la aplicación con la base
de datos se realiza a través de Objetos de Acceso a Datos o DAO. La estructura de
clases que se ha utilizado para el tratamiento de los DAO se expone a continuación.
Figura X: Estructura de Objetos de Acceso a Datos para una entidad
55
Se han definido la interfaz Identificable y la clase abstracta AbstractIdentificable
(que implementa la primera) como base común para las clases correspondientes a
entidades y para las interfaces genéricas que sirven como estructura de los DAO:
BaseDao y BaseDaoJpa.
Cada DAO es una interfaz que implementa a BaseDao, y a su vez le
corresponde una clase DaoJpa que hereda de BaseDaoJpa, que será donde se
implementen los diferentes métodos de acceso a datos definidos en su interfaz de
entidad, al implementar a su vez la propia interfaz.
Así, la clase DaoJpa es la que contiene la llamada con código nativo SQL a la
Base de Datos.
El ejemplo en la figura muestra la estructura de clases DAO para la entidad
RAC. Este patrón se repite para cada una de las 7 entidades del diseño.
56
Capítulo 9
Recursos
9.1 Hardware y Servicios
Hardware
Equipo HP Pavillion con procesador AMD Phenom™ II X4 Processor 2.80
GHz y 4 GB RAM para el desarrollo y ejecución de pruebas locales. Incluye una
versión preinstalada del sistema operativo Microsoft Windows 7 Home Premium 64
bits.
Servicios
Un servicio de alojamiento web basado en Linux con acceso remoto como
servidor de páginas web con soporte para PHP (Apache) y Java (Tomcat) y gestión
desatendida con acuerdo de nivel de servicio 99.9%
57
9.2 Software
Los paquetes de software utilizados para el desarrollo de este proyecto son:
• Eclipse: Entorno de desarrollo integrado (IDE) de código abierto para aplicaciones
Java. Versión 3.5, también denominado Galileo.
• Adobe Flash Builder 4 plugin para Eclipse: Complemento para el desarrollo de
aplicaciones Flex en Eclipse, orientado a integrarse con aplicaciones basadas en
tecnologías web (HTML, PHP, ASP, JSP).
• Microsoft Office: Paquete de programas de ofimática. Utilizado para la
elaboración de la documentación del proyecto (Microsoft Word y Microsoft
PowerPoint) y para el tratamiento de informes en formato de hoja de cálculo de
Microsoft Excel.
• Notepad++: Editor de texto libre y de código abierto, con soporte para gran
cantidad de lenguajes de programación. Utilizado para el desarrollo del código
interpretado, no compilado (PHP y sentencias SQL).
• WinSCP: Cliente FTP gráfico de código abierto para Windows que emplea SSH.
Utilizado para la transferencia de archivos al servidor.
• Wamp: sistema de infraestructura de internet de código abierto en Windows que
integra las tecnologías Apache, MySQL y PHP. Utilizado para realización de
pruebas sobre la BBDD.
• Mozilla Firefox: Navegador web libre y de código abierto. Utilizado para las
pruebas de la aplicación.
9.3 Planificación
Para segmentar la planificación del proyecto se ha contemplado por separado
cada una de las etapas de desarrollo, cuya duración en horas de trabajo ha sido
estimada según los distintos perfiles de los participantes del proyecto.
58
PLANIFICACIÓN Perfil Horas Análisis de Requisitos Analista de Sistemas 40 Desarrollador Junior 20 horas Estudio Arquitectura y Aprendizaje Analista de Sistemas 15 horas Desarrollador Junior 30 horas Diseño
Analista de Sistemas 15 horas Desarrollador Junior 40 horas Desarrollo, Implantación y Pruebas Analista de Sistemas 10 horas Desarrollador Junior 270 horas TOTAL Analista de Sistemas 80 horas Desarrollador Junior 360 horas TOTAL 440 horas
9.4 Valoración Económica
La valoración en términos económicos del proyecto en función de los recursos
empleados está resumida en la siguiente tabla:
59
Valoración económica
Recursos Humanos Perfil Ratio Horas Total Analista de Sistemas 60€/h 80 4.800€ Desarrollador Junior 40€/h 360 14.400€ Hardware Elemento Precio Imputado Total Equipo Informático HP Pavillion 799.95€ 30% 239,99€ Software propietario
Elemento Precio Imputado Total Microsoft Windows 7 Home Premium Incluido Incluido Microsoft Office 2007 313,20€ 30% 93,96€ Adobe Flash Builder plugin for Eclipse 447,22€ 30% 134,17€ Servicios adicionales Elemento Precio Imputado Total 1&1 Servidor Cloud Dinámico 265,41€ 30% 79,62€ TOTAL 19.747,74€
60
Capítulo 10
Mejoras Funcionales
Este proyecto abarca las primeras etapas de lo que se espera sea una aplicación
sostenible y funcional a largo plazo. Está prácticamente garantizada la futura adición
de nuevos módulos y funciones que complementen las ya existentes.
Las distintas posibilidades de expansión para la sección de consultas de
mercado comienzan por la implementación de nuevas herramientas gráficas, o la
evolución de las ya creadas. Algunos ejemplos de posibles mejoras en este campo
podrían ser el desglose del parámetro cualitativo del RAC, permitiendo conocer de
forma más detallada el resultado de la evaluación de calidad de las campañas, y
compararlas por medio de estos factores, y también la creación de un nuevo gráfico
de análisis para las curvas de cobertura de cada campaña publicitaria.
La parte de análisis de mercado será previsiblemente la sección más estática
de la aplicación, por ser independiente del usuario o cliente que la consulte. Sin
embargo quedan todavía varias aplicaciones que se pueden integrar en esta rama de
la plataforma, una de ellas podría ser una herramienta de consulta de estadísticas de
los diferentes canales de televisión.
61
La sección de herramientas de negociación es la más susceptible de recibir
actualizaciones en forma de nuevos componentes en un futuro. Aunque eso no
significa que la actual herramienta de negociación se vaya a dar por terminada. Una
modificación más que probable será la opción de exportar los resultados de la
herramienta a modo de informe, ya sea el resultado visual en un documento de
presentación tipo PDF, o bien resultados de la simulación en una hoja de cálculo.
A un nivel superior sería posible pensar incluso en la integración en las
herramientas de la aplicación de una nueva fuente de datos, como la inclusión de un
nuevo medio de comunicación en el análisis, que podría ser la radio, ya que sigue
una estructura de organización (programas, cadenas, bloques…) similar a la de la
televisión.
En cuanto a mejoras de carácter estructural, como se ha indicado en la sección
de diseño de este documento, la organización de entidades podría sufrir cambios
también en el futuro.
62
Capítulo 11
Conclusiones
Durante las etapas de prueba la plataforma ha tenido buena aceptación entre
los usuarios. Como se deseaba, la presentación de resultados en este nuevo formato
constituye un valor adicional para sus usuarios como complemento al sistema de
presentación tradicional.
Además es una herramienta con un alto potencial de evolución y crecimiento,
y al momento de finalización de este proyecto ya se han establecido nuevos
requisitos para su ampliación a nuevos aspectos de análisis y nuevas herramientas.
El principal reto a superar en su evolución será salvar las dificultades
derivadas de las peculiaridades de los distintos clientes a nivel de servicio, de modo
que cada nueva implementación sobre este desarrollo no sea exclusivamente un
servicio a un único cliente sino una funcionalidad más en potencia para todos los
usuarios.
63
Bibliografía
Libros
[BARR01] Barranco de Areba, Jesús. "Metodología del Análisis estructurado de sistemas". Universidad Pontificia Comillas, 2001.
[LABR10] Labriola, Michael & Tapper, Jeff. "Adobe Flex 4, Training from the Source". Adobe Press, 2010.
[GASS10] Gassner, David. "Flash Builder 4 and Flex 4 Bible". Paperback, 2010.
Páginas web
[1] http://www.adobe.com
[2] http://maven.apache.org
[3] http://download.oracle.com/javase/6/docs/api/
[4] http://www.springsource.org/
[5] http://mate.asfusion.com/
64
Anexo I
Glosario de Términos
Los principales elementos con los que trabaja la consultoría de medios en el
ámbito particular de la publicidad en televisión son las diferentes campañas
publicitarias, las emisiones en los espacios publicitarios de dichas campañas en
televisión, la audiencia obtenida por cada una de ellas, y su coste.
Cada campaña publicitaria está destinada a lo que se conoce como público
objetivo, conjunto de destinatarios considerados ideales por los respectivos anun-
ciantes entre el universo compuesto por todos los espectadores del medio de
comunicación.
A la hora de tratar información de esta índole, es necesario estar familiarizado
con una serie de conceptos de uso recurrente por todos los actores que intervienen en
estos procesos.
65
Spot publicitario
Un spot es un anuncio publicitario difundido en televisión, con el fin de
comercializar un determinado producto o servicio. Suelen ser emisiones de duración
corta en los que se da a conocer este producto o servicio al público.
GRP
Como unidad de medida de audiencia se introduce el término GRP (Gross
Rating Points), utilizado para contabilizar el impacto de una pauta publicitaria en el
público objetivo.
Se define GRP como el producto de los impactos de un espacio publicitario
por el porcentaje del público objetivo alcanzado.
De este modo un GRP es la unidad de medida de audiencia publicitaria de un
medio que equivale a un impacto en el uno por ciento del universo potencial total de
la audiencia, sin tomar en consideración la concentración o dispersión del mismo.
Extrapolando a otro ejemplo, 100 GRP pueden significar que una pauta publicitaria
ha alcanzado 1 vez al 100% del público objetivo, o bien 100 veces al 1% del público
objetivo, o cualquier otra de las múltiples combinaciones posibles de parámetros de
las que se obtenga ese mismo resultado.
Sin embargo, a pesar de poder medir por medio de los GRP el alcance de un
spot publicitario y por extensión el de una campaña publicitaria, sigue siendo una
medida algo heterogénea a la hora de confrontar resultados de diferentes campañas
publicitarias para comparar el rendimiento de la inversión. La duración de los
diferentes espacios publicitarios es otro factor importante a tener en cuenta, ya que
influye directamente en el precio. No se puede considerar equivalente el resultado de
dos campañas que han conseguido el mismo impacto en GRP si la duración de sus
spots era diferente. Por ello se estandariza la duración media de cada spot a la
66
cantidad de 20 segundos. En cada análisis que se hace de un spot, el resultado de GRP
es ponderado como si su duración fuese la de un spot de 20 segundos. Es lo que se
conoce como GRP en 20 segundos, GRP20'' o simplemente GRP20. Habitualmente en
consultoría se utiliza la connotación de la variable original, GRP, cuando en realidad
se alude a los GRP20''.
Coste por Rating
Sobre esta medida de valoración del impacto ya estandarizada se realiza el
cálculo de resultado según el coste. Ésta se denomina coloquialmente como "coste
por rating" o coste por GRP, aunque como se indicaba en el comentario anterior en
realidad hace referencia al coste por GRP20'' (C/GRP20'' o para abreviar simplemente
C/GRP). Esta variable sí resulta útil a la hora de comprar el rendimiento de la
inversión de diferentes campañas publicitarias.
Calidad frente a cantidad
La unidad básica de medida para el comportamiento de una campaña
publicitaria es la cantidad de GRP obtenidos, y su coste: C/GRP. Estas dos variables
representan la cantidad obtenida e invertida. Sin embargo no sirve como medida
universal ni exclusiva para medir su comportamiento al compararlo frente a otras
campañas, ya que invertir en los distintos factores de calidad de la emisión puede
tener una trascendencia mayor que simplemente la cantidad bruta de impactos en el
público.
Por ejemplo, es posible que una campaña con más GRP y menor C/GRP
conlleve un menor ratio de retorno de inversión que una campaña de menor número
de impactos y mayor coste, pero que incorpore una mayor valoración en factores
67
cualitativos como Prime Time, posicionamiento privilegiado, o simplemente un target
de compra mejor escogido.
Franja Horaria
Sin embargo, además de la duración hay más factores que pueden influir tanto
en el impacto como en el coste de un spot publicitario. El primero de ellos es la franja
horaria a la que cada spot es emitido, también denominada daypart. El día se divide
en 6 franjas horarias, a saber: Mañana, Sobremesa, Tarde, Prime Time, Madrugada y
Resto. La emisión de spots publicitarios en una u otra no es ni mucho menos
indiferente, la audiencia a ciertas horas del día es estadísticamente mayor que otras,
y este factor hace que varíe el impacto de un spot en GRP, y por supuesto esta
variación se ve reflejada en su coste.
Normalmente se suele dar una mayor valoración a los GRP obtenidos en los
spots de las franjas de mayor audiencia, y la franja de mayor audiencia es la franja de
Prime Time, que en España está fijada entre las 20:30 horas del día hasta las 00:00
horas, en que empieza la franja de Madrugada (en televisión se considera que un día
termina a las 7:00 horas, al finalizar la franja siguiente a la de Madrugada y comenzar
la de Mañana del día siguiente).
A la hora de tratar con un volumen grande de datos de una o varias campañas
publicitarias, no es relevante la distinción de las 6 distintas franjas horarias, sino
únicamente del la franja de Prime Time. Así, al hablar del Prime Time de una
campaña se está haciendo referencia al porcentaje de la inversión que se ha hecho en
esa campaña en spots emitidos en la franja de Prime Time, obviando la distribución en
otras franjas.
68
Posicionamiento
Otro factor a tener en cuenta al comparar spots publicitarios, aún en la misma
franja horaria, es la posición que ocupan en el bloque publicitario. Este parámetro
denomina como Posición en Bloque o PIB (Postion in Block). Los spots son emitidos en
espacios de tiempo llamados bloques cuya duración mínima puede ser de entre 20 y
30 segundos (la duración media de un único spot) hasta 10 ó 15 minutos, o incluso
más.
Estadísticamente, la posición relativa de los spots dentro de cada bloque
publicitario es también un parámetro significativo a valorar, siendo las posiciones
más valiosas dentro de un bloque las que se sitúan en sus extremos, tanto el principio
como el final. Al igual que ocurría con la duración o la franja horaria, la presencia de
un spot en estas posiciones significa una variación del impacto del spot que
igualmente se ve también reflejada en su coste.
Las posiciones relevantes en bloque son la primera, segunda, tercera,
penúltima y última. Aunque como se ha indicado, un bloque puede tener menos de 5
spots, por lo que algunas de estas posiciones no existirían. La prioridad de la posición
que se asigna en este caso (por ejemplo, en un boque de 3 spots el segundo ocuparía a
la vez las posiciones segunda y penúltima, y el tercero las posiciones tercera y última,
pero no se le han de asignar ambas) se hace según este orden:
Primera > segunda > última > tercera > penúltima.
De modo similar a la simplificación de la franja horaria, en el tratamiento de
un volumen grande de datos la distinción de cinco posibles valoraciones para este
parámetro se vuelve irrelevante. Por ello se mantiene la distinción de la posición
primera y las demás posiciones destacadas se agrupan pasando a denominarse
"resto". Se considerarán entonces dos diferentes valores para la Posición en Bloque,
uno para la posición primera, y otro para el resto, significando en cada caso el
69
porcentaje de la inversión de una campaña que se ha hecho en spots emitidos con esas
condiciones de posicionamiento.
Cobertura
La cobertura determina el porcentaje de público objetivo que ha alcanzado
una campaña. Se diferencia de la valoración en GRP en que no se consideran
múltiples impactos sobre los individuos, y por tanto está evaluado como porcentaje
sobre el universo objetivo total. Para el cálculo de la cobertura se consideran los
ratings obtenidos en el análisis de una campaña, pero también su duración y su
distribución en los diferentes medios y canales de comunicación disponibles.
Las variables de cobertura van acompañadas de un parámetro adicional,
indicador del número mínimo de impactos de una campaña que ha recibido el
público objetivo contemplado. Por ejemplo, la Cobertura 1+ representa al porcentaje
de público que ha visionado un espacio publicitario al menos una vez, y la Cobertura
3+ representa al porcentaje que lo ha visionado al menos 3 veces.
La cobertura suele representarse como una gráfica en forma de curva que
enfrenta el propio porcentaje de cobertura a la cantidad de ratings o GRP que
equivalen a ese nivel de cobertura. Es un modo interesante de comprobar el punto a
partir del cual un incremento de la contratación de ratings no conlleva un aumento de
la cobertura.
Afinidad
El público objetivo de una campaña publicitaria se denomina habitualmente
como "target". Un target es pues un subconjunto de una determinada población que
cumple unos determinados requisitos a cumplir por parte de los espectadores para la
70
campaña publicitaria, que son los que distinguen unos targets de otros. Estos
requisitos pueden referirse a cualquier variable sociológica imaginable: distinciones
entre sexo, edad, clase social, rama laboral, número de hijos...
El target final de una campaña se denomina habitualmente core target, para
distinguirlo del llamado "target de compra", que es el target que se contrata con los
proveedores de espacios publicitarios. La cantidad de targets de compra que ofrecen
estos proveedores es muy limitada, y cada uno tendrá un coeficiente de correlación
con los diferentes posibles core targets que pueda tener la campaña.
A este coeficiente se le denomina afinidad o targetting, y expresa el porcentaje
de coincidencia entre el core target y el target de compra, es decir, el porcentaje de
individuos del target de compra que cumplen los requisitos del core target, lo que a
nivel de resultados se traduce como el porcentaje de inversión que llega realmente al
público objetivo real.
Top 20
El Top 20 representa el procentaje de la inversión de una campaña publicitaria
que corresponde a spots que han sido emitidos en bloques anexos a alguno de los 20
programas con mayor audiencia de toda la parrilla de televisión.
Chanel Mix
El Channel Mix de una campaña denomina el reparto de espacio publicitario
de la campaña entre los diferentes canales de servicio.
Index
71
El Index es una entidad que representa el comportamiento medio de todos los
clientes en cualquier magnitud analítica del mercado de las comunicaciones, y por
tanto se utiliza como métrica para comparar las tendencias del mercado con otras
entidades específicas.
Forecast
Forecast es un anglicismo que significa predicción o pronóstico. Se utiliza en el
ámbito de consultoría referido a las previsiones de costes o previsiones de resultados
que se esperan para un periodo futuro.
72
Anexo II
Manual de usuario
En este anexo se detallan las diferentes funcionalidades de la aplicación y el
manejo de la aplicación.
El orden de navegación en la pantalla principal es a través de un menú
horizontal presente en la cabecera que consta de tres secciones: Dashboard, Information
y Tools. El acceso a las sub-secciones pertenecientes a cada una de ellas se organiza en
menús verticales situados a la izquierda de la ventana de cada sección.
1 Pantalla de Log-in
La pantalla inicial de la aplicación muestra un sencillo formulario de
autenticación. Para acceder hay que escribir un nombre de usuario y una contraseña
válidos y pulsar el botón de "Log In" (o bien la tecla Enter).
73
Fig. 1: Formulario de autenticación
2 Dashboard
Una vez autenticado el usuario accede a la pantalla de Dashboard, el panel de
control general de consulta para información propia de cada cliente. Por defecto se
cargará el contenido del primer gráfico con una consulta predefinida, siempre con
datos pertenecientes al dominio del usuario en cada caso.
Fig. 2: Pantalla de Dashboard
74
La pantalla de Dashboard estará compuesta de hasta 3 diferentes gráficos:
Situación versus Index, RAC e Inflación, accesibles a través de botones en un menú
vertical situado en la parte izquierda.
Una vez un gráfico es cargado, y en función del usuario que esté autenticado
se carga un cuadro de texto debajo de él con un resumen más detallado del
significado del gráfico y del contexto de mercado del que se obtiene la información.
La mecánica general de interacción con los gráficos es sencilla e intuitiva. Los
gráficos cambian según la selección de varios controles tipo comboBox (menú
desplegable) situados bajo ellos.
Fig. 3: Ejemplo de comboBox desplegado
Al seleccionar un nuevo valor en un comboBox el programa hará una consulta a
la base de datos con los parámetros introducidos, y mostrará la información obtenida
al usuario.
Para analizar la información mostrada en un gráfico con mayor nivel de
detalle tan solo hay que desplazar el puntero del ratón sobre uno de los elementos de
datos del gráfico. Aparecerá una pequeña ventana con información extendida sobre
el objeto de datos correspondiente.
75
Situación versus Index
Fig. 4: Selección de un dato en el gráfico de Dashboard
El gráfico de Situación versus Index ofrece información del coste por rating
(C/GRP o C/GRP 20’’) para el cliente, el mercado (Index) y el diferencial entre ambos.
RAC
Fig. 5: Gráfico de RAC
76
Los filtros del gráfico de RAC son un selector de campañas en el que es posible
seleccionar los productos cuyas campañas se quieran discriminar, un filtro de
agrupación que permite combinar los resultados de RAC de la misma marca, mismo
trimestre o mismo año según la comparación que se desee hacer, y dos selectores de
fechas para acotar el período de análisis.
Los indicadores se colocan en posición relativa a su respectiva escala según su
valor (Cost Benchmark para el valor cuantitativo y Quality Benchmark para el
cualitativo).
Fig. 6: Ejemplo de consulta de información de RAC
En el ejemplo de la figura 6 se observa una consulta de resultados de
campañas de la segunda mitad del año 2010, que agrupada por trimestres ofrece
efectivamente 2 resultados. Para una valoración detallada basta con deslizar el
puntero del ratón sobre el elemento de datos del gráfico que se quiera consultar.
77
Inflación
El gráfico de inflación de cliente muestra la curva de inflación de cada pareja
de años consecutivos en los que se han realizado análisis. Al estudiar cada objeto al
detalle se muestra también los costes medios por rating de cada período que generan
ese diferencial.
Fig. 7: Gráfico de Inflación de cliente
El parámetro target está fijado por defecto para este gráfico de acuerdo con el
core target básico especificado por el cliente. En el caso del ejemplo seleccionado en la
figura 7, el target correspondiente es “amas de casa”.
Por tanto el único atributo variable para la inflación de cliente es la cadena de
televisión de la que se comparan los costes.
3 Information
La sección de información de mercado es similar al Dashboard, está dividida en
varias pantallas cambiantes según un menú vertical, ofrece también varios gráficos
de consulta.
78
Fig. 8: Pantalla de Information y gráfico de Inflación de mercado
Inflación de mercado
El primero de ellos es el gráfico de inflación de mercado o inflación del Index,
gráfico de estructura idéntica al de inflación de cliente con la salvedad de disponer
de un comboBox adicional para elegir también el target deseado.
Inversión
El siguiente gráfico de mercado es el de inversión total, que compara la
inversión total acumulada por año (y trimestre), así como el ratio de variación de ésta
por bienios en un segundo cuadro adicional.
79
Fig. 9: Gráfico de inversión total
El gráfico de inversión es fijo y la información se muestra con la carga del
mismo. No hay parámetros que modificar.
Inversión Medios
El gráfico de inversiones por medios de comunicación es un diagrama de
barras acumulado que compara los porcentajes de inversión destinada a cada uno de
los distintos soportes de medios de comunicación en un período determinado frente
al mismo período del año anterior.
Para cambiar los parámetros de este gráfico se deben manipular los sliders
situados a la derecha del mismo. El primero de ellos permite elegir el bienio, en el
segundo se selecciona el rango del período de análisis entre año, semestre, trimestre
y mes, y en el tercer selector se escoge el período determinado.
80
De nuevo al deslizar el ratón sobre los elementos de datos se obtiene
información más detallada, en este caso las cantidades absolutas invertidas en cada
medio.
Fig. 10: Gráfico de inversión por medios
Inversión Sector
El último gráfico de la sección de Information es el de inversión por sectores. El
funcionamiento es similar al gráfico anterior, ya que cuenta con el mismo sistema de
tres sliders para seleccionar el período a analizar según los criterios que se desee.
81
Fig. 11: Ejemplo de consulta relativa en el gráfico de inversión por sector
Este gráfico de inversión cuenta con un selector adicional que cambia la
magnitud de comparación entre la diferencia absoluta de inversión para cada sector,
o la variación porcentual entre ambos períodos.
Fig. 12: Ejemplo de consulta absoluta en el gráfico de inversión por sector
82
Tools
La pestaña de Tools lleva a la primera pantalla de la herramienta de
negociación. En ella se introducen los principales parámetros para la simulación de
una campaña publicitaria y su estimación de coste. Los parámetros a introducir son
los siguientes:
• Nombre: el nombre elegido para la campaña
• Inversión: cantidad en euros asignada a la campaña publicitaria
• Fechas: Fecha de inicio y fecha de finalización previstas para la campaña.
• Targets: Selección del conjunto de la población que constituirá el público objetivo.
A cada target de compra se le asocian varios posibles core targets fijos, al
seleccionar un nuevo target de compra se carga automáticamente el combo de core
targets con las opciones correspondientes.
• Distribución de GRP: equilibrio de la distribución de ratings a contratar en el
período de duración de la campaña. Se puede elegir un reparto equilibrado o una
tendencia creciente o decreciente según la presencia que se desee para la campaña
en su inicio y final.
• Duración de spots: La columna de la izquierda representa la duración en
segundos, y la columna de la derecha el porcentaje de reparto de spots de
diferentes duraciones. Es posible elegir hasta 3 duraciones distintas.
• Posición versus Index: representa el diferencial promedio de las últimas
negociaciones por parte del cliente con las cadenas respecto a los costes de
mercado. Sus valores se actualizar automáticamente en la carga inicial de la
herramienta o cuando se selecciona un nuevo target de compra, si bien es posible
alterarlo libremente según criterio del usuario.
Una vez terminada esta primera introducción de parámetros seleccionar el
botón “Escenario” para acceder a la segunda pantalla de la herramienta.
83
Fig 14: Controles de la pantalla de Escenario
En ella se selecciona el reparto porcentual que se quiere hacer de la inversión
especificada para la campaña en cada una de las diferentes cadenas de televisión. Es
posible seleccionar hasta 4 escenarios diferentes con 4 repartos distintos de inversión
a la vez.
Para activar una cadena basta con seleccionar el checkBox correspondiente. Una
vez activada se permite establecer el peso asignado a esa cadena por introducción
manual de texto o bien utilizando los botones anexos a cada casilla.
Los botones de “Ajustar” permiten en cualquier momento recalcular los
valores introducidos para que sumen el 100% total, preservando las proporciones en
la medida de lo posible.
84
Fig. 15: Ejemplo de personalización de un escenario
Se puede activar el botón bajo el logo de la última opción para tener acceso a
otro grupo de cadenas de televisión, las cadenas autonómicas. Su tratamiento será
idéntico al del grupo de cadenas nacionales.
Al desplazar el ratón sobre una columna de escenario se desplegará un menú
con controles de tipo slider en el que se pueden seleccionar los ratios de Prime Time y
posicionamiento (primera posición y resto) que se quieran para cada cadena.
85
Una vez se haya terminado de seleccionar el mix de cadenas para todos los
escenarios, se deberá pulsar el botón "Generar", que iniciará el algoritmo de cálculo y
mostrará la pantalla de resultados.
Fig. 16: Tabla de resultados de la simulación
La pantalla de resultados contiene una tabla resumen de todos los cálculos
realizados en la simulación. Este resumen tiene varios posibles niveles de detalle. Los
diferentes escenarios seleccionados aparecen representados en filas con los
resultados globales del escenario. Cada uno puede ser desglosado en los resultados
particulares de las cadenas de televisión elegidas en el mix del escenario, a su vez
estos pueden ser desglosados por semanas, y las semanas en días.
Para hacer más manejable la tabla en caso de querer expandir los datos
verticalmente fuera de sus dimensiones, además del uso de barras de desplazamiento
se han incluido dos botones-enlace situados en la parte inferior de la misma para
86
controlar su extensión. A su lado se puede encontrar otro enlace que permite cambiar
la selección de columnas a mostrar en la tabla.
Fig. 17: Cuadro de selección de columnas para la tabla de resultados
Bajo la tabla de resultados se podrán consultar cuatro gráficos representativos
de las principales variables de la simulación para cada escenario de forma
independiente:
• Un gráfico de Share que muestra la distribución de la inversión o los GRP
obtenidos entre las distintas cadenas.
• Un gráfico de parámetros cualitativos, que muestra la distribución media de
Prime Time y posicionamiento del escenario.
• Un gráfico de curvas de cobertura que muestra el alcance sobre el público
objetivo según los ratings obtenidos.
87
• Un histograma acumulado de drivers de cobertura, que ofrece una visión
desglosada de la influencia de cada uno de los cinco componentes del cálculo de
la cobertura.
Fig. 18: Ejemplo de gráficos de resultados
Cuando una simulación se ha calculado es posible realizar modificaciones de
parámetros al gusto para hacer nuevos cálculos. Una vez ajustado el modelo basta
con volver a la sección Escenario y pulsar de nuevo el botón "Generar" para obtener
los resultados actualizados.
88
Anexo III
Flujo de comunicación
Este anexo describirá el flujo de programa y datos de una consulta típica y la
comunicación generada entre los diferentes módulos, desde la generación del evento
inicial hasta el impacto en forma de actualización en el gráfico.
El presente ejemplo simulará una consulta en gráfico de Inversión por Sector,
del apartado de Information (datos de mercado) de la aplicación.
Selección en el interfaz
El usuario ejemplo está autenticado y ha accedido a la pantalla de Inversión
Sector, y quiere modificar el período de consulta.
89
Imagen de ejemplo del gráfico previa al cambio de parámetros.
El usuario modifica el tercer slider para cambiar el período del año, por
ejemplo seleccionando el mes de agosto. Esta interacción genera un evento que es
capturado para iniciar la secuencia de comunicación. Esta directriz se incluye en el
código de la etiqueta del controlador dentro de la clase del componente
InversionSector.
Disparar Evento
<s:VSlider id="sliderNumero" height="90" minimum="1" maximum="12"
value="1" snapInterval="1" dataTipFormatFunction="dataTipNumero" changeEnd="{cargaGrafico()}" creationComplete="sliderPeriodo_changeHandler(event)"/>
90
Este flujo lleva a la función cargaGrafico() del componente InversionSector, que
crea un nuevo evento correspondiente a la consulta de datos de mercado para el
gráfico solicitado.
Se incluyen en el objeto evento los parámetros de los controles que determinan
el período de consulta, y se dispara el nuevo evento.
Captura del evento y redirección
El evento es capturado por el listener del framework Flex-Mate, declarado en la
clase MainEventMap.
Esta rutina de Mate invoca un método en el objeto remoto optimizamedService
private function cargaGrafico():void { var e:MarketEvent= new MarketEvent(MarketEvent.
GRAFICOINVERSIONSECTOR); e.periodo=period; e.periodoselec= String(sliderNumero.value);
e.anio1=String(sliderAnio.value-1); e.anio2=String(sliderAnio.value);
dispatchEvent(e);
}
<EventHandlers type="{MarketEvent.GRAFICOINVERSIONSECTOR}" debug="true"> <RemoteObjectInvoker instance="{optimizamedService}" method="cargaGraficoInversionSector" arguments=
"{[event.periodo, event.periodoselec, event.anio1, event.anio2]}" showBusyCursor="true">
<resultHandlers> <MethodInvoker generator="{OptimizamedManager}"
method="handleGraficoInversionSector" arguments="{resultObject}"/>
</resultHandlers> </RemoteObjectInvoker> </EventHandlers>
91
Este remoteOptimizamedManager hace referencia a una dependencia en el
archivo de configuración del framework Spring del módulo Java del proyecto.
De modo que la entidad de servicio referenciada es la instancia de la clase
OptimizamedManager.java.
Llamada al método DAO
La llamada remota a la clase de servicio ha invocado el método
cargaGraficoInversionSector del Manager, que como la generalidad de métodos
incluidos en este servicio incluye únicamente una llamada a un método de la
instancia DAO de la entidad de la que se han de obtener los datos. El método
invocado en este nivel es obtenerInversionSector(), y por supuesto incluye los
parámetros que ha recibido de la llamada remota desde Flex.
<mx:RemoteObject id="optimizamedService" endpoint="http://{props.host}:{props.port}/{props.webcontext} /messagebroker/amf"
destination="remoteOptimizamedManager"/>
<flex:remoting-destination destination-id="remoteOptimizamedManager"
ref="optimizamedManager"/>
@Override public List<DatosInversionSector> cargaGraficoInversionSector(Integer periodo, Integer periodoselec, Integer anio1, Integer anio2) { System.out.println("Funcion llamada: cargaGraficoInversionSector"); List<DatosInversionSector> resultado = new
ArrayList<DatosInversionSector>(); resultado = resumenDao.obtenerInversionSector(periodo,
periodoselec,anio1,anio2); return resultado; }
92
Código SQL
El método del DAO invocado contiene el código nativo de consulta SQL
Se introducen los parámetros en la query y se ejecuta, almacenando el
resultado provisional de la query en una estructura estándar de datos tipo Object.
Se declara a continuación la variable que va a encapsular los datos de retorno
y se recorre la tabla generando un objeto por cada fila (habrá dos, uno por cada año
de consulta).
@Override public List<DatosInversionSector> obtenerInversionSector(Integer periodo,
Integer periodoselec, Integer anio1, Integer anio2) { Query query = entityManager.createNativeQuery("SELECT TRUNCATE((`mes`-1)/:periodo,0)+1 as PERIODO,`anio`, SUM(`ALIMENTACION`),SUM(`AUTOMOCION`),SUM(`BEBIDAS`),
SUM(`BELLEZA_E_HIGIENE`),SUM(`CONSTRUCCION`), SUM(`CULTURA_ENSENANZA_MEDIOS_COMUNICAC`), SUM(`DEPORTES_Y_TIEMPO_LIBRE`),SUM(`DESCONOCIDO`), SUM(`DISTRIBUCION_Y_RESTAURACION`),SUM(`ENERGIA`), SUM(`EQUIPOS_DE_OFICINA_Y_COMERCIO`),SUM(FINANZAS),SUM(`HOGAR`), SUM(`INDUSTRIAL_MATERIAL_TRABAJO_AGROPE`),SUM(`LIMPIEZA`), SUM(`OBJETOS_PERSONALES`),SUM(`SALUD`), SUM(`SERVICIOS_PUBLICOS_Y_PRIVADOS`),SUM(̀ TABACO`), SUM(`TELECOMUNICACIONES_E_INTERNET`),SUM(`TEXTIL_Y_VESTIMENTA`), SUM(`TRANSPORTE_VIAJES_Y_TURISMO`),SUM(`VARIOS`) " +
"FROM resumen " + "WHERE TRUNCATE((`mes` -1) /:periodo, 0 ) +1 =
:periodoselec " + "AND anio = :anio1 " + "OR " + "TRUNCATE((`mes` -1) /:periodo, 0 ) +1 = :periodoselec " + "AND anio = :anio2 " + "GROUP BY PERIODO, anio " + "ORDER BY anio , mes"); query.setParameter("periodo", periodo); query.setParameter("periodoselec", periodoselec); query.setParameter("anio1", anio1); query.setParameter("anio2", anio2);
List<Object[]> resultList = (List<Object[]>) query.getResultList();
93
La clase DatosInversionSector representa un objeto tipo bean, contenedor para
objetos generados por esta consulta. Tan solo consta de los atributos
correspondientes a entidad y sus respectivos métodos getters y setters.
Recepción de datos
El objeto datosSector conteniendo el resultado de la consulta a la base de datos
es devuelto a la instancia la clase de servicio OptimizamedManager.java, que a su vez
la devuelve al procedimiento Flex que cursó la llamada remota.
El gestor de resultados del Listener original del evento redirige el flujo hacia la
instancia de la clase de servicio del módulo Flex, OptimizamedManager.as, incluyendo
como parámetro el objeto de datos recibido del módulo Java.
List<DatosInversionSector> datosSector = new ArrayList<DatosInversionSector>();
for (Iterator<Object[]> iterator = resultList.iterator(); iterator.hasNext();)
{ Object[] objects = iterator.next(); DatosInversionSector ds = new DatosInversionSector(); ds.setPeriodo(String.valueOf((BigDecimal)objects[0])); ds.setAnio(String.valueOf((Integer)objects[1]));
ds.setAlimentacion((Double)objects[2]);
[…]
ds.setTransporte_viajes_y_turismo((Double)objects[23]); ds.setVarios((Double)objects[24]); datosSector.add(ds); } return(datosSector);
<resultHandlers> <MethodInvoker generator="{OptimizamedManager}" method="handleGraficoInversionSector"
arguments="{resultObject}"/> </resultHandlers>
94
El objeto es entonces asignado a una variable contenedora de un tipo
equivalente en Flex a la clase DatosInversionSector original. Es en este paso cuando la
lógica de negocio se aplica a los datos brutos obtenidos en la query, con el fin de
producir los resultados en el formato en que serán presentados.
En el método invocado en esta clase de servicio, handleGraficoInversionSector, el
objeto de datos es sometido a un algoritmo del que se obtienen los resultados finales
de la consulta, almacenados en un único objeto ArrayCollection, preparado para ser
procesado por el componente gráfico. En el caso concreto del tratamiento de datos
del gráfico de InversionSector, se genera a partir de la misma consulta dos objetos de
datos de resultados para el diagrama de barras, uno correspondiente a resultados
absolutos y otro a resultados relativos.
Adicionalmente el algoritmo genera también para esta consulta concreta dos
objetos adicionales con los datos necesarios para que el gráfico dibuje en una línea
vertical el valor promedio en cada uno de los dos escenarios. Todos estos objetos son
asignados a variables estáticas de la propia clase Manager.
public function handleGraficoInversionSector (array_c:ArrayCollection): void { var ac:ArrayCollection()= calcular_diferencia(array_c);
var ac2:ArrayCollection()= calcular_media(array_c); var acabs:ArrayCollection()= calcular_diferencia_abs(array_c); var ac2abs:ArrayCollection()= calcular_media_abs(array_c);
datosInversionSector = ac;
datosInversionSector2 = ac2; datosInversionSectorAbs = acabs; datosInversionSector2Abs = ac2abs; }
95
Inyección de datos
La transferencia de datos desde el Manager se hace a través del servicio de
inyección de dependencias del framework Flex-Mate. En la clase MainEventMap se
declaran estas dependencias, relacionando las variables de almacenamiento del
Manager con las respectivas variables que sirven de fuente de datos o dataProvider al
gráfico de InversionSector.
Estas variables están vinculadas directamente al atributo dataProvider del
código del gráfico, por lo que la sincronización del mismo es automática respecto a la
actualización de los datos.
<Injectors target="{InversionSector}"> <PropertyInjector source="{OptimizamedManager}"
sourceKey="datosInversionSector" targetKey="datosGrafico"/> </Injectors> <Injectors target="{InversionSector}"> <PropertyInjector source="{OptimizamedManager}"
sourceKey="datosInversionSector2" targetKey="datosMedia"/> </Injectors> <Injectors target="{InversionSector}"> <PropertyInjector source="{OptimizamedManager}" sourceKey="
datosInversionSectorAbs" targetKey="datosAbsolutos"/> </Injectors> <Injectors target="{InversionSector}"> <PropertyInjector source="{OptimizamedManager}"
sourceKey="datosInversionSector2Abs" targetKey="datosMediaAbsolutos"/>
</Injectors>
<mx:series> <mx:BarSeries id="bsalimentacion" fill="{colorbarras}"
labelPosition="outside" dataProvider="{datosGrafico}" xField="numero" yField="cadena" displayName="2008 vs. 2009" showDataEffect="{interpolateIn}" labelField="numero" labelFunction="barSeriesLabelFormatter" effectEnd="bsalimentacion_effectEndHandler(event)"/>
<mx:LineSeries id="lsmedia" lineStroke="{mediaStroke}"
dataProvider="{datosMedia}" xField="numero" yField="cadena" displayName="Media Mercado"/>
</mx:series>
96
Finalmente el gráfico procesa los datos y refleja la nueva información de la
consulta realizada.
Imagen de ejemplo del gráfico tras la ejecución de la consulta