Will Robert De Niro, an amorous Dante and a happy hyena capture any Lions at Cannes this year? Jose María Roca de Viñals, VP and CCO of DDB Spain, thinks his pick of Spain's best campaigns this year are in with a chance.
Jose María Roca de Viñals
Get a demo
Fill out the form below to arrange a personalized demo and see how shots can work for you...
(function () {
var overlay = document.getElementById('adglare-overlay');
var zoneContainer = document.getElementById('adglare-zone-737528871');
if (!overlay || !zoneContainer) return;
var SETTINGS = {
zoneId: '737528871',
loadDelay: 500,
maxWaitForAd: 3000
};
function showOverlay() {
overlay.classList.remove('hidden');
}
function closeOverlay() {
overlay.classList.add('hidden');
}
function clearZone() {
zoneContainer.innerHTML = '';
delete zoneContainer.dataset.loaded;
}
function zoneHasAdContent() {
var iframe = zoneContainer.querySelector('iframe');
var img = zoneContainer.querySelector('img');
var link = zoneContainer.querySelector('a');
var children = Array.from(zoneContainer.children).filter(function (el) {
return el.id !== 'zone' + SETTINGS.zoneId;
});
return !!(iframe || img || link || children.length);
}
function loadAdGlareAd() {
if (zoneContainer.dataset.loaded === 'true') return;
var span = document.createElement('span');
span.id = 'zone' + SETTINGS.zoneId;
zoneContainer.appendChild(span);
var script = document.createElement('script');
script.async = true;
script.src = 'https://extremereach.engine.adglare.net/?' + SETTINGS.zoneId + '&cb=' + Date.now() + Math.random();
document.head.appendChild(script);
zoneContainer.dataset.loaded = 'true';
}
var closeBtn = overlay.querySelector('.overlay-close');
if (closeBtn) {
closeBtn.addEventListener('click', closeOverlay);
}
setTimeout(function () {
loadAdGlareAd();
var shown = false;
var observer = new MutationObserver(function () {
if (zoneHasAdContent() && !shown) {
shown = true;
observer.disconnect();
showOverlay();
}
});
observer.observe(zoneContainer, {
childList: true,
subtree: true
});
setTimeout(function () {
if (!shown) {
observer.disconnect();
clearZone();
}
}, SETTINGS.maxWaitForAd);
}, SETTINGS.loadDelay);
})();