- Home /
Admob Memory Issues
In my game, I added in ads using AdMob. I have a banner and interstitial ad. Everything works fine on android, but when I use IOS, the entire game will start lagging and it will crash. I get the error in Xcode: terminated because of memory issue.`using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using GoogleMobileAds.Api;
public class DestroyPlayer : MonoBehaviour {
float deathCooldown = 5;
public bool dead;
public int value = 1;
public int yay = 3;
public AudioSource saw;
bool playSawSound = true;
public int index;
public GameObject deathMenu;
public int adShow;
public InterstitialAd interstitial;
void Start () {
saw = GetComponent <AudioSource> ();
index = Random.Range (1, 5);
adShow = Random.Range (1, 3);
RequestInterstitial ();
}
void OnCollisionEnter (Collision col)
{
if (col.gameObject.tag == "cup") {
ScorePoints.score += value;
Destroy (this.gameObject);
}
if (col.gameObject.tag == "Death") {
dead = true;
RequestInterstitial ();
} else {
dead = false;
}
}
void Update()
{
if (dead == true) {
if (playSawSound) {
saw.Play ();
playSawSound = false;
}
deathCooldown -= yay * Time.deltaTime;
GameObject.Find ("Cups").GetComponent <CupMovemnt> ().cupVelocity = 0f;
if (deathCooldown <= 0) {
}
if (adShow == 1) {
if (interstitial.IsLoaded ()) {
interstitial.Show ();
interstitial.Destroy ();
}
}
GameObject.Find ("Canvas1").GetComponent <Canvas> ().enabled = true;
}
}
public void RequestInterstitial()
{
#if UNITY_EDITOR
string adUnitId = "unused";
#elif UNITY_ANDROID
string adUnitId = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
#elif UNITY_IPHONE
string adUnitId = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
#else
string adUnitId = "unexpected_platform";
#endif
// Initialize an InterstitialAd.
interstitial = new InterstitialAd(adUnitId);
// Create an empty ad request.
AdRequest request = new AdRequest.Builder()
.Build();
// Load the interstitial with the request.
interstitial.LoadAd(request);
}
/*void restart () {
//if (dead == true) {
//GameObject.Find ("Canvas1").GetComponent <Canvas> ().enabled = true;
//}
//}*/
}
That had my interstitial ad stuff in it. Now here is my banner ad code: `using System.Collections; using System.Collections.Generic; using UnityEngine; using GoogleMobileAds.Api;
public class AdManager : MonoBehaviour {
void Start () {
RequestBanner ();
}
void RequestBanner()
{
#if UNITY_EDITOR
string adUnitId = "unused";
#elif UNITY_ANDROID
string adUnitId = "xxxxxxxxxxxxxxxxxxx";
#elif UNITY_IPHONE
string adUnitId = "xxxxxxxxxxxxxxxxxxx";
#else
string adUnitId = "unexpected_platform";
#endif
// Create a 320x50 banner at the top of the screen.
BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom);
// Create an empty ad request.
AdRequest request = new AdRequest.Builder()
//.AddTestDevice(AdRequest.TestDeviceSimulator) // Simulator.
//.AddTestDevice(SystemInfo.deviceUniqueIdentifier) // My test device.
.Build();
// Load the banner with the request.
bannerView.LoadAd(request);
}
}
Why are showing the interstitial and destroying it on same execution? Or Why do you need even to destroy the interstitial?
Your answer
Follow this Question
Related Questions
Unity Admob Implementing Interstitial 1 Answer
Interstitial pause game on Android but not on iOS? 5 Answers
unity 5 2d game admob interstitial not working 0 Answers
Unity ads problem 0 Answers
Admob interstitial ad not showing up 1 Answer