@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
JavaScript
;
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