diff --git a/Jenkinsfile b/Jenkinsfile index f64e7bc4..53c03d90 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,8 +1,6 @@ @Library('pipeline-library') _ buildModule { - // defaults: - //nodeVersion = '4.7.3' // Must have version set up on Jenkins master before it can be changed - sdkVersion = '7.1.0.v20180127081155' // use a master build with ARM64 support - //androidAPILevel = '23' // if changed, must install on build nodes + nodeVersion = '8.9.1' + sdkVersion = '7.2.0.GA' } diff --git a/android/build.gradle b/android/build.gradle index 3ace38d6..39fa9d7b 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -9,6 +9,8 @@ repositories { dependencies { implementation 'com.google.android.ads.consent:consent-library:1.0.1' + implementation 'com.facebook.android:audience-network-sdk:4.28.2' + implementation 'com.google.ads.mediation:facebook:4.28.2.0' } task getDeps(type: Copy) { diff --git a/android/documentation/changelog.md b/android/documentation/changelog.md index e4385791..3e1e3d01 100644 --- a/android/documentation/changelog.md +++ b/android/documentation/changelog.md @@ -2,13 +2,20 @@
 
-v4.2.0  Maintain API parity with iOS module
+v4.4.0  Maintain API parity with iOS module and introduce Interstitial ads support on Android.
+
+v4.3.0  Support the Facebook Audience Network adapter
+        Android integration guide: https://developers.google.com/admob/android/mediation/facebook
+        
+v4.2.1  Fix Kroll annotation for requestConsentInfoUpdateForPublisherIdentifiers.
+
+v4.2.0  Expose getId() and isAdTrackingLimited() from AdvertisingIdClient.Info.
 
 v4.1.0  Conform to GDPR by exposing the `extras` object to `requestAd()` [MOD-2423]
 
 v4.0.0  Support Titanium SDK 7.0.0 and Android 64-Bit, use Ti.PlayServices
 
-v3.0.2  Bump Google Play Services to 10.2.0 [TIMOB-24722] 
+v3.0.2  Bump Google Play Services to 10.2.0 [TIMOB-24722]
 
 v3.0.1  Update Google Play Services to v9.6.1 (revison 33) [TIMOB-23860]
 
diff --git a/android/documentation/index.md b/android/documentation/index.md
index 83ea5273..3a85b2a7 100644
--- a/android/documentation/index.md
+++ b/android/documentation/index.md
@@ -2,16 +2,17 @@
 
 ## Description
 
-Allows for the display of AdMob in Titanium Android applications. 
+Allows for the display of AdMob in Titanium Android applications.
 
-Please note that if your androidManifest has screen support set to: android:anyDensity="false", any banner ads will display too small on high density devices. 
-It is not clear at this point if this is a bug with AdMob or Titanium. 
+Please note that if your androidManifest has screen support set to: android:anyDensity="false", any banner ads will 
+display too small on high density devices.
+It is not clear at this point if this is a bug with AdMob or Titanium.
 In any event, you will either need to NOT set your screen support -- or set android:anyDensity="true" and adjust your app layout accordingly
 
 ## Getting Started
 
-View the [Using Titanium Modules](http://docs.appcelerator.com/titanium/latest/#!/guide/Using_Titanium_Modules) document for instructions on getting
-started with using this module in your application.
+View the [Using Titanium Modules](http://docs.appcelerator.com/titanium/latest/#!/guide/Using_Titanium_Modules) document 
+for instructions on getting started with using this module in your application.
 
 ## Requirements
 
@@ -26,7 +27,7 @@ To access this module from JavaScript, you would do the following (recommended):
 var Admob = require('ti.admob');
 ```
 
-The "Admob" variable is now a reference to the Module object.	
+The "Admob" variable is now a reference to the Module object.
 
 ## Doubleclick for Publishers Developer Docs
 
@@ -38,7 +39,8 @@ The "Admob" variable is now a reference to the Module object.
 
 Returns a number value indicating the availability of Google Play Services which are for push notifications.
 
-Possible values include `SUCCESS`, `SERVICE_MISSING`, `SERVICE_VERSION_UPDATE_REQUIRED`, `SERVICE_DISABLED`, and `SERVICE_INVALID`.
+Possible values include `SUCCESS`, `SERVICE_MISSING`, `SERVICE_VERSION_UPDATE_REQUIRED`, `SERVICE_DISABLED`,
+and `SERVICE_INVALID`.
 
 ### `createAdMobView(args)`
 
@@ -155,6 +157,37 @@ Array of ad providers.
 
 Debug geography. Used for debug devices only.
 
+### getAndroidAdId(callback)
+
+Gets the user Android Advertising ID. Since this works in a background thread in native
+Android a callback is called when the value is fetched. The callback parameter is a key/value
+pair with key `androidAdId` and a String value with the id.
+
+#### Example:
+
+	Admob.getAndroidAdId(function (data) {
+		Ti.API.info('AAID is ' + data.aaID);
+	});
+
+### isLimitAdTrackingEnabled(callback)
+
+Checks whether the user has opted out from ad tracking in the device's settings. Since
+this works in a background thread in native Android a callback is called when the value
+is fetched. The callback parameter is a key/value pair with key `isLimitAdTrackingEnabled`
+and a boolean value for the user's setting.
+
+#### Example:
+
+	Admob.isLimitAdTrackingEnabled(function (data) {
+		Ti.API.info('Ad tracking is limited: ' + data.isLimitAdTrackingEnabled);
+	});
+
+### Support the Facebook Audience Network adapter
+
+Starting in 4.3.0 you can use the included Facebook Audience Network adapter to turn on the mediation in your AdMob account.
+Here you do not have to do anything 😙. You only need to configure mediation in your AdMob and Facebook accounts by 
+following the [official guide](https://developers.google.com/admob/android/mediation/facebook).
+
 ## Constants
 
 ### Number `SUCCESS`
diff --git a/android/example/app.js b/android/example/app.js
index 3179c7da..3ab23e9a 100644
--- a/android/example/app.js
+++ b/android/example/app.js
@@ -73,7 +73,35 @@ adRequestBtn2.addEventListener("click",function(){
     adMobView.requestTestAd();
 });
 
+var getAAID = Ti.UI.createButton({
+    title: "Get AAID",
+    top: "40%",
+    height: "10%",
+    width: "80%"
+});
+
+var getIsAdTrackingLimited = Ti.UI.createButton({
+    title: "Is Ad tracking limited",
+    top: "55%",
+    height: "10%",
+    width: "80%"
+});
+
+getAAID.addEventListener('click', function() {
+    Admob.getAndroidAdId(function (data) {
+        Ti.API.info('AAID is ' + data.aaID);
+    });
+});
+
+getIsAdTrackingLimited.addEventListener('click', function() {
+    Admob.isLimitAdTrackingEnabled(function (data) {
+        Ti.API.info('Ad tracking is limited: ' + data.isLimitAdTrackingEnabled);
+    });
+})
+
 win.add(adMobView);
 win.add(adRequestBtn);
 win.add(adRequestBtn2);
+win.add(getAAID);
+win.add(getIsAdTrackingLimited)
 win.open();
\ No newline at end of file
diff --git a/android/lib/audience-network-sdk-4.28.2.aar b/android/lib/audience-network-sdk-4.28.2.aar
new file mode 100644
index 00000000..9c7b0f50
Binary files /dev/null and b/android/lib/audience-network-sdk-4.28.2.aar differ
diff --git a/android/lib/facebook-4.28.2.0.aar b/android/lib/facebook-4.28.2.0.aar
new file mode 100644
index 00000000..712fa995
Binary files /dev/null and b/android/lib/facebook-4.28.2.0.aar differ
diff --git a/android/manifest b/android/manifest
index 87b8f283..2c19edf6 100644
--- a/android/manifest
+++ b/android/manifest
@@ -3,7 +3,7 @@
 # during compilation, packaging, distribution, etc.
 #
 
-version: 4.2.0
+version: 4.4.0
 apiversion: 4
 architectures: arm64-v8a armeabi-v7a x86
 description: Titanium Admob module for Android
diff --git a/android/src/ti/admob/AdmobModule.java b/android/src/ti/admob/AdmobModule.java
index 39fd038e..54eab9f0 100644
--- a/android/src/ti/admob/AdmobModule.java
+++ b/android/src/ti/admob/AdmobModule.java
@@ -8,10 +8,22 @@
 
 package ti.admob;
 
+import android.os.AsyncTask;
+
+import java.io.IOException;
+
+import com.google.android.gms.ads.identifier.AdvertisingIdClient;
+import com.google.android.gms.common.GooglePlayServicesUtil;
+import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
+import com.google.android.gms.common.GooglePlayServicesRepairableException;
+
+import org.appcelerator.kroll.KrollDict;
+import org.appcelerator.kroll.KrollFunction;
 import org.appcelerator.kroll.KrollModule;
 import org.appcelerator.kroll.annotations.Kroll;
 import org.appcelerator.kroll.common.Log;
 import org.appcelerator.titanium.TiApplication;
+
 import org.appcelerator.kroll.KrollFunction;
 import org.appcelerator.kroll.KrollDict;
 import org.appcelerator.kroll.KrollObject;
@@ -44,9 +56,13 @@ public class AdmobModule extends KrollModule
 	private static final String TAG = "AdmobModule";
 	public static String MODULE_NAME = "AndroidAdMobModule";
 
+	private final String ANDROID_ADVERTISING_ID = "androidAdId";
+	private final String IS_LIMIT_AD_TRACKING_ENABLED = "isLimitAdTrackingEnabled";
+
+	public static Boolean TESTING = false;
+
 	private ConsentForm form = null;
 
-	public static boolean TESTING = false;
 	public static String PUBLISHER_ID;
 
 	// constants
@@ -137,6 +153,63 @@ public void setTesting(boolean testing)
 		TESTING = testing;
 	}
 
+	@Kroll.method
+	public void isLimitAdTrackingEnabled(KrollFunction callback) {
+		if (callback != null) {
+			new getAndroidAdvertisingIDInfo(callback).execute(IS_LIMIT_AD_TRACKING_ENABLED);
+		}
+	}
+
+	@Kroll.method
+	public void getAndroidAdId(KrollFunction callback) {
+		if (callback != null) {
+			new getAndroidAdvertisingIDInfo(callback).execute(ANDROID_ADVERTISING_ID);
+		}
+	}
+
+	private void invokeAIDClientInfoCallback(AdvertisingIdClient.Info aaClientIDInfo, String responseKey, KrollFunction callback) {
+		KrollDict callbackDictionary = new KrollDict();
+		Object responseValue = null;
+		switch (responseKey) {
+			case ANDROID_ADVERTISING_ID:
+				responseValue = aaClientIDInfo.getId();
+				break;
+			case IS_LIMIT_AD_TRACKING_ENABLED:
+				responseValue = aaClientIDInfo.isLimitAdTrackingEnabled();
+				break;
+		}
+		callbackDictionary.put(responseKey, responseValue);
+		callback.callAsync(getKrollObject(), callbackDictionary);
+	}
+
+	private class getAndroidAdvertisingIDInfo extends AsyncTask {
+
+		private AdvertisingIdClient.Info aaClientIDInfo = null;
+		private KrollFunction aaInfoCallback;
+
+		public getAndroidAdvertisingIDInfo(KrollFunction infoCallback) {
+			this.aaInfoCallback = infoCallback;
+		}
+
+		@Override
+		protected String doInBackground(String... responseKey) {
+			try {
+				aaClientIDInfo = AdvertisingIdClient.getAdvertisingIdInfo(TiApplication.getInstance().getApplicationContext());
+				return responseKey[0];
+			} catch (IOException | GooglePlayServicesNotAvailableException | GooglePlayServicesRepairableException e) {
+				e.printStackTrace();
+				return null;
+			}
+		}
+
+		@Override
+		protected void onPostExecute(String responseKey) {
+			if (aaClientIDInfo != null) {
+				invokeAIDClientInfoCallback(aaClientIDInfo, responseKey, aaInfoCallback);
+			}
+		}
+	}
+
 	@Kroll.method
 	public void requestConsentInfoUpdateForPublisherIdentifiers(KrollDict args)
 	{
@@ -360,4 +433,5 @@ public KrollDict[] getAdProviders()
 
 		return result;
 	}
+
 }
diff --git a/ios/admob.xcodeproj/project.pbxproj b/ios/admob.xcodeproj/project.pbxproj
index 206e9948..d6da8bb6 100644
--- a/ios/admob.xcodeproj/project.pbxproj
+++ b/ios/admob.xcodeproj/project.pbxproj
@@ -15,6 +15,8 @@
 		24DD6CFA1134B3F500162E58 /* TiAdmobModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 24DD6CF81134B3F500162E58 /* TiAdmobModule.m */; };
 		3A4F268F1C68DDF7003E06CF /* iAd.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A4F268E1C68DDF7003E06CF /* iAd.framework */; };
 		3AF5B7731C233383002E3DC7 /* TiAdmobTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF5B7711C233383002E3DC7 /* TiAdmobTypes.h */; };
+		5E32C3FB20E2957400A17A2B /* FBAudienceNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E32C3F920E2957400A17A2B /* FBAudienceNetwork.framework */; };
+		5E32C3FC20E2957400A17A2B /* FacebookAdapter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E32C3FA20E2957400A17A2B /* FacebookAdapter.framework */; };
 		AA747D9F0F9514B9006C5449 /* TiAdmob_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = AA747D9E0F9514B9006C5449 /* TiAdmob_Prefix.pch */; };
 		AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; };
 		CE6C17A01982D1170017C788 /* AdSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE6C179F1982D1170017C788 /* AdSupport.framework */; };
@@ -48,6 +50,8 @@
 		24DD6D1B1134B66800162E58 /* titanium.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = titanium.xcconfig; sourceTree = ""; };
 		3A4F268E1C68DDF7003E06CF /* iAd.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = iAd.framework; path = System/Library/Frameworks/iAd.framework; sourceTree = SDKROOT; };
 		3AF5B7711C233383002E3DC7 /* TiAdmobTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TiAdmobTypes.h; path = Classes/TiAdmobTypes.h; sourceTree = ""; };
+		5E32C3F920E2957400A17A2B /* FBAudienceNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FBAudienceNetwork.framework; path = platform/FBAudienceNetwork.framework; sourceTree = ""; };
+		5E32C3FA20E2957400A17A2B /* FacebookAdapter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FacebookAdapter.framework; path = platform/FacebookAdapter.framework; sourceTree = ""; };
 		AA747D9E0F9514B9006C5449 /* TiAdmob_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TiAdmob_Prefix.pch; sourceTree = SOURCE_ROOT; };
 		AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
 		CE6C179F1982D1170017C788 /* AdSupport.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AdSupport.framework; path = System/Library/Frameworks/AdSupport.framework; sourceTree = SDKROOT; };
@@ -84,12 +88,14 @@
 				DAD5D7CF12527E11009CF986 /* AudioToolbox.framework in Frameworks */,
 				CE6C17A21982D12D0017C788 /* AVFoundation.framework in Frameworks */,
 				CE6C17A41982D13A0017C788 /* CoreGraphics.framework in Frameworks */,
+				5E32C3FB20E2957400A17A2B /* FBAudienceNetwork.framework in Frameworks */,
 				DB07E8B81E8010000008C1E1 /* CoreMedia.framework in Frameworks */,
 				DB07E8B91E8010000008C1E1 /* CoreMotion.framework in Frameworks */,
 				CE6C17A61982D1660017C788 /* CoreTelephony.framework in Frameworks */,
 				DB07E8BB1E80100D0008C1E1 /* CoreVideo.framework in Frameworks */,
 				AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */,
 				DB07E8BD1E80101A0008C1E1 /* GLKit.framework in Frameworks */,
+				5E32C3FC20E2957400A17A2B /* FacebookAdapter.framework in Frameworks */,
 				DB07E8BF1E80101F0008C1E1 /* JavaScriptCore.framework in Frameworks */,
 				DB07E8C01E80103C0008C1E1 /* MediaPlayer.framework in Frameworks */,
 				DAD5D7D512527E2F009CF986 /* MessageUI.framework in Frameworks */,
@@ -126,6 +132,8 @@
 		0867D69AFE84028FC02AAC07 /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
+				5E32C3FA20E2957400A17A2B /* FacebookAdapter.framework */,
+				5E32C3F920E2957400A17A2B /* FBAudienceNetwork.framework */,
 				DB28410320B413750099933A /* PersonalizedAdConsent.framework */,
 				DB2840FA20B408760099933A /* GoogleMobileAds.framework */,
 				DB07E8C51E8010680008C1E1 /* SafariServices.framework */,
diff --git a/ios/documentation/changelog.md b/ios/documentation/changelog.md
index 34e8d069..949e5276 100644
--- a/ios/documentation/changelog.md
+++ b/ios/documentation/changelog.md
@@ -1,5 +1,8 @@
 # Change Log
 
+v2.4.0  Support the Facebook Audience Network adapter
+        iOS integration guide: https://developers.google.com/admob/ios/mediation/facebook
+
 v2.3.0  [MOD-2196] Update AdMob to 7.31.0, conform to GDPR
 
 v2.2.0  Update Admob iOS SDK to 7.27.0, remove iAd adapter due to Google removal
@@ -8,7 +11,7 @@ v2.1.0 	[MOD-2196] Support the iAd adapter
 
 v2.0.0 	[MOD-2182] Updating Admob SDK to 7.6.0, support iOS 9, support for new API's'
 
-v1.9.0 	[TIMOB-18092] ti.admob added 64bit support for iOS #15 
+v1.9.0 	[TIMOB-18092] ti.admob added 64bit support for iOS #15
 
 v1.8.0  [TIMOB-17928] Updated to build for 64-bit
 
@@ -22,7 +25,7 @@ v1.6.0  [TIMODOPEN-427] Updating Admob SDK to 6.10.0, Building with TiSDK 3.2.3.
 v1.5.0  [TIMODOPEN-242] Updating Admob SDK to 6.4.2 (Removed all uses of UDID)
 
 v1.4.0  [TIMODOPEN-212] Updating Admob SDK to 6.2.1, Building with TiSDK 2.1.3.GA, update documentation
-	
+
 v1.3	Fixed crash on iOS 4.3 [MOD-600]
 
 v1.2	Upgraded to SDK 5.0.5 [MOD-410]
diff --git a/ios/documentation/index.md b/ios/documentation/index.md
index ce68a829..a02f26ee 100644
--- a/ios/documentation/index.md
+++ b/ios/documentation/index.md
@@ -42,13 +42,13 @@ parameters[object]: a dictionary object of properties defined in [Ti.Admob.View]
 
 ```js
   var ad = Admob.createView({
-    bottom: 0, 
+    bottom: 0,
     width: 320, // Will calculate the width internally to fit its container if not specified
     height: 50,
     debugEnabled: true, // If enabled, a dummy value for `adUnitId` will be used to test
     adType: Admob.AD_TYPE_BANNER, // One of `AD_TYPE_BANNER` (default) or `AD_TYPE_INTERSTITIAL`
     adUnitId: '<>', // You can get your own at http: //www.admob.com/
-    adBackgroundColor: 'black', 
+    adBackgroundColor: 'black',
     testDevices: [Admob.SIMULATOR_ID], // You can get your device's id by looking in the console log
     contentURL: 'https://admob.com', // URL string for a webpage whose content matches the app content.
     requestAgent: 'Titanium Mobile App', // String that identifies the ad request's origin.
@@ -122,8 +122,8 @@ Debug geography. Used for debug devices only.
 
 ### Interstitials
 
-To receive an interstitional ad, you need to call `ad.receive()` instead of adding it to the viewe hierarchy. 
-It fires the `didReceiveAd` event if the  ad was successfully received, the `didFailToReceiveAd` event otherwise. Please check 
+To receive an interstitional ad, you need to call `ad.receive()` instead of adding it to the viewe hierarchy.
+It fires the `didReceiveAd` event if the  ad was successfully received, the `didFailToReceiveAd` event otherwise. Please check
 the example for a detailed example of different banner types.
 
 ### iAd
@@ -132,6 +132,9 @@ the example for a detailed example of different banner types.
 
 Starting in 2.1.0 you can use the included iAd adapter to turn on the iAd mediation in your Admob account.
 
+### Support the Facebook Audience Network adapter
+
+Starting in 2.4.0 you can use the included Facebook Audience Network adapter to turn on the mediation in your Admob account. Here you do not have to do anything :) You only need to configure mediation in your AdMob and Facebbok accounts by following the official guide: https://developers.google.com/admob/ios/mediation/facebook
 
 ## Constants
 
diff --git a/ios/manifest b/ios/manifest
index 8181201e..572b3e5f 100644
--- a/ios/manifest
+++ b/ios/manifest
@@ -2,7 +2,7 @@
 # this is your module manifest and used by Titanium
 # during compilation, packaging, distribution, etc.
 #
-version: 2.3.0
+version: 2.4.0
 architectures:  armv7 i386 x86_64 arm64
 description: AdMob module for ad delivery via AdMob
 author: Jeff Haynie, Stephen Tramer, Jasper Kennis, Jon Alter and Hans Knoechel
diff --git a/ios/module.xcconfig b/ios/module.xcconfig
index aac67c0f..a407d3cf 100644
--- a/ios/module.xcconfig
+++ b/ios/module.xcconfig
@@ -1 +1 @@
-OTHER_LDFLAGS=$(inherited) -framework AdSupport -framework AudioToolbox -framework AVFoundation -framework CoreGraphics -framework CoreMedia -framework CoreMotion -framework CoreTelephony -framework CoreVideo -framework Foundation -framework GLKit -framework JavaScriptCore -framework MediaPlayer -framework MessageUI -framework MobileCoreServices -framework OpenGLES -framework SafariServices -framework iAd -framework StoreKit -framework SystemConfiguration -framework WebKit -framework GoogleMobileAds -framework PersonalizedAdConsent
+OTHER_LDFLAGS=$(inherited) -framework AdSupport -framework AudioToolbox -framework AVFoundation -framework CoreGraphics -framework CoreMedia -framework CoreMotion -framework CoreTelephony -framework CoreVideo -framework Foundation -framework GLKit -framework JavaScriptCore -framework MediaPlayer -framework MessageUI -framework MobileCoreServices -framework OpenGLES -framework SafariServices -framework iAd -framework StoreKit -framework SystemConfiguration -framework WebKit -framework GoogleMobileAds -framework PersonalizedAdConsent -framework FacebookAdapter -framework FBAudienceNetwork
diff --git a/ios/platform/FBAudienceNetwork.framework/FBAudienceNetwork b/ios/platform/FBAudienceNetwork.framework/FBAudienceNetwork
new file mode 100644
index 00000000..4be0a79a
Binary files /dev/null and b/ios/platform/FBAudienceNetwork.framework/FBAudienceNetwork differ
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBAdChoicesView.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBAdChoicesView.h
new file mode 100644
index 00000000..f97e954b
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBAdChoicesView.h
@@ -0,0 +1,108 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class FBAdImage;
+@class FBNativeAd;
+@class FBNativeAdViewAttributes;
+
+/**
+  FBAdChoicesView offers a simple way to display a sponsored or AdChoices icon.
+ */
+FB_CLASS_EXPORT FB_SUBCLASSING_RESTRICTED
+@interface FBAdChoicesView : UIView
+
+/**
+  Access to the text label contained in this view.
+ */
+@property (nonatomic, weak, readonly, nullable) UILabel *label;
+
+/**
+  Determines whether the background mask is shown, or a transparent mask is used.
+ */
+@property (nonatomic, assign, getter=isBackgroundShown) BOOL backgroundShown;
+
+/**
+  Determines whether the view can be expanded upon being tapped, or defaults to fullsize. Defaults to NO.
+ */
+@property (nonatomic, assign, readonly, getter=isExpandable) BOOL expandable;
+
+/**
+  The native ad that provides AdChoices info, such as the image url, and click url. Setting this updates the nativeAd.
+ */
+@property (nonatomic, weak, readwrite, nullable) FBNativeAd *nativeAd;
+
+/**
+  Affects background mask rendering. Setting this property updates the rendering.
+ */
+@property (nonatomic, assign, readwrite) UIRectCorner corner;
+
+/**
+  The view controller to present the ad choices info from. If nil, the top view controller is used.
+ */
+@property (nonatomic, weak, readwrite, null_resettable) UIViewController *rootViewController;
+
+/**
+  Initialize this view with a given native ad. Configuration is pulled from the native ad.
+
+ - Parameter nativeAd: The native ad to initialize with.
+ */
+- (instancetype)initWithNativeAd:(FBNativeAd *)nativeAd;
+
+/**
+  Initialize this view with a given native ad. Configuration is pulled from the native ad.
+
+ - Parameter nativeAd: The native ad to initialize with.
+ - Parameter expandable: Controls whether view defaults to expanded or not, see property documentation
+ */
+- (instancetype)initWithNativeAd:(FBNativeAd *)nativeAd
+                      expandable:(BOOL)expandable;
+
+/**
+ Initialize this view with a given native ad. Configuration is pulled from the native ad.
+
+ - Parameter nativeAd: The native ad to initialize with.
+ - Parameter expandable: Controls whether view defaults to expanded or not, see property documentation
+ - Parameter attributes: Attributes to configure look and feel.
+ */
+- (instancetype)initWithNativeAd:(FBNativeAd *)nativeAd
+                      expandable:(BOOL)expandable
+                      attributes:(nullable FBNativeAdViewAttributes *)attributes;
+
+/**
+  Using the superview, this updates the frame of this view, positioning the icon in the top right corner by default.
+ */
+- (void)updateFrameFromSuperview;
+
+/**
+  Using the superview, this updates the frame of this view, positioning the icon in the corner specified. UIRectCornerAllCorners not supported.
+
+ - Parameter corner: The corner to display this view from.
+ - Parameter insets: Insets to take into account when positioning the view. Only respective insets are applied to corners.
+ */
+- (void)updateFrameFromSuperview:(UIRectCorner)corner;
+- (void)updateFrameFromSuperview:(UIRectCorner)corner insets:(UIEdgeInsets)insets;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBAdDefines.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBAdDefines.h
new file mode 100644
index 00000000..5203db1b
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBAdDefines.h
@@ -0,0 +1,83 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#ifndef FBAudienceNetwork_FBAdDefines_h
+#define FBAudienceNetwork_FBAdDefines_h
+
+#ifdef __cplusplus
+#define FB_EXTERN_C_BEGIN  extern "C" {
+#define FB_EXTERN_C_END  }
+#else
+#define FB_EXTERN_C_BEGIN
+#define FB_EXTERN_C_END
+#endif
+
+#ifdef __cplusplus
+# define FB_EXPORT extern "C" __attribute__((visibility("default")))
+#else
+# define FB_EXPORT extern __attribute__((visibility("default")))
+#endif
+
+#define FB_CLASS_EXPORT __attribute__((visibility("default")))
+#define FB_DEPRECATED __attribute__((deprecated))
+
+#if __has_feature(objc_generics)
+#define FB_NSArrayOf(x) NSArray
+#define FB_NSMutableArrayOf(x) NSMutableArray
+#define FB_NSDictionaryOf(x,y) NSDictionary
+#define FB_NSMutableDictionaryOf(x, y) NSMutableDictionary
+#define FB_NSSetOf(x) NSSet
+#define FB_NSMutableSetOf(x) NSMutableSet
+#else
+#define FB_NSArrayOf(x) NSArray
+#define FB_NSMutableArrayOf(x) NSMutableArray
+#define FB_NSDictionaryOf(x,y) NSDictionary
+#define FB_NSMutableDictionaryOf(x, y) NSMutableDictionary
+#define FB_NSSetOf(x) NSSet
+#define FB_NSMutableSetOf(x) NSMutableSet
+#define __covariant
+#endif
+
+#if ! __has_feature(nullability)
+#define NS_ASSUME_NONNULL_BEGIN
+#define NS_ASSUME_NONNULL_END
+#define nullable
+#define __nullable
+#endif
+
+#ifndef FB_IOS9_SDK_OR_LATER
+#define FB_IOS9_SDK_OR_LATER (__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_9_0)
+#endif
+
+#ifndef FBInterfaceOrientationMask
+#if !FB_IOS9_SDK_OR_LATER
+#define FBInterfaceOrientationMask NSUInteger
+#else
+#define FBInterfaceOrientationMask UIInterfaceOrientationMask
+#endif // FB_IOS9_SDK_OR_LATER
+#endif // FBInterfaceOrientationMask
+
+#ifndef FB_SUBCLASSING_RESTRICTED
+#if defined(__has_attribute) && __has_attribute(objc_subclassing_restricted)
+#define FB_SUBCLASSING_RESTRICTED __attribute__((objc_subclassing_restricted))
+#else
+#define FB_SUBCLASSING_RESTRICTED
+#endif
+#endif
+
+#endif
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBAdSettings.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBAdSettings.h
new file mode 100644
index 00000000..0359343c
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBAdSettings.h
@@ -0,0 +1,239 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Audience Network error domain
+ */
+FB_EXPORT NSString * const FBAudienceNetworkErrorDomain;
+/**
+ Audience Network error FBMediaView error domain
+ */
+FB_EXPORT NSString * const FBAudienceNetworkMediaViewErrorDomain;
+
+/**
+ Audience Network SDK logging levels
+ */
+typedef NS_ENUM(NSInteger, FBAdLogLevel) {
+    /// No logging
+    FBAdLogLevelNone,
+    /// Notifications
+    FBAdLogLevelNotification,
+    /// Errors only
+    FBAdLogLevelError,
+    /// Warnings only
+    FBAdLogLevelWarning,
+    /// Standard log level
+    FBAdLogLevelLog,
+    /// Debug logging
+    FBAdLogLevelDebug,
+    /// Log everything (verbose)
+    FBAdLogLevelVerbose
+};
+
+/**
+ Determines what method is used for rendering FBMediaView content
+ */
+typedef NS_ENUM(NSInteger, FBMediaViewRenderingMethod) {
+    /// Automatic selection of rendering method
+    FBMediaViewRenderingMethodDefault,
+    /// Force Metal rendering (only use for devices with support)
+    FBMediaViewRenderingMethodMetal,
+    /// Force OpenGL rendering
+    FBMediaViewRenderingMethodOpenGL,
+    /// Software fallback
+    FBMediaViewRenderingMethodSoftware
+};
+
+/**
+ Test Ad type to be injected when test mode is on
+ */
+typedef NS_ENUM(NSInteger, FBAdTestAdType) {
+    /// This will return a random ad type when test mode is on.
+    FBAdTestAdType_Default,
+    /// 16x9 image ad with app install CTA option
+    FBAdTestAdType_Img_16_9_App_Install,
+    /// 16x9 image ad with link CTA option
+    FBAdTestAdType_Img_16_9_Link,
+    /// 16x9 HD video 46 sec ad with app install CTA option
+    FBAdTestAdType_Vid_HD_16_9_46s_App_Install,
+    /// 16x9 HD video 46 sec ad with link CTA option
+    FBAdTestAdType_Vid_HD_16_9_46s_Link,
+    /// 16x9 HD video 15 sec ad with app install CTA option
+    FBAdTestAdType_Vid_HD_16_9_15s_App_Install,
+    /// 16x9 HD video 15 sec ad with link CTA option
+    FBAdTestAdType_Vid_HD_16_9_15s_Link,
+    /// 9x16 HD video 39 sec ad with app install CTA option
+    FBAdTestAdType_Vid_HD_9_16_39s_App_Install,
+    /// 9x16 HD video 39 sec ad with link CTA option
+    FBAdTestAdType_Vid_HD_9_16_39s_Link,
+    /// carousel ad with square image and app install CTA option
+    FBAdTestAdType_Carousel_Img_Square_App_Install,
+    /// carousel ad with square image and link CTA option
+    FBAdTestAdType_Carousel_Img_Square_Link
+};
+
+@protocol FBAdLoggingDelegate;
+
+/**
+  AdSettings contains global settings for all ad controls.
+ */
+FB_CLASS_EXPORT FB_SUBCLASSING_RESTRICTED
+@interface FBAdSettings : NSObject
+
+/**
+ Controls support for audio-only video playback when the app is backgrounded.  Note that this is only supported
+ when using FBMediaViewVideoRenderer, and requires corresponding support for background audio to be added to
+ the app.  Default value is NO.
+ */
+@property (class, nonatomic, assign, getter=isBackgroundVideoPlaybackAllowed) BOOL backgroundVideoPlaybackAllowed;
+
+/**
+ When test mode is on, setting a non default value for testAdType will
+ requests the specified type of ad.
+ */
+@property (class, nonatomic, assign) FBAdTestAdType testAdType;
+
+/**
+ When this delegate is set, logs will be redirected to the delegate instead of being logged directly to the console with NSLog.
+ This can be used in combination with external logging frameworks.
+ */
+@property (class, nonatomic, weak, nullable) id loggingDelegate;
+
+/**
+ Generates bidder token that needs to be included in the server side bid request to Facebook endpoint.
+ */
+@property (class, nonatomic, copy, readonly) NSString *bidderToken;
+
+/**
+ Returns test mode on/off.
+ */
++ (BOOL)isTestMode;
+
+/**
+  Returns the hashid of the device to use test mode on.
+ */
++ (NSString *)testDeviceHash;
+
+/**
+  Adds a test device.
+
+ - Parameter deviceHash: The id of the device to use test mode, can be obtained from debug log or testDeviceHash
+
+
+
+ Copy the current device Id from debug log and add it as a test device to get test ads. Apps
+ running on emulator will automatically get test ads. Test devices should be added before loadAd is called.
+ */
++ (void)addTestDevice:(NSString *)deviceHash;
+
+/**
+  Add a collection of test devices. See `+addTestDevices:` for details.
+
+ - Parameter devicesHash: The array of the device id to use test mode, can be obtained from debug log or testDeviceHash
+ */
++ (void)addTestDevices:(FB_NSArrayOf(NSString *)*)devicesHash;
+
+/**
+  Clear all the added test devices
+ */
++ (void)clearTestDevices;
+
+/**
+  Clears the added test device
+
+ - Parameter deviceHash: The id of the device using test mode, can be obtained from debug log or testDeviceHash
+ */
++ (void)clearTestDevice:(NSString *)deviceHash;
+
+/**
+  Configures the ad control for treatment as child-directed.
+
+ - Parameter isChildDirected: Indicates whether you would like your ad control to be treated as child-directed
+
+ Note that you may have other legal obligations under the Children's Online Privacy Protection Act (COPPA).
+ Please review the FTC's guidance and consult with your own legal counsel.
+ */
++ (void)setIsChildDirected:(BOOL)isChildDirected;
+
+/**
+  If an ad provided service is mediating Audience Network in their sdk, it is required to set the name of the mediation service
+
+ - Parameter service: Representing the name of the mediation that is mediation Audience Network
+ */
++ (void)setMediationService:(NSString *)service;
+
+/**
+  Gets the url prefix to use when making ad requests.
+
+ This method should never be used in production.
+ */
++ (nullable NSString *)urlPrefix;
+
+/**
+  Sets the url prefix to use when making ad requests.
+
+
+
+ This method should never be used in production.
+ */
++ (void)setUrlPrefix:(nullable NSString *) urlPrefix;
+
+/**
+  Gets the current SDK logging level
+ */
++ (FBAdLogLevel)getLogLevel;
+
+/**
+  Sets the current SDK logging level
+ */
++ (void)setLogLevel:(FBAdLogLevel)level;
+
+/**
+  Gets the FBMediaView rendering method
+ */
++ (FBMediaViewRenderingMethod)mediaViewRenderingMethod;
+
+/**
+  Sets the FBMediaView rendering method
+  - Parameter mediaViewRenderingMethod:
+    FBMediaViewRenderingMethodDefault: SDK chooses optimized rendering method
+    FBMediaViewRenderingMethodMetal: use Metal kit rendering method
+    FBMediaViewRenderingMethodOpenGL: use OpenGL rendering method
+    FBMediaViewRenderingMethodSoftware: use software rendering method
+ */
++ (void)setMediaViewRenderingMethod:(FBMediaViewRenderingMethod)mediaViewRenderingMethod;
+
+@end
+
+@protocol FBAdLoggingDelegate 
+
+- (void)logAtLevel:(FBAdLogLevel)level
+      withFileName:(NSString *)fileName
+    withLineNumber:(int)lineNumber
+      withThreadId:(long)threadId
+          withBody:(NSString *)body;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBAdSize.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBAdSize.h
new file mode 100644
index 00000000..5ce4d22a
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBAdSize.h
@@ -0,0 +1,63 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+#import 
+
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// Represents the ad size.
+struct FBAdSize {
+    /// Internal size
+    CGSize size;
+};
+
+/// Represents the ad size.
+typedef struct FBAdSize FBAdSize;
+
+/**
+  DEPRECATED - Represents the fixed banner ad size - 320pt by 50pt.
+ */
+FB_EXPORT FBAdSize const kFBAdSize320x50;
+
+/**
+  Represents the flexible banner ad size, where banner width depends on
+ its container width, and banner height is fixed as 50pt.
+ */
+FB_EXPORT FBAdSize const kFBAdSizeHeight50Banner;
+
+/**
+  Represents the flexible banner ad size, where banner width depends on
+ its container width, and banner height is fixed as 90pt.
+ */
+FB_EXPORT FBAdSize const kFBAdSizeHeight90Banner;
+
+/**
+  Represents the interstitial ad size.
+ */
+FB_EXPORT FBAdSize const kFBAdSizeInterstitial;
+
+/**
+  Represents the flexible rectangle ad size, where width depends on
+ its container width, and height is fixed as 250pt.
+ */
+FB_EXPORT FBAdSize const kFBAdSizeHeight250Rectangle;
+
+NS_ASSUME_NONNULL_END
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBAdView.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBAdView.h
new file mode 100644
index 00000000..1f98ab00
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBAdView.h
@@ -0,0 +1,149 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+#import 
+
+#import 
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol FBAdViewDelegate;
+
+/**
+  A customized UIView to represent a Facebook ad (a.k.a. banner ad).
+ */
+FB_CLASS_EXPORT
+@interface FBAdView : UIView
+
+/**
+  This is a method to initialize an FBAdView matching the given placement id.
+
+ - Parameter placementID: The id of the ad placement. You can create your placement id from Facebook developers page.
+ - Parameter adSize: The size of the ad; for example, kFBAdSizeHeight50Banner or kFBAdSizeHeight90Banner.
+ - Parameter viewController: The view controller that will be used to present the ad and the app store view.
+ */
+- (instancetype)initWithPlacementID:(NSString *)placementID
+                             adSize:(FBAdSize)adSize
+                 rootViewController:(nullable UIViewController *)rootViewController NS_DESIGNATED_INITIALIZER;
+
+/**
+  Begins loading the FBAdView content.
+
+
+ You can implement `adViewDidLoad:` and `adView:didFailWithError:` methods
+ of `FBAdViewDelegate` if you would like to be notified as loading succeeds or fails.
+ */
+- (void)loadAd;
+
+/**
+ Begins loading the FBAdView content from a bid payload attained through a server side bid.
+
+
+ You can implement `adViewDidLoad:` and `adView:didFailWithError:` methods
+ of `FBAdViewDelegate` if you would like to be notified as loading succeeds or fails.
+
+ - Parameter bidPayload: The payload of the ad bid. You can get your bid id from Facebook bidder endpoint.
+ */
+- (void)loadAdWithBidPayload:(NSString *)bidPayload;
+
+/**
+  This is a method to disable auto refresh for the FBAdView instance
+
+
+ By default, we read the refresh interval from the placement setting in your Facebook
+ developers page. Once you call this method, the auto refresh will be disabled for this FBAdView
+ instance, and you cannot re-enable the refresh for this instance. A new created FBAdView will still
+ use the default behavior.
+
+ This method is designed for ad network mediation. We still recommend you to set the placement
+ refresh interval as 'None' if you're using one of the ad network mediation.
+ */
+- (void)disableAutoRefresh;
+
+/**
+  Typed access to the id of the ad placement.
+ */
+@property (nonatomic, copy, readonly) NSString *placementID;
+/**
+  Typed access to the app's root view controller.
+ */
+@property (nonatomic, weak, readonly, nullable) UIViewController *rootViewController;
+/**
+  the delegate
+ */
+@property (nonatomic, weak, nullable) id delegate;
+
+@end
+
+/**
+  The methods declared by the FBAdViewDelegate protocol allow the adopting delegate to respond
+ to messages from the FBAdView class and thus respond to operations such as whether the ad has
+ been loaded, the person has clicked the ad.
+ */
+@protocol FBAdViewDelegate 
+
+@optional
+
+/**
+  Sent after an ad has been clicked by the person.
+
+ - Parameter adView: An FBAdView object sending the message.
+ */
+- (void)adViewDidClick:(FBAdView *)adView;
+/**
+  When an ad is clicked, the modal view will be presented. And when the user finishes the
+ interaction with the modal view and dismiss it, this message will be sent, returning control
+ to the application.
+
+ - Parameter adView: An FBAdView object sending the message.
+ */
+- (void)adViewDidFinishHandlingClick:(FBAdView *)adView;
+/**
+  Sent when an ad has been successfully loaded.
+
+ - Parameter adView: An FBAdView object sending the message.
+ */
+- (void)adViewDidLoad:(FBAdView *)adView;
+/**
+  Sent after an FBAdView fails to load the ad.
+
+ - Parameter adView: An FBAdView object sending the message.
+ - Parameter error: An error object containing details of the error.
+ */
+- (void)adView:(FBAdView *)adView didFailWithError:(NSError *)error;
+
+/**
+  Sent immediately before the impression of an FBAdView object will be logged.
+
+ - Parameter adView: An FBAdView object sending the message.
+ */
+- (void)adViewWillLogImpression:(FBAdView *)adView;
+
+/**
+  Asks the delegate for a view controller to present modal content, such as the in-app
+ browser that can appear when an ad is clicked.
+
+ - Returns: A view controller that is used to present modal content.
+ */
+@property (nonatomic, readonly, strong) UIViewController *viewControllerForPresentingModalView;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBAudienceNetwork.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBAudienceNetwork.h
new file mode 100644
index 00000000..07858208
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBAudienceNetwork.h
@@ -0,0 +1,42 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+
+#import 
+#import 
+#import 
+#import 
+#import 
+#import 
+#import 
+#import 
+#import 
+#import 
+#import 
+#import 
+#import 
+#import 
+#import 
+#import 
+#import 
+
+// NOTE: Any changes should also be made to the module.modulemap
+// to ensure comptability with Swift apps using Cocoapods
+
+#define FB_AD_SDK_VERSION @"4.28.1"
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBInstreamAdView.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBInstreamAdView.h
new file mode 100644
index 00000000..d9565a86
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBInstreamAdView.h
@@ -0,0 +1,142 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol FBInstreamAdViewDelegate;
+
+/**
+ A customized UIView to display an instream video ad by Facebook.
+ */
+FB_CLASS_EXPORT FB_SUBCLASSING_RESTRICTED
+@interface FBInstreamAdView : UIView
+
+/**
+ Returns YES if the instream ad has been successfully loaded.
+
+ Note that the `adView:didFailWithError:` delegate method will be also be called
+ instead of `adViewDidLoad:` if the ad fails to load for any reason.
+ */
+@property (nonatomic, getter=isAdValid, readonly) BOOL adValid;
+
+/**
+ This property must be set prior to calling `loadAd`, so that delegate method calls
+ are received and handled.
+ */
+@property (nonatomic, weak, nullable) id delegate;
+
+/**
+ Typed access to the id of the ad placement.
+ */
+@property (nonatomic, copy, readonly) NSString *placementID;
+
+/**
+ Initializes and returns a newly allocated FBInstreamAdView object with the
+ given placement id.
+
+ - Parameter placementID: The id of the ad placement. You can create your placement id from Facebook developers page.
+ */
+- (nullable instancetype)initWithPlacementID:(NSString *)placementID NS_DESIGNATED_INITIALIZER;
+
+/**
+ Begins loading ad content.
+
+ You should implement `adViewDidLoad:` and `adView:didFailWithError:` methods
+ of `FBInstreamAdViewDelegate` to be notified when loading succeeds or fails.
+ */
+- (void)loadAd;
+
+/**
+ Begins loading ad content from a bid payload attained through a server side bid.
+
+
+ You can implement `adViewDidLoad:` and `adView:didFailWithError:` methods
+ of `FBInstreamAdViewDelegate` to be notified when loading succeeds or fails.
+
+ - Parameter bidPayload: The payload of the ad bid. You can get your bid id from Facebook bidder endpoint.
+ */
+- (void)loadAdWithBidPayload:(NSString *)bidPayload;
+
+/**
+ Begins ad playback.  This method should only be called after an `adViewDidLoad:` call
+ has been received.
+
+ - Parameter rootViewController: The view controller that will be used to modally
+   present additional view controllers, to render the ad's landing page for example.
+ */
+- (BOOL)showAdFromRootViewController:(nullable UIViewController *)rootViewController;
+
+@end
+
+/**
+ The FBInstreamAdViewDelegate protocol defines methods that allow the owner of an
+ FBInstreamAdView to respond to various stages of ad operation.
+ */
+@protocol FBInstreamAdViewDelegate 
+
+/**
+ Sent when an FBInstreamAdView instance successfully loads an ad.
+
+ - Parameter adView: The FBInstreamAdView object sending the message.
+ */
+- (void)adViewDidLoad:(FBInstreamAdView *)adView;
+
+/**
+ Sent when ad playback has completed and the FBInstreamAdView is ready to be
+ deallocated. This method is mutually exclusive to `adView:didFailWithError:`, and
+ it is impossible for both methods to be received for a single ad session.
+
+ - Parameter adView: The FBInstreamAdView object sending the message.
+ */
+- (void)adViewDidEnd:(FBInstreamAdView *)adView;
+
+/**
+ Sent when ad playback has failed to load or play an ad, and the FBInstreamAdView
+ is ready to be deallocated. It is possible for this method to be called after
+ `loadAd` (if they ad fails to load) or after `showAdFromRootViewController:`
+ (if the ad has a playback failure).
+
+ - Parameter adView: The FBInstreamAdView object sending the message.
+ - Parameter error: An NSError object containing details of the error.
+ */
+- (void)adView:(FBInstreamAdView *)adView didFailWithError:(NSError *)error;
+
+@optional
+
+/**
+ Sent when the user has touched the click-through interface element. The ad's
+ landing page will be shown.
+
+ - Parameter adView: The FBInstreamAdView object sending the message.
+ */
+- (void)adViewDidClick:(FBInstreamAdView *)adView;
+
+/**
+ Sent immediately before the impression of an FBInstreamAdView object will be logged.
+
+ - Parameter adView: The FBInstreamAdView object sending the message.
+ */
+- (void)adViewWillLogImpression:(FBInstreamAdView *)adView;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBInterstitialAd.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBInterstitialAd.h
new file mode 100644
index 00000000..b1617b55
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBInterstitialAd.h
@@ -0,0 +1,149 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+#import 
+
+#import 
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol FBInterstitialAdDelegate;
+
+/**
+  A modal view controller to represent a Facebook interstitial ad. This
+ is a full-screen ad shown in your application.
+ */
+FB_CLASS_EXPORT FB_SUBCLASSING_RESTRICTED
+@interface FBInterstitialAd : NSObject
+
+/**
+  Typed access to the id of the ad placement.
+ */
+@property (nonatomic, copy, readonly) NSString *placementID;
+/**
+  the delegate
+ */
+@property (nonatomic, weak, nullable) id delegate;
+
+/**
+  This is a method to initialize an FBInterstitialAd matching the given placement id.
+
+ - Parameter placementID: The id of the ad placement. You can create your placement id from Facebook developers page.
+ */
+- (instancetype)initWithPlacementID:(NSString *)placementID NS_DESIGNATED_INITIALIZER;
+
+/**
+  Returns true if the interstitial ad has been successfully loaded.
+
+
+ You should check `isAdValid` before trying to show the ad.
+ */
+@property (nonatomic, getter=isAdValid, readonly) BOOL adValid;
+
+/**
+  Begins loading the FBInterstitialAd content.
+
+
+ You can implement `interstitialAdDidLoad:` and `interstitialAd:didFailWithError:` methods
+ of `FBInterstitialAdDelegate` if you would like to be notified as loading succeeds or fails.
+ */
+- (void)loadAd;
+
+/**
+ Begins loading the FBInterstitialAd content from a bid payload attained through a server side bid.
+
+
+ You can implement `adViewDidLoad:` and `adView:didFailWithError:` methods
+ of `FBAdViewDelegate` if you would like to be notified as loading succeeds or fails.
+
+ - Parameter bidPayload: The payload of the ad bid. You can get your bid id from Facebook bidder endpoint.
+ */
+- (void)loadAdWithBidPayload:(NSString *)bidPayload;
+
+/**
+  Presents the interstitial ad modally from the specified view controller.
+
+ - Parameter rootViewController: The view controller that will be used to present the interstitial ad.
+
+
+ You can implement `interstitialAdDidClick:`, `interstitialAdWillClose:` and `interstitialAdWillClose`
+ methods of `FBInterstitialAdDelegate` if you would like to stay informed for thoses events
+ */
+- (BOOL)showAdFromRootViewController:(nullable UIViewController *)rootViewController;
+
+@end
+
+/**
+  The methods declared by the FBInterstitialAdDelegate protocol allow the adopting delegate to respond
+ to messages from the FBInterstitialAd class and thus respond to operations such as whether the
+ interstitial ad has been loaded, user has clicked or closed the interstitial.
+ */
+@protocol FBInterstitialAdDelegate 
+
+@optional
+
+/**
+  Sent after an ad in the FBInterstitialAd object is clicked. The appropriate app store view or
+ app browser will be launched.
+
+ - Parameter interstitialAd: An FBInterstitialAd object sending the message.
+ */
+- (void)interstitialAdDidClick:(FBInterstitialAd *)interstitialAd;
+
+/**
+  Sent after an FBInterstitialAd object has been dismissed from the screen, returning control
+ to your application.
+
+ - Parameter interstitialAd: An FBInterstitialAd object sending the message.
+ */
+- (void)interstitialAdDidClose:(FBInterstitialAd *)interstitialAd;
+
+/**
+  Sent immediately before an FBInterstitialAd object will be dismissed from the screen.
+
+ - Parameter interstitialAd: An FBInterstitialAd object sending the message.
+ */
+- (void)interstitialAdWillClose:(FBInterstitialAd *)interstitialAd;
+
+/**
+  Sent when an FBInterstitialAd successfully loads an ad.
+
+ - Parameter interstitialAd: An FBInterstitialAd object sending the message.
+ */
+- (void)interstitialAdDidLoad:(FBInterstitialAd *)interstitialAd;
+
+/**
+  Sent when an FBInterstitialAd failes to load an ad.
+
+ - Parameter interstitialAd: An FBInterstitialAd object sending the message.
+ - Parameter error: An error object containing details of the error.
+ */
+- (void)interstitialAd:(FBInterstitialAd *)interstitialAd didFailWithError:(NSError *)error;
+
+/**
+  Sent immediately before the impression of an FBInterstitialAd object will be logged.
+
+ - Parameter interstitialAd: An FBInterstitialAd object sending the message.
+ */
+- (void)interstitialAdWillLogImpression:(FBInterstitialAd *)interstitialAd;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBMediaView.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBMediaView.h
new file mode 100644
index 00000000..c897ac8d
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBMediaView.h
@@ -0,0 +1,145 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+
+#import 
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol FBMediaViewDelegate;
+@class FBNativeAd;
+
+/**
+  The FBMediaView loads media content from a given FBNativeAd. This view takes the place of manually loading a cover image.
+ */
+FB_CLASS_EXPORT
+@interface FBMediaView : UIView
+
+/**
+  the delegate
+ */
+@property (nonatomic, weak, nullable) id delegate;
+
+/**
+  This is a method to create a media view using the given native ad.
+ - Parameter nativeAd: The native ad to load media content from.
+ */
+- (instancetype)initWithNativeAd:(FBNativeAd *)nativeAd;
+
+/**
+  the native ad, can be set again to reuse this view.
+ */
+@property (nonatomic, strong) FBNativeAd *nativeAd;
+
+/**
+ A custom FBMediaViewVideoRenderer instance, used to override the default user experience of video ads.
+ */
+@property (nonatomic, strong) FBMediaViewVideoRenderer *videoRenderer;
+
+/**
+  The current volume of the media view, ranging from 0.0 through 1.0.
+ */
+@property (nonatomic, assign, readonly) float volume FB_DEPRECATED;
+
+/**
+  Enables or disables autoplay for some types of media. Defaults to YES.
+ */
+@property (nonatomic, assign, getter=isAutoplayEnabled) BOOL autoplayEnabled;
+
+/**
+ The aspect ratio of the media view visual content. Returns a positive CGFloat, or 0.0 if no ad is currently loaded.
+ */
+@property (nonatomic, assign, readonly) CGFloat aspectRatio;
+
+/**
+ Changes the width of the FBMediaView's frame based on the current height, respecting aspectRatio.
+ */
+- (void)applyNaturalWidth;
+
+/**
+ Changes the height of the FBMediaView's frame based on the current width, respecting aspectRatio.
+ */
+- (void)applyNaturalHeight;
+
+// Setting autoplayEnabled in the SDK is deprecated. Migrate to using server-side control when available.
+- (void)setAutoplayEnabled:(BOOL)autoplayEnabled FB_DEPRECATED;
+
+@end
+
+/**
+  The methods declared by the FBMediaViewDelegate protocol allow the adopting delegate to respond to messages from the FBMediaView class and thus respond to operations such as whether the media content has been loaded.
+ */
+@protocol FBMediaViewDelegate 
+
+@optional
+
+/**
+  Sent when an FBMediaView has been successfully loaded.
+
+ - Parameter mediaView: An FBMediaView object sending the message.
+ */
+- (void)mediaViewDidLoad:(FBMediaView *)mediaView;
+
+/**
+  Sent just before an FBMediaView will enter the fullscreen layout.
+
+ - Parameter mediaView: An FBMediaView object sending the message.
+ */
+- (void)mediaViewWillEnterFullscreen:(FBMediaView *)mediaView;
+
+/**
+  Sent after an FBMediaView has exited the fullscreen layout.
+
+ - Parameter mediaView: An FBMediaView object sending the message.
+ */
+- (void)mediaViewDidExitFullscreen:(FBMediaView *)mediaView;
+
+/**
+  Sent when an FBMediaView has changed the playback volume of a video ad.
+
+ - Parameter mediaView: An FBMediaView object sending the message.
+ - Parameter volume: The current ad video volume (after the volume change).
+ */
+- (void)mediaView:(FBMediaView *)mediaView videoVolumeDidChange:(float)volume;
+
+/**
+  Sent after a video ad in an FBMediaView enters a paused state.
+
+ - Parameter mediaView: An FBMediaView object sending the message.
+ */
+- (void)mediaViewVideoDidPause:(FBMediaView *)mediaView;
+
+/**
+  Sent after a video ad in an FBMediaView enters a playing state.
+
+ - Parameter mediaView: An FBMediaView object sending the message.
+ */
+- (void)mediaViewVideoDidPlay:(FBMediaView *)mediaView;
+
+/**
+  Sent when a video ad in an FBMediaView reaches the end of playback.
+
+ - Parameter mediaView: An FBMediaView object sending the message.
+ */
+- (void)mediaViewVideoDidComplete:(FBMediaView *)mediaView;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBMediaViewVideoRenderer.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBMediaViewVideoRenderer.h
new file mode 100644
index 00000000..cf4a300c
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBMediaViewVideoRenderer.h
@@ -0,0 +1,145 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+#import 
+
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ The FBMediaViewVideoRenderer class allows for customization of the user experience for video ads in FBMediaView. This class should be subclassed, and an instance of that subclass should be passed to the videoRenderer property of an FBMediaView instance.
+ */
+FB_CLASS_EXPORT
+@interface FBMediaViewVideoRenderer : UIView
+
+/**
+ The aspect ratio of the video content. Returns a positive CGFloat, or 0.0 if no ad is currently loaded.
+ */
+@property (nonatomic, assign, readonly) CGFloat aspectRatio;
+
+/**
+ The current video playback time, as a CMTime value.
+ */
+@property (nonatomic, assign, readonly) CMTime currentTime;
+
+/**
+ The duration of the video, as a CMTime value.  Returns kCMTimeIndefinite if no video is loaded.
+ */
+@property (nonatomic, assign, readonly) CMTime duration;
+
+/**
+ Indicates whether the video is currently playing.
+ */
+@property (nonatomic, assign, readonly, getter=isPlaying) BOOL playing;
+
+/**
+ The current volume of the video, ranging from 0.0 through 1.0.
+ */
+@property (nonatomic, assign) float volume;
+
+/**
+ Starts or resumes video playback.
+ */
+- (void)playVideo;
+
+/**
+ Pauses video playback.
+ */
+- (void)pauseVideo;
+
+/**
+ Used to put the video into seek mode.  Video playback halts, and one or more calls to seekVideoToTime: can be made before calling disengageVideoSeek.
+ */
+- (void)engageVideoSeek;
+
+/**
+ Take the video out of seek mode.
+ */
+- (void)disengageVideoSeek;
+
+/**
+ Seeks the video to a particular time location.  Only works after calling `engageVideoSeek`.
+ - Parameter time: The requested time location, expressed as a CMTime value.
+ */
+- (void)seekVideoToTime:(CMTime)time;
+
+/**
+ Requests the periodic invocation of a given block during playback to report changing time.
+ - Parameter interval: The time interval at which the block should be invoked during normal playback, according to progress of the player's current time.
+ - Parameter queue: A serial dispatch queue onto which block should be enqueued.
+ - Parameter block: The block to be invoked periodically.
+ */
+- (nullable id)addPeriodicTimeObserverForInterval:(CMTime)interval
+                                            queue:(dispatch_queue_t)queue
+                                       usingBlock:(void (^)(CMTime time))block;
+
+/**
+ Cancels a previously registered periodic time observer.
+ */
+- (void)removeTimeObserver:(id)observer;
+
+/**
+ Called when the video volume has changed.
+ */
+- (void)videoDidChangeVolume;
+
+/**
+ Called when video content has loaded.
+ */
+- (void)videoDidLoad;
+
+/**
+ Called when video playback was paused.
+ */
+- (void)videoDidPause;
+
+/**
+ Called when video playback has begun or was resumed.
+ */
+- (void)videoDidPlay;
+
+/**
+ Called when seek mode was engaged.
+ */
+- (void)videoDidEngageSeek;
+
+/**
+ Called when a video seek was performed.
+ */
+- (void)videoDidSeek;
+
+/**
+ Called when seek mode was disengaged.
+ */
+- (void)videoDidDisengageSeek;
+
+/**
+ Called when video playback ends.
+ */
+- (void)videoDidEnd;
+
+/**
+ Called when video playback encounters an error.
+ */
+- (void)videoDidFailWithError:(NSError *)error;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAd.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAd.h
new file mode 100644
index 00000000..d7bde273
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAd.h
@@ -0,0 +1,307 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol FBNativeAdDelegate;
+@class FBAdImage;
+
+/**
+ Determines what parts of a native ad's content are cached through FBMediaView
+ */
+typedef NS_OPTIONS(NSInteger, FBNativeAdsCachePolicy) {
+    /// No ad content is cached
+    FBNativeAdsCachePolicyNone = 1 << 0,
+    /// Icon is cached
+    FBNativeAdsCachePolicyIcon = 1 << 1,
+    /// Cover image is cached
+    FBNativeAdsCachePolicyCoverImage = 1 << 2,
+    /// Video is cached
+    FBNativeAdsCachePolicyVideo = 1 << 3,
+    /// AdChoices icon is cached
+    FBNativeAdsCachePolicyAdChoices = 1 << 4,
+    /// All content is cached
+    FBNativeAdsCachePolicyAll = FBNativeAdsCachePolicyCoverImage | FBNativeAdsCachePolicyIcon | FBNativeAdsCachePolicyVideo | FBNativeAdsCachePolicyAdChoices,
+};
+
+/**
+ The FBNativeAd represents ad metadata to allow you to construct custom ad views.
+  See the AdUnitsSample in the sample apps section of the Audience Network framework.
+ */
+FB_CLASS_EXPORT FB_SUBCLASSING_RESTRICTED
+@interface FBNativeAd : NSObject
+
+/**
+  Typed access to the id of the ad placement.
+ */
+@property (nonatomic, copy, readonly) NSString *placementID;
+/**
+  Typed access to the ad star rating. See `FBAdStarRating` for details.
+ */
+@property (nonatomic, assign, readonly) struct FBAdStarRating starRating FB_DEPRECATED;
+/**
+  Typed access to the ad title.
+ */
+@property (nonatomic, copy, readonly, nullable) NSString *title;
+/**
+  Typed access to the ad subtitle.
+ */
+@property (nonatomic, copy, readonly, nullable) NSString *subtitle;
+/**
+  Typed access to the ad social context, for example "Over half a million users".
+ */
+@property (nonatomic, copy, readonly, nullable) NSString *socialContext;
+/**
+  Typed access to the call to action phrase of the ad, for example "Install Now".
+ */
+@property (nonatomic, copy, readonly, nullable) NSString *callToAction;
+/**
+  Typed access to the ad icon. See `FBAdImage` for details.
+ */
+@property (nonatomic, strong, readonly, nullable) FBAdImage *icon;
+/**
+  Typed access to the ad cover image creative. See `FBAdImage` for details.
+ */
+@property (nonatomic, strong, readonly, nullable) FBAdImage *coverImage;
+/**
+  Typed access to the body raw untruncated text, usually a longer description of the ad. Note, this method always returns untruncated text, as opposed to -(NSString *) body.
+ */
+@property (nonatomic, copy, readonly, nullable) NSString *rawBody;
+/**
+  Typed access to the body text, usually a longer description of the ad.
+ */
+@property (nonatomic, copy, readonly, nullable) NSString *body;
+/**
+ Typed access to the AdChoices icon. See `FBAdImage` for details. See `FBAdChoicesView` for an included implementation.
+ */
+@property (nonatomic, strong, readonly, nullable) FBAdImage *adChoicesIcon;
+/**
+ Typed access to the AdChoices URL. Navigate to this link when the icon is tapped. See `FBAdChoicesView` for an included implementation.
+ */
+@property (nonatomic, copy, readonly, nullable) NSURL *adChoicesLinkURL;
+/**
+ Typed access to the AdChoices text, usually a localized version of "AdChoices". See `FBAdChoicesView` for an included implementation.
+ */
+@property (nonatomic, copy, readonly, nullable) NSString *adChoicesText;
+
+/**
+  Set the native ad caching policy. This controls which media (images, video, etc) from the native ad are cached before the native ad calls nativeAdLoaded on its delegate. The default is to not block on caching. Ensure that media is loaded through FBMediaView or through [FBAdImage loadImageAsyncWithBlock:] to take full advantage of caching.
+ */
+@property (nonatomic, assign) FBNativeAdsCachePolicy mediaCachePolicy;
+/**
+  the delegate
+ */
+@property (nonatomic, weak, nullable) id delegate;
+
+/**
+  This is a method to initialize a FBNativeAd object matching the given placement id.
+
+ - Parameter placementID: The id of the ad placement. You can create your placement id from Facebook developers page.
+ */
+- (instancetype)initWithPlacementID:(NSString *)placementID NS_DESIGNATED_INITIALIZER;
+
+/**
+  This is a method to associate a FBNativeAd with the UIView you will use to display the native ads.
+
+ - Parameter view: The UIView you created to render all the native ads data elements.
+ - Parameter viewController: The UIViewController that will be used to present SKStoreProductViewController
+ (iTunes Store product information) or the in-app browser. If nil is passed, the top view controller currently shown will be used.
+
+
+ The whole area of the UIView will be clickable.
+ */
+- (void)registerViewForInteraction:(UIView *)view
+                withViewController:(nullable UIViewController *)viewController;
+
+/**
+  This is a method to associate FBNativeAd with the UIView you will use to display the native ads
+  and set clickable areas.
+
+ - Parameter view: The UIView you created to render all the native ads data elements.
+ - Parameter viewController: The UIViewController that will be used to present SKStoreProductViewController
+ (iTunes Store product information). If nil is passed, the top view controller currently shown will be used.
+ - Parameter clickableViews: An array of UIView you created to render the native ads data element, e.g.
+ CallToAction button, Icon image, which you want to specify as clickable.
+ */
+- (void)registerViewForInteraction:(UIView *)view
+                withViewController:(nullable UIViewController *)viewController
+                withClickableViews:(FB_NSArrayOf(UIView *)*)clickableViews;
+
+/**
+  This is a method to disconnect a FBNativeAd with the UIView you used to display the native ads.
+ */
+- (void)unregisterView;
+
+/**
+  Begins loading the FBNativeAd content.
+
+  You can implement `nativeAdDidLoad:` and `nativeAd:didFailWithError:` methods
+  of `FBNativeAdDelegate` if you would like to be notified as loading succeeds or fails.
+ */
+- (void)loadAd;
+
+/**
+  Begins loading the FBNativeAd content from a bid payload attained through a server side bid.
+
+ - Parameter bidPayload: The payload of the ad bid. You can get your bid payload from Facebook bidder endpoint.
+ */
+- (void)loadAdWithBidPayload:(NSString *)bidPayload;
+
+/**
+  Call isAdValid to check whether native ad is valid & internal consistent prior rendering using its properties. If
+  rendering is done as part of the loadAd callback, it is guarantee to be consistent
+ */
+@property (nonatomic, getter=isAdValid, readonly) BOOL adValid;
+
+@property (nonatomic, copy, readonly, nullable, getter=getAdNetwork) NSString *adNetwork;
+
+@end
+
+/**
+  The methods declared by the FBNativeAdDelegate protocol allow the adopting delegate to respond to messages
+ from the FBNativeAd class and thus respond to operations such as whether the native ad has been loaded.
+ */
+@protocol FBNativeAdDelegate 
+
+@optional
+
+/**
+  Sent when an FBNativeAd has been successfully loaded.
+
+ - Parameter nativeAd: An FBNativeAd object sending the message.
+ */
+- (void)nativeAdDidLoad:(FBNativeAd *)nativeAd;
+
+/**
+  Sent immediately before the impression of an FBNativeAd object will be logged.
+
+ - Parameter nativeAd: An FBNativeAd object sending the message.
+ */
+- (void)nativeAdWillLogImpression:(FBNativeAd *)nativeAd;
+
+/**
+  Sent when an FBNativeAd is failed to load.
+
+ - Parameter nativeAd: An FBNativeAd object sending the message.
+ - Parameter error: An error object containing details of the error.
+ */
+- (void)nativeAd:(FBNativeAd *)nativeAd didFailWithError:(NSError *)error;
+
+/**
+  Sent after an ad has been clicked by the person.
+
+ - Parameter nativeAd: An FBNativeAd object sending the message.
+ */
+- (void)nativeAdDidClick:(FBNativeAd *)nativeAd;
+
+/**
+  When an ad is clicked, the modal view will be presented. And when the user finishes the
+ interaction with the modal view and dismiss it, this message will be sent, returning control
+ to the application.
+
+ - Parameter nativeAd: An FBNativeAd object sending the message.
+ */
+- (void)nativeAdDidFinishHandlingClick:(FBNativeAd *)nativeAd;
+
+@end
+
+/**
+  Represents the Facebook ad star rating, which contains the rating value and rating scale.
+ */
+FB_EXPORT struct FBAdStarRating {
+    /// The value of the star rating, X in X/5
+    CGFloat value;
+    /// The total possible star rating, Y in 4/Y
+    NSInteger scale;
+} FBAdStarRating;
+
+/**
+  Represents an image creative.
+ */
+FB_CLASS_EXPORT
+@interface FBAdImage : NSObject
+
+/**
+  Typed access to the image url.
+ */
+@property (nonatomic, copy, readonly) NSURL *url;
+/**
+  Typed access to the image width.
+ */
+@property (nonatomic, assign, readonly) NSInteger width;
+/**
+  Typed access to the image height.
+ */
+@property (nonatomic, assign, readonly) NSInteger height;
+
+/**
+  This is a method to initialize an FBAdImage.
+
+ - Parameter url: the image url.
+ - Parameter width: the image width.
+ - Parameter height: the image height.
+ */
+- (instancetype)initWithURL:(NSURL *)url
+                      width:(NSInteger)width
+                     height:(NSInteger)height NS_DESIGNATED_INITIALIZER;
+
+/**
+  Loads an image from self.url over the network, or returns the cached image immediately.
+
+ - Parameter block: Block to handle the loaded image.
+ */
+- (void)loadImageAsyncWithBlock:(nullable void (^)(UIImage * __nullable image))block;
+
+@end
+
+/**
+  Helper view that draws a star rating based off a native ad.
+ */
+FB_CLASS_EXPORT FB_DEPRECATED
+@interface FBAdStarRatingView : UIView
+
+/**
+  The current rating from an FBNativeAd. When set, updates the view.
+ */
+@property (nonatomic, assign) struct FBAdStarRating rating FB_DEPRECATED;
+
+/**
+  The color drawn for filled-in stars. Defaults to yellow.
+ */
+@property (strong, nonatomic) UIColor *primaryColor FB_DEPRECATED;
+
+/**
+  The color drawn for empty stars. Defaults to gray.
+ */
+@property (strong, nonatomic) UIColor *secondaryColor FB_DEPRECATED;
+
+/**
+  Initializes a star rating view with a given frame and star rating.
+
+ - Parameter frame: Frame of this view.
+ - Parameter starRating: Star rating from a native ad.
+ */
+- (instancetype)initWithFrame:(CGRect)frame withStarRating:(struct FBAdStarRating)starRating NS_DESIGNATED_INITIALIZER FB_DEPRECATED;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdCollectionViewAdProvider.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdCollectionViewAdProvider.h
new file mode 100644
index 00000000..e18d37c8
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdCollectionViewAdProvider.h
@@ -0,0 +1,84 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+#import 
+
+#import 
+#import 
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+  Additional functionality on top of FBNativeAdsManager to assist in using native ads within a UICollectionView. This class contains a mechanism to map indexPaths to native ads in a stable manner as well as helpers which assist in doing the math to include ads at a regular interval within a collection view.
+ */
+FB_CLASS_EXPORT
+@interface FBNativeAdCollectionViewAdProvider : NSObject
+
+/**
+  Passes delegate methods from FBNativeAd. Separate delegate calls will be made for each native ad contained.
+ */
+@property (nonatomic, weak, nullable) id delegate;
+
+/**
+  Create a FBNativeAdCollectionViewAdProvider.
+
+ - Parameter manager: The FBNativeAdsManager which is consumed by this class.
+ */
+- (instancetype)initWithManager:(FBNativeAdsManager *)manager NS_DESIGNATED_INITIALIZER;
+
+/**
+  Retrieve a native ad for an indexPath, will return the same ad for a given indexPath until the native ads manager is refreshed. This method is intended for usage with a collection view and specifically the caller is recommended to wait until  collectionView:cellForRowAtIndexPath: to ensure getting the best native ad for the given collection cell.
+
+ - Parameter collectionView: The collectionView where native ad will be used
+ - Parameter indexPath: The indexPath to use as a key for this native ad
+ - Returns: A FBNativeAd which is loaded and ready to be used.
+ */
+- (FBNativeAd *)collectionView:(UICollectionView *)collectionView nativeAdForRowAtIndexPath:(NSIndexPath *)indexPath;
+
+/**
+  Support for evenly distributed native ads within a collection view. Computes whether this cell is an ad or not.
+
+ - Parameter indexPath: The indexPath of the cell within the collection view
+ - Parameter stride: The frequency that native ads are to appear within the collection view
+ - Returns: Boolean indicating whether the cell at the path is an ad
+ */
+- (BOOL)isAdCellAtIndexPath:(NSIndexPath *)indexPath forStride:(NSUInteger)stride;
+
+/**
+  Support for evenly distributed native ads within a collection view. Adjusts a non-ad cell indexPath to the indexPath it would be in a collection with no ads.
+
+ - Parameter indexPath: The indexPath to of the non-ad cell
+ - Parameter stride: The frequency that native ads are to appear within the collection view
+ - Returns: An indexPath adjusted to what it would be in a collection view with no ads
+ */
+- (NSIndexPath *)adjustNonAdCellIndexPath:(NSIndexPath *)indexPath forStride:(NSUInteger)stride;
+
+/**
+  Support for evenly distributed native ads within a collection view. Adjusts the total count of cells within the collection view to account for the ad cells.
+
+ - Parameter count: The count of cells in the collection view not including ads
+ - Parameter stride: The frequency that native ads are to appear within the collection view
+ - Returns: The total count of cells within the collection view including both ad and non-ad cells
+ */
+- (NSUInteger)adjustCount:(NSUInteger)count forStride:(NSUInteger)stride;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdCollectionViewCellProvider.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdCollectionViewCellProvider.h
new file mode 100644
index 00000000..6593f674
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdCollectionViewCellProvider.h
@@ -0,0 +1,65 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+#import 
+
+#import 
+#import 
+#import 
+#import 
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+  Class which assists in putting FBNativeAdViews into UICollectionViews. This class manages the creation of UICollectionViewCells which host native ad views. Functionality is provided to create UICollectionCellViews as needed for a given indexPath as well as computing the height of the cells.
+ */
+FB_CLASS_EXPORT FB_SUBCLASSING_RESTRICTED
+@interface FBNativeAdCollectionViewCellProvider : FBNativeAdCollectionViewAdProvider
+
+/**
+  Method to create a FBNativeAdCollectionViewCellProvider.
+
+ - Parameter manager: The naitve ad manager consumed by this provider
+ - Parameter type: The type of this native ad template. For more information, consult FBNativeAdViewType.
+ */
+- (instancetype)initWithManager:(FBNativeAdsManager *)manager forType:(FBNativeAdViewType)type;
+
+/**
+  Method to create a FBNativeAdCollectionViewCellProvider.
+
+ - Parameter manager: The naitve ad manager consumed by this provider
+ - Parameter type: The type of this native ad template. For more information, consult FBNativeAdViewType.
+ - Parameter attributes: The layout of this native ad template. For more information, consult FBNativeAdViewLayout.
+ */
+- (instancetype)initWithManager:(FBNativeAdsManager *)manager forType:(FBNativeAdViewType)type forAttributes:(FBNativeAdViewAttributes *)attributes NS_DESIGNATED_INITIALIZER;
+
+/**
+  Helper method for implementors of UICollectionViewDataSource who would like to host native ad UICollectionViewCells in their collection view.
+ */
+- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;
+
+/**
+  Helper method for implementors of UICollectionViewDelegate who would like to host native ad UICollectionViewCells in their collection view.
+ */
+- (CGFloat)collectionView:(UICollectionView *)collectionView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdScrollView.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdScrollView.h
new file mode 100644
index 00000000..72099347
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdScrollView.h
@@ -0,0 +1,120 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+
+#import 
+#import 
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol FBNativeAdView;
+
+/**
+  Contains multiple ads in a scroll view.
+
+
+ If adding this view to a XIB or Storyboard, you may recieve the error "Unknown class FBNativeAdScrollView in Interface Builder file" in some cases. This error is caused by the linker failing to include FBNativeAdScrollView in your build. To resolve this, call [FBNativeAdScrollView class] in your project, or add "-all_load -ObjC" to "Other Linker Flags" in your project settings.
+ */
+FB_CLASS_EXPORT FB_SUBCLASSING_RESTRICTED
+@interface FBNativeAdScrollView : UIView
+
+/**
+  Maximum native ads that this scroll view will load. Defaults to 10. If changed after calling loadAds, all current ads will be discarded and loadAds must be called again.
+ */
+@property (nonatomic, assign, readonly) NSUInteger maximumNativeAdCount;
+
+/**
+  Toggles animating the loaded views. Default is YES.
+ */
+@property (nonatomic, assign, getter=isAnimationEnabled) BOOL animationEnabled;
+
+/**
+  Horizontal inset for views in the scroll view. Defaults to 8 points.
+ */
+@property (nonatomic, assign) CGFloat xInset;
+
+/**
+  Reloads the same ads for the same manager. Default is NO.
+ */
+@property (nonatomic, assign, getter=isAdPersistenceEnabled) BOOL adPersistenceEnabled;
+
+/**
+  A view controller that is used to present modal content. If nil, the view searches for a view controller.
+ */
+@property (nonatomic, weak, nullable) UIViewController *rootViewController;
+
+/**
+  Passes delegate methods from FBNativeAd. Separate delegate calls will be made for each native ad contained.
+ */
+@property (nonatomic, weak, nullable) id delegate;
+
+/**
+  Creates a native ad horizontal scroll view for a given native ads manager and native ad template. The manager can be preloaded with ads, and loadAds will use the preloaded ads from the manager. Otherwise, the scroll view uses the manager to load ads normally.
+ - Parameter manager: An instance of FBNativeAdManager. Can be preloaded with ads.
+ - Parameter type: The type of this native ad template. For more information, consult FBNativeAdViewType.
+ */
+- (instancetype)initWithNativeAdsManager:(FBNativeAdsManager *)manager
+                                withType:(FBNativeAdViewType)type;
+
+
+/**
+  Creates a native ad horizontal scroll view for a given native ads manager and native ad template. The manager can be preloaded with ads, and loadAds will use the preloaded ads from the manager. Otherwise, the scroll view uses the manager to load ads normally.
+ - Parameter manager: An instance of FBNativeAdManager. Can be preloaded with ads.
+ - Parameter type: The type of this native ad template. For more information, consult FBNativeAdViewType.
+ - Parameter attributes: The layout of this native ad template. For more information, consult FBNativeAdViewLayout.
+ */
+- (instancetype)initWithNativeAdsManager:(FBNativeAdsManager *)manager
+                                withType:(FBNativeAdViewType)type
+                          withAttributes:(FBNativeAdViewAttributes *)attributes;
+
+/**
+  Creates a native ad horizontal scroll view for a given native ads manager and native ad template. The manager can be preloaded with ads, and loadAds will use the preloaded ads from the manager. Otherwise, the scroll view uses the manager to load ads normally.
+ - Parameter manager: An instance of FBNativeAdManager. Can be preloaded with ads.
+ - Parameter type: The type of this native ad template. For more information, consult FBNativeAdViewType.
+ - Parameter attributes: The layout of this native ad template. For more information, consult FBNativeAdViewLayout.
+ - Parameter maximumNativeAdCount: Maximum native ads to show at once.
+ */
+- (instancetype)initWithNativeAdsManager:(FBNativeAdsManager *)manager
+                                withType:(FBNativeAdViewType)type
+                          withAttributes:(FBNativeAdViewAttributes *)attributes
+                             withMaximum:(NSUInteger)maximumNativeAdCount;
+
+
+/**
+  This is a method to create a native ad horizontal scroll view from a user provided view.
+ - Parameter manager: An instance of FBNativeAdManager. Can be preloaded with ads.
+ - Parameter childViewProvider: Block that creates new views for each loaded native ad. Must not reuse the same instance, but return a new view for each call. Views may be arbitrarily resized and should support resizing their content through Auto Layout constraints, autoresizing masks, or manual resizing.
+ */
+- (instancetype)initWithNativeAdsManager:(FBNativeAdsManager *)manager
+                        withViewProvider:(UIView *(^)( FBNativeAd *nativeAd, NSUInteger position))childViewProvider;
+
+/**
+  This is a method to create a native ad horizontal scroll view from a user provided view.
+ - Parameter manager: An instance of FBNativeAdManager. Can be preloaded with ads.
+ - Parameter childViewProvider: Block that creates new views for each loaded native ad. Must not reuse the same instance, but return a new view for each call. Views may be arbitrarily resized and should support resizing their content through Auto Layout constraints, autoresizing masks, or manual resizing.
+ - Parameter maximumNativeAdCount: Maximum native ads to show at once.
+ */
+- (instancetype)initWithNativeAdsManager:(FBNativeAdsManager *)manager
+                        withViewProvider:(UIView *(^)(FBNativeAd *nativeAd, NSUInteger position))childViewProvider
+                             withMaximum:(NSUInteger)maximumNativeAdCount NS_DESIGNATED_INITIALIZER;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdTableViewAdProvider.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdTableViewAdProvider.h
new file mode 100644
index 00000000..fbc17504
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdTableViewAdProvider.h
@@ -0,0 +1,84 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+#import 
+
+#import 
+#import 
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+  Additional functionality on top of FBNativeAdsManager to assist in using native ads within a UITableView. This class contains a mechanism to map indexPaths to native ads in a stable manner as well as helpers which assist in doing the math to include ads at a regular interval within a table view.
+ */
+FB_CLASS_EXPORT
+@interface FBNativeAdTableViewAdProvider : NSObject
+
+/**
+  Passes delegate methods from FBNativeAd. Separate delegate calls will be made for each native ad contained.
+ */
+@property (nonatomic, weak, nullable) id delegate;
+
+/**
+  Create a FBNativeAdTableViewAdProvider.
+
+ - Parameter manager: The FBNativeAdsManager which is consumed by this class.
+ */
+- (instancetype)initWithManager:(FBNativeAdsManager *)manager NS_DESIGNATED_INITIALIZER;
+
+/**
+  Retrieve a native ad for an indexPath, will return the same ad for a given indexPath until the native ads manager is refreshed. This method is intended for usage with a table view and specifically the caller is recommended to wait until  tableView:cellForRowAtIndexPath: to ensure getting the best native ad for the given table cell.
+
+ - Parameter tableView: The tableView where native ad will be used
+ - Parameter indexPath: The indexPath to use as a key for this native ad
+ - Returns: A FBNativeAd which is loaded and ready to be used.
+ */
+- (FBNativeAd *)tableView:(UITableView *)tableView nativeAdForRowAtIndexPath:(NSIndexPath *)indexPath;
+
+/**
+  Support for evenly distributed native ads within a table view. Computes whether this cell is an ad or not.
+
+ - Parameter indexPath: The indexPath of the cell within the table view
+ - Parameter stride: The frequency that native ads are to appear within the table view
+ - Returns: Boolean indicating whether the cell at the path is an ad
+ */
+- (BOOL)isAdCellAtIndexPath:(NSIndexPath *)indexPath forStride:(NSUInteger)stride;
+
+/**
+  Support for evenly distributed native ads within a table view. Adjusts a non-ad cell indexPath to the indexPath it would be in a collection with no ads.
+
+ - Parameter indexPath: The indexPath to of the non-ad cell
+ - Parameter stride: The frequency that native ads are to appear within the table view
+ - Returns: An indexPath adjusted to what it would be in a table view with no ads
+ */
+- (NSIndexPath *)adjustNonAdCellIndexPath:(NSIndexPath *)indexPath forStride:(NSUInteger)stride;
+
+/**
+  Support for evenly distributed native ads within a table view. Adjusts the total count of cells within the table view to account for the ad cells.
+
+ - Parameter count: The count of cells in the table view not including ads
+ - Parameter stride: The frequency that native ads are to appear within the table view
+ - Returns: The total count of cells within the table view including both ad and non-ad cells
+ */
+- (NSUInteger)adjustCount:(NSUInteger)count forStride:(NSUInteger)stride;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdTableViewCellProvider.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdTableViewCellProvider.h
new file mode 100644
index 00000000..2a1bbb26
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdTableViewCellProvider.h
@@ -0,0 +1,70 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+#import 
+
+#import 
+#import 
+#import 
+#import 
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+  Class which assists in putting FBNativeAdViews into UITableViews. This class manages the creation of UITableViewCells which host native ad views. Functionality is provided to create UITableCellViews as needed for a given indexPath as well as computing the height of the cells.
+ */
+FB_CLASS_EXPORT FB_SUBCLASSING_RESTRICTED
+@interface FBNativeAdTableViewCellProvider : FBNativeAdTableViewAdProvider
+
+/**
+  Method to create a FBNativeAdTableViewCellProvider.
+
+ - Parameter manager: The naitve ad manager consumed by this provider
+ - Parameter type: The type of this native ad template. For more information, consult FBNativeAdViewType.
+ */
+- (instancetype)initWithManager:(FBNativeAdsManager *)manager forType:(FBNativeAdViewType)type;
+
+/**
+  Method to create a FBNativeAdTableViewCellProvider.
+
+ - Parameter manager: The naitve ad manager consumed by this provider
+ - Parameter type: The type of this native ad template. For more information, consult FBNativeAdViewType.
+ - Parameter attributes: The layout of this native ad template. For more information, consult FBNativeAdViewLayout.
+ */
+- (instancetype)initWithManager:(FBNativeAdsManager *)manager forType:(FBNativeAdViewType)type forAttributes:(FBNativeAdViewAttributes *)attributes NS_DESIGNATED_INITIALIZER;
+
+/**
+  Helper method for implementors of UITableViewDataSource who would like to host native ad UITableViewCells in their table view.
+ */
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
+
+/**
+  Helper method for implementors of UITableViewDelegate who would like to host native ad UITableViewCells in their table view.
+ */
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
+
+/**
+  Helper method for implementors of UITableViewDelegate who would like to host native ad UITableViewCells in their table view.
+ */
+- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdView.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdView.h
new file mode 100644
index 00000000..df826d81
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdView.h
@@ -0,0 +1,136 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+
+#import 
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class FBNativeAdViewAttributes;
+
+/**
+ Determines the type of native ad template. Different views are created
+ for different values of FBNativeAdViewType
+ */
+typedef NS_ENUM(NSInteger, FBNativeAdViewType) {
+    /// Fixed height view, 100 points (banner equivalent)
+    FBNativeAdViewTypeGenericHeight100 = 1,
+    /// Fixed height view, 120 points (banner equivalent)
+    FBNativeAdViewTypeGenericHeight120,
+    /// Fixed height view, 300 points
+    FBNativeAdViewTypeGenericHeight300,
+    /// Fixed height view, 400 points
+    FBNativeAdViewTypeGenericHeight400,
+};
+
+/**
+  The FBNativeAdView creates prebuilt native ad template views and manages native ads.
+ */
+FB_CLASS_EXPORT
+@interface FBNativeAdView : UIView
+
+/**
+  The type of the view, specifies which template to use
+ */
+@property (nonatomic, assign, readonly) FBNativeAdViewType type;
+
+/**
+  This is a method to create a native ad template using the given placement id and type.
+ - Parameter nativeAd: The native ad to use to create this view.
+ - Parameter type: The type of this native ad template. For more information, consult FBNativeAdViewType.
+ */
++ (instancetype)nativeAdViewWithNativeAd:(FBNativeAd *)nativeAd withType:(FBNativeAdViewType)type;
+
+/**
+  A view controller that is used to present modal content. If nil, the view searches for a view controller.
+ */
+@property (nonatomic, weak, nullable) UIViewController *rootViewController;
+
+/**
+  This is a method to create a native ad template using the given placement id and type.
+ - Parameter nativeAd: The native ad to use to create this view.
+ - Parameter type: The type of this native ad template. For more information, consult FBNativeAdViewType.
+ - Parameter attributes: The attributes to render this native ad template with.
+ */
++ (instancetype)nativeAdViewWithNativeAd:(FBNativeAd *)nativeAd withType:(FBNativeAdViewType)type withAttributes:(FBNativeAdViewAttributes *)attributes;
+
+@end
+
+/**
+  Describes the look and feel of a native ad view.
+ */
+@interface FBNativeAdViewAttributes : NSObject 
+
+/**
+  This is a method to create native ad view attributes with a dictionary
+ */
+- (instancetype)initWithDictionary:(NSDictionary *) dict NS_DESIGNATED_INITIALIZER;
+
+/**
+  Background color of the native ad view.
+ */
+@property (nonatomic, copy, nullable) UIColor *backgroundColor;
+/**
+  Color of the title label.
+ */
+@property (nonatomic, copy, nullable) UIColor *titleColor;
+/**
+  Font of the title label.
+ */
+@property (nonatomic, copy, nullable) UIFont *titleFont;
+/**
+  Color of the description label.
+ */
+@property (nonatomic, copy, nullable) UIColor *descriptionColor;
+/**
+  Font of the description label.
+ */
+@property (nonatomic, copy, nullable) UIFont *descriptionFont;
+/**
+  Background color of the call to action button.
+ */
+@property (nonatomic, copy, nullable) UIColor *buttonColor;
+/**
+  Color of the call to action button's title label.
+ */
+@property (nonatomic, copy, nullable) UIColor *buttonTitleColor;
+/**
+  Font of the call to action button's title label.
+ */
+@property (nonatomic, copy, nullable) UIFont *buttonTitleFont;
+/**
+  Border color of the call to action button. If nil, no border is shown.
+ */
+@property (nonatomic, copy, nullable) UIColor *buttonBorderColor;
+/**
+  Enables or disables autoplay for some types of media. Defaults to YES.
+ */
+@property (nonatomic, assign, getter=isAutoplayEnabled) BOOL autoplayEnabled;
+
+/**
+  Returns default attributes for a given type.
+
+ - Parameter type: The type for this layout.
+ */
++ (instancetype)defaultAttributesForType:(FBNativeAdViewType)type;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdsManager.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdsManager.h
new file mode 100644
index 00000000..82cf24a4
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBNativeAdsManager.h
@@ -0,0 +1,102 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+
+#import 
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ @protocol FBNativeAdsManagerDelegate
+
+  Messages from FBNativeAdsManager indicating success or failure loading ads.
+ */
+@protocol FBNativeAdsManagerDelegate 
+
+/**
+  When the FBNativeAdsManager has finished loading a batch of ads this message will be sent. A batch of ads may be loaded in response to calling loadAds or due to an automatic refresh by the FBNativeAdsManager. At the point this message is fired all of the native ads will already be loaded and will not hence send their own nativeAdLoad: or nativeAd:didFailWithError: message.
+
+ */
+- (void)nativeAdsLoaded;
+
+/**
+  When the FBNativeAdsManager has reached a failure while attempting to load a batch of ads this message will be sent to the application.
+ - Parameter error: An NSError object with information about the failure.
+ */
+- (void)nativeAdsFailedToLoadWithError:(NSError *)error;
+
+@end
+
+/**
+  This class provides a mechanism to fetch a set of ads and then use them within your application. The recommended usage is to call nextNativeAd: at the moment when you are about to render an ad. The native ads manager supports giving out as many ads as needed by cloning over the set of ads it got back from the server which can be useful for feed scenarios.
+ */
+FB_CLASS_EXPORT FB_SUBCLASSING_RESTRICTED
+@interface FBNativeAdsManager : NSObject
+
+/**
+  The delegate
+ */
+@property (nonatomic, weak, nullable) id delegate;
+
+/**
+  Set the native ads manager caching policy. This controls which media from the native ads are cached before the native ads manager calls nativeAdsLoaded on its delegate. The default is to not block on caching.
+ */
+@property (nonatomic, assign) FBNativeAdsCachePolicy mediaCachePolicy;
+
+/**
+  Number of unique native ads that can be accessed through nextNativeAd:. This is not valid until the nativeAdsLoaded: message has been sent.
+ */
+@property (nonatomic, assign, readonly) NSUInteger uniqueNativeAdCount;
+
+/**
+  Returns YES after nativeAdsLoaded: message has been sent.
+ */
+@property (nonatomic, assign, getter=isValid, readonly) BOOL valid;
+
+/**
+  Initialize the native ads manager.
+
+ - Parameter placementID: The id of the ad placement. You can create your placement id from Facebook developers page.
+ - Parameter numAdsRequested: The number of ads you would like the native ads manager to retrieve.
+ */
+- (instancetype)initWithPlacementID:(NSString *)placementID
+                 forNumAdsRequested:(NSUInteger)numAdsRequested NS_DESIGNATED_INITIALIZER;
+
+/**
+  The method that kicks off the loading of ads. It may be called again in the future to refresh the ads manually.
+ */
+- (void)loadAds;
+
+/**
+  By default the native ads manager will refresh its ads periodically. This does not mean that any ads which are shown in the application's UI will be refreshed but simply that calling nextNativeAd: may return different ads at different times. This method disables that functionality.
+ */
+- (void)disableAutoRefresh;
+
+
+/**
+  Retrieve the next native ad to be used from the batch. It is highly recommended that the caller wait until immediately before rendering the ad content to call this method to ensure the best ad for the given context is used. If more than uniqueNativeAdCount ads are requested cloned ads will be returned. Periodically the native ads manager will refresh and new ads will be returned.
+
+ - Returns: A FBNativeAd which is loaded and ready to be used.
+ */
+@property (nonatomic, readonly, strong, nullable) FBNativeAd *nextNativeAd;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/ios/platform/FBAudienceNetwork.framework/Headers/FBRewardedVideoAd.h b/ios/platform/FBAudienceNetwork.framework/Headers/FBRewardedVideoAd.h
new file mode 100644
index 00000000..e33a2896
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Headers/FBRewardedVideoAd.h
@@ -0,0 +1,211 @@
+// Copyright 2004-present Facebook. All Rights Reserved.
+//
+// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+// copy, modify, and distribute this software in source code or binary form for use
+// in connection with the web services and APIs provided by Facebook.
+//
+// As with any software that integrates with the Facebook platform, your use of
+// this software is subject to the Facebook Developer Principles and Policies
+// [http://developers.facebook.com/policy/]. This copyright notice shall be
+// included in all copies or substantial portions of the software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#import 
+#import 
+#import 
+
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol FBRewardedVideoAdDelegate;
+
+/**
+  A modal view controller to represent a Facebook rewarded video ad. This
+ is a full-screen ad shown in your application.
+ */
+FB_CLASS_EXPORT FB_SUBCLASSING_RESTRICTED
+@interface FBRewardedVideoAd : NSObject
+
+/**
+  Typed access to the id of the ad placement.
+ */
+@property (nonatomic, copy, readonly) NSString *placementID;
+
+/**
+  The duration of the video, as a CMTime value.  Returns kCMTimeIndefinite if no video is loaded.
+ */
+@property (nonatomic, assign, readonly) CMTime duration;
+
+/**
+  the delegate
+ */
+@property (nonatomic, weak, nullable) id delegate;
+
+/**
+  Returns true if the rewarded video ad has been successfully loaded.
+
+
+ You should check `isAdValid` before trying to show the ad.
+ */
+@property (nonatomic, getter=isAdValid, readonly) BOOL adValid;
+
+/**
+  This is a method to initialize an FBRewardedVideoAd matching the given placement id.
+
+ - Parameter placementID: The id of the ad placement. You can create your placement id from Facebook developers page.
+ */
+- (instancetype)initWithPlacementID:(NSString *)placementID;
+
+/**
+  This is a method to initialize an FBRewardedVideoAd matching the given placement id and allows the publisher to set
+ the reward to give to a user.
+
+ - Parameter placementID The id of the ad placement. You can create your placement id from Facebook developers page.
+ - Parameter userID the id of the user
+ - Parameter currency reward currency type
+ */
+- (instancetype)initWithPlacementID:(NSString *)placementID
+                         withUserID:(nullable NSString *)userID
+                       withCurrency:(nullable NSString *)currency;
+
+/**
+  Begins loading the FBRewardedVideoAd content.
+
+
+ You can implement `rewardedVideoAdDidLoad:` and `rewardedVideoAd:didFailWithError:` methods
+ of `FBRewardedVideoAdDelegate` if you would like to be notified as loading succeeds or fails.
+ */
+- (void)loadAd;
+
+/**
+ Begins loading the FBRewardedVideoAd content from a bid payload attained through a server side bid.
+
+
+ You can implement `rewardedVideoAdDidLoad:` and `rewardedVideoAd:didFailWithError:` methods
+ of `FBRewardedVideoAdDelegate` if you would like to be notified as loading succeeds or fails.
+ */
+- (void)loadAdWithBidPayload:(NSString *)bidPayload;
+
+/**
+ This method allows the publisher to set the reward to give to a user. Returns NO if it was not able
+ to set Reward Data.
+
+ - Parameter userID the id of the user
+ - Parameter currency reward currency type
+ */
+
+- (BOOL)setRewardDataWithUserID:(NSString *)userID
+                   withCurrency:(NSString *)currency;
+
+/**
+  Presents the rewarded video ad modally from the specified view controller.
+
+ - Parameter rootViewController: The view controller that will be used to present the rewarded video ad.
+
+
+ You can implement `rewardedVideoAdDidClick:` and `rewardedVideoAdWillClose:`
+ methods of `FBRewardedVideoAdDelegate` if you would like to stay informed for those events.
+ */
+- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController;
+
+/**
+  Presents the rewarded video ad modally from the specified view controller.
+
+ - Parameter rootViewController: The view controller that will be used to present the rewarded video ad.
+ - Parameter flag: Pass YES to animate the presentation; otherwise, pass NO.
+
+
+ You can implement `rewardedVideoAdDidClick:` and `rewardedVideoAdWillClose:`
+ methods of `FBRewardedVideoAdDelegate` if you would like to stay informed for those events.
+ */
+- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController animated:(BOOL)flag;
+
+@end
+
+/**
+  The methods declared by the FBRewardedVideoAdDelegate protocol allow the adopting delegate to respond
+ to messages from the FBRewardedVideoAd class and thus respond to operations such as whether the ad has
+ been loaded, the person has clicked the ad or closed video/end card.
+ */
+@protocol FBRewardedVideoAdDelegate 
+
+@optional
+
+/**
+  Sent after an ad has been clicked by the person.
+
+ - Parameter rewardedVideoAd: An FBRewardedVideoAd object sending the message.
+ */
+- (void)rewardedVideoAdDidClick:(FBRewardedVideoAd *)rewardedVideoAd;
+
+/**
+  Sent when an ad has been successfully loaded.
+
+ - Parameter rewardedVideoAd: An FBRewardedVideoAd object sending the message.
+ */
+- (void)rewardedVideoAdDidLoad:(FBRewardedVideoAd *)rewardedVideoAd;
+
+/**
+  Sent after an FBRewardedVideoAd object has been dismissed from the screen, returning control
+ to your application.
+
+ - Parameter rewardedVideoAd: An FBRewardedVideoAd object sending the message.
+ */
+- (void)rewardedVideoAdDidClose:(FBRewardedVideoAd *)rewardedVideoAd;
+
+/**
+  Sent immediately before an FBRewardedVideoAd object will be dismissed from the screen.
+
+ - Parameter rewardedVideoAd: An FBRewardedVideoAd object sending the message.
+ */
+- (void)rewardedVideoAdWillClose:(FBRewardedVideoAd *)rewardedVideoAd;
+
+/**
+  Sent after an FBRewardedVideoAd fails to load the ad.
+
+ - Parameter rewardedVideoAd: An FBRewardedVideoAd object sending the message.
+ - Parameter error: An error object containing details of the error.
+ */
+- (void)rewardedVideoAd:(FBRewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *)error;
+
+/**
+  Sent after the FBRewardedVideoAd object has finished playing the video successfully.
+ Reward the user on this callback.
+
+ - Parameter rewardedVideoAd: An FBRewardedVideoAd object sending the message.
+ */
+- (void)rewardedVideoAdVideoComplete:(FBRewardedVideoAd *)rewardedVideoAd;
+
+/**
+  Sent immediately before the impression of an FBRewardedVideoAd object will be logged.
+
+ - Parameter rewardedVideoAd: An FBRewardedVideoAd object sending the message.
+ */
+- (void)rewardedVideoAdWillLogImpression:(FBRewardedVideoAd *)rewardedVideoAd;
+
+/**
+  Sent if server call to publisher's reward endpoint returned HTTP status code 200.
+
+ - Parameter rewardedVideoAd: An FBRewardedVideoAd object sending the message.
+ */
+- (void)rewardedVideoAdServerRewardDidSucceed:(FBRewardedVideoAd *)rewardedVideoAd;
+
+/**
+  Sent if server call to publisher's reward endpoint did not return HTTP status code 200
+ or if the endpoint timed out.
+
+ - Parameter rewardedVideoAd: An FBRewardedVideoAd object sending the message.
+ */
+- (void)rewardedVideoAdServerRewardDidFail:(FBRewardedVideoAd *)rewardedVideoAd;
+
+@end
+
+
+NS_ASSUME_NONNULL_END
diff --git a/ios/platform/FBAudienceNetwork.framework/Info.plist b/ios/platform/FBAudienceNetwork.framework/Info.plist
new file mode 100644
index 00000000..ce765797
Binary files /dev/null and b/ios/platform/FBAudienceNetwork.framework/Info.plist differ
diff --git a/ios/platform/FBAudienceNetwork.framework/Modules/module.modulemap b/ios/platform/FBAudienceNetwork.framework/Modules/module.modulemap
new file mode 100644
index 00000000..72796302
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/Modules/module.modulemap
@@ -0,0 +1,45 @@
+framework module FBAudienceNetwork {
+    umbrella header "FBAudienceNetwork.h"
+
+    export *
+    module * {
+        export *
+    }
+
+    requires objc, blocks
+
+    link framework "AdSupport"
+    link framework "AudioToolbox"
+    link framework "AVFoundation"
+    link framework "CoreGraphics"
+    link framework "CoreImage"
+    link framework "CoreMedia"
+    link framework "CoreMotion"
+    link framework "Foundation"
+    link framework "SafariServices"
+    link framework "Security"
+    link framework "StoreKit"
+    link framework "UIKit"
+    link framework "WebKit"
+    link framework "VideoToolbox"
+
+    link "c++"
+    link "xml2"
+
+    header "FBAdChoicesView.h"
+    header "FBAdDefines.h"
+    header "FBAdSettings.h"
+    header "FBAdView.h"
+    header "FBInstreamAdView.h"
+    header "FBInterstitialAd.h"
+    header "FBMediaView.h"
+    header "FBNativeAd.h"
+    header "FBNativeAdScrollView.h"
+    header "FBNativeAdTableViewAdProvider.h"
+    header "FBNativeAdTableViewCellProvider.h"
+    header "FBNativeAdCollectionViewAdProvider.h"
+    header "FBNativeAdCollectionViewCellProvider.h"
+    header "FBNativeAdView.h"
+    header "FBNativeAdsManager.h"
+    header "FBRewardedVideoAd.h"
+}
diff --git a/ios/platform/FBAudienceNetwork.framework/PkgInfo b/ios/platform/FBAudienceNetwork.framework/PkgInfo
new file mode 100644
index 00000000..9d5b5944
--- /dev/null
+++ b/ios/platform/FBAudienceNetwork.framework/PkgInfo
@@ -0,0 +1 @@
+APPLWRUN
diff --git a/ios/platform/FacebookAdapter.framework/FacebookAdapter b/ios/platform/FacebookAdapter.framework/FacebookAdapter
new file mode 120000
index 00000000..ba12bb01
--- /dev/null
+++ b/ios/platform/FacebookAdapter.framework/FacebookAdapter
@@ -0,0 +1 @@
+Versions/Current/FacebookAdapter
\ No newline at end of file
diff --git a/ios/platform/FacebookAdapter.framework/Headers b/ios/platform/FacebookAdapter.framework/Headers
new file mode 120000
index 00000000..a177d2a6
--- /dev/null
+++ b/ios/platform/FacebookAdapter.framework/Headers
@@ -0,0 +1 @@
+Versions/Current/Headers
\ No newline at end of file
diff --git a/ios/platform/FacebookAdapter.framework/Modules/module.modulemap b/ios/platform/FacebookAdapter.framework/Modules/module.modulemap
new file mode 100644
index 00000000..76b02a6f
--- /dev/null
+++ b/ios/platform/FacebookAdapter.framework/Modules/module.modulemap
@@ -0,0 +1,12 @@
+framework module FacebookAdapter {
+  umbrella header "FacebookAdapter.h"
+
+  export *
+  module * { export * }
+
+  link framework "Foundation"
+  link framework "UIKit"
+
+  header "GADFBExtraAssets.h"
+  header "GADFBNetworkExtras.h"
+}
diff --git a/ios/platform/FacebookAdapter.framework/Versions/A/FacebookAdapter b/ios/platform/FacebookAdapter.framework/Versions/A/FacebookAdapter
new file mode 100644
index 00000000..c416f2c0
Binary files /dev/null and b/ios/platform/FacebookAdapter.framework/Versions/A/FacebookAdapter differ
diff --git a/ios/platform/FacebookAdapter.framework/Versions/A/Headers/FacebookAdapter.h b/ios/platform/FacebookAdapter.framework/Versions/A/Headers/FacebookAdapter.h
new file mode 100644
index 00000000..b7198bd7
--- /dev/null
+++ b/ios/platform/FacebookAdapter.framework/Versions/A/Headers/FacebookAdapter.h
@@ -0,0 +1,19 @@
+// Copyright 2016 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#import 
+#import 
+
+#import 
+#import 
diff --git a/ios/platform/FacebookAdapter.framework/Versions/A/Headers/GADFBExtraAssets.h b/ios/platform/FacebookAdapter.framework/Versions/A/Headers/GADFBExtraAssets.h
new file mode 100644
index 00000000..8991b4c6
--- /dev/null
+++ b/ios/platform/FacebookAdapter.framework/Versions/A/Headers/GADFBExtraAssets.h
@@ -0,0 +1,23 @@
+// Copyright 2016 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@import Foundation;
+
+/// Facebook native ad subtitle key used with the extra assets dictionary declared in
+/// GADMediatedNativeAd.h.
+extern NSString *const GADFBSubtitle;
+
+/// Facebook native ad social context key used with the extra assets dictionary declared in
+/// GADMediatedNativeAd.h.
+extern NSString *const GADFBSocialContext;
diff --git a/ios/platform/FacebookAdapter.framework/Versions/A/Headers/GADFBNetworkExtras.h b/ios/platform/FacebookAdapter.framework/Versions/A/Headers/GADFBNetworkExtras.h
new file mode 100644
index 00000000..90090e70
--- /dev/null
+++ b/ios/platform/FacebookAdapter.framework/Versions/A/Headers/GADFBNetworkExtras.h
@@ -0,0 +1,28 @@
+// Copyright 2016 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@import Foundation;
+@import GoogleMobileAds;
+
+/// Network extras for the Facebook adapter.
+@interface GADFBNetworkExtras : NSObject
+
+/// Indicates whether the AdChoices icon should be expandable. Defaults to YES.
+@property(nonatomic, assign) BOOL adChoicesExpandable;
+
+/// Indicates whether the AdChoices icon background mask should be shown or a transparent mask
+/// should be used instead. Defaults to YES.
+@property(nonatomic, assign) BOOL adChoicesBackgroundShown;
+
+@end
diff --git a/ios/platform/FacebookAdapter.framework/Versions/Current b/ios/platform/FacebookAdapter.framework/Versions/Current
new file mode 120000
index 00000000..8c7e5a66
--- /dev/null
+++ b/ios/platform/FacebookAdapter.framework/Versions/Current
@@ -0,0 +1 @@
+A
\ No newline at end of file
diff --git a/ios/titanium.xcconfig b/ios/titanium.xcconfig
index cb208a8b..a5df68a9 100644
--- a/ios/titanium.xcconfig
+++ b/ios/titanium.xcconfig
@@ -4,7 +4,7 @@
 // OF YOUR TITANIUM SDK YOU'RE BUILDING FOR
 //
 //
-TITANIUM_SDK_VERSION = 7.0.1.GA
+TITANIUM_SDK_VERSION = 7.2.0.GA
 
 
 //