UNPKG

@zezosoft/zezo-ott-react-native-video-player

Version:

Production-ready React Native OTT video player library for Android & iOS. Features: playlists, seasons, auto-next playback, subtitles (SRT/VTT), custom theming, analytics tracking, fullscreen mode, gesture controls, ads player (pre-roll/mid-roll/post-roll

50 lines (49 loc) 1.41 kB
"use strict"; import { useCallback } from 'react'; /** * Reusable hook for ad tracking * Consolidates ad tracking logic across components */ export const useAdTracking = ({ onAdTracking } = {}) => { const trackAdEvent = useCallback((ad, event, trackingUrl) => { if (!onAdTracking) return; const url = trackingUrl || ad.tracking?.[event]; if (url) { onAdTracking({ ad, trackingUrl: url, event }); } }, [onAdTracking]); const trackAdImpression = useCallback(ad => { trackAdEvent(ad, 'impression', ad.tracking?.impression); }, [trackAdEvent]); const trackAdStart = useCallback(ad => { trackAdEvent(ad, 'start', ad.tracking?.start); }, [trackAdEvent]); const trackAdComplete = useCallback(ad => { trackAdEvent(ad, 'complete', ad.tracking?.complete); }, [trackAdEvent]); const trackAdSkip = useCallback(ad => { trackAdEvent(ad, 'skip', ad.tracking?.skip); }, [trackAdEvent]); const trackAdQuartile = useCallback((ad, quartile) => { trackAdEvent(ad, quartile, ad.tracking?.[quartile]); }, [trackAdEvent]); const trackAdClick = useCallback(ad => { trackAdEvent(ad, 'click', ad.tracking?.click); }, [trackAdEvent]); return { trackAdEvent, trackAdImpression, trackAdStart, trackAdComplete, trackAdSkip, trackAdQuartile, trackAdClick }; }; //# sourceMappingURL=useAdTracking.js.map