iOS

MTGSDK Integration for iOS

Overview

This document provides instructions on how to integrate the Mintegral SDK for iOS developers. The Mintegral SDK provides eight different advertisement formats: Banner, Native, Native Video,Automatic Rending Native, Rewarded Video, Interstitial, Interstitial Video, Interactive and Splash.

Requirements

Xcode 11.0 or higher (SDK V_6.3.3+)

Xcode 12.5 or higher (SDK V_6.9.0)

Xcode 12.0 or higher (SDK V_6.9.1+)

Obtain the SDK

There are two ways to add Mintegral iOS-SDK to your Xcode project: using Cocoapods or manual integration.

About the SDK file size: The common base framework will increase by about 2.2M. Integrate all ad types, the maximum increase is about 0.3M, a total of 2.5M.

Get SDK version

Search "MTGSDK.h" on MTGSDK.h file

iOS 14 Publisher Guide

The intention of this guide is to help publishers streamline changes coming with Apple’s release of iOS 14.

Checklist

  1. Update to MTG iOS SDK 6.6.0 with iOS 14 and SKAdNetwork support

  2. Incorporate MTGSDK’s SKAdNetwork IDs into your apps’ Info.plist

SKAdNetwork IDs

SKAdNetwork is Apple's attribution solution for iOS 14, which can complete advertising attribution while protecting user privacy. After using SKAdNetwork, even if IDFA is not available, the attribution results of app installation can be correctly obtained. See Apple’s SKAdNetwork to learn more.

Update your plist with SKAdNetwork identifiers

Refer to Apple’s documentation on configuring the Info.plist properly for ad campaigns to be served. Refer also to the Xcode documentation for help on editing property lists.

Follow these steps to configure your app with SKAdNetworkIDs :

  1. Inside the Xcode Project navigator, open Info.plist file.

  2. Click the add button (+) next to a key in a property list inside the Info.plist file in order to create a new property key.

  3. Enter SKAdNetworkItems and select Array in the type column.

  4. Add a dictionary item, then add a single String item inside the dictionary.

  5. For each String item, add SKAdNetworkIdentifier as the key and the ad network identifier as the value.

Mintegral hosts the MTG SKAdNetwork ID and the list of our buyers' SKAdNetwork IDs in both JSON and XML formats on our website. Note that our lists are updated periodically:

List of SKAdNetwork IDs in JSON

List of SKAdNetwork IDs in XML

App Tracking Transparency

The AppTrackingTransparency(ATT) framework presents an app-tracking authorization request to the user and provides the tracking authorization status. Starting from iOS 14, IDFA will be unavailable until your app calls the ATT framework to present the app-tracking authorization request to the end user. If your app does not present this request, the IDFA will automatically be zeroed out which may lead to a significant loss in ad revenue.Read more on Apple’s ATT. We recommended that you call it when the app launch, so that we can more personalized and relevant advertisements can be presented to the users.

To display the ATT authorization request for accessing the IDFA, update your Info.plist to add the NSUserTrackingUsageDescription key with a custom message describing your usage. Sample:

To present the authorization request, call below code before load ads. requestTrackingAuthorizationWithCompletionHandler:

Apple's app privacy questionnaire

According to Apple’s privacy details on the App Store requirements, starting December 8, 2020, app developers need to define which data is collected by their apps and SDKs integrated in their apps.

To help you answer the questionnaire about the information collected by MTGSDK, please refer to the following table. Here is all the information MTGSDK collected, the descriptions that are not mentioned are not collected.

Tips: The list only describes MTGSDK’s SDK and data collection. The list does not describe a developer’s overall app data collection and use, or that of any other SDK.

Types of data

Info

Used for tracking?

Data use

Identifiers-DeviceID

the identifier for advertiser (e.g. IDFA)

YES

Third-Party Advertising

Identifiers-DeviceID

IDFV

YES

Third-Party Advertising

Diagnostics-Performance Data

system file size

No

Third-Party Advertising

Diagnostics-Performance Data

RAM

No

Third-Party Advertising

Diagnostics-Performance Data

cpu

No

Third-Party Advertising

Usage Date - Advertising Data

Advertising Data

YES

Third-Party Advertising

