MarcTron.Admob
1.5.7
See the version list below for details.
dotnet add package MarcTron.Admob --version 1.5.7
NuGet\Install-Package MarcTron.Admob -Version 1.5.7
<PackageReference Include="MarcTron.Admob" Version="1.5.7" />
paket add MarcTron.Admob --version 1.5.7
#r "nuget: MarcTron.Admob, 1.5.7"
// Install MarcTron.Admob as a Cake Addin #addin nuget:?package=MarcTron.Admob&version=1.5.7 // Install MarcTron.Admob as a Cake Tool #tool nuget:?package=MarcTron.Admob&version=1.5.7
MtAdmob plugin for Xamarin
With this Plugin you can add a Google Admob Ads inside your Xamarin Android and iOS Projects with a single line!!! This plugin supports: Banners, Interstitial and Rewarded Videos
IMPORTANT
Remember to edit your AppManifest otherwise it will not work on Android
On iOS you MUST now change the Ads init. In your iOS project Replace MobileAds.Configure with MobileAds.SharedInstance.Start(CompletionHandler); where CompletionHandler is something like: private void CompletionHandler(InitializationStatus status){}
Edit your info.plist adding these Keys: <key>GADApplicationIdentifier</key> <string>ca-app-pub-3940256099942544~1458002511</string> ← This is a test key, replace it with your APPID <key>GADIsAdManagerApp</key> <true/>
If you don't do this, your iOS app will crash
I'm slowly starting to move toward AndroidX, so it's possible that you need to install more packages in your Android project, in case of a build error, Visual Studio will tell you which packages you need to install.
BANNER
To add a Banner on a page you have two options:
XAML
<controls:MTAdView x:Name="myAds"></controls:MTAdView>
remember to add this line in your XAML:
xmlns:controls="clr-namespace:MarcTron.Plugin.Controls;assembly=Plugin.MtAdmob"
CODE
MTAdView ads = new MTAdView();
IMPORTANT
To test the banner during the development google uses two Banner Id, one for Android and the other for iOS. Use them then remember to replace them with your own IDs:
Android: ca-app-pub-3940256099942544/6300978111
iOS: ca-app-pub-3940256099942544/2934735716
If the Banners don't appear in your app, probably it's a size problem. To solve it, add this style you your app.xaml:
<Style TargetType="controls:MTAdView">
<Setter Property="HeightRequest">
<Setter.Value>
<x:OnIdiom Phone="50" Tablet="90"></x:OnIdiom>
</Setter.Value>
</Setter>
</Style>
PROPERTIES
For each AdView if you want, you can set these properties: AdsId: To add the id of your ads
PersonalizedAds: You can set it to False if you want to use generic ads (for GDPR...) (It works only for Android Banners, for the others, you must ask for consent)
For GDPR it's better to rely on a custom consent instead or using the non personalized ads as I cannot guarantee it works. So it's better if you create a custom consent
GLOBAL PROPERTIES
AdsId: To add the id of your ads
PersonalizedAds: You can set it to False if you want to use generic ads (for GDPR...) (It works only for Android Banners, for the others, you must ask for consent) For GDPR it's better to rely on a custom consent instead or using the non personalized ads as I cannot guarantee it works. So it's better if you create a custom consent
TestDevices: You can add here the ID of your test devices
UseRestrictedDataProcessing: For compliance with the CCPA
You can use Global Properties in this way: CrossMTAdmob.Current.UserPersonalizedAds = true;
INTERSTITIAL
You can show an interstitial with a single line of code:
CrossMTAdmob.Current.ShowInterstitial();
To Load an interstitial you can use this line:
CrossMTAdmob.Current.LoadInterstitial("xx-xxx-xxx-xxxxxxxxxxxxxxxxx/xxxxxxxxxx");
REWARDED VIDEO
You can show a Rewarded video with a single line of code:
CrossMTAdmob.Current.ShowRewardedVideo();
To Load a Rewarded Video you can use this line:
CrossMTAdmob.Current.LoadRewardedVideo("xx-xxx-xxx-xxxxxxxxxxxxxxxxx/xxxxxxxxxx");
EVENTS FOR BANNERS
Just in case you need, the Banner ads offer 4 events:
AdsClicked When a user clicks on the ads
AdsClosed When the user closes the ads
AdsImpression Called when an impression is recorded for an ad.
AdsOpened When the ads is opened
EVENTS FOR INTERSTITIALS
the Interstitial ads offer 3 events:
OnInterstitialLoaded When it's loaded
OnInterstitialOpened When it's opened
OnInterstitialClosed When it's closed
EVENTS FOR REWARDED VIDEOS
The Rewarded Videos offer 7 events:
OnRewarded When the user gets a reward
OnRewardedVideoAdClosed When the ads is closed
OnRewardedVideoAdFailedToLoad When the ads fails to load
OnRewardedVideoAdLeftApplication When the users leaves the application
OnRewardedVideoAdLoaded When the ads is loaded
OnRewardedVideoAdOpened When the ads is opened
OnRewardedVideoStarted When the ads starts
IMPORTANT
Remember to include the MTAdmob library with this code (usually it's added automatically):
using MarcTron.Plugin;
IMPORTANT FOR ANDROID:
Before loading ads, have your app initialize the Mobile Ads SDK by calling MobileAds.initialize() with your AdMob App ID. This needs to be done only once, ideally at app launch. For example:
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
MobileAds.Initialize(ApplicationContext, "xx-xxx-xxx-xxxxxxxxxxxxxxxx~xxxxxxxxxx");
Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
}
Remeber to add this to your AppManifest:
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
IMPORTANT FOR IOS:
Before loading ads, have your app initialize the Mobile Ads SDK by calling MobileAds.initialize() with your AdMob App ID. This needs to be done only once, ideally at app launch. For example:
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
MobileAds.Configure("xx-xxx-xxx-xxxxxxxxxxxxxxxx~xxxxxxxxxx");
LoadApplication(new App());
return base.FinishedLaunching(app, options);
}
**In case the plugin doesn't install automatically the nuget package
Xamarin.Google.iOS.MobileAds
you need to add it manually.**
That's it. Cannot be easier than that 😃
LINKS
Available on Nuget: https://www.nuget.org/packages/MarcTron.Admob
Tutorial: https://www.xamarinexpert.it/admob-made-easy/
To report any issue: https://github.com/marcojak/MTAdmob/issues
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp1.0 was computed. netcoreapp1.1 was computed. netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard1.0 is compatible. netstandard1.1 was computed. netstandard1.2 was computed. netstandard1.3 was computed. netstandard1.4 was computed. netstandard1.5 was computed. netstandard1.6 was computed. netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net45 was computed. net451 was computed. net452 was computed. net46 was computed. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. monoandroid81 is compatible. monoandroid90 is compatible. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen30 was computed. tizen40 was computed. tizen60 was computed. |
Universal Windows Platform | uap was computed. uap10.0 was computed. uap10.0.18362 is compatible. |
Windows Phone | wp8 was computed. wp81 was computed. wpa81 was computed. |
Windows Store | netcore was computed. netcore45 was computed. netcore451 was computed. |
Xamarin.iOS | xamarinios was computed. xamarinios10 is compatible. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 1.0
- NETStandard.Library (>= 1.6.1)
- Xamarin.Build.Download (>= 0.10.0)
- Xamarin.Forms (>= 3.5.0.169047)
-
.NETStandard 2.0
- Xamarin.Build.Download (>= 0.10.0)
- Xamarin.Forms (>= 3.5.0.169047)
-
MonoAndroid 8.1
- Xamarin.Build.Download (>= 0.10.0)
- Xamarin.Forms (>= 3.5.0.169047)
- Xamarin.GooglePlayServices.Ads.Lite (>= 60.1142.1)
-
MonoAndroid 9.0
- Xamarin.AndroidX.Annotation (>= 1.1.0.1)
- Xamarin.Build.Download (>= 0.10.0)
- Xamarin.Forms (>= 4.2.0.815419)
- Xamarin.GooglePlayServices.Ads.Lite (>= 71.1720.4)
-
UAP 10.0.18362
- Xamarin.Build.Download (>= 0.10.0)
- Xamarin.Forms (>= 3.5.0.169047)
-
Xamarin.iOS 1.0
- Xamarin.Build.Download (>= 0.10.0)
- Xamarin.Forms (>= 4.2.0.815419)
- Xamarin.Google.iOS.MobileAds (>= 7.57.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on MarcTron.Admob:
Package | Downloads |
---|---|
ContactManager.Xamarin
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.4.0 | 351 | 8/8/2024 |
2.3.3 | 187 | 7/9/2024 |
2.3.2 | 161 | 6/24/2024 |
2.3.1 | 452 | 5/3/2024 |
2.3.0 | 481 | 3/21/2024 |
2.2.3 | 255 | 3/8/2024 |
2.2.2 | 152 | 3/8/2024 |
2.2.1 | 290 | 2/24/2024 |
2.2.0 | 363 | 2/9/2024 |
2.1.0 | 395 | 1/25/2024 |
1.9.0.6 | 4,565 | 5/21/2023 |
1.9.0.3 | 6,296 | 12/3/2022 |
1.9.0.2 | 1,098 | 11/19/2022 |
1.8.0 | 3,820 | 7/3/2022 |
1.6.9 | 11,018 | 12/23/2021 |
1.6.8 | 7,421 | 11/23/2021 |
1.6.7 | 1,719 | 10/16/2021 |
1.6.6 | 906 | 10/12/2021 |
1.6.5 | 2,037 | 8/24/2021 |
1.6.4 | 1,025 | 8/22/2021 |
1.6.3 | 1,107 | 8/16/2021 |
1.6.2 | 935 | 8/14/2021 |
1.6.1 | 6,473 | 1/23/2021 |
1.6.0 | 5,468 | 11/7/2020 |
1.5.8 | 3,400 | 9/27/2020 |
1.5.7 | 2,991 | 8/1/2020 |
1.5.6 | 2,893 | 6/7/2020 |
1.5.5 | 2,282 | 5/10/2020 |
1.5.0 | 1,609 | 4/11/2020 |
1.4.5 | 3,005 | 11/19/2019 |
1.4.4 | 1,663 | 10/11/2019 |
1.4.3 | 1,108 | 10/7/2019 |
1.4.2 | 1,172 | 9/7/2019 |
1.4.1 | 1,484 | 8/12/2019 |
1.4.0 | 1,226 | 8/2/2019 |
1.3.0 | 1,381 | 6/1/2019 |
1.2.0 | 1,232 | 4/8/2019 |
1.1.0 | 1,210 | 3/22/2019 |
1.0.0 | 1,241 | 3/5/2019 |
Version 1.5.7
Added IsEnabled to disable the ads (banners, interstitials, rewarded videos) (Default = true)
Added UseRestrictedDataProcessing for CCPA compliance (Default = false)
Version 1.5.6
Fixed possible issue with some MONODROID versions for LoadRewardedVideo
Version 1.5.5
Updated MobileAds to 7.57.0 to avoid Apple rejection because of the reference to UIWebView
Version 1.5.0
Updated packages
Improved code
Add custom data to RewardedAd (thanks to Lordinaire)
Version 1.4.5
Automatically added Google.SignIn 4.4.0 (This version is required to compile your project).
Version 1.4.4
Removed deprecated code on iOS
Fixed issues on iOS (Please update from version 1.4.3 and read the README to init your projects)
Version 1.4.3
Added Consent option to iOS
Updated Xamarin.Google.iOS.MobileAds to 7.47.0
Version 1.4.2
Updated GooglePlayServicesAds.Lite 71.1720.1
Version 1.4.1
Fixed issue on iOS where some events weren't called on RewardedVideos in case of no internet
Version 1.4
Fixed issue with multiple events called on RewardedVideos
Improved code for Interstitials.
Version 1.3
Fixed crash on iOS with multiple Banner
To avoid compatibilty now the Banner control has been renamed from AdView to MTAdView
Version 1.2
Now Load and Show are two separate methods to give you more control over your Ads
Version 1.1
Added support for Rewarded Videos
Added events for Rewarded Videos
Added events for Interstitials
Version 1.0
Banner and Insterstitial for Android
Banner and Insterstitial for iOS