Apply to the Startup Challenges

Explore our current open Startup Challenges, with new ones launching throughout the year in the lead-up to VivaTech!

FAQs

Still not convinced?
We’ve got the answers

Still not convinced?
We’ve got the answers

Who can apply?

Can I apply for more than one Startup Challenge/Award?

What is the difference between a Startup Challenge and an Award?

Is applying for an Award or Startup Challenge free?

******* JAVASCRIPT *******/ /** * Allowed parameters for the tracking code */ const allowedParameters: string[] = [ 'ca', 'utm', 'utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', // 'cat', // Blog // 'ag_t', 't', // Warning this parameters is used like tracking for Challenges partners "Agorize", 'wid' // Paramters for revolugo urls ]; /** * Rreturn the object with the allowed parameters * @param ownParams URLSearchParams * @returns Object */ const ownCtmParameters = (ownParams: URLSearchParams) => { let obj = {}; for (const [key, value] of ownParams.entries()) { //console.log("ownCtmParameters key: ", key); if (allowedParameters.includes(key)) { // console.log("PAss key: ", key); obj[key] = value; } else { // console.log("No PAss key: ", key); } } return obj; }; /** * Insert the tracking code in the anchor elements * @returns void */ const insertTrackingCode = () => { // Get tracking parameters from URL search params const searchParams = new URLSearchParams(window.location.search); // Convert search params to object const filteredParams = ownCtmParameters(searchParams); // If no parameters, return early if (Object.keys(filteredParams).length === 0) { return; } const paramsString = new URLSearchParams(filteredParams).toString(); const baseUrl = window.location.origin; // Get all anchor elements from the current document const anchors = document.querySelectorAll('a'); for (const anchor of anchors) { const href = anchor.getAttribute('href'); const target = anchor.getAttribute('target'); if (!href || target === '_blank') { continue; } // Normalize href const normalizedHref = href.startsWith('https') ? href : href.replace(/^\.\//, '/'); try { const url = normalizedHref.startsWith('http') ? new URL(normalizedHref) : new URL(normalizedHref, baseUrl); const baseUrlObj = new URL(baseUrl); const isExternal = url.origin !== baseUrlObj.origin && !normalizedHref.includes('vivatech.com') && !normalizedHref.includes('vivatechnology.com'); if (isExternal) { continue; } // Add tracking parameters const hasExistingParams = url.search.length > 0; if (hasExistingParams) { url.search += '&' + paramsString; } else { url.search = '?' + paramsString; } anchor.setAttribute('href', url.origin + url.pathname + url.search + (url.hash || '')); } catch (e) { // If href is not a valid URL, skip it continue; } } }; /******* END JAVASCRIPT *******/ /******* INTEGRATION *******/ // Or with DOMContentLoaded document.addEventListener('DOMContentLoaded', () => { insertTrackingCode(); }); /******* END INTEGRATION *******/