private static async Task<bool> InitializeMetaSDK()
{
TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>();
AndroidJavaObject audienceNetworkAds = new AndroidJavaObject("com.facebook.ads.AudienceNetworkAds");
var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
var context = activity.Call<AndroidJavaObject>("getApplicationContext");
audienceNetworkAds.CallStatic("initialize", context);
while (!audienceNetworkAds.CallStatic<bool>("isInitialized", context))
{
Debug.Log("Meta SDK is not yet initialized.");
await Task.Delay(1000);
}
if (audienceNetworkAds.CallStatic<bool>("isInitialized", context))
{
Debug.Log("Sucessfully initialized Meta SDK.");
tcs.SetResult(true);
}
else
{
tcs.SetResult(false);
}
return await tcs.Task;
}
private static void InitializeMetaAdapter()
{
AndroidJavaObject mediationAdapter = new AndroidJavaObject("com.google.ads.mediation.facebook.FacebookMediationAdapter");
var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
var context = activity.Call<AndroidJavaObject>("getApplicationContext");
AndroidJavaClass enumClass = new AndroidJavaClass("com.google.android.gms.ads.AdFormat");
AndroidJavaObject adFormat = enumClass.GetStatic<AndroidJavaObject>("INTERSTITIAL");
AndroidJavaObject bundle = new AndroidJavaObject("android.os.Bundle");
bundle.Call("putString", "placement_id", "ca-app-pub-xxxxxxxxx");
AndroidJavaObject mediationConfig = new AndroidJavaObject("com.google.android.gms.ads.mediation.MediationConfiguration", adFormat, bundle);
AndroidJavaObject mediationConfigsList = new AndroidJavaObject("java.util.ArrayList");
mediationConfigsList.Call<bool>("add", mediationConfig);
mediationAdapter.Call("initialize", context, new InitializationCompleteCallbackProxy(), mediationConfigsList);
}
public class InitializationCompleteCallbackProxy : AndroidJavaProxy
{
public InitializationCompleteCallbackProxy() : base("com.google.android.gms.ads.mediation.InitializationCompleteCallback") { }
public void onInitializationFailed(string error)
{
Debug.Log($"Initialization of Meta Adapter failed with error {error}");
}
public void onInitializationSucceeded()
{
Debug.Log("Sucessfully initialized Meta Adapter");
}
}