Other Data

device model

No

Third-Party Advertising

Other Data

operating system (e.g.iOS) and the OS version of the device

No

Third-Party Advertising

Other Data

device type (e.g. smartphone, tablet, etc.)

No

Third-Party Advertising

Other Data

device properties related to screen size

No

Third-Party Advertising

Other Data

orientation

No

Third-Party Advertising

Other Data

battery

No

Third-Party Advertising

Other Data

app version

No

Third-Party Advertising

Other Data

country

No

Third-Party Advertising

Other Data

time zone and locale settings (country and preferred language)

No

Third-Party Advertising

Other Data

network connection type

No

Third-Party Advertising

Other Data

IP address

No

Third-Party Advertising

Other Data

network provider

No

Third-Party Advertising

Other Data

SDK version

No

Third-Party Advertising

Other Data

timestamp

No

Third-Party Advertising

Other Data

network status such as WiFi

No

Third-Party Advertising

Other Data

the ad type (e.g. whether the ad is a text, image, or video based ad)

No

Third-Party Advertising

Other Data

the date and time of your request and referral URL

No

Third-Party Advertising

Other Data

User-agent

No

Third-Party Advertising

Other Data

package name

No

Third-Party Advertising

Other Data

carrier name

No

Third-Party Advertising

SDK Initialization

Parameter configuration before initialization on manual integration

1.Import basic static libraries on manual integration

CoreGraphics.framework Foundation.framework UIKit.framework libsqlite3.tbd (It's libsqlite3.dylib below Xcode7) libz.tbd (It'slibz.dylib below Xcode7) AdSupport.framework StoreKit.framework QuartzCore.framework CoreTelephony.framework MobileCoreServices.framework AVFoundation.framework WebKit.framework

2.Add linker parameter for XCode Find Other Linker Flags in build settings and add flag: -ObjC (case sensitive).

Initialization

Initialize The SDK as soon as your app starts.Call for the MTGSDK initialization method in AppDelegate through the API below and import it to the App ID and App Key from Mintegral dashboard. When initializing, MTGSDK will retrieve configuration information from the server. It is recommended to use the API in the main thread.

Sample Code:

Banner ads are rectangular image or text ads that occupy a spot within an app's layout. They stay on screen while users are interacting with the app, and can refresh automatically after a certain period of time.

Banner sample:

Import the head file

Create MTGBannerAdView

The code below lists the standard banner sizes in MTGBannerSizeType. We recommend using 320*50, the filling rate of this size will be more guaranteed, and adjusting the size may affect income to a certain extent.

Load Ads

Destroy the MTGBannerAdView

Refreshing Ads

The MTGBannerAdView will automatically refresh your ad unit at a time interval when you set the autoRefreshTime.

Show the Close Button

Get Request ID

If you find a problem during the ad display, you can use this method to get the Request ID and feed it back to MTG. It needs to be called after load success

Sample Code

Native

Native advertisement is currently one of the most popular advertisement types. The Mintegral SDK will report back creative material information to your app. You will then be able to assemble and adjust the creative elements as needed to ensure the creative material is compatible to your product style and in turn create the best user experience.They are ad assets that are presented to users via UI components that are native to the platform. When an ad loads, your app receives an ad object that contains its assets, and your app is then responsible to assemble and format them, according to your app’s visual design.

Note: This ad format is only available to certain developers, please contact your AM or write to developer@mintegral.com if needed.

Native Ads sample:

Import the header file

Create MTGNativeAdManager

Sample code:

Preload Ads(Recommendation)

We provide preloading for Native (NativeVideo). You can use the following code to preload in the initialization process to improve your ad loading efficiency. The sample code is as follows:

Load Ads

When the Mintegral SDK calls this method, it will first read the advertisement from the cache. If there is an advertisement in the cache, it will return directly, which will improve the display efficiency. If there is no cache, it will send an advertisement request to the server to obtain the advertisement. The request method is as follows:

Design Ads

You can design the ad based on the callback of onAdLoaded and we provide MTGMediaView to display the image (video) ad. Call the following method to display the ad.The best size of MTGMediaView is 16:9.

Get Request ID

