Of course, not all immersive experiences are successful, but Willy Wonka’s Chocolate Factory experience… turned out to be a real disaster.

In Glasgow, Scotland, the House of Illuminati this week invited parents and children to step through the doors of the company depicted by Roald Dahl in a 1964 children’s book. Gene Wilder (1971), Johnny Depp (2005) and Timothée Chalamet (2023) played the role of a generous and eccentric chocolatier in the film.


Sorry, your browser does not support videos

Hundreds of people bought tickets for an average of 46 euros ($65) each, hoping to have some fun on site. However, nothing happened as planned.

(function () {
var slotName = “ad65e1f73931aab-adSlotLppos”;
var dimensions = (“fluid”,(634,125),(634,150),(634,180),(634,200),(634,634),(634,400),(640,360),(640,480),(728,200));
var positionName = null;
var pageBlock = “text”;
const IS_MOBILE = window.innerWidth {
if (googleIframe.contentWindow === e.source){
if(e.data.nbArticles) {
let title = document.createElement(“div”)
let nbArticles = document.createElement(“div”)
title.innerHTML = “Série commanditée”
nbArticles.innerHTML = e.data.nbArticles + ” articles”
let header = document.createElement(“div”)
header.classList.add(“adSpotBlock__slotInnerHeader”)
header.appendChild(title)
header.appendChild(nbArticles)
slotInner.prepend(header)
}
}
})
}

function setUpPanorama() {
console.debug(‘Ads: Panorama Ad detected for ‘ + slotName);
let slotInner = document.getElementById(slotName);
slotInner.parentElement.style.width=”100%”;
let iframeWrapper = slotInner.firstElementChild
iframeWrapper.classList.add(‘panorama__wrapper’)
if (IS_MOBILE){
makeFullWidth(slotInner)
iframeWrapper.classList.add(‘panorama__wrapper–mobile’)
}
else{
iframeWrapper.classList.add(‘panorama__wrapper–default’)
if(pageBlock===”body”){
makeFullWidth(slotInner)
}
}
setupPanoramaIframe(iframeWrapper)

function makeFullWidth(slotInner){
let parentContainerElement = slotInner.closest(“.homeHeadlinesRow__adWrapper”)||slotInner.closest(“.homeRow__adWrapper”)||slotInner.closest(“.homeRow”)
if (!parentContainerElement){
parentContainerElement = slotInner.closest(“.adsWrapper”)
parentContainerElement.classList.add(“panorama–article”);
}else{
parentContainerElement.classList.add(“panorama–default”);
}
}

function setupPanoramaIframe(iframeWrapper){
let googleIframe = iframeWrapper.firstElementChild;
googleIframe.style.height = “100%”
window.addEventListener(‘message’, (e)=> {
if (googleIframe.contentWindow === e.source){
if(e.data.sideMarginBackgroundColor) {
iframeWrapper.style.backgroundColor = e.data.sideMarginBackgroundColor;
}
if(e.data.foregroundUrl){
createForeground(iframeWrapper,e.data.foregroundUrl,e.data.foregroundPosition,”img”)
}
if(e.data.foregroundHtmlUrl){
createForeground(iframeWrapper,e.data.foregroundHtmlUrl,e.data.foregroundPosition,”iframe”)
}
if(e.data.backgroundImgUrl){
createBackground(iframeWrapper,e.data.backgroundImgUrl,e.data.backgroundColor,”img”)
}
if(e.data.backgroundHtmlUrl){
createBackground(iframeWrapper,e.data.backgroundHtmlUrl,e.data.backgroundColor,”iframe”)
}
}
});
}

function createBackground(iframeWrapper,backgroundUrl,backgroundColor,backgroundElementType){
let backgroundElement = createBackgroundElement(backgroundUrl,backgroundElementType)
let backgroundWrapper = createBackgroundWrapper(backgroundColor)
let backgroundClipper = createBackgroundClipper()

backgroundWrapper.appendChild(backgroundElement)
backgroundClipper.appendChild(backgroundWrapper)
iframeWrapper.appendChild(backgroundClipper)

alignBackgroundToAdWrapper(backgroundWrapper, iframeWrapper)
let widthCache = window.innerWidth
window.addEventListener(“resize”,()=>{
if (window.innerWidth!==widthCache){
widthCache=window.innerWidth;
alignBackgroundToAdWrapper(backgroundWrapper, iframeWrapper)
}
})
}

function createForeground(iframeWrapper,foregroundUrl,foregroundPosition,type){
let foreground = document.createElement(type)
foreground.classList.add(“panorama__foregroundImg”)
switch (foregroundPosition){
case “top”:
foreground.style.alignSelf=”flex-start”
break;
case “center”:
foreground.style.alignSelf=”center”
break;
case “bottom”:
foreground.style.alignSelf=”flex-end”
break;
}
if (type===”iframe”){
foreground.style.height=”100%”
}
foreground.src = foregroundUrl
iframeWrapper.appendChild(foreground)
}

function createBackgroundElement(backgroundUrl, type) {
let backgroundElement = document.createElement(type);
backgroundElement.setAttribute(“src”,backgroundUrl);
backgroundElement.classList.add(“panorama__backgroundElement”);

if (“img” === type) {
backgroundElement.classList.add(“panorama__backgroundElement–img”);
}

return backgroundElement;
}

function createBackgroundWrapper(backgroundColor){
let backgroundWrapper = document.createElement(“div”)
backgroundWrapper.classList.add(‘panorama__backgroundWrapper’)
backgroundWrapper.style.backgroundColor=backgroundColor;
switch (pageBlock){
case “body”:
backgroundWrapper.classList.add(‘panorama__backgroundWrapper–homepage’)
break;
case “text”:
backgroundWrapper.classList.add(‘panorama__backgroundWrapper–article’)
break;
default:
backgroundWrapper.classList.add(‘panorama__backgroundWrapper–default’)
break;
}
return backgroundWrapper;
}

function createBackgroundClipper(){
let backgroundClipper = document.createElement(“div”)
backgroundClipper.classList.add(‘panorama__backgroundClipper’)
return backgroundClipper
}

function alignBackgroundToAdWrapper(backgroundToResize, sourceWrapper){
backgroundToResize.style.width = sourceWrapper.clientWidth+”px”;
if(pageBlock!==”body”) {
backgroundToResize.style(‘left’) = sourceWrapper.getBoundingClientRect().left+”px”;
}
}
}

