| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569 |
- //
- // ChartboostDelegate.h
- // Chartboost
- //
- // Copyright 2018 Chartboost. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- @class UIView;
- /*!
- @typedef NS_ENUM (NSUInteger, CBLogLevel)
-
- @abstract
- Set logging level. Default is OFF
- */
- typedef NS_ENUM(NSUInteger, CBLoggingLevel) {
- /*! Logging Off. */
- CBLoggingLevelOff,
- /*! Verbose. */
- CBLoggingLevelVerbose,
- /*! Info. */
- CBLoggingLevelInfo,
- /*! Warning. */
- CBLoggingLevelWarning,
- /*! Error. */
- CBLoggingLevelError,
- };
- /*!
- @typedef NS_ENUM (NSUInteger, CBFramework)
-
- @abstract
- Used with setFramework:(CBFramework)framework calls to set suffix for
- wrapper libraries like Unity or Corona.
- */
- typedef NS_ENUM(NSUInteger, CBFramework) {
- /*! Unity. */
- CBFrameworkUnity,
- /*! Corona. */
- CBFrameworkCorona,
- /*! Adobe AIR. */
- CBFrameworkAIR,
- /*! GameSalad. */
- CBFrameworkGameSalad,
- /*! Cordova. */
- CBFrameworkCordova,
- /*! CocoonJS. */
- CBFrameworkCocoonJS,
- /*! Cocos2d-x. */
- CBFrameworkCocos2dx,
- /*! Prime31Unreal. */
- CBFrameworkPrime31Unreal,
- /*! Weeby. */
- CBFrameworkWeeby,
- /*! Unknown. Other */
- CBFrameworkOther
- };
- /*!
- @typedef NS_ENUM (NSUInteger, CBMediation)
-
- @abstract
- Used with setMediation:(CBMediation)library calls to set mediation library name
- partners. If you don't see your library here, contact support.
- */
- typedef NS_ENUM(NSUInteger, CBMediation) {
- /*! Unknown. Other */
- CBMediationOther,
- /*! AdMarvel */
- CBMediationAdMarvel,
- /*! Fuse */
- CBMediationFuse,
- /*! Fyber */
- CBMediationFyber,
- /*! HeyZap */
- CBMediationHeyZap,
- /*! MoPub */
- CBMediationMoPub,
- /*! Supersonic */
- CBMediationSupersonic,
- /*! AdMob */
- CBMediationAdMob,
- /*! HyprMX */
- CBMediationHyprMX,
- /*! AerServ */
- CBMediationAerServ
- };
- /*!
- @typedef NS_ENUM (NSUInteger, CBLoadError)
-
- @abstract
- Returned to ChartboostDelegate methods to notify of Chartboost SDK errors.
- */
- typedef NS_ENUM(NSUInteger, CBLoadError) {
- /*! Unknown internal error. */
- CBLoadErrorInternal = 0,
- /*! Network is currently unavailable. */
- CBLoadErrorInternetUnavailable = 1,
- /*! Too many requests are pending for that location. */
- CBLoadErrorTooManyConnections = 2,
- /*! Interstitial loaded with wrong orientation. */
- CBLoadErrorWrongOrientation = 3,
- /*! Interstitial disabled, first session. */
- CBLoadErrorFirstSessionInterstitialsDisabled = 4,
- /*! Network request failed. */
- CBLoadErrorNetworkFailure = 5,
- /*! No ad received. */
- CBLoadErrorNoAdFound = 6,
- /*! Session not started. */
- CBLoadErrorSessionNotStarted = 7,
- /*! There is an impression already visible.*/
- CBLoadErrorImpressionAlreadyVisible = 8,
- /*! User manually cancelled the impression. */
- CBLoadErrorUserCancellation = 10,
- /*! No location detected. */
- CBLoadErrorNoLocationFound = 11,
- /*! Error downloading asset. */
- CBLoadErrorAssetDownloadFailure = 16,
- /*! Video Prefetching is not finished */
- CBLoadErrorPrefetchingIncomplete = 21,
- /*! Error Originating from the JS side of a Web View */
- CBLoadErrorWebViewScriptError = 22,
- /*! Network is unavailable while attempting to show. */
- CBLoadErrorInternetUnavailableAtShow = 25
- };
- /*!
- @typedef NS_ENUM (NSUInteger, CBClickError)
-
- @abstract
- Returned to ChartboostDelegate methods to notify of Chartboost SDK errors.
- */
- typedef NS_ENUM(NSUInteger, CBClickError) {
- /*! Invalid URI. */
- CBClickErrorUriInvalid,
- /*! The device does not know how to open the protocol of the URI */
- CBClickErrorUriUnrecognized,
- /*! User failed to pass the age gate. */
- CBClickErrorAgeGateFailure,
- /*! Unknown internal error */
- CBClickErrorInternal,
- };
- /*!
- @typedef NS_ENUM (NSUInteger, CBStatusBarBehavior)
-
- @abstract
- Used with setStatusBarBehavior:(CBStatusBarBehavior)statusBarBehavior calls to set how fullscreen ads should
- behave with regards to the status bar.
- */
- typedef NS_ENUM(NSUInteger, CBStatusBarBehavior) {
- /*! Ignore status bar altogether; fullscreen ads will use the space of the status bar. */
- CBStatusBarBehaviorIgnore,
- /*! Respect the status bar partially; fullscreen ads will use the space of the status bar but any user interactive buttons will not. */
- CBStatusBarBehaviorRespectButtons,
- /*! Respect the status bar fully; fullscreen ads will not use the status bar space. */
- CBStatusBarBehaviorRespect
- };
- /*!
- @typedef NS_ENUM (NSUInteger, CBPIDataUseConsent)
-
- @abstract
- GDPR compliance settings:
- */
- typedef NS_ENUM(NSInteger, CBPIDataUseConsent) {
- /*! Publisher hasn't implemented functionality or the user has the option to not answer. */
- Unknown = -1,
- /*! User does not consent to targeting (Contextual ads). */
- NoBehavioral = 0,
- /*! User consents (Behavioral and Contextual Ads). */
- YesBehavioral = 1
- };
- /*!
- @typedef CBLocation
-
- @abstract
- Defines standard locations to describe where Chartboost SDK features appear in game.
-
- @discussion Standard locations used to describe where Chartboost features show up in your game
- For best performance, it is highly recommended to use standard locations.
-
- Benefits include:
- - Higher eCPMs.
- - Control of ad targeting and frequency.
- - Better reporting.
- */
- typedef NSString * const CBLocation;
- /*! "Startup" - Initial startup of game. */
- FOUNDATION_EXPORT CBLocation const CBLocationStartup;
- /*! "Home Screen" - Home screen the player first sees. */
- FOUNDATION_EXPORT CBLocation const CBLocationHomeScreen;
- /*! "Main Menu" - Menu that provides game options. */
- FOUNDATION_EXPORT CBLocation const CBLocationMainMenu;
- /*! "Game Screen" - Game screen where all the magic happens. */
- FOUNDATION_EXPORT CBLocation const CBLocationGameScreen;
- /*! "Achievements" - Screen with list of achievements in the game. */
- FOUNDATION_EXPORT CBLocation const CBLocationAchievements;
- /*! "Quests" - Quest, missions or goals screen describing things for a player to do. */
- FOUNDATION_EXPORT CBLocation const CBLocationQuests;
- /*! "Pause" - Pause screen. */
- FOUNDATION_EXPORT CBLocation const CBLocationPause;
- /*! "Level Start" - Start of the level. */
- FOUNDATION_EXPORT CBLocation const CBLocationLevelStart;
- /*! "Level Complete" - Completion of the level */
- FOUNDATION_EXPORT CBLocation const CBLocationLevelComplete;
- /*! "Turn Complete" - Finishing a turn in a game. */
- FOUNDATION_EXPORT CBLocation const CBLocationTurnComplete;
- /*! "IAP Store" - The store where the player pays real money for currency or items. */
- FOUNDATION_EXPORT CBLocation const CBLocationIAPStore;
- /*! "Item Store" - The store where a player buys virtual goods. */
- FOUNDATION_EXPORT CBLocation const CBLocationItemStore;
- /*! "Game Over" - The game over screen after a player is finished playing. */
- FOUNDATION_EXPORT CBLocation const CBLocationGameOver;
- /*! "Leaderboard" - List of leaders in the game. */
- FOUNDATION_EXPORT CBLocation const CBLocationLeaderBoard;
- /*! "Settings" - Screen where player can change settings such as sound. */
- FOUNDATION_EXPORT CBLocation const CBLocationSettings;
- /*! "Quit" - Screen displayed right before the player exits a game. */
- FOUNDATION_EXPORT CBLocation const CBLocationQuit;
- /*! "Default" - Supports legacy applications that only have one "Default" location */
- FOUNDATION_EXPORT CBLocation const CBLocationDefault;
- /*!
- @protocol ChartboostDelegate
-
- @abstract
- Provide methods and callbacks to receive notifications of when the Chartboost SDK
- has taken specific actions or to more finely control the Chartboost SDK.
-
- @discussion For more information on integrating and using the Chartboost SDK
- please visit our help site documentation at https://help.chartboost.com
-
- All of the delegate methods are optional.
- */
- @protocol ChartboostDelegate <NSObject>
- @optional
- /*!
- @abstract
- Called by the SDK to show customized AgeGate View.
-
- @return A valid UIView. Reutrn nil if no customized Age Gate is needed.
-
- @discussion SDK will call this method to see if user wants to implement their own custom age gate view.
- Check for didPassAgeGate for other details.
- */
- - (UIView*)customAgeGateView;
- /*!
- @abstract
- Called after the SDK has been successfully initialized
-
- @param status The result of the initialization. YES if successful. NO if failed.
-
- @discussion Implement to be notified of when the initialization process has finished.
- */
- - (void)didInitialize:(BOOL)status;
- #pragma mark - Interstitial Delegate
- /*!
- @abstract
- Called before requesting an interstitial via the Chartboost API server.
-
- @param location The location for the Chartboost impression type.
-
- @return YES if execution should proceed, NO if not.
-
- @discussion Implement to control if the Charboost SDK should fetch data from
- the Chartboost API servers for the given CBLocation. This is evaluated
- if the showInterstitial:(CBLocation) or cacheInterstitial:(CBLocation)location
- are called. If YES is returned the operation will proceed, if NO, then the
- operation is treated as a no-op.
-
- Default return is YES.
- */
- - (BOOL)shouldRequestInterstitial:(CBLocation)location;
- /*!
- @abstract
- Called before an interstitial will be displayed on the screen.
-
- @param location The location for the Chartboost impression type.
-
- @return YES if execution should proceed, NO if not.
-
- @discussion Implement to control if the Charboost SDK should display an interstitial
- for the given CBLocation. This is evaluated if the showInterstitial:(CBLocation)
- is called. If YES is returned the operation will proceed, if NO, then the
- operation is treated as a no-op and nothing is displayed.
-
- Default return is YES.
- */
- - (BOOL)shouldDisplayInterstitial:(CBLocation)location;
- /*!
- @abstract
- Called after an interstitial has been displayed on the screen.
-
- @param location The location for the Chartboost impression type.
-
- @discussion Implement to be notified of when an interstitial has
- been displayed on the screen for a given CBLocation.
- */
- - (void)didDisplayInterstitial:(CBLocation)location;
- /*!
- @abstract
- Called after an interstitial has been loaded from the Chartboost API
- servers and cached locally.
-
- @param location The location for the Chartboost impression type.
-
- @discussion Implement to be notified of when an interstitial has been loaded from the Chartboost API
- servers and cached locally for a given CBLocation.
- */
- - (void)didCacheInterstitial:(CBLocation)location;
- /*!
- @abstract
- Called after an interstitial has attempted to load from the Chartboost API
- servers but failed.
-
- @param location The location for the Chartboost impression type.
-
- @param error The reason for the error defined via a CBLoadError.
-
- @discussion Implement to be notified of when an interstitial has attempted to load from the Chartboost API
- servers but failed for a given CBLocation.
- */
- - (void)didFailToLoadInterstitial:(CBLocation)location
- withError:(CBLoadError)error;
- /*!
- @abstract
- Called after a click is registered, but the user is not fowrwarded to the IOS App Store.
-
- @param location The location for the Chartboost impression type.
-
- @param error The reason for the error defined via a CBLoadError.
-
- @discussion Implement to be notified of when a click is registered, but the user is not fowrwarded
- to the IOS App Store for a given CBLocation.
- */
- - (void)didFailToRecordClick:(CBLocation)location
- withError:(CBClickError)error;
- /*!
- @abstract
- Called after an interstitial has been dismissed.
-
- @param location The location for the Chartboost impression type.
-
- @discussion Implement to be notified of when an interstitial has been dismissed for a given CBLocation.
- "Dismissal" is defined as any action that removed the interstitial UI such as a click or close.
- */
- - (void)didDismissInterstitial:(CBLocation)location;
- /*!
- @abstract
- Called after an interstitial has been closed.
-
- @param location The location for the Chartboost impression type.
-
- @discussion Implement to be notified of when an interstitial has been closed for a given CBLocation.
- "Closed" is defined as clicking the close interface for the interstitial.
- */
- - (void)didCloseInterstitial:(CBLocation)location;
- /*!
- @abstract
- Called after an interstitial has been clicked.
-
- @param location The location for the Chartboost impression type.
-
- @discussion Implement to be notified of when an interstitial has been click for a given CBLocation.
- "Clicked" is defined as clicking the creative interface for the interstitial.
- */
- - (void)didClickInterstitial:(CBLocation)location;
- #pragma mark - Rewarded Video Delegate
- /*!
- @abstract
- Called before a rewarded video will be displayed on the screen.
-
- @param location The location for the Chartboost impression type.
-
- @return YES if execution should proceed, NO if not.
-
- @discussion Implement to control if the Charboost SDK should display a rewarded video
- for the given CBLocation. This is evaluated if the showRewardedVideo:(CBLocation)
- is called. If YES is returned the operation will proceed, if NO, then the
- operation is treated as a no-op and nothing is displayed.
-
- Default return is YES.
- */
- - (BOOL)shouldDisplayRewardedVideo:(CBLocation)location;
- /*!
- @abstract
- Called after a rewarded video has been displayed on the screen.
-
- @param location The location for the Chartboost impression type.
-
- @discussion Implement to be notified of when a rewarded video has
- been displayed on the screen for a given CBLocation.
- */
- - (void)didDisplayRewardedVideo:(CBLocation)location;
- /*!
- @abstract
- Called after a rewarded video has been loaded from the Chartboost API
- servers and cached locally.
-
- @param location The location for the Chartboost impression type.
-
- @discussion Implement to be notified of when a rewarded video has been loaded from the Chartboost API
- servers and cached locally for a given CBLocation.
- */
- - (void)didCacheRewardedVideo:(CBLocation)location;
- /*!
- @abstract
- Called after a rewarded video has attempted to load from the Chartboost API
- servers but failed.
-
- @param location The location for the Chartboost impression type.
-
- @param error The reason for the error defined via a CBLoadError.
-
- @discussion Implement to be notified of when an rewarded video has attempted to load from the Chartboost API
- servers but failed for a given CBLocation.
- */
- - (void)didFailToLoadRewardedVideo:(CBLocation)location
- withError:(CBLoadError)error;
- /*!
- @abstract
- Called after a rewarded video has been dismissed.
-
- @param location The location for the Chartboost impression type.
-
- @discussion Implement to be notified of when a rewarded video has been dismissed for a given CBLocation.
- "Dismissal" is defined as any action that removed the rewarded video UI such as a click or close.
- */
- - (void)didDismissRewardedVideo:(CBLocation)location;
- /*!
- @abstract
- Called after a rewarded video has been closed.
-
- @param location The location for the Chartboost impression type.
-
- @discussion Implement to be notified of when a rewarded video has been closed for a given CBLocation.
- "Closed" is defined as clicking the close interface for the rewarded video.
- */
- - (void)didCloseRewardedVideo:(CBLocation)location;
- /*!
- @abstract
- Called after a rewarded video has been clicked.
-
- @param location The location for the Chartboost impression type.
-
- @discussion Implement to be notified of when a rewarded video has been click for a given CBLocation.
- "Clicked" is defined as clicking the creative interface for the rewarded video.
- */
- - (void)didClickRewardedVideo:(CBLocation)location;
- /*!
- @abstract
- Called after a rewarded video has been viewed completely and user is eligible for reward.
-
- @param reward The reward for watching the video.
-
- @param location The location for the Chartboost impression type.
-
- @discussion Implement to be notified of when a rewarded video has been viewed completely and user is eligible for reward.
- */
- - (void)didCompleteRewardedVideo:(CBLocation)location
- withReward:(int)reward;
- #pragma mark - InPlay Delegate
- /*!
- @abstract
- Called after an InPlay object has been loaded from the Chartboost API
- servers and cached locally.
-
- @param location The location for the Chartboost impression type.
-
- @discussion Implement to be notified of when an InPlay object has been loaded from the Chartboost API
- servers and cached locally for a given CBLocation.
- */
- - (void)didCacheInPlay:(CBLocation)location;
- /*!
- @abstract
- Called after a InPlay has attempted to load from the Chartboost API
- servers but failed.
-
- @param location The location for the Chartboost impression type.
-
- @param error The reason for the error defined via a CBLoadError.
-
- @discussion Implement to be notified of when an InPlay has attempted to load from the Chartboost API
- servers but failed for a given CBLocation.
- */
- - (void)didFailToLoadInPlay:(CBLocation)location
- withError:(CBLoadError)error;
- #pragma mark - General Delegate
- /*!
- @abstract
- Called before an interstitial has been displayed on the screen.
-
- @param location The location for the Chartboost impression type.
-
- @discussion Implement to be notified of when an interstitial will
- be displayed on the screen for a given CBLocation.
- */
- - (void)willDisplayInterstitial:(CBLocation)location;
- /*!
- @abstract
- Called before a video has been displayed on the screen.
-
- @param location The location for the Chartboost impression type.
-
- @discussion Implement to be notified of when a video will
- be displayed on the screen for a given CBLocation. You can then do things like mute
- effects and sounds.
- */
- - (void)willDisplayVideo:(CBLocation)location;
- /*!
- @abstract
- Called after the App Store sheet is dismissed, when displaying the embedded app sheet.
-
- @discussion Implement to be notified of when the App Store sheet is dismissed.
- */
- - (void)didCompleteAppStoreSheetFlow;
- /*!
- @abstract
- Called if Chartboost SDK pauses click actions awaiting confirmation from the user.
-
- @discussion Use this method to display any gating you would like to prompt the user for input.
- Once confirmed call didPassAgeGate:(BOOL)pass to continue execution.
- */
- - (void)didPauseClickForConfirmation;
- @end
|