function registerListener() {
const METASITE_APP_DEF_ID = '22bef345-3c5b-4c18-b782-74d4085112ff';
const getXSRFTokenFromCookie = () => {
const match = new RegExp('XSRF-TOKEN=(.+?);').exec(document.cookie);
return match ? match[1] : '';
};
const eventNames = {
Purchase: 'Purchase',
Lead: 'Lead',
};
const eventNameToConversionActionCategory = {
[eventNames.Purchase]: 'PURCHASE',
[eventNames.Lead]: 'SUBMIT_LEAD_FORM',
};
const channelParams = {
price: 'price',
id: 'id',
currency: 'currency',
name: 'name',
category: 'category',
brand: 'brand',
variant: 'variant',
list: 'list_name',
quantity: 'quantity',
step: 'checkout_step',
option: 'checkout_option',
position: 'list_position',
coupon: 'coupon',
affiliation: 'affiliation',
revenue: 'value',
tax: 'tax',
sku: 'sku',
shipping: 'shipping',
};
const mapContents = ({ contents = [] }) =>
contents.map(({ currency, ...product }) =>
paramsMapper(product, channelParams),
);
const paramsMapper = (params, mapper) => {
const mappedParams = Object.keys(params);
if (mappedParams.length === 0) {
return params;
}
return mappedParams.reduce((mappedObject, currentKey) => {
const newKey = mapper[currentKey];
if (newKey && (params[currentKey] || params[currentKey] === 0)) {
mappedObject[newKey] = params[currentKey];
}
return mappedObject;
}, {});
};
const loadGtag = () => {
const gtagInitScript = document.createElement('script');
gtagInitScript.type = 'text/javascript';
gtagInitScript.innerHTML = `
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date())
`;
document.head.appendChild(gtagInitScript);
const gtagScript = document.createElement('script');
gtagScript.type = 'text/javascript';
gtagScript.setAttribute('async', 'true');
gtagScript.setAttribute('src', 'https://www.googletagmanager.com/gtag/js');
document.head.appendChild(gtagScript);
};
const XSRFToken = getXSRFTokenFromCookie();
let conversionActions;
const reportEvent = (eventName, eventParams) => {
if (typeof gtag !== 'function') {
loadGtag();
}
const category = eventNameToConversionActionCategory[eventName];
const conversionAction = conversionActions.find(
(currentConversionAction) =>
currentConversionAction.category.category === category,
);
if (conversionAction) {
gtag('config', conversionAction.conversionId);
let conversionData = {
send_to: `${conversionAction.conversionId}/${conversionAction.conversionLabel}`,
};
switch (category) {
case 'PURCHASE': {
const { revenue, id, currency, coupon, ...params } = eventParams;
conversionData = {
...conversionData,
...paramsMapper({ revenue, id, currency, coupon }, channelParams),
transactionId: eventParams.id,
items: mapContents(params),
};
break;
}
default:
break;
}
gtag('event', 'conversion', conversionData);
}
};
// @ts-expect-error wixDevelopersAnalytics
window.wixDevelopersAnalytics.register(
'd6708a0e-5b2a-458e-8cfe-bdca240aa2ce',
(eventName, eventParams) => {
console.log('registering ga event reporter');
if (conversionActions) {
reportEvent(eventName, eventParams);
} else {
const headers = {
'Content-Type': 'application/json',
'X-XSRF-TOKEN': XSRFToken,
};
const getAppToken = window.wixEmbedsAPI?.getAppToken;
if (getAppToken) {
console.log('ASSIGNING AUTHORIZATION HEADER');
headers.authorization = getAppToken(METASITE_APP_DEF_ID);
}
const metaSiteId = window.wixEmbedsAPI?.getMetaSiteId();
console.log({ metaSiteId });
fetch(
`${window.location.origin}/_serverless/pa-google/v1/accounts/current-site/conversion-actions?metaSiteId=${metaSiteId}`,
{
method: 'GET',
headers,
},
)
.then((response) => response.json())
.then((data) => {
conversionActions = data.conversionActions;
reportEvent(eventName, eventParams);
});
}
},
);
}
console.log('ga event report embedded');
// @ts-expect-error wixDevelopersAnalytics
window.wixDevelopersAnalytics
? registerListener()
: window.addEventListener('wixDevelopersAnalyticsReady', registerListener);
top of page
SHOWS
IMPROV CLASSES
BUSINESS TRAININGS
and lots of laughs.
Spring Class Registration Is Open!
Whether it's your first step to becoming a pro, or you're just looking to have some fun, we can get you there! All CSz classes are taught by one of our improv professionals - instructors who, themselves, have years of training. CSz classes are a fun, supportive way to learn improvisational thinking, gain self-confidence, develop business soft-skills and meet people.
HOME OF
Competitive. Improvisational. Comedy!
ComedySportz is an interactive and improvised comedy show that pits two teams of improvisors against each other in a hilarious battle of wits. Using audience suggestion and willing volunteers, CSz Las Vegas professionals create short games, scenes and songs on the spot! While only one team wins, everyone leaves victorious after a hysterical
night at ComedySportz!
Our live matches return to Mom's Basement Theatre,
located at 3441 W. Sahara Ave Suite C4.
SHOWS
We have awesome and wildly adaptable comedy shows for all occasions! Check out our staple show, ComedySportz at our home theater or let us bring the fun with one of our other options. We guarantee there's a show that's perfect for you.
CLASSES
Want to learn a new skill, train to be a Pro Roster Player, or simply laugh and destress? We have classes for all ages, goals, and experience levels. Come get some
improv training!
BUSINESS
We can transform your work environment. Learn the skills we use in improv to build teamwork, improve communication, and increase productivity. This is training that works because it's fun and backed by science.
CSz Worldwide
ComedySportz is a national organization located in over 30 cities across the United States and Manchester. If you're looking for the same great comedy show, but a little closer to home, check out one the cities below. Tell them Las Vegas sent ya'!
bottom of page