LPAds.registerSpotReceived(slotName, function (slotData) {
if (slotData) {
if (LPAds.isProductGalleryAd(slotData.creativeTemplateId)) {
setUpProductGalleryAd();
} else if (LPAds.isNativeAd(slotData.creativeTemplateId)) {
setUpNativeAd();
} else if (LPAds.isNativeAdXtra(slotData.creativeTemplateId)) {
setUpNativeAdXtra();
}
}
});
LPAds.registerSpotRenderEnded(slotName, function(slotData) {
if (slotData) {
if (LPAds.isPanorama(slotData.creativeTemplateId)) {
setUpPanorama();
}else if (LPAds.isNativeAdSerieXtra(slotData.creativeTemplateId)) {
setUpNativeAdSerieXtra();
}
}
});

LPAds.displayAdSpot(slotName);
})()

A plastic table, a few bags of snacks, and non-existent decorations awaited them in a sad gray room. Disappointed children cried, furious parents called the police, the actors apologized, the company promised to refund all attendees…and the event quickly became a social media staple.

(function () {
var slotName = “ad65e1f73931ad9-adSlotLppos”;
var dimensions = (“fluid”,(634,125),(634,150),(634,180),(634,200),(634,634),(634,400),(640,360),(640,480),(728,200));
var positionName = null;
var pageBlock = “text”;
const IS_MOBILE = window.innerWidth {
if (googleIframe.contentWindow === e.source){
if(e.data.nbArticles) {
let title = document.createElement(“div”)
let nbArticles = document.createElement(“div”)
title.innerHTML = “Série commanditée”
nbArticles.innerHTML = e.data.nbArticles + ” articles”
let header = document.createElement(“div”)
header.classList.add(“adSpotBlock__slotInnerHeader”)
header.appendChild(title)
header.appendChild(nbArticles)
slotInner.prepend(header)
}
}
})
}

