Class AdUnit
-
- All Implemented Interfaces:
-
com.inmobi.ads.containers.AdPodHandler,com.inmobi.ads.containers.listeners.UserLeftApplicationListener,com.inmobi.ads.controllers.BlobProvider,com.inmobi.ads.core.WinLossNotifier,com.inmobi.ads.utils.TimeOutInformer
public abstract class AdUnit extends RenderViewEventListener implements BlobProvider, TimeOutInformer, AdPodHandler, WinLossNotifier
The ad lifecycle controller.
Note** This class is not thread-safe. All methods must be invoked on the UI thread.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public abstract classAdUnit.AdUnitEventListenerpublic @interfaceAdUnit.AdStatepublic classAdUnit.OmidKeyspublic classAdUnit.Companion
-
Field Summary
-
Constructor Summary
Constructors Constructor Description AdUnit(Context context, AdPlacement adPlacement, AdUnit.AdUnitEventListener adUnitEventListener)
-
Method Summary
-
Methods inherited from class com.inmobi.ads.containers.RenderViewEventListener
onAdScreenDismissed, onAdScreenDisplayed, onAudioMuteInteraction, onAudioStatusChanged, onRenderViewExpandFullscreen -
Methods inherited from class com.inmobi.ads.containers.AdPodHandler
closeAll, loadPodAd -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
Constructor Detail
-
AdUnit
AdUnit(Context context, AdPlacement adPlacement, AdUnit.AdUnitEventListener adUnitEventListener)
-
-
Method Detail
-
getAdConfig
final AdConfig getAdConfig()
-
setAdConfig
final Unit setAdConfig(AdConfig adConfig)
-
getMUiHandler
final Handler getMUiHandler()
-
setMUiHandler
final Unit setMUiHandler(Handler mUiHandler)
-
isDestroyed
final Boolean isDestroyed()
-
getPlacement
final AdPlacement getPlacement()
-
getAdResponse
final AdResponse getAdResponse()
-
setAdResponse
final Unit setAdResponse(AdResponse adResponse)
-
getMCurrentLoadingIndex
final Integer getMCurrentLoadingIndex()
-
setMCurrentLoadingIndex
final Unit setMCurrentLoadingIndex(Integer mCurrentLoadingIndex)
-
getMCurrentRenderingIndex
final Integer getMCurrentRenderingIndex()
-
setMCurrentRenderingIndex
final Unit setMCurrentRenderingIndex(Integer mCurrentRenderingIndex)
-
getMTimeSinceShowPodTimeStamp
final Long getMTimeSinceShowPodTimeStamp()
-
setMTimeSinceShowPodTimeStamp
final Unit setMTimeSinceShowPodTimeStamp(Long mTimeSinceShowPodTimeStamp)
-
getMRenderableAdIndexes
final TreeSet<Integer> getMRenderableAdIndexes()
-
setMRenderableAdIndexes
final Unit setMRenderableAdIndexes(TreeSet<Integer> mRenderableAdIndexes)
-
isPodAdSet
final Boolean isPodAdSet()
-
getAdUnitTelemetry
final AdUnitTelemetryHelper getAdUnitTelemetry()
-
getContext
final Context getContext()
-
getMarkupType
final String getMarkupType()
-
getAdSetId
final String getAdSetId()
-
getAdUnitEventListener
final AdUnit.AdUnitEventListener getAdUnitEventListener()
-
setAdUnitEventListener
final Unit setAdUnitEventListener(AdUnit.AdUnitEventListener adUnitEventListener)
-
getAdMarkupContainer
final AdContainer getAdMarkupContainer()
-
getHtmlAdContainer
RenderView getHtmlAdContainer()
-
getAdObject
final Ad getAdObject()
-
getPublisherSuppliedExtras
final Map<String, String> getPublisherSuppliedExtras()
-
isBlockingStateForLoadWithResponse
final Boolean isBlockingStateForLoadWithResponse()
-
isApplicationMutedByPub
final Boolean isApplicationMutedByPub()
-
initAdUnit
final Unit initAdUnit(Context context, AdPlacement adPlacement, AdUnit.AdUnitEventListener adUnitEventListener)
-
setContext
Unit setContext(Context context)
-
makeUnitActive
final Unit makeUnitActive()
-
setInMobiLogger
final Unit setInMobiLogger(InMobiLogger logger)
-
hasAdExpired
final Boolean hasAdExpired()
-
initializeHtmlAdContainer
@UiThread() final Unit initializeHtmlAdContainer(Integer index)
-
isImmersive
final Boolean isImmersive(Ad adObject)
-
fireImmersiveNotSupported
final Unit fireImmersiveNotSupported(Boolean config, Boolean device, Boolean ad)
-
computeReasonAndErrorCode
final Pair<String, Short> computeReasonAndErrorCode(Boolean config, Boolean device, Boolean ad)
-
onFetchSuccess
final Unit onFetchSuccess(AdUnit.AdUnitEventListener listener)
-
onLoadSuccess
final Unit onLoadSuccess(AdUnit.AdUnitEventListener listener)
-
onAdDisplayed
final Unit onAdDisplayed(AdUnit.AdUnitEventListener listener)
-
onDidParseAfterFetch
@UiThread() Unit onDidParseAfterFetch()
-
onAdFetchFailed
@UiThread() final Unit onAdFetchFailed(InMobiAdRequestStatus requestStatus, Short errorCode)
-
handleAdLoadFailure
@UiThread() final Unit handleAdLoadFailure(InMobiAdRequestStatus requestStatus, Boolean shouldUpdateState, Short errorCode)
-
setFailedState
final Unit setFailedState()
-
handleAdShowFailure
@UiThread() final Unit handleAdShowFailure(Boolean shouldUpdateState, Short errorCode)
-
onUnloadCalled
Unit onUnloadCalled(RenderView renderView)
-
onAdUnloadedAfterLoadSuccess
Unit onAdUnloadedAfterLoadSuccess(RenderView renderView)
-
onAdUnloadedAfterShowSuccess
Unit onAdUnloadedAfterShowSuccess(RenderView renderView)
-
handleAdFetchFailure
@UiThread() final Unit handleAdFetchFailure(InMobiAdRequestStatus requestStatus, Boolean shouldUpdateState, Short errorCode)
-
startLoadingHTMLAd
@UiThread() final Unit startLoadingHTMLAd()
-
setMonetizationContext
Unit setMonetizationContext(String monetizationContext)
-
setPublisherSuppliedExtras
final Unit setPublisherSuppliedExtras(Map<String, String> params)
-
load
@UiThread() Unit load()
Request for an ad to be loaded. Note** This method must be called on the UI thread.
-
handleAdFetchFailureException
final Unit handleAdFetchFailureException()
-
onLoadAdMarkupFailed
final Unit onLoadAdMarkupFailed(WeakReference<AdUnit.AdUnitEventListener> listenerWeakReference, Short errorCode, InMobiAdRequestStatus status)
-
handleAdScreenDisplayed
@UiThread() Unit handleAdScreenDisplayed(AdUnit.AdUnitEventListener listener)
-
handleAdScreenDismissed
@UiThread() Unit handleAdScreenDismissed(AdUnit.AdUnitEventListener listener)
-
fireAdServedBeacon
final Unit fireAdServedBeacon()
-
prepareAdRequest
@WorkerThread() final NetworkRequest.PostRequest prepareAdRequest(Map<String, String> extraInfo)
-
resetContainersForNextAd
@UiThread()@CallSuper() Unit resetContainersForNextAd()
-
onRenderViewSignaledAdReady
Unit onRenderViewSignaledAdReady(RenderView renderView)
-
onRenderViewSignaledAdFailed
Unit onRenderViewSignaledAdFailed(RenderView renderView, String errorCode)
-
onRenderViewLoadedAd
Unit onRenderViewLoadedAd(RenderView renderView)
-
onRenderViewVisible
Unit onRenderViewVisible(RenderView renderView)
-
setPodAdContext
@WorkerThread() Unit setPodAdContext(String podAdContext)
-
getPodAdContext
@WorkerThread() String getPodAdContext()
-
onAdScreenDisplayFailed
Unit onAdScreenDisplayFailed()
-
onAdRewardActionCompleted
Unit ,com.inmobi.ads.containers.RenderViewTelemetryManager)>onAdRewardActionCompleted(<Error class: unknown class><Object, Object> rewards, RenderViewTelemetryManager telemetry)
-
onAdInteraction
Unit )>onAdInteraction(<Error class: unknown class><Object, Object> params)
-
onImpressionFiredFromTemplate
Unit onImpressionFiredFromTemplate(TelemetryOnAdImpression telemetryOnAdImpression)
-
onAdAttachedToWindow
Unit onAdAttachedToWindow(RenderView renderView)
-
onUserLeaveApplication
Unit onUserLeaveApplication()
-
submitAdLoadSuccessfulEvent
final Unit submitAdLoadSuccessfulEvent()
-
submitRenderSuccessEvent
final Unit submitRenderSuccessEvent()
-
submitAdLoadFailedEvent
final Unit submitAdLoadFailedEvent(Short errorCode)
-
submitAdLoadCalled
final Unit submitAdLoadCalled()
-
submitAdParseSuccess
final Unit submitAdParseSuccess()
-
submitAdLoadDroppedAtSDK
final Unit submitAdLoadDroppedAtSDK(Short errorCode)
-
submitAdShowCalled
final Unit submitAdShowCalled()
-
submitAdShowSuccess
final Unit submitAdShowSuccess()
-
submitAdShowFailed
final Unit submitAdShowFailed(Short errorCode)
-
onRenderViewRequestedAction
Unit onRenderViewRequestedAction(String eventType, Map<String, Object> kv)
-
saveBlob
Unit saveBlob(String blob, String impressionId)
Call this method to save a blob for a markup. While the time of writing this code this method is only called by RenderView in case of Interactive to save vast for a markup. This Vast can be reused if the Ad was not shown in current session. Calling this method many times will override previous stored values.
-
getBlob
Unit getBlob(String jsCallbackNamespace, String callback, BlobReceiver receiver, String impressionId)
Call this method to get a blob which was saved calling BlobProvider.saveBlob. Caller of this method will be notified using {@param receiver}. Calling this method will always give latest value written by BlobProvider.saveBlob.
-
signalSuccess
Unit signalSuccess()
-
signalAvailabilityChange
Unit signalAvailabilityChange()
-
shouldBlockRenderingAd
final Boolean shouldBlockRenderingAd()
-
getCurrentRenderingPodAdIndex
@WorkerThread() Integer getCurrentRenderingPodAdIndex(RenderView renderView)
-
showPodAdAtIndex
@WorkerThread() Unit showPodAdAtIndex(Integer index, RenderView renderView, Context context)
context: context of the current Activity to open next Ad in the same activity
-
closeCurrentPodAd
Unit closeCurrentPodAd(RenderView renderView, Context context)
context: context of the current Activity to open next Ad in the same activity
-
hasNextAdInAdPod
@WorkerThread() Boolean hasNextAdInAdPod(RenderView renderView)
Returns true if there is next Ad available in the renderable indices of AdPods else false
-
timeSincePodShow
@WorkerThread() Long timeSincePodShow()
-
getShowTimeStamp
@WorkerThread() Long getShowTimeStamp()
-
getRenderableAdIndexes
@WorkerThread() JSONArray getRenderableAdIndexes()
-
startTimer
@UiThread() final Boolean startTimer(Byte timeOutScenario)
-
cancelTimer
@UiThread() final Unit cancelTimer(Byte timeOutScenario)
-
releaseTrackingOnAbandon
@UiThread() final Unit releaseTrackingOnAbandon()
DI-19121: releases impression/visibility tracking (finishing the OM-SDK AdSession) on ALL html containers of this unit - for pod ads every pod item has its own RenderView and own OMID session, and an abandon mid-pod leaves the current AND pending containers live, so releasing only the current adMarkupContainer would strand the rest. stopTrackingForImpression is idempotent (session/tracker teardown is null-guarded).
-
wouldLeakOnAbandon
final Boolean wouldLeakOnAbandon()
DI-19121: whether abandoning this unit RIGHT NOW would leak - gates the detach telemetry (both release and observe modes) so already-torn-down ads are not counted. This is the union of all known UNBOUNDED abandon GC roots; today that is exactly one condition: an unfinished OM-SDK AdSession (native ContentObserver -> active-session list -> AdSessionContext.webView pins the WebView for the process lifetime). Everything else audited is either structurally fixed (VisibilityTracker coroutine: WeakReference + Job cancel), already stopped on detach (exposure/audio trackers, refresh messages, lifecycle callbacks), or GC-bounded (undestroyed WebView finalizer). If a new unbounded root class ever appears, OR it in here - the telemetry contract is "one event = one WebView that would have leaked".
-
submitBannerDetachEvent
final Unit submitBannerDetachEvent(String eventType, Long delayMillis)
-
destroyAllContainer
final Unit destroyAllContainer()
-
setWatermark
final Unit setWatermark(WatermarkData watermarkData)
-
destroyContainer
@UiThread() final Unit destroyContainer(Integer index, Boolean shouldStopLogging)
-
fireAdPodShowResult
final Unit fireAdPodShowResult(Integer index, Boolean success)
-
resetCurrentRenderingIndex
final Unit resetCurrentRenderingIndex(Integer index)
-
fireClickTracker
Unit fireClickTracker(RenderView renderView)
-
fireLandingPageTracker
Unit fireLandingPageTracker(RenderView renderView, String trackerName, Map<String, String> macros)
-
fireImpressionTracker
Unit fireImpressionTracker(RenderView renderView)
-
onImraidLog
Unit onImraidLog(String log)
-
onRenderProcessGone
Unit onRenderProcessGone(RenderView renderView, Boolean didCrash)
-
setContainer
final Unit setContainer(RenderView renderView, Integer index)
-
notifyWin
String notifyWin(Double minBidToWin)
Notify that the bid for this ad was won. Delegates to WinLossBeaconHandler.
- Parameters:
minBidToWin- The minimum bid amount required to win the auction- Returns:
An error message string if the notification failed, null if successful
-
notifyLoss
String notifyLoss(Integer lossReason, Double auctionPrice)
Notify that the bid for this ad was lost. Delegates to WinLossBeaconHandler.
- Parameters:
lossReason- The reason code for losing the auctionauctionPrice- The price of the winning bid in the auction- Returns:
An error message string if the notification failed, null if successful
-
-
-
-