diff --git a/apps/landing/components/Analytics/Conversion.tsx b/apps/landing/components/Analytics/Conversion.tsx new file mode 100644 index 000000000..2bd9d0230 --- /dev/null +++ b/apps/landing/components/Analytics/Conversion.tsx @@ -0,0 +1,28 @@ +"use client"; + +import { sendFacebookEvent } from "@/lib/analytics"; +import { IAnalytics } from "@litespace/types"; +import { usePathname, useSearchParams } from "next/navigation"; +import { useEffect } from "react"; + +const Conversion: React.FC<{ eventName?: IAnalytics.EventName }> = ({ + eventName = IAnalytics.EventName.PageView, +}) => { + const searchParams = useSearchParams(); + const path = usePathname(); + + useEffect(() => { + const fbclid = searchParams.get("fbclid"); + if (!fbclid) return; + + sendFacebookEvent({ + page: path, + eventName, + fbclid, + }); + }, [path, eventName, searchParams]); + + return null; +}; + +export default Conversion; diff --git a/apps/landing/components/Layout/Layout.tsx b/apps/landing/components/Layout/Layout.tsx index 0109cbf1e..599c4a764 100644 --- a/apps/landing/components/Layout/Layout.tsx +++ b/apps/landing/components/Layout/Layout.tsx @@ -5,8 +5,10 @@ import cn from "classnames"; import Navbar from "@/components/Layout/Navbar"; import Sidebar from "@/components/Layout/Sidebar"; import Footer from "@/components/Layout/Footer"; +import Conversion from "@/components/Analytics/Conversion"; import clarity, { getCustomeId, sessionId } from "@/lib/clarity"; import { usePathname } from "next/navigation"; +import { IAnalytics } from "@litespace/types"; const Layout: React.FC<{ children: React.ReactNode }> = ({ children }) => { const [showSidebar, setShowSidebar] = useState(false); @@ -27,6 +29,7 @@ const Layout: React.FC<{ children: React.ReactNode }> = ({ children }) => { {showSidebar ? setShowSidebar(false)} /> : null} {children}