Apply to VivaTech's Awards

Apply to one of our five prestigious Awards. Finalists will pitch on stage during the finals at VivaTech in Paris in June, and the winners will be announced and honored at the VivaTech Global Awards Ceremony.

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

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?

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?

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?

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 *******/