react-ads-sdk
Advanced tools
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.esm.js","sources":["../src/lib/AdService.ts","../src/providers/AdProvider.tsx","../src/components/AdSlot.tsx","../src/hooks/useAdService.ts","../src/utils/bidders.ts","../src/index.ts"],"sourcesContent":["import type { AdConfig, AdSlot, AdUnit, PrebidBidder } from \"../types/ads\";\n\ndeclare global {\n interface Window {\n googletag: any;\n pbjs: any;\n }\n}\n\nclass AdService {\n private static instance: AdService;\n private isInitialized = false;\n private config: AdConfig | null = null;\n private adSlots = new Map<string, any>();\n private observers = new Map<string, IntersectionObserver>();\n\n private constructor() {}\n\n static getInstance(): AdService {\n if (!AdService.instance) {\n AdService.instance = new AdService();\n }\n return AdService.instance;\n }\n\n async initialize(config: AdConfig): Promise<void> {\n if (this.isInitialized) {\n console.warn('AdService já foi inicializado');\n return;\n }\n\n this.config = config;\n \n try {\n await Promise.all([\n this.loadGoogleTag(),\n this.loadPrebid()\n ]);\n \n this.setupGoogleTag();\n this.setupPrebid();\n this.isInitialized = true;\n \n console.log('AdService inicializado com sucesso');\n } catch (error) {\n console.error('Erro ao inicializar AdService:', error);\n throw error;\n }\n }\n\n private loadGoogleTag(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (window.googletag) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n script.async = true;\n script.src = 'https://securepubads.g.doubleclick.net/tag/js/gpt.js';\n script.onload = () => resolve();\n script.onerror = () => reject(new Error('Falha ao carregar Google Tag'));\n document.head.appendChild(script);\n });\n }\n\n private loadPrebid(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (window.pbjs) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n script.async = true;\n script.src = 'https://cdn.jsdelivr.net/npm/prebid.js@latest/dist/not-for-prod/prebid.js';\n script.onload = () => {\n window.pbjs = window.pbjs || {};\n window.pbjs.que = window.pbjs.que || [];\n resolve();\n };\n script.onerror = () => reject(new Error('Falha ao carregar Prebid'));\n document.head.appendChild(script);\n });\n }\n\n private setupGoogleTag(): void {\n window.googletag = window.googletag || { cmd: [] };\n \n window.googletag.cmd.push(() => {\n if (this.config?.enableLazyLoad) {\n window.googletag.pubads().enableLazyLoad({\n fetchMarginPercent: 500,\n renderMarginPercent: 200,\n mobileScaling: 2.0\n });\n }\n\n window.googletag.pubads().enableSingleRequest();\n window.googletag.pubads().collapseEmptyDivs();\n window.googletag.enableServices();\n });\n }\n\n private setupPrebid(): void {\n window.pbjs.que.push(() => {\n window.pbjs.setConfig({\n debug: this.config?.testMode || false,\n bidderTimeout: this.config?.prebidTimeout || 2000,\n enableSendAllBids: true,\n useBidCache: true,\n cache: {\n url: 'https://prebid.adnxs.com/pbc/v1/cache'\n }\n });\n });\n }\n\n defineAdSlot(slot: AdSlot, bidders: PrebidBidder[] = []): void {\n if (!this.isInitialized) {\n throw new Error('AdService não foi inicializado');\n }\n\n window.googletag.cmd.push(() => {\n const adSlot = window.googletag\n .defineSlot(slot.path, slot.sizes, slot.id)\n ?.addService(window.googletag.pubads());\n\n if (slot.targeting) {\n Object.entries(slot.targeting).forEach(([key, value]) => {\n adSlot?.setTargeting(key, value);\n });\n }\n\n this.adSlots.set(slot.id, adSlot);\n });\n\n const hasBidders = bidders.length > 0;\n\n if (hasBidders) {\n const adUnit: AdUnit = {\n code: slot.id,\n mediaTypes: {\n banner: {\n sizes: slot.sizes\n }\n },\n bids: bidders\n };\n\n window.pbjs.que.push(() => {\n window.pbjs.addAdUnits([adUnit]);\n });\n }\n }\n\n displayAd(slotId: string, lazyLoad = false): void {\n if (!this.isInitialized) {\n throw new Error('AdService não foi inicializado');\n }\n\n if (lazyLoad && this.config?.enableLazyLoad) {\n this.setupLazyLoading(slotId);\n } else {\n this.requestAndDisplayAd(slotId);\n }\n }\n\n private setupLazyLoading(slotId: string): void {\n const element = document.getElementById(slotId);\n if (!element) return;\n\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n this.requestAndDisplayAd(slotId);\n observer.disconnect();\n this.observers.delete(slotId);\n }\n });\n },\n { threshold: 0.1 }\n );\n\n observer.observe(element);\n this.observers.set(slotId, observer);\n }\n\n private requestAndDisplayAd(slotId: string): void {\n window.pbjs.que.push(() => {\n window.pbjs.requestBids({\n adUnitCodes: [slotId],\n timeout: this.config?.prebidTimeout || 2000,\n bidsBackHandler: () => {\n window.googletag.cmd.push(() => {\n window.pbjs.setTargetingForGPTAsync([slotId]);\n window.googletag.display(slotId);\n });\n }\n });\n });\n }\n\n refreshAd(slotId: string): void {\n const slot = this.adSlots.get(slotId);\n if (!slot) return;\n\n window.pbjs.que.push(() => {\n window.pbjs.requestBids({\n adUnitCodes: [slotId],\n timeout: this.config?.prebidTimeout || 2000,\n bidsBackHandler: () => {\n window.googletag.cmd.push(() => {\n window.pbjs.setTargetingForGPTAsync([slotId]);\n window.googletag.pubads().refresh([slot]);\n });\n }\n });\n });\n }\n\n destroyAd(slotId: string): void {\n const observer = this.observers.get(slotId);\n if (observer) {\n observer.disconnect();\n this.observers.delete(slotId);\n }\n\n const slot = this.adSlots.get(slotId);\n if (slot) {\n window.googletag.cmd.push(() => {\n window.googletag.destroySlots([slot]);\n });\n this.adSlots.delete(slotId);\n }\n\n window.pbjs.que.push(() => {\n window.pbjs.removeAdUnit(slotId);\n });\n }\n\n setTargeting(key: string, value: string | string[]): void {\n window.googletag.cmd.push(() => {\n window.googletag.pubads().setTargeting(key, value);\n });\n }\n\n clearTargeting(key?: string): void {\n window.googletag.cmd.push(() => {\n if (key) {\n window.googletag.pubads().clearTargeting(key);\n } else {\n window.googletag.pubads().clearTargeting();\n }\n });\n }\n\n getSlotInfo(slotId: string): any {\n return {\n slot: this.adSlots.get(slotId),\n hasObserver: this.observers.has(slotId),\n isInitialized: this.isInitialized\n };\n }\n}\n\nexport default AdService;","import React, { createContext, useContext, useEffect } from 'react';\nimport AdService from '../lib/AdService';\nimport type { AdConfig } from '../types/ads';\nimport type { ReactNode } from 'react';\n\ninterface AdContextType {\n adService: AdService | null;\n isReady: boolean;\n}\n\nconst AdContext = createContext<AdContextType>({\n adService: null,\n isReady: false\n});\n\ninterface AdProviderProps {\n config: AdConfig;\n children: ReactNode;\n}\n\nexport const AdProvider: React.FC<AdProviderProps> = ({ config, children }) => {\n const [isReady, setIsReady] = React.useState(false);\n const [adService] = React.useState(() => AdService.getInstance());\n\n useEffect(() => {\n adService.initialize(config)\n .then(() => {\n setIsReady(true);\n \n (window as any).adService = adService;\n })\n .catch(error => {\n console.error('Erro ao inicializar AdService:', error);\n });\n }, [adService, config]);\n\n return (\n <AdContext.Provider value={{ adService, isReady }}>\n {children}\n </AdContext.Provider>\n );\n};\n\nexport const useAd = () => {\n const context = useContext(AdContext);\n if (!context) {\n throw new Error('useAd deve ser usado dentro de um AdProvider');\n }\n return context;\n};","import React, { useEffect, useRef } from 'react';\nimport { AdSlotType, PrebidBidder } from '..';\n\ninterface AdSlotProps {\n slot: AdSlotType;\n bidders?: PrebidBidder[];\n lazyLoad?: boolean;\n refreshInterval?: number;\n className?: string;\n style?: React.CSSProperties;\n onLoad?: () => void;\n onError?: (error: Error) => void;\n}\n\nconst AdSlot: React.FC<AdSlotProps> = ({\n slot,\n bidders = [],\n lazyLoad = false,\n refreshInterval,\n className,\n style,\n onLoad,\n onError\n}) => {\n const adServiceRef = useRef<any>();\n const refreshIntervalRef = useRef<NodeJS.Timeout>();\n\n useEffect(() => {\n\n const checkAdService = () => {\n try {\n const adService = (window as any).adService;\n if (adService) {\n adServiceRef.current = adService;\n initializeAd();\n } else {\n setTimeout(checkAdService, 100);\n }\n } catch (error) {\n onError?.(error as Error);\n }\n };\n\n const initializeAd = () => {\n try {\n adServiceRef.current.defineAdSlot(slot, bidders);\n adServiceRef.current.displayAd(slot.id, lazyLoad);\n \n if (refreshInterval && refreshInterval > 0) {\n setupAutoRefresh();\n }\n \n onLoad?.();\n } catch (error) {\n onError?.(error as Error);\n }\n };\n\n const setupAutoRefresh = () => {\n if (refreshInterval && refreshInterval >= 30000) { // Mínimo 30 segundos\n refreshIntervalRef.current = setInterval(() => {\n if (adServiceRef.current) {\n adServiceRef.current.refreshAd(slot.id);\n }\n }, refreshInterval);\n }\n };\n\n checkAdService();\n\n return () => {\n if (refreshIntervalRef.current) {\n clearInterval(refreshIntervalRef.current);\n }\n \n if (adServiceRef.current) {\n adServiceRef.current.destroyAd(slot.id);\n }\n };\n }, [slot, bidders, lazyLoad, refreshInterval, onLoad, onError]);\n\n return (\n <div\n id={slot.id}\n className={className}\n style={{\n minHeight: slot.sizes[0] ? `${slot.sizes[0][1]}px` : '250px',\n minWidth: slot.sizes[0] ? `${slot.sizes[0][0]}px` : '300px',\n ...style\n }}\n />\n );\n};\n\nexport default AdSlot;","import { useEffect, useRef } from 'react';\nimport AdService from '../lib/AdService';\nimport type { AdConfig } from '../types/ads';\n\nexport const useAdService = (config: AdConfig) => {\n const adServiceRef = useRef<AdService>();\n const isInitializedRef = useRef(false);\n\n useEffect(() => {\n if (!isInitializedRef.current) {\n adServiceRef.current = AdService.getInstance();\n \n adServiceRef.current.initialize(config).catch(error => {\n console.error('Erro ao inicializar AdService:', error);\n });\n \n isInitializedRef.current = true;\n }\n }, [config]);\n\n return adServiceRef.current;\n};","export const BidderPresets = {\n // Amazon A9/TAM\n amazon: (params: { slotID: string; placementId?: string }) => ({\n bidder: 'amazon',\n params\n }),\n\n // Google Ad Exchange\n rubicon: (params: { accountId: string; siteId: string; zoneId: string }) => ({\n bidder: 'rubicon',\n params\n }),\n\n // AppNexus\n appnexus: (params: { placementId: string; member?: string }) => ({\n bidder: 'appnexus',\n params\n }),\n\n // Index Exchange\n ix: (params: { siteId: string; size: number[] }) => ({\n bidder: 'ix',\n params\n }),\n\n // OpenX\n openx: (params: { unit: string; delDomain: string }) => ({\n bidder: 'openx',\n params\n }),\n\n // PubMatic\n pubmatic: (params: { publisherId: string; adSlot: string }) => ({\n bidder: 'pubmatic',\n params\n })\n};","// Exportar tudo que o usuário vai precisar\nexport { default as AdService } from './lib/AdService';\nexport { AdProvider, useAd } from './providers/AdProvider';\nexport { default as AdSlot } from './components/AdSlot';\nexport { useAdService } from './hooks/useAdService';\nexport { BidderPresets } from './utils/bidders';\n\n// Exportar tipos\nexport type {\n AdConfig,\n AdSlot as AdSlotType,\n AdUnit,\n PrebidBidder\n} from './types/ads';\n\n// Versão da lib\nexport const VERSION = '1.0.0';"],"names":["_jsx"],"mappings":"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"} | ||
| {"version":3,"file":"index.esm.js","sources":["../src/lib/AdService.ts","../src/components/AdProvider.tsx","../src/components/AdSlot.tsx","../src/hooks/useAdService.ts","../src/utils/bidders.ts","../src/index.ts"],"sourcesContent":["import type { AdConfig, AdSlot, AdUnit, PrebidBidder } from \"../types/ads\";\n\ndeclare global {\n interface Window {\n googletag: any;\n pbjs: any;\n }\n}\n\nclass AdService {\n private static instance: AdService;\n private isInitialized = false;\n private config: AdConfig | null = null;\n private adSlots = new Map<string, any>();\n private observers = new Map<string, IntersectionObserver>();\n\n private constructor() {}\n\n static getInstance(): AdService {\n if (!AdService.instance) {\n AdService.instance = new AdService();\n }\n return AdService.instance;\n }\n\n async initialize(config: AdConfig): Promise<void> {\n if (this.isInitialized) {\n console.warn('AdService já foi inicializado');\n return;\n }\n\n this.config = config;\n \n try {\n await Promise.all([\n this.loadGoogleTag(),\n this.loadPrebid()\n ]);\n \n this.setupGoogleTag();\n this.setupPrebid();\n this.isInitialized = true;\n \n console.log('AdService inicializado com sucesso');\n } catch (error) {\n console.error('Erro ao inicializar AdService:', error);\n throw error;\n }\n }\n\n private loadGoogleTag(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (window.googletag) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n script.async = true;\n script.src = 'https://securepubads.g.doubleclick.net/tag/js/gpt.js';\n script.onload = () => resolve();\n script.onerror = () => reject(new Error('Falha ao carregar Google Tag'));\n document.head.appendChild(script);\n });\n }\n\n private loadPrebid(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (window.pbjs) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n script.async = true;\n script.src = 'https://cdn.jsdelivr.net/npm/prebid.js@latest/dist/not-for-prod/prebid.js';\n script.onload = () => {\n window.pbjs = window.pbjs || {};\n window.pbjs.que = window.pbjs.que || [];\n resolve();\n };\n script.onerror = () => reject(new Error('Falha ao carregar Prebid'));\n document.head.appendChild(script);\n });\n }\n\n private setupGoogleTag(): void {\n window.googletag = window.googletag || { cmd: [] };\n \n window.googletag.cmd.push(() => {\n if (this.config?.enableLazyLoad) {\n window.googletag.pubads().enableLazyLoad({\n fetchMarginPercent: 500,\n renderMarginPercent: 200,\n mobileScaling: 2.0\n });\n }\n\n window.googletag.pubads().enableSingleRequest();\n window.googletag.pubads().collapseEmptyDivs();\n window.googletag.enableServices();\n });\n }\n\n private setupPrebid(): void {\n window.pbjs.que.push(() => {\n window.pbjs.setConfig({\n debug: this.config?.testMode || false,\n bidderTimeout: this.config?.prebidTimeout || 2000,\n enableSendAllBids: true,\n useBidCache: true,\n cache: {\n url: 'https://prebid.adnxs.com/pbc/v1/cache'\n }\n });\n });\n }\n\n defineAdSlot(slot: AdSlot, bidders: PrebidBidder[] = []): void {\n if (!this.isInitialized) {\n throw new Error('AdService não foi inicializado');\n }\n\n window.googletag.cmd.push(() => {\n const adSlot = window.googletag\n .defineSlot(slot.path, slot.sizes, slot.id)\n ?.addService(window.googletag.pubads());\n\n if (slot.targeting) {\n Object.entries(slot.targeting).forEach(([key, value]) => {\n adSlot?.setTargeting(key, value);\n });\n }\n\n this.adSlots.set(slot.id, adSlot);\n });\n\n const hasBidders = bidders.length > 0;\n\n if (hasBidders) {\n const adUnit: AdUnit = {\n code: slot.id,\n mediaTypes: {\n banner: {\n sizes: slot.sizes\n }\n },\n bids: bidders\n };\n\n window.pbjs.que.push(() => {\n window.pbjs.addAdUnits([adUnit]);\n });\n }\n }\n\n displayAd(slotId: string, lazyLoad = false): void {\n if (!this.isInitialized) {\n throw new Error('AdService não foi inicializado');\n }\n\n if (lazyLoad && this.config?.enableLazyLoad) {\n this.setupLazyLoading(slotId);\n } else {\n this.requestAndDisplayAd(slotId);\n }\n }\n\n private setupLazyLoading(slotId: string): void {\n const element = document.getElementById(slotId);\n if (!element) return;\n\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n this.requestAndDisplayAd(slotId);\n observer.disconnect();\n this.observers.delete(slotId);\n }\n });\n },\n { threshold: 0.1 }\n );\n\n observer.observe(element);\n this.observers.set(slotId, observer);\n }\n\n private requestAndDisplayAd(slotId: string): void {\n window.pbjs.que.push(() => {\n window.pbjs.requestBids({\n adUnitCodes: [slotId],\n timeout: this.config?.prebidTimeout || 2000,\n bidsBackHandler: () => {\n window.googletag.cmd.push(() => {\n window.pbjs.setTargetingForGPTAsync([slotId]);\n window.googletag.display(slotId);\n });\n }\n });\n });\n }\n\n refreshAd(slotId: string): void {\n const slot = this.adSlots.get(slotId);\n if (!slot) return;\n\n window.pbjs.que.push(() => {\n window.pbjs.requestBids({\n adUnitCodes: [slotId],\n timeout: this.config?.prebidTimeout || 2000,\n bidsBackHandler: () => {\n window.googletag.cmd.push(() => {\n window.pbjs.setTargetingForGPTAsync([slotId]);\n window.googletag.pubads().refresh([slot]);\n });\n }\n });\n });\n }\n\n destroyAd(slotId: string): void {\n const observer = this.observers.get(slotId);\n if (observer) {\n observer.disconnect();\n this.observers.delete(slotId);\n }\n\n const slot = this.adSlots.get(slotId);\n if (slot) {\n window.googletag.cmd.push(() => {\n window.googletag.destroySlots([slot]);\n });\n this.adSlots.delete(slotId);\n }\n\n window.pbjs.que.push(() => {\n window.pbjs.removeAdUnit(slotId);\n });\n }\n\n setTargeting(key: string, value: string | string[]): void {\n window.googletag.cmd.push(() => {\n window.googletag.pubads().setTargeting(key, value);\n });\n }\n\n clearTargeting(key?: string): void {\n window.googletag.cmd.push(() => {\n if (key) {\n window.googletag.pubads().clearTargeting(key);\n } else {\n window.googletag.pubads().clearTargeting();\n }\n });\n }\n\n getSlotInfo(slotId: string): any {\n return {\n slot: this.adSlots.get(slotId),\n hasObserver: this.observers.has(slotId),\n isInitialized: this.isInitialized\n };\n }\n}\n\nexport default AdService;","import React, { createContext, useContext, useEffect } from 'react';\nimport AdService from '../lib/AdService';\nimport type { AdConfig } from '../types/ads';\nimport type { ReactNode } from 'react';\n\ninterface AdContextType {\n adService: AdService | null;\n isReady: boolean;\n}\n\nconst AdContext = createContext<AdContextType>({\n adService: null,\n isReady: false\n});\n\ninterface AdProviderProps {\n config: AdConfig;\n children: ReactNode;\n}\n\nexport const AdProvider: React.FC<AdProviderProps> = ({ config, children }) => {\n const [isReady, setIsReady] = React.useState(false);\n const [adService] = React.useState(() => AdService.getInstance());\n\n useEffect(() => {\n adService.initialize(config)\n .then(() => {\n setIsReady(true);\n \n (window as any).adService = adService;\n })\n .catch(error => {\n console.error('Erro ao inicializar AdService:', error);\n });\n }, [adService, config]);\n\n return (\n <AdContext.Provider value={{ adService, isReady }}>\n {children}\n </AdContext.Provider>\n );\n};\n\nexport const useAd = () => {\n const context = useContext(AdContext);\n if (!context) {\n throw new Error('useAd deve ser usado dentro de um AdProvider');\n }\n return context;\n};","import React, { useEffect, useRef } from 'react';\nimport { AdSlotType, PrebidBidder } from '..';\n\ninterface AdSlotProps {\n slot: AdSlotType;\n bidders?: PrebidBidder[];\n lazyLoad?: boolean;\n refreshInterval?: number;\n className?: string;\n style?: React.CSSProperties;\n onLoad?: () => void;\n onError?: (error: Error) => void;\n}\n\nconst AdSlot: React.FC<AdSlotProps> = ({\n slot,\n bidders = [],\n lazyLoad = false,\n refreshInterval,\n className,\n style,\n onLoad,\n onError\n}) => {\n const adServiceRef = useRef<any>();\n const refreshIntervalRef = useRef<NodeJS.Timeout>();\n\n useEffect(() => {\n\n const checkAdService = () => {\n try {\n const adService = (window as any).adService;\n if (adService) {\n adServiceRef.current = adService;\n initializeAd();\n } else {\n setTimeout(checkAdService, 100);\n }\n } catch (error) {\n onError?.(error as Error);\n }\n };\n\n const initializeAd = () => {\n try {\n adServiceRef.current.defineAdSlot(slot, bidders);\n adServiceRef.current.displayAd(slot.id, lazyLoad);\n \n if (refreshInterval && refreshInterval > 0) {\n setupAutoRefresh();\n }\n \n onLoad?.();\n } catch (error) {\n onError?.(error as Error);\n }\n };\n\n const setupAutoRefresh = () => {\n if (refreshInterval && refreshInterval >= 30000) { // Mínimo 30 segundos\n refreshIntervalRef.current = setInterval(() => {\n if (adServiceRef.current) {\n adServiceRef.current.refreshAd(slot.id);\n }\n }, refreshInterval);\n }\n };\n\n checkAdService();\n\n return () => {\n if (refreshIntervalRef.current) {\n clearInterval(refreshIntervalRef.current);\n }\n \n if (adServiceRef.current) {\n adServiceRef.current.destroyAd(slot.id);\n }\n };\n }, [slot, bidders, lazyLoad, refreshInterval, onLoad, onError]);\n\n return (\n <div\n id={slot.id}\n className={className}\n style={{\n minHeight: slot.sizes[0] ? `${slot.sizes[0][1]}px` : '250px',\n minWidth: slot.sizes[0] ? `${slot.sizes[0][0]}px` : '300px',\n ...style\n }}\n />\n );\n};\n\nexport default AdSlot;","import { useEffect, useRef } from 'react';\nimport AdService from '../lib/AdService';\nimport type { AdConfig } from '../types/ads';\n\nexport const useAdService = (config: AdConfig) => {\n const adServiceRef = useRef<AdService>();\n const isInitializedRef = useRef(false);\n\n useEffect(() => {\n if (!isInitializedRef.current) {\n adServiceRef.current = AdService.getInstance();\n \n adServiceRef.current.initialize(config).catch(error => {\n console.error('Erro ao inicializar AdService:', error);\n });\n \n isInitializedRef.current = true;\n }\n }, [config]);\n\n return adServiceRef.current;\n};","export const BidderPresets = {\n // Amazon A9/TAM\n amazon: (params: { slotID: string; placementId?: string }) => ({\n bidder: 'amazon',\n params\n }),\n\n // Google Ad Exchange\n rubicon: (params: { accountId: string; siteId: string; zoneId: string }) => ({\n bidder: 'rubicon',\n params\n }),\n\n // AppNexus\n appnexus: (params: { placementId: string; member?: string }) => ({\n bidder: 'appnexus',\n params\n }),\n\n // Index Exchange\n ix: (params: { siteId: string; size: number[] }) => ({\n bidder: 'ix',\n params\n }),\n\n // OpenX\n openx: (params: { unit: string; delDomain: string }) => ({\n bidder: 'openx',\n params\n }),\n\n // PubMatic\n pubmatic: (params: { publisherId: string; adSlot: string }) => ({\n bidder: 'pubmatic',\n params\n })\n};","// Exportar tudo que o usuário vai precisar\nexport { default as AdService } from './lib/AdService';\nexport { AdProvider, useAd } from './components/AdProvider';\nexport { default as AdSlot } from './components/AdSlot';\nexport { useAdService } from './hooks/useAdService';\nexport { BidderPresets } from './utils/bidders';\n\n// Exportar tipos\nexport type {\n AdConfig,\n AdSlot as AdSlotType,\n AdUnit,\n PrebidBidder\n} from './types/ads';\n\n// Versão da lib\nexport const VERSION = '1.0.0';"],"names":["_jsx"],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sources":["../src/lib/AdService.ts","../src/providers/AdProvider.tsx","../src/components/AdSlot.tsx","../src/hooks/useAdService.ts","../src/utils/bidders.ts","../src/index.ts"],"sourcesContent":["import type { AdConfig, AdSlot, AdUnit, PrebidBidder } from \"../types/ads\";\n\ndeclare global {\n interface Window {\n googletag: any;\n pbjs: any;\n }\n}\n\nclass AdService {\n private static instance: AdService;\n private isInitialized = false;\n private config: AdConfig | null = null;\n private adSlots = new Map<string, any>();\n private observers = new Map<string, IntersectionObserver>();\n\n private constructor() {}\n\n static getInstance(): AdService {\n if (!AdService.instance) {\n AdService.instance = new AdService();\n }\n return AdService.instance;\n }\n\n async initialize(config: AdConfig): Promise<void> {\n if (this.isInitialized) {\n console.warn('AdService já foi inicializado');\n return;\n }\n\n this.config = config;\n \n try {\n await Promise.all([\n this.loadGoogleTag(),\n this.loadPrebid()\n ]);\n \n this.setupGoogleTag();\n this.setupPrebid();\n this.isInitialized = true;\n \n console.log('AdService inicializado com sucesso');\n } catch (error) {\n console.error('Erro ao inicializar AdService:', error);\n throw error;\n }\n }\n\n private loadGoogleTag(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (window.googletag) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n script.async = true;\n script.src = 'https://securepubads.g.doubleclick.net/tag/js/gpt.js';\n script.onload = () => resolve();\n script.onerror = () => reject(new Error('Falha ao carregar Google Tag'));\n document.head.appendChild(script);\n });\n }\n\n private loadPrebid(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (window.pbjs) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n script.async = true;\n script.src = 'https://cdn.jsdelivr.net/npm/prebid.js@latest/dist/not-for-prod/prebid.js';\n script.onload = () => {\n window.pbjs = window.pbjs || {};\n window.pbjs.que = window.pbjs.que || [];\n resolve();\n };\n script.onerror = () => reject(new Error('Falha ao carregar Prebid'));\n document.head.appendChild(script);\n });\n }\n\n private setupGoogleTag(): void {\n window.googletag = window.googletag || { cmd: [] };\n \n window.googletag.cmd.push(() => {\n if (this.config?.enableLazyLoad) {\n window.googletag.pubads().enableLazyLoad({\n fetchMarginPercent: 500,\n renderMarginPercent: 200,\n mobileScaling: 2.0\n });\n }\n\n window.googletag.pubads().enableSingleRequest();\n window.googletag.pubads().collapseEmptyDivs();\n window.googletag.enableServices();\n });\n }\n\n private setupPrebid(): void {\n window.pbjs.que.push(() => {\n window.pbjs.setConfig({\n debug: this.config?.testMode || false,\n bidderTimeout: this.config?.prebidTimeout || 2000,\n enableSendAllBids: true,\n useBidCache: true,\n cache: {\n url: 'https://prebid.adnxs.com/pbc/v1/cache'\n }\n });\n });\n }\n\n defineAdSlot(slot: AdSlot, bidders: PrebidBidder[] = []): void {\n if (!this.isInitialized) {\n throw new Error('AdService não foi inicializado');\n }\n\n window.googletag.cmd.push(() => {\n const adSlot = window.googletag\n .defineSlot(slot.path, slot.sizes, slot.id)\n ?.addService(window.googletag.pubads());\n\n if (slot.targeting) {\n Object.entries(slot.targeting).forEach(([key, value]) => {\n adSlot?.setTargeting(key, value);\n });\n }\n\n this.adSlots.set(slot.id, adSlot);\n });\n\n const hasBidders = bidders.length > 0;\n\n if (hasBidders) {\n const adUnit: AdUnit = {\n code: slot.id,\n mediaTypes: {\n banner: {\n sizes: slot.sizes\n }\n },\n bids: bidders\n };\n\n window.pbjs.que.push(() => {\n window.pbjs.addAdUnits([adUnit]);\n });\n }\n }\n\n displayAd(slotId: string, lazyLoad = false): void {\n if (!this.isInitialized) {\n throw new Error('AdService não foi inicializado');\n }\n\n if (lazyLoad && this.config?.enableLazyLoad) {\n this.setupLazyLoading(slotId);\n } else {\n this.requestAndDisplayAd(slotId);\n }\n }\n\n private setupLazyLoading(slotId: string): void {\n const element = document.getElementById(slotId);\n if (!element) return;\n\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n this.requestAndDisplayAd(slotId);\n observer.disconnect();\n this.observers.delete(slotId);\n }\n });\n },\n { threshold: 0.1 }\n );\n\n observer.observe(element);\n this.observers.set(slotId, observer);\n }\n\n private requestAndDisplayAd(slotId: string): void {\n window.pbjs.que.push(() => {\n window.pbjs.requestBids({\n adUnitCodes: [slotId],\n timeout: this.config?.prebidTimeout || 2000,\n bidsBackHandler: () => {\n window.googletag.cmd.push(() => {\n window.pbjs.setTargetingForGPTAsync([slotId]);\n window.googletag.display(slotId);\n });\n }\n });\n });\n }\n\n refreshAd(slotId: string): void {\n const slot = this.adSlots.get(slotId);\n if (!slot) return;\n\n window.pbjs.que.push(() => {\n window.pbjs.requestBids({\n adUnitCodes: [slotId],\n timeout: this.config?.prebidTimeout || 2000,\n bidsBackHandler: () => {\n window.googletag.cmd.push(() => {\n window.pbjs.setTargetingForGPTAsync([slotId]);\n window.googletag.pubads().refresh([slot]);\n });\n }\n });\n });\n }\n\n destroyAd(slotId: string): void {\n const observer = this.observers.get(slotId);\n if (observer) {\n observer.disconnect();\n this.observers.delete(slotId);\n }\n\n const slot = this.adSlots.get(slotId);\n if (slot) {\n window.googletag.cmd.push(() => {\n window.googletag.destroySlots([slot]);\n });\n this.adSlots.delete(slotId);\n }\n\n window.pbjs.que.push(() => {\n window.pbjs.removeAdUnit(slotId);\n });\n }\n\n setTargeting(key: string, value: string | string[]): void {\n window.googletag.cmd.push(() => {\n window.googletag.pubads().setTargeting(key, value);\n });\n }\n\n clearTargeting(key?: string): void {\n window.googletag.cmd.push(() => {\n if (key) {\n window.googletag.pubads().clearTargeting(key);\n } else {\n window.googletag.pubads().clearTargeting();\n }\n });\n }\n\n getSlotInfo(slotId: string): any {\n return {\n slot: this.adSlots.get(slotId),\n hasObserver: this.observers.has(slotId),\n isInitialized: this.isInitialized\n };\n }\n}\n\nexport default AdService;","import React, { createContext, useContext, useEffect } from 'react';\nimport AdService from '../lib/AdService';\nimport type { AdConfig } from '../types/ads';\nimport type { ReactNode } from 'react';\n\ninterface AdContextType {\n adService: AdService | null;\n isReady: boolean;\n}\n\nconst AdContext = createContext<AdContextType>({\n adService: null,\n isReady: false\n});\n\ninterface AdProviderProps {\n config: AdConfig;\n children: ReactNode;\n}\n\nexport const AdProvider: React.FC<AdProviderProps> = ({ config, children }) => {\n const [isReady, setIsReady] = React.useState(false);\n const [adService] = React.useState(() => AdService.getInstance());\n\n useEffect(() => {\n adService.initialize(config)\n .then(() => {\n setIsReady(true);\n \n (window as any).adService = adService;\n })\n .catch(error => {\n console.error('Erro ao inicializar AdService:', error);\n });\n }, [adService, config]);\n\n return (\n <AdContext.Provider value={{ adService, isReady }}>\n {children}\n </AdContext.Provider>\n );\n};\n\nexport const useAd = () => {\n const context = useContext(AdContext);\n if (!context) {\n throw new Error('useAd deve ser usado dentro de um AdProvider');\n }\n return context;\n};","import React, { useEffect, useRef } from 'react';\nimport { AdSlotType, PrebidBidder } from '..';\n\ninterface AdSlotProps {\n slot: AdSlotType;\n bidders?: PrebidBidder[];\n lazyLoad?: boolean;\n refreshInterval?: number;\n className?: string;\n style?: React.CSSProperties;\n onLoad?: () => void;\n onError?: (error: Error) => void;\n}\n\nconst AdSlot: React.FC<AdSlotProps> = ({\n slot,\n bidders = [],\n lazyLoad = false,\n refreshInterval,\n className,\n style,\n onLoad,\n onError\n}) => {\n const adServiceRef = useRef<any>();\n const refreshIntervalRef = useRef<NodeJS.Timeout>();\n\n useEffect(() => {\n\n const checkAdService = () => {\n try {\n const adService = (window as any).adService;\n if (adService) {\n adServiceRef.current = adService;\n initializeAd();\n } else {\n setTimeout(checkAdService, 100);\n }\n } catch (error) {\n onError?.(error as Error);\n }\n };\n\n const initializeAd = () => {\n try {\n adServiceRef.current.defineAdSlot(slot, bidders);\n adServiceRef.current.displayAd(slot.id, lazyLoad);\n \n if (refreshInterval && refreshInterval > 0) {\n setupAutoRefresh();\n }\n \n onLoad?.();\n } catch (error) {\n onError?.(error as Error);\n }\n };\n\n const setupAutoRefresh = () => {\n if (refreshInterval && refreshInterval >= 30000) { // Mínimo 30 segundos\n refreshIntervalRef.current = setInterval(() => {\n if (adServiceRef.current) {\n adServiceRef.current.refreshAd(slot.id);\n }\n }, refreshInterval);\n }\n };\n\n checkAdService();\n\n return () => {\n if (refreshIntervalRef.current) {\n clearInterval(refreshIntervalRef.current);\n }\n \n if (adServiceRef.current) {\n adServiceRef.current.destroyAd(slot.id);\n }\n };\n }, [slot, bidders, lazyLoad, refreshInterval, onLoad, onError]);\n\n return (\n <div\n id={slot.id}\n className={className}\n style={{\n minHeight: slot.sizes[0] ? `${slot.sizes[0][1]}px` : '250px',\n minWidth: slot.sizes[0] ? `${slot.sizes[0][0]}px` : '300px',\n ...style\n }}\n />\n );\n};\n\nexport default AdSlot;","import { useEffect, useRef } from 'react';\nimport AdService from '../lib/AdService';\nimport type { AdConfig } from '../types/ads';\n\nexport const useAdService = (config: AdConfig) => {\n const adServiceRef = useRef<AdService>();\n const isInitializedRef = useRef(false);\n\n useEffect(() => {\n if (!isInitializedRef.current) {\n adServiceRef.current = AdService.getInstance();\n \n adServiceRef.current.initialize(config).catch(error => {\n console.error('Erro ao inicializar AdService:', error);\n });\n \n isInitializedRef.current = true;\n }\n }, [config]);\n\n return adServiceRef.current;\n};","export const BidderPresets = {\n // Amazon A9/TAM\n amazon: (params: { slotID: string; placementId?: string }) => ({\n bidder: 'amazon',\n params\n }),\n\n // Google Ad Exchange\n rubicon: (params: { accountId: string; siteId: string; zoneId: string }) => ({\n bidder: 'rubicon',\n params\n }),\n\n // AppNexus\n appnexus: (params: { placementId: string; member?: string }) => ({\n bidder: 'appnexus',\n params\n }),\n\n // Index Exchange\n ix: (params: { siteId: string; size: number[] }) => ({\n bidder: 'ix',\n params\n }),\n\n // OpenX\n openx: (params: { unit: string; delDomain: string }) => ({\n bidder: 'openx',\n params\n }),\n\n // PubMatic\n pubmatic: (params: { publisherId: string; adSlot: string }) => ({\n bidder: 'pubmatic',\n params\n })\n};","// Exportar tudo que o usuário vai precisar\nexport { default as AdService } from './lib/AdService';\nexport { AdProvider, useAd } from './providers/AdProvider';\nexport { default as AdSlot } from './components/AdSlot';\nexport { useAdService } from './hooks/useAdService';\nexport { BidderPresets } from './utils/bidders';\n\n// Exportar tipos\nexport type {\n AdConfig,\n AdSlot as AdSlotType,\n AdUnit,\n PrebidBidder\n} from './types/ads';\n\n// Versão da lib\nexport const VERSION = '1.0.0';"],"names":["createContext","useEffect","_jsx","useContext","useRef"],"mappings":"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"} | ||
| {"version":3,"file":"index.js","sources":["../src/lib/AdService.ts","../src/components/AdProvider.tsx","../src/components/AdSlot.tsx","../src/hooks/useAdService.ts","../src/utils/bidders.ts","../src/index.ts"],"sourcesContent":["import type { AdConfig, AdSlot, AdUnit, PrebidBidder } from \"../types/ads\";\n\ndeclare global {\n interface Window {\n googletag: any;\n pbjs: any;\n }\n}\n\nclass AdService {\n private static instance: AdService;\n private isInitialized = false;\n private config: AdConfig | null = null;\n private adSlots = new Map<string, any>();\n private observers = new Map<string, IntersectionObserver>();\n\n private constructor() {}\n\n static getInstance(): AdService {\n if (!AdService.instance) {\n AdService.instance = new AdService();\n }\n return AdService.instance;\n }\n\n async initialize(config: AdConfig): Promise<void> {\n if (this.isInitialized) {\n console.warn('AdService já foi inicializado');\n return;\n }\n\n this.config = config;\n \n try {\n await Promise.all([\n this.loadGoogleTag(),\n this.loadPrebid()\n ]);\n \n this.setupGoogleTag();\n this.setupPrebid();\n this.isInitialized = true;\n \n console.log('AdService inicializado com sucesso');\n } catch (error) {\n console.error('Erro ao inicializar AdService:', error);\n throw error;\n }\n }\n\n private loadGoogleTag(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (window.googletag) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n script.async = true;\n script.src = 'https://securepubads.g.doubleclick.net/tag/js/gpt.js';\n script.onload = () => resolve();\n script.onerror = () => reject(new Error('Falha ao carregar Google Tag'));\n document.head.appendChild(script);\n });\n }\n\n private loadPrebid(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (window.pbjs) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n script.async = true;\n script.src = 'https://cdn.jsdelivr.net/npm/prebid.js@latest/dist/not-for-prod/prebid.js';\n script.onload = () => {\n window.pbjs = window.pbjs || {};\n window.pbjs.que = window.pbjs.que || [];\n resolve();\n };\n script.onerror = () => reject(new Error('Falha ao carregar Prebid'));\n document.head.appendChild(script);\n });\n }\n\n private setupGoogleTag(): void {\n window.googletag = window.googletag || { cmd: [] };\n \n window.googletag.cmd.push(() => {\n if (this.config?.enableLazyLoad) {\n window.googletag.pubads().enableLazyLoad({\n fetchMarginPercent: 500,\n renderMarginPercent: 200,\n mobileScaling: 2.0\n });\n }\n\n window.googletag.pubads().enableSingleRequest();\n window.googletag.pubads().collapseEmptyDivs();\n window.googletag.enableServices();\n });\n }\n\n private setupPrebid(): void {\n window.pbjs.que.push(() => {\n window.pbjs.setConfig({\n debug: this.config?.testMode || false,\n bidderTimeout: this.config?.prebidTimeout || 2000,\n enableSendAllBids: true,\n useBidCache: true,\n cache: {\n url: 'https://prebid.adnxs.com/pbc/v1/cache'\n }\n });\n });\n }\n\n defineAdSlot(slot: AdSlot, bidders: PrebidBidder[] = []): void {\n if (!this.isInitialized) {\n throw new Error('AdService não foi inicializado');\n }\n\n window.googletag.cmd.push(() => {\n const adSlot = window.googletag\n .defineSlot(slot.path, slot.sizes, slot.id)\n ?.addService(window.googletag.pubads());\n\n if (slot.targeting) {\n Object.entries(slot.targeting).forEach(([key, value]) => {\n adSlot?.setTargeting(key, value);\n });\n }\n\n this.adSlots.set(slot.id, adSlot);\n });\n\n const hasBidders = bidders.length > 0;\n\n if (hasBidders) {\n const adUnit: AdUnit = {\n code: slot.id,\n mediaTypes: {\n banner: {\n sizes: slot.sizes\n }\n },\n bids: bidders\n };\n\n window.pbjs.que.push(() => {\n window.pbjs.addAdUnits([adUnit]);\n });\n }\n }\n\n displayAd(slotId: string, lazyLoad = false): void {\n if (!this.isInitialized) {\n throw new Error('AdService não foi inicializado');\n }\n\n if (lazyLoad && this.config?.enableLazyLoad) {\n this.setupLazyLoading(slotId);\n } else {\n this.requestAndDisplayAd(slotId);\n }\n }\n\n private setupLazyLoading(slotId: string): void {\n const element = document.getElementById(slotId);\n if (!element) return;\n\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n this.requestAndDisplayAd(slotId);\n observer.disconnect();\n this.observers.delete(slotId);\n }\n });\n },\n { threshold: 0.1 }\n );\n\n observer.observe(element);\n this.observers.set(slotId, observer);\n }\n\n private requestAndDisplayAd(slotId: string): void {\n window.pbjs.que.push(() => {\n window.pbjs.requestBids({\n adUnitCodes: [slotId],\n timeout: this.config?.prebidTimeout || 2000,\n bidsBackHandler: () => {\n window.googletag.cmd.push(() => {\n window.pbjs.setTargetingForGPTAsync([slotId]);\n window.googletag.display(slotId);\n });\n }\n });\n });\n }\n\n refreshAd(slotId: string): void {\n const slot = this.adSlots.get(slotId);\n if (!slot) return;\n\n window.pbjs.que.push(() => {\n window.pbjs.requestBids({\n adUnitCodes: [slotId],\n timeout: this.config?.prebidTimeout || 2000,\n bidsBackHandler: () => {\n window.googletag.cmd.push(() => {\n window.pbjs.setTargetingForGPTAsync([slotId]);\n window.googletag.pubads().refresh([slot]);\n });\n }\n });\n });\n }\n\n destroyAd(slotId: string): void {\n const observer = this.observers.get(slotId);\n if (observer) {\n observer.disconnect();\n this.observers.delete(slotId);\n }\n\n const slot = this.adSlots.get(slotId);\n if (slot) {\n window.googletag.cmd.push(() => {\n window.googletag.destroySlots([slot]);\n });\n this.adSlots.delete(slotId);\n }\n\n window.pbjs.que.push(() => {\n window.pbjs.removeAdUnit(slotId);\n });\n }\n\n setTargeting(key: string, value: string | string[]): void {\n window.googletag.cmd.push(() => {\n window.googletag.pubads().setTargeting(key, value);\n });\n }\n\n clearTargeting(key?: string): void {\n window.googletag.cmd.push(() => {\n if (key) {\n window.googletag.pubads().clearTargeting(key);\n } else {\n window.googletag.pubads().clearTargeting();\n }\n });\n }\n\n getSlotInfo(slotId: string): any {\n return {\n slot: this.adSlots.get(slotId),\n hasObserver: this.observers.has(slotId),\n isInitialized: this.isInitialized\n };\n }\n}\n\nexport default AdService;","import React, { createContext, useContext, useEffect } from 'react';\nimport AdService from '../lib/AdService';\nimport type { AdConfig } from '../types/ads';\nimport type { ReactNode } from 'react';\n\ninterface AdContextType {\n adService: AdService | null;\n isReady: boolean;\n}\n\nconst AdContext = createContext<AdContextType>({\n adService: null,\n isReady: false\n});\n\ninterface AdProviderProps {\n config: AdConfig;\n children: ReactNode;\n}\n\nexport const AdProvider: React.FC<AdProviderProps> = ({ config, children }) => {\n const [isReady, setIsReady] = React.useState(false);\n const [adService] = React.useState(() => AdService.getInstance());\n\n useEffect(() => {\n adService.initialize(config)\n .then(() => {\n setIsReady(true);\n \n (window as any).adService = adService;\n })\n .catch(error => {\n console.error('Erro ao inicializar AdService:', error);\n });\n }, [adService, config]);\n\n return (\n <AdContext.Provider value={{ adService, isReady }}>\n {children}\n </AdContext.Provider>\n );\n};\n\nexport const useAd = () => {\n const context = useContext(AdContext);\n if (!context) {\n throw new Error('useAd deve ser usado dentro de um AdProvider');\n }\n return context;\n};","import React, { useEffect, useRef } from 'react';\nimport { AdSlotType, PrebidBidder } from '..';\n\ninterface AdSlotProps {\n slot: AdSlotType;\n bidders?: PrebidBidder[];\n lazyLoad?: boolean;\n refreshInterval?: number;\n className?: string;\n style?: React.CSSProperties;\n onLoad?: () => void;\n onError?: (error: Error) => void;\n}\n\nconst AdSlot: React.FC<AdSlotProps> = ({\n slot,\n bidders = [],\n lazyLoad = false,\n refreshInterval,\n className,\n style,\n onLoad,\n onError\n}) => {\n const adServiceRef = useRef<any>();\n const refreshIntervalRef = useRef<NodeJS.Timeout>();\n\n useEffect(() => {\n\n const checkAdService = () => {\n try {\n const adService = (window as any).adService;\n if (adService) {\n adServiceRef.current = adService;\n initializeAd();\n } else {\n setTimeout(checkAdService, 100);\n }\n } catch (error) {\n onError?.(error as Error);\n }\n };\n\n const initializeAd = () => {\n try {\n adServiceRef.current.defineAdSlot(slot, bidders);\n adServiceRef.current.displayAd(slot.id, lazyLoad);\n \n if (refreshInterval && refreshInterval > 0) {\n setupAutoRefresh();\n }\n \n onLoad?.();\n } catch (error) {\n onError?.(error as Error);\n }\n };\n\n const setupAutoRefresh = () => {\n if (refreshInterval && refreshInterval >= 30000) { // Mínimo 30 segundos\n refreshIntervalRef.current = setInterval(() => {\n if (adServiceRef.current) {\n adServiceRef.current.refreshAd(slot.id);\n }\n }, refreshInterval);\n }\n };\n\n checkAdService();\n\n return () => {\n if (refreshIntervalRef.current) {\n clearInterval(refreshIntervalRef.current);\n }\n \n if (adServiceRef.current) {\n adServiceRef.current.destroyAd(slot.id);\n }\n };\n }, [slot, bidders, lazyLoad, refreshInterval, onLoad, onError]);\n\n return (\n <div\n id={slot.id}\n className={className}\n style={{\n minHeight: slot.sizes[0] ? `${slot.sizes[0][1]}px` : '250px',\n minWidth: slot.sizes[0] ? `${slot.sizes[0][0]}px` : '300px',\n ...style\n }}\n />\n );\n};\n\nexport default AdSlot;","import { useEffect, useRef } from 'react';\nimport AdService from '../lib/AdService';\nimport type { AdConfig } from '../types/ads';\n\nexport const useAdService = (config: AdConfig) => {\n const adServiceRef = useRef<AdService>();\n const isInitializedRef = useRef(false);\n\n useEffect(() => {\n if (!isInitializedRef.current) {\n adServiceRef.current = AdService.getInstance();\n \n adServiceRef.current.initialize(config).catch(error => {\n console.error('Erro ao inicializar AdService:', error);\n });\n \n isInitializedRef.current = true;\n }\n }, [config]);\n\n return adServiceRef.current;\n};","export const BidderPresets = {\n // Amazon A9/TAM\n amazon: (params: { slotID: string; placementId?: string }) => ({\n bidder: 'amazon',\n params\n }),\n\n // Google Ad Exchange\n rubicon: (params: { accountId: string; siteId: string; zoneId: string }) => ({\n bidder: 'rubicon',\n params\n }),\n\n // AppNexus\n appnexus: (params: { placementId: string; member?: string }) => ({\n bidder: 'appnexus',\n params\n }),\n\n // Index Exchange\n ix: (params: { siteId: string; size: number[] }) => ({\n bidder: 'ix',\n params\n }),\n\n // OpenX\n openx: (params: { unit: string; delDomain: string }) => ({\n bidder: 'openx',\n params\n }),\n\n // PubMatic\n pubmatic: (params: { publisherId: string; adSlot: string }) => ({\n bidder: 'pubmatic',\n params\n })\n};","// Exportar tudo que o usuário vai precisar\nexport { default as AdService } from './lib/AdService';\nexport { AdProvider, useAd } from './components/AdProvider';\nexport { default as AdSlot } from './components/AdSlot';\nexport { useAdService } from './hooks/useAdService';\nexport { BidderPresets } from './utils/bidders';\n\n// Exportar tipos\nexport type {\n AdConfig,\n AdSlot as AdSlotType,\n AdUnit,\n PrebidBidder\n} from './types/ads';\n\n// Versão da lib\nexport const VERSION = '1.0.0';"],"names":["createContext","useEffect","_jsx","useContext","useRef"],"mappings":"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"} |
| export { default as AdService } from './lib/AdService'; | ||
| export { AdProvider, useAd } from './providers/AdProvider'; | ||
| export { AdProvider, useAd } from './components/AdProvider'; | ||
| export { default as AdSlot } from './components/AdSlot'; | ||
@@ -4,0 +4,0 @@ export { useAdService } from './hooks/useAdService'; |
+4
-5
| { | ||
| "name": "react-ads-sdk", | ||
| "version": "1.0.3", | ||
| "version": "1.0.4", | ||
| "description": "Complete digital ads service for React and Next.js with Prebid integration", | ||
@@ -15,3 +15,2 @@ "main": "dist/index.js", | ||
| "build:watch": "rollup -c -w", | ||
| "prepublishOnly": "npm run build", | ||
| "release": "npm version patch && npm publish --access public", | ||
@@ -36,8 +35,8 @@ "test": "jest", | ||
| "type": "git", | ||
| "url": "https://github.com/duhoshina/react-ads-service" | ||
| "url": "https://github.com/duhoshina/react-ads-sdk" | ||
| }, | ||
| "bugs": { | ||
| "url": "https://github.com/seuuser/react-ads-service/issues" | ||
| "url": "https://github.com/duhoshina/react-ads-sdk/issues" | ||
| }, | ||
| "homepage": "https://github.com/duhoshina/react-ads-service#readme", | ||
| "homepage": "https://github.com/duhoshina/react-ads-sdk#readme", | ||
| "publishConfig": { | ||
@@ -44,0 +43,0 @@ "access": "public" |
| import React from 'react'; | ||
| import AdService from '../lib/AdService'; | ||
| import type { AdConfig } from '../types/ads'; | ||
| import type { ReactNode } from 'react'; | ||
| interface AdContextType { | ||
| adService: AdService | null; | ||
| isReady: boolean; | ||
| } | ||
| interface AdProviderProps { | ||
| config: AdConfig; | ||
| children: ReactNode; | ||
| } | ||
| export declare const AdProvider: React.FC<AdProviderProps>; | ||
| export declare const useAd: () => AdContextType; | ||
| export {}; |
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
0
-100%91273
-0.52%14
-6.67%1043
-1.42%