feat(bf): trial widget + booking link beside the HOST27 deal

On /odoo-black-friday/ the offer row is now two columns at >=901px: the deal (left,
unchanged and still the single dominant primary) with the free trial and a booking
link beside it (right, deliberately smaller and quieter).

- Trial: the existing #trialCard/#trialForm moves verbatim from the features grid into
  the row's aside. Same ids, same static/black-friday.js handler, same consent gate and
  label (AW-18065522009/AtAPCIjjvrAdENn6p6ZD) — no second trial mechanism.
- Booking: a plain <a target=_blank rel=noopener> to Oliver's verified Google
  appointment page (no iframe). Its click fires AW-18065522009/P0j5CPiCv7AdENn6p6ZD
  through the same gate via window.o4pAds.bookConversion; the click is never
  preventDefault-ed, so a blocked tag can never stop the link opening.
- ads-consent.js gains the booking label (from the page, not hard-coded) and the
  bookConversion hook; the buy path is untouched.

Deal buy stays the dominant action; ONE plausible Buy mark; one price; countdown pair
unchanged.
This commit is contained in:
webmaster committed 2026-11-02 09:28:09 +00:00
1 parent 7497fbf588
commit 95d5d455b9
3 files changed
+134 -13

No files matched your search

+14
View File
@@ -375,6 +375,20 @@
}
})();
/* ---- Booking link — fire the Google Ads booking conversion on the click, through the same
consent gate as the buy and trial conversions. The link is a plain <a target="_blank">, so
the click is never preventDefault-ed: the Google appointment page opens regardless, and a
blocked, slow or absent tag merely skips the event. Fires nothing without consent. ---- */
(function () {
var link = document.getElementById('bookingCTA');
if (!link) return;
link.addEventListener('click', function () {
if (window.o4pAds && typeof window.o4pAds.bookConversion === 'function') {
window.o4pAds.bookConversion();
}
});
})();
/* ---- Footer contact form ---- */
(function () {
var form = document.getElementById('footerContactForm');