If you find a problem during the ad display, you can use this method to get the Request ID and feed it back to MTG. It needs to be called after load success

Adchoice

We provider MTGAdChoicesView to design the AdChoice.There are two properties of the MTGAdChoicesView. Tip:We strongly suggest that developers can show this MTGAdChoicesView(icon) in the right location in your app, if not, it will affect your ad revenue.

Register click-event for views

Introduction of MTGMediaView APIs

Sample code

Auto Rending Native

The Automatic Rending Native launched is simpler than ordinary Native ads. Developers only need to provide a wide and high area, and MTG will automatically display the ad templates and materials that match it. While reducing developer docking costs, more efficiently use the MTG algorithm to output advertising ideas, thereby improving developer income levels.

NativeAdvanced Ad sample:

Import the header file

Create MTGNativeAdvancedAd

NativeAdvance Setting

Setting Style

You can set below targets:title、subTitle、button、icon、container and mediaContent.

Mute setting

Auto play setting

Close button setting

Get Request ID

If you find a problem during the ad display, you can use this method to get the Request ID and feed it back to MTG. It needs to be called after load success

Load & Show ads

Load ads

Check if ads has been fully cached by calling

Show ads

Destroy ads

Set the MTGNativeAdvancedAdDelegate to Receive Ads Events

Sample code

Rewarded Video

Rewarded Video is one of the best performing advertisement formats on the Mintegral platform. Users can get rewards by watching a video advertisement. The creativity and attention-grabbing nature of the video content attracts users to download the advertised product.

Sample video in landscape view:

Import header file

To integrate rewarded videos, it is required to import the below header file:

Mute

NOTE:Must be called before loadAd

Setting alertView

NOTE:Must be called before loadAd

Setting Reward Plus

NOTE:Must be called before loadAd The API only means accepting the advertisement of Reward plus, and issuing rewards still depends on the reward currency parameters (MTGRewardAdInfo) of the onVideoAdDismissed callback in the SDK for reward distribution.

Get Request ID

If you find a problem during the ad display, you can use this method to get the Request ID and feed it back to MTG. It needs to be called after load success

Load Ads

When requesting an ad, you need to pass in the UnitID of the corresponding ad slot. To allow videos to be preloaded, we recommend making your load request call as early as possible after the SDK is started. This will reduce the time users waiting for an ad to display and improve user experiences.

Display Ads

Before displaying the advertisement, it is recommended to determine whether the ad has been successfully downloaded. If the video can play, the SDK will return the message that it is ready, and then pass the corresponding Unit ID and viewController to display the video advertisement. If the return fails, the video will be abandoned. Attention: userId(can only be numbers and charcters) is the Identifier for the server-side callback,if it is in client-callback mode,it can be left empty.

Set up the Reward Delegate

MTGRewardAdLoadDelegate

MTGRewardAdShowDelegate

Sample code

Set up "Server to Server" to return the Ad reward

Based on your needs, you can choose to set up callback through SDK or through server to server. If you set up callback through server to server, Mintegral will use the callback URL to return reward information after a video ad is played.

1.Set up the callback URL in the dashboard

When the user watches the video completely, Mintegral's server will request the callback URL to send the reward infomation to your server.

2.For the callback URL, only need to change the domain name.

https://www.sampleurl.com/mintegral?user_id={user_id}&trans_id={trans_id}&reward_amount={reward_amount}&reward_name={reward_name}&sign={sign}&unit_id={unit_id}&extra={extra}

3.When the Mintegral server recognizes that a user_id has earned a reward, it will inform the developer's server through the callback URL. Additional parameters of the callback URL are as follow:

Parameter

Description

user_id

User ID,set by developer

reward_amount

Amount of reward users should receive

reward_name

Reward name

unit_id

Unit ID

trans_id

Transmission ID, generated by Mintegral server, therefore is a unique ID

sign

Encryption identifier MD5(user_id_reward_amount_trans_id_security_key)

extra

An optional string custom data

4.Once the developer's server receives the postback, it will need to return 200 or 403 to the Mintegral server.

5.If no response is received from the developer's server 20 seconds after the Mintegral server initiates a postback, Mintegral will retry every 5 minutes for the next 24 hours.

Static Interstitial

