react-native-ad-manager
Version:
A react-native component for Google Ad Manager banners, interstitials and native ads.
67 lines (66 loc) • 2.75 kB
TypeScript
import React from 'react';
import { ViewProps, NativeSyntheticEvent, EventSubscription } from 'react-native';
import type { IAdManagerEventBase, IAdManagerEventAppEvent, IAdManagerEventLoadedBanner, IAdManagerEventSize } from './AdManagerEvent';
import type { IAdManagerTargeting } from './AdManagerTypes';
interface IAdManagerBannerPropsBase extends ViewProps {
/**
* DFP iOS library banner size constants
* (https://developers.google.com/admob/ios/banner)
* banner (320x50, Standard Banner for Phones and Tablets)
* fullBanner (468x60, IAB Full-Size Banner for Tablets)
* largeBanner (320x100, Large Banner for Phones and Tablets)
* mediumRectangle (300x250, IAB Medium Rectangle for Phones and Tablets)
* leaderboard (728x90, IAB Leaderboard for Tablets)
* skyscraper (120x600, Skyscraper size for the iPad. Mediation only. AdMob/Google does not offer this size)
* fluid (An ad size that spans the full width of its container, with a height dynamically determined by the ad)
* {\d}x{\d} (Dynamic size determined byt the user, 300x250, 300x100 etc.)
*
* banner is default
*/
adSize?: string;
/**
* Optional array specifying all valid sizes that are appropriate for this slot.
*/
validAdSizes?: string[];
/**
* DFP ad unit ID
*/
adUnitID?: string;
/**
* Array of test devices. Use Banner.simulatorId for the simulator
*/
testDevices?: string[];
targeting?: IAdManagerTargeting;
}
interface IAdManagerBannerProps extends IAdManagerBannerPropsBase {
onError?: (eventData: Error) => void;
/**
* DFP library events
*/
onSizeChange?: (event: IAdManagerEventSize) => void;
onAdLoaded?: (event: IAdManagerEventLoadedBanner) => void;
onAdFailedToLoad?: (error: Error) => void;
onAppEvent?: (event: IAdManagerEventAppEvent) => void;
onAdOpened?: (event: IAdManagerEventBase) => void;
onAdClosed?: (event: IAdManagerEventBase) => void;
onAdRecordImpression?: (event: IAdManagerEventBase) => void;
}
interface IAdManagerBannerState {
style: {
width?: number;
height?: number;
};
error: Error | null;
}
export declare class Banner extends React.Component<IAdManagerBannerProps, IAdManagerBannerState> {
hasOnErrorFromParent: boolean;
customListener: EventSubscription | undefined;
constructor(props: IAdManagerBannerProps);
shouldComponentUpdate(nextProps: IAdManagerBannerProps, nextState: IAdManagerBannerState): boolean;
componentDidMount(): void;
componentWillUnmount(): void;
loadBanner(): void;
handleSizeChange({ nativeEvent }: NativeSyntheticEvent<IAdManagerEventSize>): void;
render(): JSX.Element;
}
export {};