iOS Integration
You may use the Yodo1 MAS plugin with Godot Engine 3.2.3 or higher.
Integrating the MAS SDK into your mobile app project gives you access to MAS fully managed monetization solution. This solution taps into multiple ad mediation platforms, selecting the one best suited for your gameās monetization through high-quality ad networks that serve in-app ads.
Before you can start monetizing your app, youāll need to integrate the MAS SDK.
Integrating the SDK
First, you need to downloadĀ thisĀ file. It contains:
- Godot native iOS library with MAS (GodotYodo1Mas.a)
- MAS script for Godot (yodo1mas.gd)
Setup your project
1. The yodo1mas.gd script works as a wrapper for all MAS features.
2. Set up your AppKey
Create a new node, add the yodo1mas.gd script and configure your Appkey. You can find your Appkey in MAS dashboard.

3. Export the project for iOS platform. This creates Xcode project.

2. Here is a directory with the exported Xcode project. At this stage, the GodotYodo1Mas.a file is a library of the Godot engine without the Yodo1 MAS SDK. You need to replace it with the library you downloaded fromĀ this link.

3. Use CocoaPods to add all MAS SDKs in your Xcode project. Create a Podfile in the Xcode project via Terminal using the commandĀ touch Podfile. Do not forget to navigate into the Xcode folder with the commandĀ cd.
4. Open this Podfile and add the following lines:
source 'https://github.com/Yodo1Games/MAS-Spec.git'
source 'https://github.com/Yodo1Games/Yodo1Spec.git'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '11.0'
project 'GodotYodo1Mas.xcodeproj'
target 'GodotYodo1Mas' do
pod 'FBSDKCoreKit'
pod 'Yodo1MasFull', '~> 4.8.9'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
You can specify the project name, platform and other specifics in this file. Take a look atĀ theĀ CocoaPods documentationĀ for details.
5. Execute the following command in Terminal:Ā pod install ārepo-update. This command will download all required Yodo1 MAS libraries and create an Xcode workspace file.

Here is the Xcode project structure after pods installation.

Next, you need to set up the Xcode project.
1. Open theĀ GodotYodo1Mas.xcworkspaceĀ file.
2. Open theĀ GodotYodo1Mas-Info.plistĀ file in the text editor.

