next-google-ads
Version:
Google AdSense component for Next.js with optimized script loading
1 lines • 32.1 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/index.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import Script from 'next/script';\nimport type { CSSProperties, FC } from 'react';\n\ninterface WindowWithAdsbygoogle extends Window {\n adsbygoogle?: Array<Record<string, unknown>>;\n}\n\ndeclare const window: WindowWithAdsbygoogle;\n\n// Consent Mode v2 types (2024 GDPR requirement)\nexport type ConsentModeV2 = {\n ad_storage?: 'granted' | 'denied';\n analytics_storage?: 'granted' | 'denied';\n ad_user_data?: 'granted' | 'denied';\n ad_personalization?: 'granted' | 'denied';\n};\n\n// Auto Ads configuration (2024 feature)\nexport type AutoAdsConfig = {\n enableAutoAds?: boolean;\n pageExclusions?: string[];\n adDensity?: 'low' | 'medium' | 'high';\n enableAdIntents?: boolean; // New 2024 format\n};\n\n// Anchor positioning (2024 feature)\nexport type AnchorPosition = 'top' | 'bottom' | 'both';\n\nexport type GoogleAdsenseProps = {\n className?: string;\n style?: CSSProperties;\n client: string;\n slot: string;\n layout?: string;\n layoutKey?: string;\n format?: 'auto' | 'fluid' | 'rectangle' | 'vertical' | 'horizontal';\n responsive?: string;\n path?: string;\n // Non-personalized ads mode (privacy-focused)\n npaMode?: boolean;\n // Ad test mode\n adTest?: 'on' | 'off';\n // Channel for tracking\n adChannel?: string;\n};\n\n// In-Article Ads (modern format)\nexport type InArticleAdProps = {\n className?: string;\n style?: CSSProperties;\n client: string;\n slot: string;\n npaMode?: boolean;\n};\n\n// In-Feed Ads (modern format)\nexport type InFeedAdProps = {\n className?: string;\n style?: CSSProperties;\n client: string;\n slot: string;\n layoutKey: string;\n npaMode?: boolean;\n};\n\n// Multiplex Ads (modern format)\nexport type MultiplexAdProps = {\n className?: string;\n style?: CSSProperties;\n client: string;\n slot: string;\n format?: 'autorelaxed';\n npaMode?: boolean;\n};\n\n// Anchor Ad Props (2024 feature)\nexport type AnchorAdProps = {\n client: string;\n slot: string;\n position?: AnchorPosition;\n collapsible?: boolean;\n npaMode?: boolean;\n};\n\n// Auto Ads Props (2024 major feature)\nexport type AutoAdsProps = {\n client: string;\n config?: AutoAdsConfig;\n consentMode?: ConsentModeV2;\n npaMode?: boolean;\n};\n\nexport const GoogleAdsenseWidget: FC<GoogleAdsenseProps> = ({\n className = '',\n style = {\n display: 'block',\n width: '728px',\n height: '90px',\n },\n format = 'auto',\n layout = '',\n layoutKey = '',\n responsive = 'false',\n client,\n slot,\n npaMode = false,\n adTest,\n adChannel,\n}) => {\n return (\n <ins\n className={`${className} adsbygoogle`}\n style={style}\n data-ad-client={client}\n data-ad-slot={slot}\n data-ad-layout={layout}\n data-ad-layout-key={layoutKey}\n data-ad-format={format}\n data-full-width-responsive={responsive}\n data-npa-mode={npaMode ? '1' : undefined}\n data-adtest={adTest}\n data-ad-channel={adChannel}\n ></ins>\n );\n};\n\n// In-Article Ads Component (Modern format for content)\nexport const InArticleAd: FC<InArticleAdProps> = ({\n className = '',\n style = { display: 'block', textAlign: 'center' },\n client,\n slot,\n npaMode = false,\n}) => {\n return (\n <ins\n className={`${className} adsbygoogle`}\n style={style}\n data-ad-client={client}\n data-ad-slot={slot}\n data-ad-format=\"fluid\"\n data-ad-layout=\"in-article\"\n data-npa-mode={npaMode ? '1' : undefined}\n ></ins>\n );\n};\n\n// In-Feed Ads Component (Modern format for feeds/lists)\nexport const InFeedAd: FC<InFeedAdProps> = ({\n className = '',\n style = { display: 'block' },\n client,\n slot,\n layoutKey,\n npaMode = false,\n}) => {\n return (\n <ins\n className={`${className} adsbygoogle`}\n style={style}\n data-ad-client={client}\n data-ad-slot={slot}\n data-ad-format=\"fluid\"\n data-ad-layout=\"in-feed\"\n data-ad-layout-key={layoutKey}\n data-npa-mode={npaMode ? '1' : undefined}\n ></ins>\n );\n};\n\n// Multiplex Ads Component (Modern format for related content)\nexport const MultiplexAd: FC<MultiplexAdProps> = ({\n className = '',\n style = { display: 'block' },\n client,\n slot,\n format = 'autorelaxed',\n npaMode = false,\n}) => {\n return (\n <ins\n className={`${className} adsbygoogle`}\n style={style}\n data-ad-client={client}\n data-ad-slot={slot}\n data-ad-format={format}\n data-npa-mode={npaMode ? '1' : undefined}\n ></ins>\n );\n};\n\n// Anchor Ad Component (2024 feature - collapsible mobile ads)\nexport const AnchorAd: FC<AnchorAdProps> = ({\n client,\n slot,\n position = 'bottom',\n collapsible = true,\n npaMode = false,\n}) => {\n return (\n <ins\n className=\"adsbygoogle\"\n style={{ display: 'block' }}\n data-ad-client={client}\n data-ad-slot={slot}\n data-ad-format=\"anchor\"\n data-anchor-position={position}\n data-collapsible={collapsible ? 'true' : 'false'}\n data-npa-mode={npaMode ? '1' : undefined}\n ></ins>\n );\n};\n\n// Auto Ads Script Component (2024 major feature)\nexport const AutoAdsScript: FC<AutoAdsProps> = ({\n client,\n config,\n consentMode,\n npaMode = false,\n}) => {\n if (!client) return null;\n\n return (\n <>\n {consentMode && (\n <Script\n id=\"google-consent-mode-v2\"\n strategy=\"beforeInteractive\"\n dangerouslySetInnerHTML={{\n __html: `\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('consent', 'default', ${JSON.stringify(consentMode)});\n `,\n }}\n />\n )}\n <Script\n id=\"google-adsense-auto\"\n src=\"https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\"\n data-ad-client={client}\n crossOrigin=\"anonymous\"\n strategy=\"afterInteractive\"\n data-npa-mode={npaMode ? '1' : undefined}\n onLoad={() => {\n if (typeof window !== 'undefined' && config?.enableAutoAds) {\n (window.adsbygoogle = window.adsbygoogle || []).push({\n google_ad_client: client,\n enable_page_level_ads: true,\n ...(config.adDensity && { ad_density: config.adDensity }),\n ...(config.enableAdIntents && { ad_intents: true }),\n });\n }\n }}\n />\n </>\n );\n};\n\nexport const NextGoogleAdsenseScript: FC<\n Pick<GoogleAdsenseProps, 'client'> & {\n npaMode?: boolean;\n crossOrigin?: boolean;\n }\n> = ({ client, npaMode = false, crossOrigin = true }) => {\n if (!client) return null;\n return (\n <Script\n id=\"google-adsense\"\n src=\"https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\"\n data-ad-client={client}\n strategy=\"afterInteractive\"\n crossOrigin={crossOrigin ? 'anonymous' : undefined}\n data-npa-mode={npaMode ? '1' : undefined}\n onLoad={() => {\n try {\n (window.adsbygoogle = window.adsbygoogle || []).push({});\n } catch (err) {\n console.error('AdSense error:', err);\n }\n }}\n />\n );\n};\n\nexport const GoogleAdsense: FC<GoogleAdsenseProps> = props => {\n return (\n <>\n <NextGoogleAdsenseScript client={props.client} npaMode={props.npaMode} />\n <GoogleAdsenseWidget {...props} />\n </>\n );\n};\n\nexport default GoogleAdsense;\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","owner","debugStack","debugTask","refProp","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","isValidElement","object","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","GoogleAdsenseWidget","className","style","format","layout","layoutKey","responsive","client","slot","npaMode","adTest","adChannel","jsx","InArticleAd","InFeedAd","MultiplexAd","AnchorAd","position","collapsible","AutoAdsScript","consentMode","jsxs","Fragment","Script","NextGoogleAdsenseScript","crossOrigin","err","GoogleAdsense"],"mappings":"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","x_google_ignoreList":[0,1,2]}