A cross-platform wrapper for Google's User Messaging Platform for Android and iOS.
https://developers.google.com/admob/ump/android/quick-start https://developers.google.com/admob/ump/ios/quick-start
Available (as a preview) on Nuget Plugin.GoogleUserMessagingPlatform
You must add the package to your iOS and Android head projects, as well as any shared projects you want to access the library from.
Uses the Android UMP binding from Xamarin Components:
https://github.com/xamarin/XamarinComponents/ https://www.nuget.org/packages/Xamarin.Google.UserMessagingPlatform/1.0.0
Uses the iOS UMP binding that is currently part of Xamarin.Google.iOS.MobileAds:
https://github.com/xamarin/GoogleApisForiOSComponents https://www.nuget.org/packages/Xamarin.Google.iOS.MobileAds/7.66.0
On Android, make sure Xamarin.Essentials.Init
is initialized, either in Activity.OnCreate
or Application.OnCreate
. For example:
public class MainApplication : Application
{
public MainApplication(IntPtr handle, JniHandleOwnership transer)
: base(handle, transer)
{
}
public override void OnCreate()
{
base.OnCreate();
Xamarin.Essentials.Platform.Init(this);
}
}
Then use something like the following somewhere in the start-up flow in your cross-platform code:
var ump = UserMessagingPlatform.Instance;
if (ump.IsSupported)
{
var parameters = new RequestParameters
{
DebugSettings = new ConsentDebugSettings
{
// Optional, for testing
Geography = DebugGeography.Eea
}
};
var consent = await ump.GetConsentInformationAsync(parameters);
if (consent.ConsentStatus == ConsentStatus.Required && consent.FormStatus == FormStatus.Available)
{
await ump.LoadConsentFormAsync();
await ump.ShowFormAsync();
}
}
See the original documentation from Google for more information:
https://developers.google.com/admob/ump/android/quick-start https://developers.google.com/admob/ump/ios/quick-start
Apart from minor renames, the API matches the original.
The only exception is the addition of the IsSupported
property. This returns true
on Android and iOS and false
on .NET Standard. All other methods throw PlatformNotSupportedException
when called from .NET Standard.