3. Add the AppLovin SDK Key:
AppLovinSdkKey
xcGD2fy-GdmiZQapx_kUSy5SMKyLoXBk8RyB5u9MVv34KetGdbl4XrXvAUFy0Qg9scKyVTI0NM4i_yzdXih4XE
4. Add App Transport Security. Apple has added in controls for ATS in iOS9. Use this command to ensure uninterrupted ad delivery across all Mediation Networks.
NSAppTransportSecurity
NSAllowsArbitraryLoads
5. Add AppTrackingTransparency. iOS 14 requires publishers to obtain permission to track user devices across applications.
NSUserTrackingUsageDescription
This identifier will be used to deliver personalized ads to you.
6. Add the AdMob App ID
GADApplicationIdentifier
!!!Your MAS AdMob App ID!!!
7. Advertising Network ID Games for users running iOS 14 or later need to include the network ID of each advertising platform in the GodotYodo1Mas-Info.plist file. Here is an example of this file in the Yodo1Godot_release_files_1Ā archive.
SKAdNetworkItems
SKAdNetworkIdentifier
275upjj5gd.skadnetwork
SKAdNetworkIdentifier
294l99pt4k.skadnetwork
SKAdNetworkIdentifier
2fnua5tdw4.skadnetwork
SKAdNetworkIdentifier
2u9pt9hc89.skadnetwork
SKAdNetworkIdentifier
3rd42ekr43.skadnetwork
SKAdNetworkIdentifier
4468km3ulz.skadnetwork
SKAdNetworkIdentifier
44jx6755aq.skadnetwork
SKAdNetworkIdentifier
44n7hlldy6.skadnetwork
SKAdNetworkIdentifier
4fzdc2evr5.skadnetwork
SKAdNetworkIdentifier
4pfyvq9l8r.skadnetwork
SKAdNetworkIdentifier
523jb4fst2.skadnetwork
SKAdNetworkIdentifier
5l3tpt7t6e.skadnetwork
SKAdNetworkIdentifier
5lm9lj6jb7.skadnetwork
SKAdNetworkIdentifier
6964rsfnh4.skadnetwork
SKAdNetworkIdentifier
6g9af3uyq4.skadnetwork
SKAdNetworkIdentifier
74b6s63p6l.skadnetwork
SKAdNetworkIdentifier
7rz58n8ntl.skadnetwork
SKAdNetworkIdentifier
7ug5zh24hu.skadnetwork
SKAdNetworkIdentifier
84993kbrcf.skadnetwork
SKAdNetworkIdentifier
8s468mfl3y.skadnetwork
SKAdNetworkIdentifier
9nlqeag3gk.skadnetwork
SKAdNetworkIdentifier
9rd848q2bz.skadnetwork
SKAdNetworkIdentifier
9t245vhmpl.skadnetwork
SKAdNetworkIdentifier
a7xqa6mtl2.skadnetwork
SKAdNetworkIdentifier
c6k4g5qg8m.skadnetwork
SKAdNetworkIdentifier
cg4yq2srnc.skadnetwork
SKAdNetworkIdentifier
cj5566h2ga.skadnetwork
SKAdNetworkIdentifier
e5fvkxwrpn.skadnetwork
SKAdNetworkIdentifier
ejvt5qm6ak.skadnetwork
SKAdNetworkIdentifier
g28c52eehv.skadnetwork
SKAdNetworkIdentifier
g2y4y55b64.skadnetwork
SKAdNetworkIdentifier
gta9lk7p23.skadnetwork
SKAdNetworkIdentifier
hs6bdukanm.skadnetwork
SKAdNetworkIdentifier
kbd757ywx3.skadnetwork
SKAdNetworkIdentifier
kbmxgpxpgc.skadnetwork
SKAdNetworkIdentifier
klf5c3l5u5.skadnetwork
SKAdNetworkIdentifier
m8dbw4sv7c.skadnetwork
SKAdNetworkIdentifier
mlmmfzh3r3.skadnetwork
SKAdNetworkIdentifier
mtkv5xtk9e.skadnetwork
SKAdNetworkIdentifier
n6fk4nfna4.skadnetwork
SKAdNetworkIdentifier
n9x2a789qt.skadnetwork
SKAdNetworkIdentifier
ppxm28t8ap.skadnetwork
SKAdNetworkIdentifier
prcb7njmu6.skadnetwork
SKAdNetworkIdentifier
pwa73g5rt2.skadnetwork
SKAdNetworkIdentifier
pwdxu55a5a.skadnetwork
SKAdNetworkIdentifier
qqp299437r.skadnetwork
SKAdNetworkIdentifier
r45fhb6rf7.skadnetwork
SKAdNetworkIdentifier
rx5hdcabgc.skadnetwork
SKAdNetworkIdentifier
t38b2kh725.skadnetwork
SKAdNetworkIdentifier
tl55sbb4fm.skadnetwork
SKAdNetworkIdentifier
u679fj5vs4.skadnetwork
SKAdNetworkIdentifier
uw77j35x4d.skadnetwork
SKAdNetworkIdentifier
v72qych5uu.skadnetwork
SKAdNetworkIdentifier
wg4vff78zm.skadnetwork
SKAdNetworkIdentifier
wzmmz9fp6w.skadnetwork
SKAdNetworkIdentifier
yclnxrl5pm.skadnetwork
SKAdNetworkIdentifier
ydx93a7ass.skadnetwork
SKAdNetworkIdentifier
3qcr597p9d.skadnetwork
SKAdNetworkIdentifier
3qy4746246.skadnetwork
SKAdNetworkIdentifier
3sh42y64q3.skadnetwork
SKAdNetworkIdentifier
424m5254lk.skadnetwork
SKAdNetworkIdentifier
4dzt52r2t5.skadnetwork
SKAdNetworkIdentifier
578prtvx9j.skadnetwork
SKAdNetworkIdentifier
5a6flpkh64.skadnetwork
SKAdNetworkIdentifier
8c4e2ghe7u.skadnetwork
SKAdNetworkIdentifier
av6w8kgt66.skadnetwork
SKAdNetworkIdentifier
cstr6suwn9.skadnetwork
SKAdNetworkIdentifier
f38h382jlk.skadnetwork
SKAdNetworkIdentifier
p78axxw29g.skadnetwork
SKAdNetworkIdentifier
s39g8k73mm.skadnetwork
SKAdNetworkIdentifier
v4nxqhlyqp.skadnetwork
SKAdNetworkIdentifier
zq492l623r.skadnetwork
SKAdNetworkIdentifier
24t9a8vw3c.skadnetwork
SKAdNetworkIdentifier
32z4fx6l9h.skadnetwork
SKAdNetworkIdentifier
54nzkqm89y.skadnetwork
SKAdNetworkIdentifier
6xzpu9s2p8.skadnetwork
SKAdNetworkIdentifier
79pbpufp6p.skadnetwork
SKAdNetworkIdentifier
9b89h5y424.skadnetwork
SKAdNetworkIdentifier
c3frkrj4fj.skadnetwork
SKAdNetworkIdentifier
feyaarzu9v.skadnetwork
SKAdNetworkIdentifier
ggvn48r87g.skadnetwork
SKAdNetworkIdentifier
glqzh8vgby.skadnetwork
SKAdNetworkIdentifier
k674qkevps.skadnetwork
SKAdNetworkIdentifier
ludvb6z3bs.skadnetwork
SKAdNetworkIdentifier
rvh3l7un93.skadnetwork
SKAdNetworkIdentifier
x8jxxk4ff5.skadnetwork
SKAdNetworkIdentifier
xy9t38ct57.skadnetwork
SKAdNetworkIdentifier
zmvfpc5aq8.skadnetwork
SKAdNetworkIdentifier
n38lu8286q.skadnetwork
SKAdNetworkIdentifier
v9wttpbfk9.skadnetwork
SKAdNetworkIdentifier
22mmun2rn5.skadnetwork
SKAdNetworkIdentifier
252b5q8x7y.skadnetwork
SKAdNetworkIdentifier
9g2aggbj52.skadnetwork
SKAdNetworkIdentifier
dzg6xy7pwj.skadnetwork
SKAdNetworkIdentifier
f73kdq92p3.skadnetwork
SKAdNetworkIdentifier
hdw39hrw9y.skadnetwork
SKAdNetworkIdentifier
x8uqf25wch.skadnetwork
SKAdNetworkIdentifier
y45688jllp.skadnetwork
SKAdNetworkIdentifier
97r2b46745.skadnetwork
SKAdNetworkIdentifier
b9bk5wbcq9.skadnetwork
SKAdNetworkIdentifier
mls7yz5dvl.skadnetwork
SKAdNetworkIdentifier
w9q455wk68.skadnetwork
SKAdNetworkIdentifier
su67r6k2v3.skadnetwork
SKAdNetworkIdentifier
737z793b9f.skadnetwork
SKAdNetworkIdentifier
r26jy69rpl.skadnetwork
SKAdNetworkIdentifier
238da6jt44.skadnetwork
SKAdNetworkIdentifier
488r3q3dtq.skadnetwork
SKAdNetworkIdentifier
52fl2v3hgk.skadnetwork
SKAdNetworkIdentifier
5tjdwbrq8w.skadnetwork
SKAdNetworkIdentifier
9yg77x724h.skadnetwork
SKAdNetworkIdentifier
ecpz2srf59.skadnetwork
SKAdNetworkIdentifier
gvmwg8q7h5.skadnetwork
SKAdNetworkIdentifier
lr83yxwka7.skadnetwork
SKAdNetworkIdentifier
n66cz3y3bx.skadnetwork
SKAdNetworkIdentifier
nzq8sh4pbs.skadnetwork
SKAdNetworkIdentifier
pu4na253f3.skadnetwork
SKAdNetworkIdentifier
v79kvwwj4g.skadnetwork
SKAdNetworkIdentifier
yrqqpx2mcb.skadnetwork
SKAdNetworkIdentifier
z4gj7hsk7h.skadnetwork
SKAdNetworkIdentifier
f7s53z58qe.skadnetwork
SKAdNetworkIdentifier
mp6xlyr22a.skadnetwork
SKAdNetworkIdentifier
x44k69ngh6.skadnetwork
SKAdNetworkIdentifier
7953jerfzd.skadnetwork
Save and close theĀ GodotYodo1Mas-Info.plistĀ file.
8. Set up build-excluded architectures. For example, you may exclude armv7 if you have not compiled for it. You also need to set the iOS deployment target to 10.0.

9. Create an empty swift file. By following this path ā File -> New -> File -> Choose Swift File -> Next -> Create. When you see the popup āWould you like to configure an Objective-C bridging header?ā, selectĀ Create Bridging Header

10. You can build your project.
IMPORTANT
After you prepare the Xcode project in Godot editor, use theĀ Export PCK/ZIPĀ optionĀ and replace the pck file.Ā
For the next step pleaseĀ test your integration.