feat(popup): add email capture popup with Mautic integration
Some checks failed
Build and Deploy / build (push) Has been cancelled
Some checks failed
Build and Deploy / build (push) Has been cancelled
- Email capture popup with scroll (10%) and exit intent triggers - First name field and full tracking (UTM, device, time on page) - Mautic API integration for contact creation - GeoIP detection for country/region - 4 locale support (sr, en, de, fr) - Mautic tracking script in layout
This commit is contained in:
@@ -15,6 +15,7 @@ import {
|
||||
trackRybbitUserLogin,
|
||||
trackRybbitUserRegister,
|
||||
trackRybbitNewsletterSignup,
|
||||
trackRybbitEvent,
|
||||
} from "@/lib/services/RybbitService";
|
||||
|
||||
export function useAnalytics() {
|
||||
@@ -178,6 +179,23 @@ export function useAnalytics() {
|
||||
trackRybbitNewsletterSignup(email, source);
|
||||
}, []);
|
||||
|
||||
// Popup tracking functions
|
||||
const trackPopupView = useCallback((data: { trigger: string; locale: string; country?: string }) => {
|
||||
trackRybbitEvent("popup_view", data);
|
||||
}, []);
|
||||
|
||||
const trackPopupSubmit = useCallback((data: { trigger: string; locale: string; country?: string }) => {
|
||||
trackRybbitEvent("popup_submit", data);
|
||||
}, []);
|
||||
|
||||
const trackPopupCtaClick = useCallback((data: { locale: string }) => {
|
||||
trackRybbitEvent("popup_cta_click", data);
|
||||
}, []);
|
||||
|
||||
const trackPopupDismiss = useCallback((data: { trigger: string; locale: string }) => {
|
||||
trackRybbitEvent("popup_dismiss", data);
|
||||
}, []);
|
||||
|
||||
// No-op placeholder for identifyUser (OpenPanel removed)
|
||||
const identifyUser = useCallback((_user: {
|
||||
profileId: string;
|
||||
@@ -203,6 +221,10 @@ export function useAnalytics() {
|
||||
trackUserLogin,
|
||||
trackUserRegister,
|
||||
trackNewsletterSignup,
|
||||
trackPopupView,
|
||||
trackPopupSubmit,
|
||||
trackPopupCtaClick,
|
||||
trackPopupDismiss,
|
||||
identifyUser,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user