next-facebook-tracking
Version:
A simple package to help you integrate Facebook Pixel and Conversions API with Next.js
2 lines (1 loc) • 1.68 kB
JavaScript
;"use client";var b=Object.create;var r=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var x=(e,o)=>{for(var t in o)r(e,t,{get:o[t],enumerable:!0})},c=(e,o,t,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of f(o))!k.call(e,n)&&n!==t&&r(e,n,{get:()=>o[n],enumerable:!(i=u(o,n))||i.enumerable});return e};var v=(e,o,t)=>(t=e!=null?b(g(e)):{},c(o||!e||!e.__esModule?r(t,"default",{value:e,enumerable:!0}):t,e)),w=e=>c(r({},"__esModule",{value:!0}),e);var p={};x(p,{FacebookPixelProvider:()=>F,useFacebookPixel:()=>P});module.exports=w(p);var l=require("react/jsx-runtime"),s=v(require("next/script.js"),1),a=require("react");const d=(0,a.createContext)(null),F=({children:e,pixelId:o,debug:t})=>{const[i,n]=(0,a.useState)(!1);return(0,l.jsxs)(d.Provider,{value:{loaded:i,debug:t},children:[e,o?(0,l.jsx)(s.default,{id:"fb-pixel",src:"/scripts/pixel.js",strategy:"afterInteractive",onLoad:()=>n(!0),"data-pixel-id":o}):null]})};function P(){const e=(0,a.useContext)(d);if(e===null)throw new Error("useFacebookPixel must be used within a FacebookTrackingProvider");return e.loaded?{track(o){e.debug&&console.log("Facebook Pixel: ",o),window.fbq("track",o.event_name,o.custom_data,{eventID:o.event_id})},grantConsent(){e.debug&&console.log("Facebook Pixel: Consent granted"),window.fbq("consent","grant")},revokeConsent(){e.debug&&console.log("Facebook Pixel: Consent revoked"),window.fbq("consent","revoke")},init(o){e.debug&&console.log("Facebook Pixel: Init",o),window.fbq("init",o)}}:null}0&&(module.exports={FacebookPixelProvider,useFacebookPixel});