Call Us 24/7 +12267770444

Get 10% off with code SUMMER26

  • Home
  • Rental Items
  • Rental Packages
  • Gallery
  • FAQs
  • Contact US
Event Vibes Inc.
  • Home
  • Rental Items
    • All Items
    • Food & Catering
    • Tables & Linens
    • Tent Bundles
    • DΓ©cor & Wedding Items
    • Chairs & Covers
    • Canopy & Tents
    • Baby and Children Party Items
    • Outdoor Party Game
    • Dance Floor and Stages
  • Rental Packages
  • Gallery
  • FAQs
  • Contact US
πŸ₯‰BRONZE TENT PACKAGE (20 PEOPLE)

πŸ₯‰BRONZE TENT PACKAGE (20 PEOPLE)

/
Basic outdoor Rental package (family gathering)

Basic outdoor Rental package (family gathering)

/
πŸ₯‡GOLD TENT PACKAGE (60 People)

πŸ₯‡GOLD TENT PACKAGE (60 People)

/
πŸ₯ˆSILVER TENT PACKAGE  (40 PEOPLE)

πŸ₯ˆSILVER TENT PACKAGE (40 PEOPLE)

/
Corporate & VIP Event Package

Corporate & VIP Event Package

/
πŸŽ‰ Birthday Celebration Package

πŸŽ‰ Birthday Celebration Package

/
Children Party rental  Package

Children Party rental Package

/
Indoor Party Package - (20 People)

Indoor Party Package - (20 People)

/
Previous slide Next slide
Go to slide 1 Go to slide 2 Go to slide 3 Go to slide 4 Go to slide 5 Go to slide 6 Go to slide 7 Go to slide 8
Best Party Rental Company in London Ontario by Consumer Award

2026 Party Perfect. All right reserved. | Privacy policy  | Powered by Booqable

  • Home
  • Rental Items
  • Rental Packages
  • Gallery
  • FAQs
  • Contact US
// ── Extract customer email for advanced matching ─────────── // Booqable doesn't expose email in cartData, so we check the DOM. // The email input is still present in the (hidden) checkout form. var email = null; var emailSelectors = [ 'input[name="email"]', 'input[type="email"]', '[data-customer-email]', '[data-email]', '.customer-email' ]; for (var i = 0; i < emailSelectors.length; i++) { var el = document.querySelector(emailSelectors[i]); if (el) { var raw = (el.value || el.getAttribute('data-customer-email') || el.textContent || '').trim().toLowerCase(); if (/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(raw)) { email = raw; console.log('[AAB FB] Email found via: ' + emailSelectors[i]); break; } } } // Fallback: scan visible page text for an email address if (!email) { var match = (document.body.innerText || '').match(/[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}/); if (match) { email = match[0].trim().toLowerCase(); console.log('[AAB FB] Email found via text scan β†’ ' + email); } } if (!email) { console.warn('[AAB FB] Email not found β€” Purchase will fire without advanced matching.'); } // ── SHA-256 hash the email (required by Facebook) ───────── function sha256(str) { return crypto.subtle.digest('SHA-256', new TextEncoder().encode(str)) .then(function (buf) { return Array.from(new Uint8Array(buf)) .map(function (b) { return b.toString(16).padStart(2, '0'); }) .join(''); }); } // ── Fire the Purchase event ──────────────────────────────── function doFire(hashedEmail) { if (typeof fbq === 'undefined') { console.warn('[AAB FB] fbq not found. Check that the Meta Pixel is initialised.'); return; } if (hashedEmail) { fbq('init', '4488114761516320', { em: hashedEmail }); console.log('[AAB FB] Advanced matching set with hashed email.'); } fbq('track', 'Purchase', { value: value, currency: 'CAD' }, { eventID: eventId }); console.log('[AAB FB] Purchase fired β€” $' + value + ' CAD | eventID: ' + eventId); } if (email) { sha256(email).then(doFire); } else { doFire(null); } }); })