diff --git a/android/src/main/java/com/brentvatne/common/react/VideoEventEmitter.java b/android/src/main/java/com/brentvatne/common/react/VideoEventEmitter.java index 78de4f1a51..ac6cad230e 100644 --- a/android/src/main/java/com/brentvatne/common/react/VideoEventEmitter.java +++ b/android/src/main/java/com/brentvatne/common/react/VideoEventEmitter.java @@ -427,7 +427,10 @@ public void receiveAdEvent(String event, Map adData) { } public void receiveAdEvent(String event) { - this.receiveAdEvent(event, Map.of()); + WritableMap map = Arguments.createMap(); + map.putString("event", event); + + receiveEvent(EVENT_ON_RECEIVE_AD_EVENT, map); } private void receiveEvent(@VideoEvents String type, WritableMap event) { diff --git a/docs/pages/component/events.md b/docs/pages/component/events.md index aa598c4d53..f13fb265ae 100644 --- a/docs/pages/component/events.md +++ b/docs/pages/component/events.md @@ -365,7 +365,7 @@ Enum `AdEvent` possible values for [Android](https://developers.google.com/inter | `AD_PROGRESS` | Android | Fires when the ad's current time value changes. Calling getAdData() on this event will return an AdProgressData object. | | `ALL_ADS_COMPLETED` | Android, iOS | Fires when the ads manager is done playing all the valid ads in the ads response, or when the response doesn't return any valid ads. | | `CLICK` | Android, iOS | Fires when the ad is clicked. | -| `COMPLETE` | Android, iOS | Fires when the ad completes playing. | +| `COMPLETED` | Android, iOS | Fires when the ad completes playing. | | `CONTENT_PAUSE_REQUESTED` | Android | Fires when content should be paused. This usually happens right before an ad is about to cover the content. | | `CONTENT_RESUME_REQUESTED` | Android | Fires when content should be resumed. This usually happens when an ad finishes or collapses. | | `CUEPOINTS_CHANGED` | iOS | Cuepoints changed for VOD stream (only used for dynamic ad insertion). | @@ -395,14 +395,18 @@ Enum `AdEvent` possible values for [Android](https://developers.google.com/inter Payload: -| Property | Type | Description | -|----------|---------|-----------------------| -| event | AdEvent | The ad event received | +| Property | Type | Description | +|----------|-------------------------------------|-----------------------| +| event | AdEvent | The ad event received | +| adData | Record \| undefined | The ad event data | Example: -```javascript +```json { - "event": "LOADED" + "adData": { + "key": "value" + }, + "event": "LOG" } ``` @@ -540,4 +544,4 @@ Example: } ``` -Platforms: Android, iOS \ No newline at end of file +Platforms: Android, iOS diff --git a/ios/Video/Features/RCTIMAAdsManager.swift b/ios/Video/Features/RCTIMAAdsManager.swift index 4cb1ef512e..3096e50741 100644 --- a/ios/Video/Features/RCTIMAAdsManager.swift +++ b/ios/Video/Features/RCTIMAAdsManager.swift @@ -98,11 +98,18 @@ class RCTIMAAdsManager: NSObject, IMAAdsLoaderDelegate, IMAAdsManagerDelegate, I if _video.onReceiveAdEvent != nil { let type = convertEventToString(event: event.type) - _video.onReceiveAdEvent?([ - "event": type, - "adData": event.adData ?? [String](), - "target": _video.reactTag! - ]); + if (event.adData != nil) { + _video.onReceiveAdEvent?([ + "event": type, + "adData": event.adData ?? [String](), + "target": _video.reactTag! + ]); + } else { + _video.onReceiveAdEvent?([ + "event": type, + "target": _video.reactTag! + ]); + } } } diff --git a/src/VideoNativeComponent.ts b/src/VideoNativeComponent.ts index 2d0a9a309f..7a8f145290 100644 --- a/src/VideoNativeComponent.ts +++ b/src/VideoNativeComponent.ts @@ -237,7 +237,7 @@ export type OnPictureInPictureStatusChangedData = Readonly<{ }>; export type OnReceiveAdEventData = Readonly<{ - adData: Record; + adData?: Record; event: AdEvent; }>; diff --git a/src/types/events.ts b/src/types/events.ts index cae73f77fa..997c0cf8fc 100644 --- a/src/types/events.ts +++ b/src/types/events.ts @@ -115,7 +115,7 @@ export type OnPictureInPictureStatusChangedData = Readonly<{ }>; export type OnReceiveAdEventData = Readonly<{ - adData: Record; + adData?: Record; event: AdEvent; }>;