UNPKG

@hmscore/react-native-hms-ads

Version:
2,276 lines (1,893 loc) 64.3 kB
/* * Copyright 2020-2025. Huawei Technologies Co., Ltd. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ declare module "@hmscore/react-native-hms-ads" { import * as React from "react"; import { NativeSyntheticEvent, ViewProps } from "react-native"; export enum RewardMediaTypes { VIDEO = "video" } export enum InterstitialMediaTypes { IMAGE = "image", VIDEO = "video" } export enum SplashMediaTypes { IMAGE = "image", VIDEO = "video" } export enum BannerMediaTypes { IMAGE = "image" } export enum NativeAdAssetNames { TITLE = "1", CALL_TO_ACTION = "2", ICON = "3", DESC = "4", AD_SOURCE = "5", MARKET = "6", PRICE = "7", IMAGE = "8", RATING = "9", MEDIA_VIDEO = "10", CHOICES_CONTAINER = "11" } /** * Ad content rating. * Refer this page https://developer.huawei.com/consumer/en/doc/development/HMS-References/ads-api-contentcassification */ export enum ContentClassification { AD_CONTENT_CLASSIFICATION_W = "W", AD_CONTENT_CLASSIFICATION_PI = "PI", AD_CONTENT_CLASSIFICATION_J = "J", AD_CONTENT_CLASSIFICATION_A = "A", AD_CONTENT_CLASSIFICATION_UNKNOWN = "", } /** * Whether to request only non-personalized ads. * Refer this page https://developer.huawei.com/consumer/en/doc/development/HMS-References/ads-api-nonpersonalizedad */ export enum NonPersonalizedAd { ALLOW_ALL = 0, ALLOW_NON_PERSONALIZED = 1, } /** * Child-directed setting. * Refer this page https://developer.huawei.com/consumer/en/doc/development/HMS-References/ads-api-tagforchild */ export enum TagForChild { TAG_FOR_CHILD_PROTECTION_FALSE = 0, TAG_FOR_CHILD_PROTECTION_TRUE = 1, TAG_FOR_CHILD_PROTECTION_UNSPECIFIED = -1, } /** * Setting directed to users under the age of consent. * Refer this page https://developer.huawei.com/consumer/en/doc/development/HMS-References/ads-api-underage */ export enum UnderAge { PROMISE_FALSE = 0, PROMISE_TRUE = 1, PROMISE_UNSPECIFIED = -1, } /** * Gender type * Refer this page https://developer.huawei.com/consumer/en/doc/development/HMS-References/ads-api-gender */ export enum Gender { UNKNOWN = 0, MALE = 1, FEMALE = 2, } /** * Whether to obtain the audio focus during video playback * Refer this page https://developer.huawei.com/consumer/en/doc/development/HMS-References/ads-api-banneradSize */ export enum BannerAdSizes { B_300_250 = "300_250", B_320_50 = "320_50", B_320_100 = "320_100", B_360_57 = "360_57", B_360_144 = "360_144", B_SMART = "smart", B_DYNAMIC = "dynamic", B_ADVANCED = "advanced", B_INVALID = "invalid", } /** * Option for functions that can use Huawei SDK or * [Aidl](https://developer.android.com/guide/components/aidl) service. */ export enum CallMode { SDK = "sdk", AIDL = "aidl", // Will not be used anymore } /** * Debug consent setting. */ export enum DebugNeedConsent { DEBUG_DISABLED = 0, DEBUG_NEED_CONSENT = 1, DEBUG_NOT_NEED_CONSENT = 2, } /** * Consent status. */ export enum ConsentStatus { PERSONALIZED = 0, NON_PERSONALIZED = 1, UNKNOWN = 2, } /** * Choice icon position constants * Refer this page https://developer.huawei.com/consumer/en/doc/development/HMS-References/ads-api-nativeadconfiguration-choicesposition */ export enum ChoicesPosition { TOP_LEFT = 0, TOP_RIGHT = 1, BOTTOM_RIGHT = 2, BOTTOM_LEFT = 3, INVISIBLE = 4, } /** * Orientation constant * Refer this page https://developer.huawei.com/consumer/en/doc/development/HMS-References/ads-api-nativeadconfiguration-direction */ export enum Direction { ANY = 0, PORTRAIT = 1, LANDSCAPE = 2, } /** * Whether to obtain the audio focus during video playback * Refer this page https://developer.huawei.com/consumer/en/doc/development/HMS-References/ads-api-audiofocustype */ export enum AudioFocusType { GAIN_AUDIO_FOCUS_ALL = 0, NOT_GAIN_AUDIO_FOCUS_WHEN_MUTE = 1, NOT_GAIN_AUDIO_FOCUS_ALL = 2, } /** * Native ad media types */ export enum NativeMediaTypes { VIDEO = "video", IMAGE_SMALL = "image_small", IMAGE_LARGE = "image_large", } /** * Options for scaling the bounds of an image * Refer this page https://developer.android.com/reference/android/widget/ImageView.ScaleType */ export enum ScaleType { MATRIX = "MATRIX", FIT_XY = "FIT_XY", FIT_START = "FIT_START", FIT_CENTER = "FIT_CENTER", FIT_END = "FIT_END", CENTER = "CENTER", CENTER_CROP = "CENTER_CROP", CENTER_INSIDE = "CENTER_INSIDE", } /** * Options for scaling the bounds of an image * Refer this page https://developer.android.com/reference/android/widget/ImageView.ScaleType */ export enum DetailedCreativeTypes { BIG_IMG = 901, VIDEO = 903, THREE_IMG = 904, SMALL_IMG = 905, SINGLE_IMG = 909, SHORT_TEXT = 913, LONG_TEXT = 914, } /** * App installed notify style * Refer this page https://developer.huawei.com/consumer/en/doc/development/HMSCore-References/activatestyle-0000001210045468 */ export enum ActivateStyle { BOTTOM_BANNER = 1, CONFIRM_DIALOG = 2 } /** * Type of the network allowed for automatic video playback * Refer this page https://developer.huawei.com/consumer/en/doc/HMSCore-References/autoplaynettype-0000001876216905 */ export enum AutoPlayNetType { WIFI_ONLY = 0, BOTH_WIFI_AND_DATA = 1, FORBID_AUTO_PLAY = 2 } /** * Ad creative matching strategy * Refer this page https://developer.huawei.com/consumer/en/doc/development/HMSCore-References/creativematchtype-0000001150370058 */ export enum CreativeMatchType { EXACT = 0, SMART = 1, UNKNOWN = 2, ANY = 3, LANDSCAPE = 4, PORTRAIT = 5, } /** * Vast Orientation */ export enum Orientation { PORTRAIT = 1, LANDSCAPE = 0, } /** * Currency supported by the bidding request */ export enum Cur { CNY = "CNY", USD = "USD", EUR = "EUR", GBP = "GBP", JPY = "JPY" } /** * Macro */ export enum Macro { SECOND_PRICE = "SECOND_PRICE", AUCTION_PRICE = "AUCTION_PRICE", AUCTION_LOSS = "AUCTION_LOSS", AUCTION_CURRENCY = "AUCTION_CURRENCY", AUCTION_APP_PKG = "AUCTION_APP_PKG", AUCTION_APP_NAME = "AUCTION_APP_NAME", AUCTION_CP_ID = "AUCTION_CP_ID", } /** * Ad request options. */ interface RequestOptions { /** * The OAID. */ adContentClassification?: ContentClassification; /** * The OAID. */ appCountry?: string; /** * The OAID. */ appLang?: string; /** * The OAID. */ nonPersonalizedAd?: NonPersonalizedAd; /** * The OAID. */ tagForChildProtection?: TagForChild; /** * The OAID. */ tagForUnderAgeOfPromise?: UnderAge; /** * Whether the location information is carried in an ad request. */ requestLocation?: boolean; /** * Sets the maximum transaction timeout interval (including the network delay), in milliseconds. */ tMax?: number; /** * Ad parameters requested by publisher apps for real-time bidding. */ biddingParam?: BiddingParam; /** * Ad unit ID. The real-time bidding parameters are set on a per ad unit basis. */ slotId?: string; /** * Ad parameters requested by publisher apps for real-time bidding. */ biddingParamMap?: object; /** * Sets the currency of the bid for a real-time bidding ad unit. */ cur?: Cur[]; } /** * Builds a BiddingParam object with specified attributes. */ interface BiddingParam { /** * Sets the floor bid for a real-time bidding ad unit. */ bidFloor?: number; /** * Sets the currency of the floor bid for a real-time bidding ad unit. */ bidFloorCur?: string; /** * Sets the app packages that are prohibited from delivering ads through real-time bidding ad units. */ bpkgName?: []; } /** * Builds a BiddingParam object with specified attributes. */ interface BiddingInfo { /** * Obtains the creative bid amount. If the bid type CPM, the creative will be charged by every thousand impressions. */ price?: number; /** * Obtains the currency of a creative bid. */ cur?: string; /** * Obtains the bidding success notification URL. */ nurl?: string; /** * Obtains the URL used to notify Huawei of its bidding failure and the success of another vendor. */ lurl?: string; } /** * Ad provider. */ interface AdProvider { /** * Id of ad provider. */ id: ContentClassification; /** * Name of ad provider. */ name: string; /** * The url for privacy policy. */ privacyPolicyUrl: string; /** * The service area for ad (ex: 'Global' or 'Asia'). */ serviceArea: string; } /** * Consent information from api result. */ interface ConsentResult { /** * Status of consent. */ consentStatus: ConsentStatus; /** * Shows whether consent is needed. */ isNeedConsent: boolean; /** * Ad provider list */ adProviders: AdProvider[]; } /** * Ad consent object to be submitted. */ interface Consent { /** * Consent option. */ consentStatus?: ConsentStatus; /** * DebugNeedConsent option. */ debugNeedConsent?: DebugNeedConsent; /** * UnderAge option. */ underAgeOfPromise?: UnderAge; /** * Device Id */ testDeviceId?: string; } /** * Information about advertised clients. */ interface AdvertisingIdClientInfo { /** * The OAID. */ id: string; /** * 'Limit ad tracking' setting. */ isLimitAdTrackingEnabled: boolean; } /** * HMSOaid module. */ export const HMSOaid = { /** * Obtains the OAID and 'Limit ad tracking' setting. */ getAdvertisingIdInfo(callMode: CallMode): Promise<AdvertisingIdClientInfo>;, /** * Verifies the OAID and 'Limit ad tracking' setting */ verifyAdvertisingId(advertisingInfo: AdvertisingIdClientInfo): Promise<boolean>;, }; /** * Server-side verification parameter. */ interface VerifyConfig { /** * User Id. */ userId: number; /** * 'Custom data. */ data: boolean; } interface Location { /** * Latitude. */ lat?: number; /** * Longitude. */ lng?: number; } /** * Ad request parameters. */ interface AdParam { /** * Ad content rating. Check ContentClassification for possible values. */ adContentClassification?: ContentClassification; /** * Country code corresponding to the language in which an ad needs to be * returned for an app. */ appCountry?: string; /** * Location. */ location?: Location; /** * Language in which an ad needs to be returned for an app. */ appLang?: string; /** * Home country code. */ belongCountryCode?: string; /** * Gender. Check Gender for possible values. */ gender?: Gender; /** * The setting of requesting personalized ads. Check NonPersonalizedAd * for possible values. */ nonPersonalizedAd?: NonPersonalizedAd; /** * Origin of request. */ requestOrigin?: string; /** * The setting of processing ad requests according to the COPPA. * Check TagForChild for possible values. */ tagForChildProtection?: TagForChild; /** * The setting of processing ad requests as directed to users under * the age of consent. Check UnderAge for possible values. */ tagForUnderAgeOfPromise?: UnderAge; /** * Targeting content url. */ targetingContentUrl?: string; /** * Whether the location information is carried in an ad request. */ requestLocation?: boolean; /** * Requested creative type of a native ad. */ detailedCreativeTypes?: number[]; /** * Sets the maximum transaction timeout interval (including the network delay), in milliseconds. */ tMax?: number; /** * Ad parameters requested by publisher apps for real-time bidding. */ biddingParam?: BiddingParam; /** * Ad unit ID. The real-time bidding parameters are set on a per ad unit basis. */ slotId?: string; /** * Ad parameters requested by publisher apps for real-time bidding. */ biddingParamMap?: BiddingParam; /** * Sets the currency of the bid for a real-time bidding ad unit. */ cur?: Cur[]; } /** * Information about the reward item in a rewarded ad. */ interface Reward { /** * The name of a reward item. */ name: string; /** * The number of reward items. */ amount: number; } /** * Information about the reward item in a rewarded ad. */ interface RewardAd { /** * User id. */ userId: string; /** * Custom data. */ data: string; /** * Reward item. */ reward: Reward; /** * Shows whether a rewarded ad is successfully loaded. */ isLoaded: boolean; } /** * HMSReward module for reward ads. */ export const HMSReward = { /** * Sets ad slot id. */ setAdId(adSlotId: string): Promise<null>;, /** * Sets to display ad on HMS Core app */ loadWithAdId(loadWithAdId: boolean): Promise<null>;, /** * Sets user id */ setUserId(userID: string): Promise<null>;, /** * Sets custom data in string */ setData(data: string): Promise<null>;, /** * Sets custom data in string */ setVerifyConfig(verifyConfig: VerifyConfig): Promise<null>;, /** * Sets parameters of ad request */ setAdParam(adParam: AdParam): Promise<null>;, /** * Video configuration that controls video playback. */ setVideoConfiguration(videoConfiguration: VideoConfiguration): Promise<null>;, /** * Sets custom data in string */ pause(): Promise<null>;, /** * Resumes the ad. */ resume(): Promise<null>;, /** * Destroys the ad. */ destroy(): Promise<null>;, /** * Shows the ad. */ show(): Promise<null>;, /** * Requests ad. */ loadAd(): Promise<null>;, /** * Checks whether ad is successfully loaded */ isLoaded(): Promise<boolean>;, /** * Add listener for the event when ad loads. */ adLoadedListenerAdd(listenerFn: (response: RewardAd) => void): void;, /** * Remove the listener for the event when ad loads. */ adLoadedListenerRemove(): void;, /** * Add listener for the event when fails to load. */ adFailedToLoadListenerAdd(listenerFn: (response: Error) => void): void;, /** * Remove the listener for the event when fails to load. */ adFailedToLoadListenerRemove(): void;, /** * Add listener for the event when ad fails to be displayed. */ adFailedToShowListenerAdd(listenerFn: (response: Error) => void): void;, /** * Remove the listener for the event when ad fails to be displayed. */ adFailedToShowListenerRemove(): void;, /** * Add listener for the event when ad is opened. */ adOpenedListenerAdd(listenerFn: () => void): void;, /** * Remove the listener for the event when ad is opened. */ adOpenedListenerRemove(): void;, /** * Add listener for the event when ad is closed. */ adClosedListenerAdd(listenerFn: () => void): void;, /** * Remove the listener for the event when ad is closed. */ adClosedListenerRemove(): void;, /** * Add listener for the event when a reward is provided. */ adRewardedListenerAdd(listenerFn: (response: Reward) => void): void;, /** * Remove the listener for the event when a reward is provided. */ adRewardedListenerRemove(): void;, /** * Add listener for the event when user leaves the app. */ adLeftAppListenerAdd(listenerFn: () => void): void;, /** * Remove the listener for the event when user leaves the app. */ adLeftAppListenerRemove(): void;, /** * Add listener for the event when ad is completed. */ adCompletedListenerAdd(listenerFn: () => void): void;, /** * Remove the listener for the event when ad is completed. */ adCompletedListenerRemove(): void;, /** * Add listener for the event when ad is started. */ adStartedListenerAdd(listenerFn: () => void): void;, /** * Remove the listener for the event when ad is started. */ adStartedListenerRemove(): void;, /** * Remove all listeners for events of HMSReward */ allListenersRemove(): void;, /** * Reports the bidding success result. */ sendBiddingSuccess(sendBiddingSuccess: Record<string, any>): void;, /** * Reports the bidding failure result. */ sendBiddingFailed(sendBiddingFailed: Record<string, any>): void;, }; /** * HMSSplash module for splash ads */ export const HMSSplash = { /** * Sets ad slot id. */ setAdId(adSlotId: string): Promise<null>;, /** * Sets logo text. */ setLogoText(logoText: string): Promise<null>;, /** * Sets copyright text. */ setCopyrightText(cpyrightText: string): Promise<null>;, /** * Sets screen orientation */ setOrientation(orientation: number): Promise<null>;, /** * Sets default app launch image in portrait mode, * which is displayed before a splash ad is displayed */ setSloganResource(sloganResource: string): Promise<null>;, /** * Sets default app launch image in landscape mode, * which is displayed before a splash ad is displayed. */ setWideSloganResource(wideSloganResource: string): Promise<null>;, /** * Sets app logo. */ setLogoResource(logoResource: string): Promise<null>;, /** * Sets app text resource. */ setMediaNameResource(mediaNameResource: string): Promise<null>;, /** * Sets the audio focus preemption policy for a video splash ad. */ setAudioFocusType(audioFocusType: AudioFocusType): Promise<null>;, /** * Sets parameters of ad request */ setAdParam(adParam: AdParam): Promise<null>;, /** * Obtains the real-time bidding data returned to a publisher app. */ getBiddingInfo(): Promise<BiddingInfo>;, /** * Pauses ad. */ pause(): Promise<null>;, /** * Resumes the ad. */ resume(): Promise<null>;, /** * Destroys the ad. */ destroy(): Promise<null>;, /** * Shows the ad. */ show(): Promise<null>;, /** * Checks whether ad is successfully loaded. */ isLoaded(): Promise<boolean>;, /** * Checks whether a splash ad is being loaded. */ isLoading(): Promise<boolean>;, /** * Add listener for the event when ad loads. */ adLoadedListenerAdd(listenerFn: () => void): void;, /** * Remove the listener for the event when ad loads. */ adLoadedListenerRemove(): void;, /** * Add listener for the event when ad fails to load. */ adFailedToLoadListenerAdd(listenerFn: (response: Error) => void): void;, /** * Remove the listener for the event when ad fails to load. */ adFailedToLoadListenerRemove(): void;, /** * Add listener for the event when ad is dismissed. */ adDismissedListenerAdd(listenerFn: (response: Error) => void): void;, /** * Remove the listener for the event when ad is dismissed. */ adDismissedListenerRemove(): void;, /** * Add listener for the event when ad is shown. */ adShowedListenerAdd(listenerFn: (response: Error) => void): void;, /** * Remove the listener for the event when ad is shown. */ adShowedListenerRemove(): void;, /** * Add listener for the event when ad is clicked. */ adClickListenerAdd(listenerFn: (response: Error) => void): void;, /** * Remove the listener for the event when ad is clicked. */ adClickListenerRemove(): void;, /** * Remove all listeners for events of HMSSplash */ allListenersRemove(): void;, }; /** * Interstitial ad. */ interface InterstitialAd { /** * The ad slot id. */ adId: string; /** * Shows whether ad loading is complete. */ isLoaded: boolean; /** * Shows whether ads are being loaded. */ isLoading: boolean; } /** * HMSInterstitial module for Interstitial ads */ export const HMSInterstitial = { /** * Sets ad slot id. */ setAdId(adSlotId: string): Promise<null>;, /** * Sets parameters of ad request */ setAdParam(adParam: AdParam): Promise<null>;, /** * Video configuration that controls video playback. */ setVideoConfiguration(videoConfiguration: VideoConfiguration): Promise<null>;, /** * Initiates a request to load an ad. */ loadAd(): Promise<null>;, /** * Displays an interstitial ad. */ show(): Promise<null>;, /** * Checks whether ad loading is complete. */ isLoaded(): Promise<boolean>;, /** * Checks whether ad is loading. */ isLoading(): Promise<boolean>;, /** * Add listener for the event when ad fails to load. */ adFailedListenerAdd(listenerFn: (response: Error) => void): void;, /** * Remove the listener for the event when ad fails to load. */ adFailedListenerRemove(): void;, /** * Add listener for the event when ad is closed. */ adClosedListenerAdd(listenerFn: () => void): void;, /** * Remove the listener for the event when ad is closed. */ adClosedListenerRemove(): void;, /** * Add listener for the event when the user leaves the app. */ adLeaveListenerAdd(listenerFn: () => void): void;, /** * Remove the listener for the event the user leaves the app. */ adLeaveListenerRemove(): void;, /** * Add listener for the event when ad is displayed. */ adOpenedListenerAdd(listenerFn: () => void): void;, /** * Remove the listener for the event when ad is displayed. */ adOpenedListenerRemove(): void;, /** * Add listener for the event when ad loads. */ adLoadedListenerAdd(listenerFn: (response: InterstitialAd) => void): void;, /** * Remove the listener for the event when ad loads. */ adLoadedListenerRemove(): void;, /** * Add listener for the event when ad is clicked. */ adClickedListenerAdd(listenerFn: () => void): void;, /** * Remove the listener for the event when ad is clicked. */ adClickedListenerRemove(): void;, /** * Add listener for the event when ad impression is detected. */ adImpressionListenerAdd(listenerFn: () => void): void;, /** * Remove the listener for the event when ad impression is detected. */ adImpressionListenerRemove(): void;, /** * Add listener for the event when ad is completed. */ adCompletedListenerAdd(listenerFn: () => void): void;, /** * Remove the listener for the event when ad is completed. */ adCompletedListenerRemove(): void;, /** * Add listener for the event when ad starts. */ adStartedListenerAdd(listenerFn: () => void): void;, /** * Remove the listener for the event when ad starts. */ adStartedListenerRemove(): void;, /** * Remove all listeners for events of HMSInterstitial */ allListenersRemove(): void;, }; /** * Describes the install referrer information. */ interface ReferrerDetails { /** * Install referrer information. */ installReferrer: string; /** * Obtains channel information. */ installChannel: string; /** * The app installation timestamp, in milliseconds. */ installBeginTimestampMillisecond: number; /** * The app installation timestamp, in seconds. */ installBeginTimestampSeconds: number; /** * The ad click timestamp, in milliseconds. */ referrerClickTimestampMillisecond: number; /** * The ad click timestamp, in seconds. */ referrerClickTimestampSeconds: number; } /** * Install referrer connection response. */ interface InstallReferrerResponse { /** * Response code. */ responseCode: number; /** * Response message. */ responseMessage: string; } /** * HMSInstallReferrer module for install referrer functions */ export const HMSInstallReferrer = { /** * Starts to connect to the install referrer service. The first string * argument should be one of values of [CallMode](#callmode). And the * boolean argument indicates test mode. The last string argument is the * name of the package that the service receives information about. */ startConnection(callMode: CallMode, isTest: boolean): Promise<null>;, /** * Ends the service connection and releases all occupied resources. */ endConnection(): Promise<null>;, /** * Obtains install referrer information. */ getReferrerDetails(installChannel: string): Promise<ReferrerDetails>;, /** * Indicates whether the service connection is ready. */ isReady(): Promise<boolean>;, /** * Add listener for the event when service connection is complete */ serviceConnectedListenerAdd(listenerFn: (response: InstallReferrerResponse) => void): void;, /** * Remove the listener for the event when service connection is complete */ serviceConnectedListenerRemove(): void;, /** * Add listener for the event when service is crashed or killed. */ serviceDisconnectedListenerAdd(listenerFn: () => void): void;, /** * Remove the listener for the event when service is crashed or killed. */ serviceDisconnectedListenerRemove(): void;, /** * Remove all listeners for events of HMSInstallReferrer */ allListenersRemove(): void;, }; /** * React prop defining banner ad sizes. */ interface BannerAdSizeProp { /** * Banner ad sizes. `BannerAdSizes` for possible values. */ bannerAdSize: BannerAdSizes; } /** * Banner information from banner load event. */ interface BannerInfo { /** * Ad slot id. */ adId: string; /** * Shows whether banner is loading. */ isLoading: boolean; /** * BannerAdSize information. */ bannerAdSize: BannerAdSizes; } /** * Ad error. */ interface Error { /** * Error code. */ errorCode: number; /** * Error message. */ errorMessage: string; } /** * Events triggered by the map. */ interface AdEvent<T = {}> extends NativeSyntheticEvent<T> { } /** * Props for <HMSBanner> component. */ interface HMSBannerProps extends ViewProps { /** * The banner ad size. */ bannerAdSize: BannerAdSizeProp; /** * Ad slot id. */ adId: string; /** * Ad request parameter. */ adParam?: AdParam; /** * Listener for the event called when ad loads. */ onAdLoaded?: (event: AdEvent<{}>) => void; /** * Listener for the event called when ad fails to load. */ onAdFailed?: (event: AdEvent<Error>) => void; /** * Listener for the event called when ad is opened. */ onAdOpened?: (event: AdEvent<{}>) => void; /** * Listener for the event called when ad is clicked. */ onAdClicked?: (event: AdEvent<{}>) => void; /** * Listener for the event called when ad is closed. */ onAdClosed?: (event: AdEvent<{}>) => void; /** * Listener for the event called when ad impression is detected. */ onAdImpression?: (event: AdEvent<{}>) => void; /** * Listener for the event called when user leaves the app. */ onAdLeave?: (event: AdEvent<{}>) => void; } /** * React component that shows banner ads. */ export class HMSBanner extends React.Component<HMSBannerProps, any> { /** * Gets information related to HMSBanner component. */ getInfo(): Promise<BannerInfo>; /** * Loads banner. */ loadAd(): void; /** * Sets a rotation interval for banner ads. Input is rotation * interval, in seconds. It should range from 30 to 120. */ setRefresh(interval: number): void; /** * Pauses any additional processing related to ad. */ pause(): void; /** * Resumes ad after the pause() method is called last time. */ resume(): void; /** * Destroys ad. */ destroy(): void; } interface PlayTime { /** * Played duration, in milliseconds. */ playTime: number; } interface WithPercentage { /** * Playback progress, in percentage. */ percentage: number; } interface WithExtra { /** * Additional information. */ extra: number; } interface WithError { /** * Error information. */ error: Error; } /** * Instream ad information. */ interface InstreamAd { /** * Indicates whether ad has been clicked. */ isClicked: boolean; /** * Indicates whether an ad has expired. */ isExpired: boolean; /** * Indicates whether ad is an image ad */ isImageAd: boolean; /** * Indicates whether ad has been displayed. */ isShown: boolean; /** * Indicates whether ad is a video ad */ isVideoAd: boolean; /** * Duration of a roll ad, in milliseconds. */ duration: number; /** * Redirection link to `Why this ad`. */ whyThisAd: string; /** * Text to be displayed on a button. */ callToAction: string; /** * Indicates whether a task is an ad task. */ adSign: string; /** * Ad source. */ adSource: string; /** * Checks whether advertiser information is delivered for the current ad. */ hasAdvertiserInfo: boolean; /** * Obtains the advertiser information. */ advertiserInfo?: AdvertiserInfo[]; /** * Indicates whether ad transparency information is displayed */ isTransparencyOpen: boolean; /** * Obtains the redirection URL of the ad transparency information. */ transparencyTplUrl: string; } interface AdvertiserInfo { /** * Obtains the advertiser information sequence. */ seq: number; /** * Obtains the advertiser information type. */ key: string; /** * Obtains the advertiser information. */ value: string; } interface InstreamInfo { /** * Indicates whether ad is being played. */ isPlaying: boolean; /** * Indicates whether ad is loading. */ isLoading: boolean; /** * Ad slot id */ adId: string; /** * Maximum total duration of roll ads, in seconds */ totalDuration: number; /** * Maximum number of roll ads. */ maxCount: number; /** * List of roll ads. */ instreamAds: InstreamAd[]; } /** * Props for <HMSInstream> component. */ interface HMSInstreamProps extends ViewProps { /** * Ad slot id. */ adId: string; /** * Maximum number of roll ads. */ maxCount: number; /** * Maximum total duration of roll ads, in seconds */ totalDuration: number; /** * Ad request parameter. */ adParam?: AdParam; /** * Listener for the event called when ad is muted */ onMute?: (event: AdEvent<{}>) => void; /** * Listener for the event called when ad is unmuted */ onUnmute?: (event: AdEvent<{}>) => void; /** * Listener for the event called when roll ads are successfully loaded. */ onAdLoaded?: (event: AdEvent<{}>) => void; /** * Listener for the event called when roll ads fail to be loaded. */ onAdFailed?: (event: AdEvent<Error>) => void; /** * Listener for the event called when a roll ad is switched to another. */ onSegmentMediaChange?: (event: AdEvent<InstreamAd>) => void; /** * Listener for the event called during the playback of a roll ad. */ onMediaProgress?: (event: AdEvent<PlayTime | WithPercentage>) => void; /** * Listener for the event called when the playback of a roll ad starts. */ onMediaStart?: (event: AdEvent<PlayTime>) => void; /** * Listener for the event called when the playback of a roll ad is paused. */ onMediaPause?: (event: AdEvent<PlayTime>) => void; /** * Listener for the event called when the playback of a roll ad stops. */ onMediaStop?: (event: AdEvent<PlayTime>) => void; /** * Listener for the event called when the playback of a roll ad * is complete. */ onMediaCompletion?: (event: AdEvent<PlayTime>) => void; /** * Listener for the event called when a roll ad fails to be played. */ onMediaError?: (event: AdEvent<PlayTime | WithExtra | WithError>) => void; /** * Listener for the event called when ad is clicked. */ onClick?: (event: AdEvent<{}>) => void; } /** * React component that shows instream ads. */ export class HMSInstream extends React.Component<HMSInstreamProps, any> { /** * Gets information related to HMSInstream component. */ getInfo(): Promise<InstreamInfo>; /** * Loads instream ad. */ loadAd(): void; /** * Sets loaded ads to view in order to show them */ register(): void; /** * Mutes ad. */ mute(): void; /** * Unmutes ad. */ unmute(): void; /** * Stops ad. */ stop(): void; /** * Pauses ad. */ pause(): void; /** * Plays ad. */ play(): void; /** * Destroys ad. */ destroy(): void; /** * Displays the advertiser information dialog box. */ showAdvertiserInfoDialog(showWhyThisAd: boolean): void; /** * Hides the advertiser information dialog box. */ hideAdvertiserInfoDialog(): void; /** * Shows the ad transparency dialog box. */ showTransparencyDialog(location?: number[]): void; /** * Hides the ad transparency dialog box. */ hideTransparencyDialog(): void; } /** * React prop defining media type of the ad. */ interface DisplayFormProp { /** * Error code. */ mediaType: NativeMediaTypes; /** * Ad slot id. */ adId: string; } /** * Ad size. */ interface AdSize { /** * Ad height, in dp. */ height: number; /** * Ad width, in dp. */ width: number; } /** * Video configuration used to control video playback. */ interface VideoConfiguration { /** * The video playback scenario where the audio focus needs to be obtained. */ audioFocusType?: AudioFocusType; /** * The setting for using custom video control. */ isCustomizeOperateRequested?: boolean; /** * Setting indicating whether a video ad can be displayed * in full-screen mode upon a click. */ isClickToFullScreenRequested?: boolean; /** * The setting for muting video when it starts. */ isStartMuted?: boolean; /** * Obtains the type of the network allowed for automatic video playback. */ autoPlayNetWork?: AutoPlayNetType; } /** * Native ad configuration. */ interface NativeAdConfiguration { /** * Ad size. */ adSize?: AdSize; /** * Position of an ad choice icon. */ choicesPosition?: ChoicesPosition; /** * Direction of an ad image. */ mediaDirection?: Direction; /** * Aspect ratio of an ad image. */ mediaAspect?: number; /** * Video Configuration. */ videoConfiguration?: VideoConfiguration; /** * The setting for requesting multiple ad images. */ isRequestMultiImages?: boolean; /** * The setting for enabling the SDK to download native ad images. */ isReturnUrlsForImages?: boolean; } /** * Styles of the components in native ads. */ interface AdTextStyle { /** * Font size. */ fontSize?: number; /** * Color. */ color?: string; /** * Background color. */ backgroundColor?: string; /** * Visibility. */ visibility?: boolean; } /** * View options for components in Native ads. */ interface ViewOptionsProp { /** * The option for showing media content. */ showMediaContent?: boolean; /** * The image scale type. */ mediaImageScaleType?: ScaleType; /** * The style of ad source. */ adSourceTextStyle?: AdTextStyle; /** * The style of ad flag. */ adFlagTextStyle?: AdTextStyle; /** * The style of ad title. */ titleTextStyle?: AdTextStyle; /** * The style of ad description. */ descriptionTextStyle?: AdTextStyle; /** * The style of ad call-to-action button. */ callToActionStyle?: AdTextStyle; } interface DislikeAdReason { /** * The reason why a user dislikes an ad. */ description: string; } /** * Video controller, which implements video control such as * playing, pausing, and muting a video. */ interface VideoOperator { /** * The video aspect ratio. */ aspectRatio: number; /** * Shows whether ad content contains a video. */ hasVideo: boolean; /** * Shows whether a custom video control is used for a video ad. */ isCustomizeOperateEnabled: boolean; /** * Shows whether click to full screen option enabled for a video ad. */ isClickToFullScreenEnabled: boolean; } /** * Native ad information. */ interface NativeAd { /** * Indicates whether a task is an ad task. */ adSign: string; /** * Ad source. */ adSource: string; /** * Ad description. */ description: string; /** * The text to be displayed on a button, for example, * View Details or Install. */ callToAction: string; /** * Ad title. */ title: string; /** * The choices of not displaying the current ad. */ dislikeAdReasons: DislikeAdReason[]; /** * Redirection link to Why this ad. */ whyThisAd: string; /** * Unique ID of an ad. */ uniqueId: string; /** * Ad creative type. */ creativeType: string; /** * Video operator used for the ad. */ videoOperator: VideoOperator | Muted; /** * Shows whether custom tap gestures are enabled. */ isCustomClickAllowed: boolean; /** * Shows whether custom ad closing is enabled. */ isCustomDislikeThisAdEnabled: boolean; /** * Checks whether advertiser information is delivered for the current ad. */ hasAdvertiserInfo: boolean; /** * Obtains the advertiser information. */ advertiserInfo?: AdvertiserInfo[]; /** * Indicates whether ad transparency information is displayed */ isTransparencyOpen: boolean; /** * Obtains the redirection URL of the ad transparency information. */ transparencyTplUrl: string; /** * Obtains the app name. */ appName: string; /** * Obtains the app operator information. */ developerName: string; /** * Obtains the app version number. */ versionName: string; /** * Obtains the ad purpose. */ interactionType: number; /** * Obtains the name of the promoted entity. */ promoteName: string; /** * Obtains the promotion subtype. */ promoteType: number; } interface NativeAdLoader { /** * Shows whether ads are being loaded. */ isLoading: boolean; } /** * Information related to native ad returned when ad is loaded. */ interface NativeInfo { /** * Native ad information. */ nativeAd: NativeAd; /** * Native ad configuration information. */ nativeAdConfiguration: NativeAdConfiguration; /** * Native ad loader information. */ nativeAdLoader: NativeAdLoader; } interface Muted { /** * Shows whether a video is muted. */ isMuted: boolean; } /** * Props for <HMSNative> component. */ interface HMSNativeProps extends ViewProps { /** * The object parameter that has ad slot id and media type information. */ displayForm: DisplayFormProp; /** * Ad request parameter. */ adParam?: AdParam; /** * Native ad configuration parameter. */ nativeConfig?: NativeAdConfiguration; /** * View options parameter. */ viewOptions?: ViewOptionsProp; /** * Listener for the event called when ad loads. */ onNativeAdLoaded?: (event: AdEvent<{}>) => void; /** * Listener for the event called when ad is disliked. */ onAdDisliked?: (event: AdEvent<{}>) => void; /** * Listener for the event called when ad fails to load. */ onAdFailed?: (event: AdEvent<Error>) => void; /** * Listener for the event called when ad impression is detected. */ onAdImpression?: (event: AdEvent<{}>) => void; /** * Listener for the event called when ad video starts playing. */ onVideoStart?: (event: AdEvent<{}>) => void; /** * Listener for the event called when ad video plays. */ onVideoPlay?: (event: AdEvent<{}>) => void; /** * Listener for the event called when ad video ends. */ onVideoEnd?: (event: AdEvent<{}>) => void; /** * Listener for the event called when ad video pauses. */ onVideoPause?: (event: AdEvent<{}>) => void; /** * Listener for the event called when the mute status of a video changes. */ onVideoMute?: (event: AdEvent<Muted>) => void; } /** * React component that shows native ads. */ export class HMSNative extends React.Component<HMSNativeProps, any> { /** * Gets information related to HMSNative component. */ getInfo(): Promise<NativeInfo>; /** * Loads native ad. */ loadAd(): void; /** * Dislikes ad with description. */ dislikeAd(reason: string): void; /** * Destroys ad. */ destroy(): void; /** * Goes to the page explaining why an ad is displayed. */ gotoWhyThisAdPage(): void; /** * Enables custom tap gestures. */ setAllowCustomClick(): void; /** * Reports a custom tap gesture. */ recordClickEvent(): void; /** * Reports an ad impression. */ recordImpressionEvent(data: object): void; /** * Displays the advertiser information dialog box. */ showAdvertiserInfoDialog(showWhyThisAd: boolean): void; /** * Hides the advertiser information dialog box. */ hideAdvertiserInfoDialog(): void; /** * Shows the privacy policy of the app. */ showPrivacyPolicy(): void; /** * Shows the app permission list. */ showPermissionPage(): void; /** * Shows the introduction page of the promoted app. */ showAppDetailPage(): void; /** * Reports the bidding success result. */ sendBiddingSuccess(sendBiddingSuccess: Record<string, any>): void; /** * Reports the bidding failure result. */ sendBiddingFailed(sendBiddingFailed: Record<string, any>): void; } interface VASTInfo { /** * VAST ad player informations. */ adPlayerConfigs: AdPlayerConfigs; /** * VAST ad Slot informations. */ linearAdSlot: LinearAdSlot; /** * VAST ad data informations. */ adsData: AdsData; /** * VAST ad video controller informations. */ videoControllerInfo: VideoControllerInfo; } interface AdPlayerConfigs { /** * Obtains player configurations. */ playerConfigs: PlayerConfig; /** * Checks whether a linear ad is shown. */ isLinearAdShown: boolean; /** * Checks whether a linear ad is being played. */ isLinearPlaying: boolean; /** * Checks whether a Nonlinear ad is being played. */ isNonlinearPlaying: boolean; /** * Called when a user clicks the return button. */ onBackPressed: boolean; } interface PlayerConfig { /** * Checks whether the landscape mode is enabled. */ enableRotation?: boolean; /** * Checks whether a linear ad is skippable. */ skipLinearAd?: boolean; /** * Checks whether the player adapts to a notched screen. */ isEnableCutout?: boolean; /** * Checks whether the portrait mode is enabled. */ isEnablePortrait?: boolean; /** * Checks whether the player is forcibly muted. */ isForceMute?: boolean; /** * Checks whether the industry icon is displayed. */ isIndustryIconShow?: boolean; } interface LinearAdSlot { /** * Obtains the ad creative matching strategy. */ creativeMatchStrategy: CreativeMatchStrategy; /** * Obtains the ad unit height.