💡Tips
- To improve the loading efficiency of app open ads, please refer to SDK Preset Strategy
- You can set the desired app open ad loading timeout according to your business needs. We recommend setting it between 6000ms - 10000ms
- The ad loading timeout is the maximum time to wait for an app open ad to load (this only includes the waiting time for ad loading, not the ad display time)
- ⚠️ Setting a timeout that is too short or not using the provided timeout as the waiting time for app open ad loading may affect the performance of app open ads
- ⚠️ If Price Priority Mode is enabled in HyperBid Tools Console-App Management-Aggregation Unit-Advanced Settings, the Price Priority Callback Timeout will have higher priority than the fetchTimeout you provide
// Attach events
private void InitializeAppOpenAds()
{
McSdkCallbacks.AppOpen.OnAdLoadedEvent += OnAppOpenAdLoadedEvent;
McSdkCallbacks.AppOpen.OnAdLoadFailedEvent += OnAppOpenAdLoadFailedEvent;
McSdkCallbacks.AppOpen.OnAdDisplayFailedEvent += OnAppOpenAdDisplayFailedEvent;
McSdkCallbacks.AppOpen.OnAdDisplayedEvent += OnAppOpenAdDisplayedEvent;
McSdkCallbacks.AppOpen.OnAdClickedEvent += OnAppOpenAdClickedEvent;
McSdkCallbacks.AppOpen.OnAdHiddenEvent += OnAppOpenAdHiddenEvent;
McSdkCallbacks.AppOpen.OnAdRevenuePaidEvent += OnAppOpenAdRevenuePaidEvent;
McSdkCallbacks.AppOpen.OnAdLoadTimeoutEvent += OnAppOpenAdLoadTimeoutEvent;
LoadAppOpenAd();
}
private void LoadAppOpenAd()
{
McSdk.LoadAppOpenAd("your mediation unit id", fetchTimeout); // fetchTimeout in milliseconds
}
private void OnAppOpenAdLoadedEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
// Ad load success event
}
private void OnAppOpenAdLoadFailedEvent(string adUnitId, McSdkBase.ErrorInfo errorInfo)
{
// Ad load failure event
}
private void OnAppOpenAdDisplayFailedEvent(string adUnitId, McSdkBase.ErrorInfo errorInfo, McSdkBase.AdInfo adInfo)
{
// Ad display failure event
// soft launch pre-load
// LoadAppOpenAd();
}
private void OnAppOpenAdDisplayedEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
// Ad display success event
}
private void OnAppOpenAdClickedEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
// Ad click event
}
private void OnAppOpenAdHiddenEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
// Ad closed event
// soft launch pre-load
// LoadAppOpenAd();
}
private void OnAppOpenAdRevenuePaidEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
// Revenue tracking event
}
private void OnAppOpenAdLoadTimeoutEvent(string adUnitId)
{
// Loading timeout event
}
if (McSdk.IsAppOpenAdReady("your mediation unit id")) {
McSdk.ShowAppOpenAd("your mediation unit id");
} else {
LoadAppOpenAd();
}
McSdk.SetAppOpenAdExtraParameter("your mediation unit id", "appopen_test_extra_key", "appopen_test_extra_value");
#if UNITY_ANDROID
McSdk.SetAppOpenAdLocalExtraParameter("your mediation unit id", "appopen_test_local_extra_key", new AndroidJavaObject("java.lang.String","appopen_test_local_extra_value"));
#elif UNITY_IOS
McSdk.SetAppOpenAdLocalExtraParameter("your mediation unit id", "appopen_test_local_extra_key", "appopen_test_local_extra_value");
#endif
McSdk.LoadAppOpenAd("your mediation unit id", fetchTimeout); // fetchTimeout in milliseconds