The interstitial ad will display a large image ad on the screen, and the user can close the ad by clicking the close button.

Note: Mintegral has launched a new Interstitial Video ad type that offers better visuals and experience than regular Interstitial ads. This ad format is only available to certain developers, please contact your AM or write to developer@mintegral.com if needed.

Interstitial sample:

Import header file

Create the MTGInterstitialAdManager

When initializing, you need to pass in the ad's Placement Id and Unit Id. The "adCategory" controls the advertising app category and if there are no special requirements here, please set it as MTGInterstitial_AD_CATEGORY_ALL(or figure "0").

Load and display Ads

Get Request ID

If you find a problem during the ad display, you can use this method to get the Request ID and feed it back to MTG. It needs to be called after load success

Sample code

Interstitial Video

Interstitial Video ads are upgraded versions of state ads that show users a full-screen or half-screen video, increasing user interest through more engaging videos.

Sample video in portrait view:

Import the header file

Create the MTGInterstitialVideoAdManager

When initializing, you need to pass in the ad's Placement Id and Unit Id.

Load and show Ads

Mute

Make sure make this call before load

Setting Interstitial Video RewardMode

Make sure make this call before load

Get Request ID

If you find a problem during the ad display, you can use this method to get the Request ID and feed it back to MTG. It needs to be called after load success

Sample code

Interactive Ads

Interactive ad is a new ad format launched by Mintegral, in which users can instantly experience any app or game in the highest quality possible, before the download.This greatly improves the possibility of conversion. The current ads creatives are mainly interactive videos and HTML5 files.

Note: This ad format is only available to certain developers, please contact your AM or write to developer@mintegral.com if needed.

Interactive Ad UI sample

Import the header file

Create the MTGInterActiveManager

Initialize the MTGInterActiveManager and send in unit ID,then set up the MTGInterActiveManager delegate。

Setting alertView

NOTE:Must be called before loadAd

Get Request ID

If you find a problem during the ad display, you can use this method to get the Request ID and feed it back to MTG. It needs to be called after load success

Load Ads and display Ads

Sample code

Splash Ads

SplashAD is one of the most popular forms of advertising. This type is more suitable for placing e-commerce and brand advertisements, and traffic access is also very suitable for accessing application-type traffic. Users can click on the ad to jump to the ad landing page, or click on the "skip" button in the upper right corner to jump to the app content home page. It will load when your app is opened, and automatically close and enter your app's main interface after the display is complete.

Style: There are two styles of half-screen and full-screen ads. In the case of half-screen, it supports the definition of logo images, and also supports vertical and horizontal screens.

Splash Ad UI sample:

Import the header file

Initialize the MTGSplashAD

When initializing MTGSplashAD, you can set the countdown (if not set, the default is 5s), whether to allow the setting to be skipped (if not set, the default is to allow skipping), half screen and full screen settings (customizable Size), horizontal and vertical screen settings (if not set, the default is using the current orientation of the device)

Note:customViewSize should not greater than 25% of the device's size

Set delegate

Background image & color

There are two ways to load and show ads

(Recommend)Load ads first, and then show at the right time, which two steps are separated. Please call preload at an appropriate time. The interval between preload and show should not be too long during the life cycle of the app. It is recommended that it should not exceed 30 minutes. After calling preload, when you need to call show method, you can use isADReadyToShow to determine whether it can be displayed. If it is YEs, call show method. If it is No, you can call loadAndShowInKeyWindow. Load and show ads, which two steps are done by one method.

Load first, and then show at the right time

