Unity AdMob Entegrasyonu: Reklamlar Neden Görünmüyor? (Test ID Sorunları)
## Sorunun kaynağını daraltmak: test ID’ler mi, adUnit mi, yoksa konfigürasyon mu?
Birçok durumda reklamlar hiç görünmez veya boş ekranlarda takılı kalır. Özellikle “test device” kimlikleri ile ilgili hatalar, üretim reklamlarının temiz şekilde yüklenmesini engeller. Aşağıdaki adımlar, Unity ile AdMob entegrasyonunda sık karşılaşılan test ID sorunlarını sistematik olarak ele alır ve güvenilir bir reklam akışı kurmanıza olanak tanır.
## AdMob entegrasyonu başlangıç noktası: doğru kimlikler ve manifest
Bir reklam akışında ilk kilit, doğru App ID ve Ad Unit ID’lerin kullanılmasıdır. Unity projesinde GoogleMobileAds SDK uygun sürümle kurulu olmalı ve AndroidManifest ile iOS plist üzerinde gerekli izinler ile meta alanlar mevcut olmalıdır. Genelde şu hatalar görünür:
– Yanlış adUnitId kullanımı (ör. test reklam için gerçek prod adUnitId kullanımı)
– App ID ile Ad Unit ID’nin eşleşmemesi
– Web sürümü için test ortamında devre dışı bırakılan reklam ağları
Çözüm: AdMob’un resmi çocuklandırılmış test ortamını kullanın ve prod ile test kimliklerini net bir şekilde ayırın. Unity’de Test Device ID’yi tanımlamak, reklamların gerçek cihazlarda test modunda yüklenmesini sağlar.
## TestDeviceId ve RequestConfiguration ile güvenli test modu
Test cihazı kimliği, reklam yüklemesini tetikleyen anahtar adımdır. Aşağıdaki kod parçası ile cihazID’lerin test olarak sayılmasını ve reklam ağının yanlış tetiklenmesini engellersiniz. Ayrıca hata günlüğünde görünen “Ad request failed with error: 3” gibi hataların kaynağını bu adımda tanımlarsınız.
“`csharp
using System.Collections.Generic;
using GoogleMobileAds.Api;
public class AdManager : MonoBehaviour
{
private string appId = “ca-app-pub-XXXXXXXXXXXXXXXX~YYYYYYYYYY”; // Android/iOS için App ID’nin doğru sürümü
private List
void Start()
{
MobileAds.Initialize(initStatus => {
// Initialization callback
});
// Test cihazlarını yapılandır
RequestConfiguration requestConfiguration = new RequestConfiguration
.Builder()
.SetTestDeviceIds(testDeviceIds)
.build();
MobileAds.SetRequestConfiguration(requestConfiguration);
LoadAndShowBanner();
}
void LoadAndShowBanner()
{
string adUnitId = “ca-app-pub-XXXXXXXXXXXXXXXX/BBBBBBBBBB”; // Test ya da prod Ad Unit ID
BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom);
AdRequest adRequest = new AdRequest.Builder().Build();
bannerView.LoadAd(adRequest);
// Alternatif: yeni hatalar için OnAdLoaded, OnAdFailedToLoad kullanın
bannerView.OnAdLoaded += HandleOnAdLoaded;
bannerView.OnAdFailedToLoad += HandleOnAdFailedToLoad;
}
void HandleOnAdLoaded(object sender, EventArgs args)
{
// Yüklendiyse görünüm
Debug.Log(“Banner loaded successfully”);
// bannerView.Show(); // Banner zaten otomatik olarak görünür
}
void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
Debug.LogError(“Banner failed to load: ” + args.Message);
}
}
“`
Bu yapılandırma ile cihazlarınızın test modunda olduğunu Google’a bildirirsiniz ve gerçek reklamlar yerine test reklamları gösterilir. Test cihaz kimlikleri doğru alınmazsa Google, reklam talep ederken hatalar yerine boş banner veya hata mesajı döner.
## Hata günlüğü ve çakışan konfigürasyonlar
– Hata seviyesi: logcat veya Unity Console’da “No fill” veya “Network request failed” mesajları, AdMob’un talebe karşılık reklam bulamadığı anlamına gelir. Bu durumda test cihaz kimliklerinin doğru olduğundan ve adUnit ID’nin test modunda kullanıldığına emin olun.
– Bölge ayarları: Bölgesel kısıtlamalar bazı bölgelerde reklam gösterimlerini etkileyebilir. Özellikle oyun içi kullanıcılar proxy veya VPN kullanıyorsa reklam talep yoğunluğu düşebilir.
– Internet erişimi: AndroidManifest’e Internet permission ekli mi? Unity’nin saat/dizin izinlerinde bir kopukluk olmadığından emin olun.
## Sık karşılaşılan problemler ve pratik çözümler
– Test device ID’nin yanlış kaydedilmesi: Gerçek cihaz IDsini almak için Google Mobile Ads SDK’nin elde ettiği değeri log’a yazdırın ve testDeviceIds listesine eklediğinizden emin olun.
– Yanlış App ID/Ad Unit ID eşleşmesi: App ID ve Ad Unit ID’nin platforma özgü olduğundan emin olun: Android için google_mobile_ads.xml veya AndroidManifest üzerinden, iOS için Info.plist üzerinde doğru bilgiler kullanılmalı.
– Test modulation’da prod reklamlar: Üretim reklamlarını test cihazında görmek için, gerçek prod Ad Unit ID yerine test Ad Unit ID kullanın. Test Modu açıkken prod hesapla bağlanmamak önemlidir.
## JSON yapılandırması ile konfigürasyonun sürdürülmesi
Aşağıdaki JSON yapılandırması, farklı test cihazları ve ad birimlerini merkezi bir yerde yönetmeyi sağlar ve otomatikleştirilmiş test senaryolarında kullanışlıdır.
{
“appId”: “ca-app-pub-XXXXXXXXXXXXXXXX~YYYYYYYYYY”,
“testDevices”: [
“TEST_DEVICE_ID_1”,
“TEST_DEVICE_ID_2”
],
“adUnits”: {
“banner”: “ca-app-pub-XXXXXXXXXXXXXXXX/BBBBBBBBBB”,
“interstitial”: “ca-app-pub-XXXXXXXXXXXXXXXX/CCCCCCCCCC”,
“rewarded”: “ca-app-pub-XXXXXXXXXXXXXXXX/DDDDDDDDDD”
},
“settings”: {
“logLevel”: “DEBUG”,
“testMode”: true
}
}
Bu yapılandırma, farklı platformlar için aynı konfigürasyonu tutarlı biçimde uygular ve CI/CD süreçlerinde test sürümlerinde aynı davranışı garanti eder.
## Kapanış kontrolleri: reklamlar hâlâ görünmüyor mu?
– Ad Unit ID’ler test modundaki olup olmadığını doğrulayın.
– TestDeviceId’i Google’a bildirmek için RequestConfiguration doğru uygulanıyor mu?
– Internet erişimi ve AndroidManifest/Info.plist konfigürasyonları geçerli mi?
– Unity ve Google Mobile Ads SDK sürümü güncel mi? Gerektiğinde uyumsuzluklar için sürüm notlarını kontrol edin.
Bu adımları takip etmek, test ID sorunlarını kökten çözer ve Unity üzerinde AdMob reklamlarının güvenilir şekilde görünmesini sağlar.
Bu yazıyı beğendiyseniz, sosyal medya hesaplarınızda paylaşarak daha fazla kişiye ulaşmasını sağlayabilirsiniz. 😊
Ayrıca bizi sosyal medyada da takip edebilirsiniz;
Instagram: @lupusoft
Facebook: @lupusoft
X: @lupusoft
LinkedIn: @lupusoft
Current time (ISO): 2026-03-14T10:00:18.521+03:00
Bir yanıt yazın