function setUpPanorama() {
console.debug(‘Ads: Panorama Ad detected for ‘ + slotName);
let slotInner = document.getElementById(slotName);
slotInner.parentElement.style.width=”100%”;
let iframeWrapper = slotInner.firstElementChild
iframeWrapper.classList.add(‘panorama__wrapper’)
if (IS_MOBILE){
makeFullWidth(slotInner)
iframeWrapper.classList.add(‘panorama__wrapper–mobile’)
}
else{
iframeWrapper.classList.add(‘panorama__wrapper–default’)
if(pageBlock===”body”){
makeFullWidth(slotInner)
}
}
setupPanoramaIframe(iframeWrapper)

function makeFullWidth(slotInner){
let parentContainerElement = slotInner.closest(“.homeHeadlinesRow__adWrapper”)||slotInner.closest(“.homeRow__adWrapper”)||slotInner.closest(“.homeRow”)
if (!parentContainerElement){
parentContainerElement = slotInner.closest(“.adsWrapper”)
parentContainerElement.classList.add(“panorama–article”);
}else{
parentContainerElement.classList.add(“panorama–default”);
}
}

function setupPanoramaIframe(iframeWrapper){
let googleIframe = iframeWrapper.firstElementChild;
googleIframe.style.height = “100%”
window.addEventListener(‘message’, (e)=> {
if (googleIframe.contentWindow === e.source){
if(e.data.sideMarginBackgroundColor) {
iframeWrapper.style.backgroundColor = e.data.sideMarginBackgroundColor;
}
if(e.data.foregroundUrl){
createForeground(iframeWrapper,e.data.foregroundUrl,e.data.foregroundPosition,”img”)
}
if(e.data.foregroundHtmlUrl){
createForeground(iframeWrapper,e.data.foregroundHtmlUrl,e.data.foregroundPosition,”iframe”)
}
if(e.data.backgroundImgUrl){
createBackground(iframeWrapper,e.data.backgroundImgUrl,e.data.backgroundColor,”img”)
}
if(e.data.backgroundHtmlUrl){
createBackground(iframeWrapper,e.data.backgroundHtmlUrl,e.data.backgroundColor,”iframe”)
}
}
});
}

function createBackground(iframeWrapper,backgroundUrl,backgroundColor,backgroundElementType){
let backgroundElement = createBackgroundElement(backgroundUrl,backgroundElementType)
let backgroundWrapper = createBackgroundWrapper(backgroundColor)
let backgroundClipper = createBackgroundClipper()

backgroundWrapper.appendChild(backgroundElement)
backgroundClipper.appendChild(backgroundWrapper)
iframeWrapper.appendChild(backgroundClipper)

alignBackgroundToAdWrapper(backgroundWrapper, iframeWrapper)
let widthCache = window.innerWidth
window.addEventListener(“resize”,()=>{
if (window.innerWidth!==widthCache){
widthCache=window.innerWidth;
alignBackgroundToAdWrapper(backgroundWrapper, iframeWrapper)
}
})
}

function createForeground(iframeWrapper,foregroundUrl,foregroundPosition,type){
let foreground = document.createElement(type)
foreground.classList.add(“panorama__foregroundImg”)
switch (foregroundPosition){
case “top”:
foreground.style.alignSelf=”flex-start”
break;
case “center”:
foreground.style.alignSelf=”center”
break;
case “bottom”:
foreground.style.alignSelf=”flex-end”
break;
}
if (type===”iframe”){
foreground.style.height=”100%”
}
foreground.src = foregroundUrl
iframeWrapper.appendChild(foreground)
}

function createBackgroundElement(backgroundUrl, type) {
let backgroundElement = document.createElement(type);
backgroundElement.setAttribute(“src”,backgroundUrl);
backgroundElement.classList.add(“panorama__backgroundElement”);

if (“img” === type) {
backgroundElement.classList.add(“panorama__backgroundElement–img”);
}

return backgroundElement;
}

function createBackgroundWrapper(backgroundColor){
let backgroundWrapper = document.createElement(“div”)
backgroundWrapper.classList.add(‘panorama__backgroundWrapper’)
backgroundWrapper.style.backgroundColor=backgroundColor;
switch (pageBlock){
case “body”:
backgroundWrapper.classList.add(‘panorama__backgroundWrapper–homepage’)
break;
case “text”:
backgroundWrapper.classList.add(‘panorama__backgroundWrapper–article’)
break;
default:
backgroundWrapper.classList.add(‘panorama__backgroundWrapper–default’)
break;
}
return backgroundWrapper;
}

function createBackgroundClipper(){
let backgroundClipper = document.createElement(“div”)
backgroundClipper.classList.add(‘panorama__backgroundClipper’)
return backgroundClipper
}

function alignBackgroundToAdWrapper(backgroundToResize, sourceWrapper){
backgroundToResize.style.width = sourceWrapper.clientWidth+”px”;
if(pageBlock!==”body”) {
backgroundToResize.style(‘left’) = sourceWrapper.getBoundingClientRect().left+”px”;
}
}
}

LPAds.registerSpotReceived(slotName, function (slotData) {
if (slotData) {
if (LPAds.isProductGalleryAd(slotData.creativeTemplateId)) {
setUpProductGalleryAd();
} else if (LPAds.isNativeAd(slotData.creativeTemplateId)) {
setUpNativeAd();
} else if (LPAds.isNativeAdXtra(slotData.creativeTemplateId)) {
setUpNativeAdXtra();
}
}
});
LPAds.registerSpotRenderEnded(slotName, function(slotData) {
if (slotData) {
if (LPAds.isPanorama(slotData.creativeTemplateId)) {
setUpPanorama();
}else if (LPAds.isNativeAdSerieXtra(slotData.creativeTemplateId)) {
setUpNativeAdSerieXtra();
}
}
});

LPAds.displayAdSpot(slotName);
})()