Note: 1. You can call the isADReadyToShow method before show ads to detect whether there are cached ads locally. 2. The customView parameter can pass the custom pictures. (The customView's size should be the same as the customSize set when initializing splashAD, and in case of inconsistency is based on the customView size, which was previously reserved for the logo.)

Load and show ads

timeout: If the SDK does not complete the ad loading (i.e. the load times out) within a specified time, it closes directly. The unit is ms. If passed 0, the value is 5000ms.

The cache is flushed every time preload is called. You can call preload, then showInKeyWindow: customView, or preload, then showloadShowShowInKeyWindows:customView:timeout:, Both calls take precedence over the cache after the call to preload.

MTGSplashAD callback

Sample code

Test ID

The Ads you get during the test is the official Ads of Mintegral, so it will be affected by the intelligent optimization of the algorithm. If the loading fails frequently during the test and returns EXCEPTION_RETURN_EMPTY, you can use the following test id for testing.

AppKey

7c22942b749fe6a6e361b675e96b3ee9

AppID

118692

Ad format

Sample ad unit ID

Placement ID

Banner

146898

138804

Native

146891

138797

Auto Rending Native

262716

204222

Rewarded Video

146892

138798

Static Interstitial

146896

138802

Interstitial Video

146894

138800

Interactive Ads

146897

138803

Splash

215246

177221

FAQs

1.Why call the preload? A:Preload:You can cache the ads data before display then use the cache data for the next impression. This helps to reduce ads' loading time, improve user experience and increase your revenue.

2.Why do the ads jump so slowly for the first time? A: The ads will go through several layers of 302 redirects before reaching the final URL. The NativeHandler is notified when the page jump is complete and developers can setup a loading dialogue at this time.

3.Why are no ads returned sometimes? A:Please check whether the AppId,AppKey,UnitId,and PlacementId are correct; and then check the offers status in the Mintegral dashboard.

4.Why there are two different languages in the offers? A:MTGSDK identifies the network IP. So the corresponding area language will be adopted. Also, since English is a universal language there will usually be two languages: English and the local language.

5.Why can't the ads be downloaded sometimes? A: Check your appstore network connection; check whether your Apple account is in alignment with the area you are connected to.

6.What is the amount of offers for a specific area? A:The number of offers for a specific area is equal to the total number of offers that is promoted in this area. So even if the ad requests exceed the total offer amount, the number won't increase.

7.How long will Native Ad image resources be cached A:They will be cached for 7 days.

The description of return-status

code of status

message

description

-1

EXCEPTION_RETURN_EMPTY

ads no fill

-10

EXCEPTION_SIGN_ERROR

AppID and appKey do not match correctly

-9

EXCEPTION_TIMEOUT

request timeout

-1201

EXCEPTION_UNIT_NOT_FOUND

Can not find the unitID in dashboard

-1202

EXCEPTION_UNIT_ID_EMPTY

unitID is empty

-1203

EXCEPTION_UNIT_NOT_FOUND_IN_APP

Can not find the unitID of the appID

-1205

EXCEPTION_UNIT_ADTYPE_ERROR

The adtype of the unitID is wrong

-1208

EXCEPTION_UNIT_BIDDING_TYPE_ERROR

The UnitID bidding type does not match the request API. The UnitID cannot be changed bidding type, need creat a new UnitID again

-1301

EXCEPTION_APP_ID_EMPTY

appID is empty

-1302

EXCEPTION_APP_NOT_FOUND

Can not find the appId

-1904

EXCEPTION_IV_RECALLNET_INVALIDATE

The network status at the time of the request is incorrect. Generally, because of the SDK initialization is not completed yet when the request has been sent .

-1915

EXCEPTION_FILTER_BY_PLACEMENTID_INCONSISTENT

PlacementID is wrong

-2102

EXCEPTION_SERVICE_REQUEST_OS_VERSION_REQUIRED

Unable to get os_version, usually caused by GDPR configuration returning false

-129300060

kMTGErrorCodeUnknownError

Unknown Error

-129300061

kMTGErrorCodeRewardVideoFailedToLoadVideoData

Invalid Ads

-129300068

kMTGErrorCodeRewardVideoFailedToLoadMd5Invalid

MD5 checked failed

-129300001

KMTGErrorCodeEmptyUnitId

unit id is empty

-129300002

KMTGErrorCodeEmptyBidToken

BidToken is empty

-12930001

kMTGErrorCodeNoAds

No Ads fill

-12930003

kMTGErrorCodeURLisEmpty

Url is Empty

-12930004

kMTGErrorCodeNoAdsAvailableToPlay

No available ads to play

-12930006

kMTGErrorCodeFailedToLoad

Load ads failed

-12930007

kMTGErrorCodeFailedToShow

Show ads failed

-12930009

kMTGErrorCodeDailyLimit

video play reach daily limit,please check unit setting on dashboard

-12930010

kMTGErrorCodeLoadAdsTimeOut

Load timeout

-12930011

kMTGErrorCodeMaterialLoadFailed

load resource failed

-12940001

kMTGErrorCodeNoSupportPopupWindow

not support PopupWindow with GDPR

Instruction for EU-GDPR version

On May 25th, 2018, the European Union’s General Data Protection Regulation (GDPR) went into effect. Developers need to update all Mintergal SDKs and integrate following the below description in the future. If not integrated with the below steps in mind, your ad serving will be affected. At the same time, we have updated the Mintegral Privacy Policy. for your reference.

API Introduction

1.This API allows the GDPR notification to pop up. If you would like this type of presentation, you will need to use the below code before SDK initialization.

Sample Code

2.To set up the on and off switch to allow SDK to retrieve users' information,you will need to adopt the below code before SDK initialization.

Sample Code

Attention

1.If you do not enable the SDK to gather users' information, it will affect overall ad serving and possibly result in no ad returns.

2.When integrating the SDK for apps used by EU users, it is recommended that developers obtain users' consent before initializing the SDK.

CCPA Preparation

On June 28, 2018, the State of California (“California“) issued the California Consumer Privacy Act 2018 (“CCPA”), which aims to strengthen consumer privacy and data security protection, which will be effective On January 1st, 2020. For California users, you can use the setDoNotTrackStatus API to limit data processing based on the user's selection. After the setup is completed, Mintegral will no longer show personalized recommended ads to the user based on the their device information, and will not sync the device information to other third-party partners. The API is available in SDK version 5.8.7 and above.

API Introduction

To set up the on and off switch to allow SDK to retrieve users' information,you will need to adopt the below code before SDK initialization.

Sample Code

Change Log

Version

Change Log

Publish Date

6.9.4

RewardVideo server callback supports passing in extra data

Jun 17,2021

6.9.3

Support the reward info in the campaign

Jun 04,2021

6.9.1

Removed the dependency on Xcode12.5,do not need to use Xcode12.5 or higher to build your project

May 07,2021

6.9.0

1. Support for SKAdNetwork conversion events using SKAdImpression; 2. Bug fixed.

Apr 27,2021

6.8.0

SDK Performance optimization

Apr 08,2021

6.7.9

Optimize the reporting of SKAdNetwork ID

Mar 30,2021

6.7.7

1.Optimize the banner display lag problem 2. Bug fixed

Mar 11,2021

6.7.6

1. Support for SKAdNetwork V_2.1 2. SDK Performance optimization

Jan 15,2021

6.7.5

Support SKOverlay: Using Apple's new SKOverlay to improve user's ad experience with a seamless presentation of the app store for app recommendation

Jan 05,2021

6.7.4

Fix a bug where NativeAd Impression callback did not fire

Dec 24,2020

6.7.3

1. Replace the obsolete API 2. Fix a bug where the RewardVideo unitid passes nil crash

Dec 20,2020

6.7.2

SDK Performance optimization

Dec 10,2020

6.7.1

Fixed NativeVideo bug

Dec 09,2020

6.7.0

1. Support for iOS 14 display zoomed mode 2. Bug fixed

Dec 01,2020

6.6.9

Based on the optimization suggestions put forward after the sonar service scan, code optimization

Nov 18,2020

6.6.8

Remove the remaining phone memory and device user name etc.

Nov 13,2020

6.6.6

SDK added to recognize 5G network status

Oct 30,2020

6.6.5

Bug fix

Oct 22,2020

6.6.3

Optimize the parameter restrictions in the show method of the Splash adformat

Sep 25,2020

6.6.2

1. Support for publishers to obtain requestId 2. Optimize SDK

Sep 23,2020

6.6.1

Add setting alternate domain name

Sep,18 2020

6.6.0

1. Optimize GDPR, delete GDPR pop-up window; 2. Optimize support for iOS14,remove skoverlay;3. Bug fixed

Sep,10 2020

6.5.0

iOS 14 compatible version and support SKAdNetwork

Sep,03 2020

6.4.1

1.Performance optimization 2.bug fixed

Aug 26,2020

6.4.0

1. RV add reward plus for reward optimization 2. NV support play complete callback 3. bid framework add reward plus 4. bug fix

Aug 13,2020

6.3.7

Fixed crash that occasionally caused by missing reward information on VideoAdDismissed callback in certain scenarios

Aug 04,2020

6.3.5

Fix the application sound cannot be restored after ads played

Jul 16,2020

6.3.4

Cancel auto refresh at Banner Header Bidding mode

Jul 08,2020

6.3.3

1. Upgrade GDPR 2. Update OMSDK (Thorough removed UIWebView from the SDK) 3. MTGSDK only supports XCode11 and after versions. 4. Bug fixed.

Jun 24,2020

6.3.2

1.Optimize SDK log reporting 2. Bug fixed

May 29,2020

6.3.1

Automatic Rending Native;2. Bug fixed

May 26,2020

6.2.0

Add Placement id

Apr 16,2020

6.1.3

Bug fixed

Apr 14,2020

6.1.2

Compatible BUAdSDK WKWebView bug

Mar 19,2020

6.1.1

Optimized Header Bidding buyeruid parameters

Mar 13,2020

6.1.0

Fixed request failure in a specific scenario from version 5.9.0 or later

Mar 09,2020

6.0.0

1. H5 template optimization; 2. Used Xcode 9.2 to build sdk 3. Added Splash Ad format

Mar 03,2020

5.9.0

1.Add Interstitial Video Rewardmode; 2.Interstitial Video、RewardVideo、Interactive supports setting AlterView

Feb 14,2020

5.8.8

1. Added the shutdown callback API in Banner; 2. Optimized the memory release of BannerAdView when the developer destroyed it in advance

Jan 09,2020

5.8.7

1. MTGSDK adds doNotTrackStatu API for CCPA; 2. Add idfv parameter to bid interface to report;

Dec 26,2019

5.8.6

1. Banner supports external DSP traffic; 2. Banner memory performance optimization (web timely release)

Dec 20, 2019

5.8.5

1.Performance improvement

Dec 12, 2019

5.8.4

1.Remove UIWebView; 2. Be compatible with ios13.1 storekit and xcode11.1

Nov 11, 2019

5.8.3

1.Support HB for Banner

Oct 17, 2019

5.8.2

1.Sdk improvement

Oct 12, 2019

5.8.1

1.InterstitialVideo Improvement

Oct 02, 2019

5.8.0

1.Added Open Measurement SDK; 2.Supported mraid expend on Banner ad format

Sep 26, 2019

5.7.1

1.Banner callbacks improvement

Sep 16, 2019

5.7.0

1.Added support for iOS 13; 2.Updated the minimum required iOS version to 8.0

Sep 06, 2019

5.6.1

1.HB internal optimization

Aug 30, 2019

5.6.0

1.Added Banner ad format

Aug 27, 2019

5.5.3

1.Fix header bidding exception

Jul 24, 2019

5.5.2

1.Support Marid

Jul 18, 2019

5.4.2

1.Optimized the SDK 2.Add Head-Bidding

Jun 13, 2019

5.3.3

1.Optimized the SDK 2.Remove Geolocation related code

May 08, 2019

5.3.2

1.Optimized the storekit 2.Added onVideoAdDidClosed of Rewardvideo and Interstitialvideo

Apr 10, 2019

5.3.1

Remove Geolocation related code

Apr 19, 2019

5.3.0

1.Optimized the storekit 2.Fixed some bugs

Apr 10, 2019

5.2.0

1.Optimized the logic of RV and IV advertising

Mar 22, 2019

5.1.0

1.Optimized the Nativevideo

Mar 12, 2019

5.0.0

1.Optimized SDK

Mar 06, 2019

4.9.4

1.Optimized SDK

Feb 26, 2019

4.9.3

1.Optimized SDK

Feb 22, 2019

4.9.2

1.Fixed bugs

Feb 20, 2019

4.9.1

1.Fixed bugs

Jan 13, 2019

4.9.0

1.Added AdchoiceView

Jan 10, 2019

4.8.0

1.Fixs bugs

Dec 09, 2018

4.7.0

1.Fixs bugs

Oct 23, 2018

4.5.0

1.Callback method of Video-type advertisement optimization

Sep 18, 2018

4.4.0

1.Fixed bugs

Sep 13, 2018

4.3.0

1.Redirect optimization

Jul 30, 2018

4.2.0

1.Added Interactive Ad status callback 2.Added isReady method for Interactive Ad format

Jul 20, 2018

4.1.0

1.Interactive Ad optimization 2.Reduced framework size

Jul 10, 2018

3.9.0

1.Added Interactive Ad format

Jun 8, 2018

3.8.0

1.In compliant with GDPR

May 7, 2018

3.6.0

1.Added Interstitial Video 2.Removed third party ad source for Rewarded Videos

Apr 28, 2018

3.5.0

1.Native Video optimization 2.Error callback optimization 3.App Wall reminders optimization

Apr 10, 2018

3.4.2

1.Preload optimization

Mar 28, 2018

3.4.0

1.Added Native Video template 2.Fixed AppWall status bar black screen issue 3.Rewarded Video optimization

Mar 13, 2018

3.3.5

1.Network request optimization

Feb 26, 2018

3.3.4

1.Fixed occasional crash issue when concurrently loading multiple ad units

Feb 11, 2018

3.3.3

1.Redirect optimization

Feb 9, 2018

3.3.2

1.xCode8 adaptation 2.Fixed firebase conflict

Feb 1, 2018

3.3.0

1.Rewarded Video orientation optimization 2.Native Video template optimization

Jan 29, 2018

3.2.1

1. Optimized the play mode performance of Rewarded Videos; 2. Added the feature of filling the entire MideaView when Native Video displays large images 3. Fixed crash issue that can be caused by image loading

Jan 22, 2018

3.2.0

1.Native Video optimization 2.Rewarded Video optimization

Jan 12, 2018

3.1.0

1.Rewarded Video can be set as mute by developers 2.Rewarded Video optimization

Dec 22, 2017

2.9.0

1. A setting was created that allows videos to be played even when it is not yet fully downloaded on to the user's phone. The percentage of download required for the video to start playing is set through the dashboard. 2. Mediaview now supports auto replay and when a new video is ready it will automatically play. 3. VideoSupport parameter is discarded for Native ads, either static or video ads is available and determined by backend server. 4. UI is optimized for MediaView feeds and full screen ad format. 5. MTGSDK now supports uploading user information.

Dec 1, 2017

2.8.0

1. MTGSDK adds autoSetAudioCategory property which can be set by developers. It is set as disabled by default. The function allows publishers to allow SDK to auto-set the audio mode. When enabled, the audio will be played through mix mode when phone is on silent mode and exclusive mode when phone is not on silent mode.

Nov 23, 2017

2.7.0

1.StoreKit optimization 2.Bug fix

Sep 11, 2017

2.6.0

1.Updated style of the Rewarded Video playback interface. 2.Publishers can now set Rewarded Video daily cap. 3.Publishers can now configure when to show the close button for Rewarded Video. 4.Publishers can now set the Rewarded Video's orientation. 5.Added viewController property to the MTGNativeAdManager. 6.Extended callback for MTGNativeAdManager,MTGOfferWallAdManager,MTGInterstitialAdManager,and added admanage parameter. 7.Added currentUnitId property to MTGNativeAdManager,MTGOfferWallAdManager,MTGInterstitialAdManager.

Aug 22, 2017

2.5.0

1. Fixed the occasional black screen issue with Native Videos.

Jul 14, 2017

2.4.0

1. New function: MTGSDK supports Native Videos.

Jul 3, 2017

2.3.0

1.Fixed bugs and functionalities optimized.

Jun 15, 2017

2.2.0

1.Fixed the white screen issue that occurs when you click twice to install the store kit while in horizontal view. Fixed bug where the page jumps out of the app when preloading store kit in horizontal view.(Both issues occured in iOS 9 and above and iPhone 6+ phones).

Jun 7, 2017

2.1.0

1.Fixed Rewarded Video showSuccess callback problem in iOS 9.2.1.

May 25, 2017

2.0.0

1.Performance and stabilization optimization.

May 12, 2017

Last updated

Was this helpful?