إعلانات البانر التكيُّفية الثابتة
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
إعلانات البانر التكيُّفية هي الجيل التالي من الإعلانات المتجاوبة، وهي تزيد الأداء إلى أقصى حد من خلال تحسين حجم الإعلان لكل جهاز. تتفوّق إعلانات البانر التكيُّفية على إعلانات البانر الذكية التي كانت تتيح فقط الارتفاعات الثابتة، إذ تتيح لك إعلانات البانر التكيُّفية تحديد عرض الإعلان واستخدامه لتحديد حجم الإعلان الأمثل.
ولاختيار أفضل حجم للإعلان، تستخدم إعلانات البانر التكيفية نِسب عرض إلى ارتفاع ثابتة بدلاً من الارتفاعات الثابتة. ويؤدي هذا إلى عرض إعلانات البانر التي تشغل جزءًا أكثر اتساقًا من الشاشة في جميع الأجهزة، كما تقدّم فرصًا لتحسين الأداء.
عند استخدام إعلانات البانر التكيُّفية، يُرجى العِلم أنّها ستعرض دائمًا حجمًا ثابتًا لجهاز وعرض معيّنين. بعد اختبار التنسيق على جهاز معيّن، يمكنك التأكّد من أنّ حجم الإعلان لن يتغيّر. ومع ذلك، قد يختلف حجم تصميم البانر الإعلاني على الأجهزة المختلفة. نتيجةً لذلك، ننصحك بأن يراعي تصميمك الاختلافات في ارتفاع الإعلان. في حالات نادرة، قد لا يتم ملء الحجم التكيّفي الكامل، وسيتم بدلاً من ذلك توسيط تصميم إعلان بالحجم العادي في هذه المساحة.
المتطلبات الأساسية
حالات استخدام "إعلانات البانر التكيُّفية"
تم تصميم إعلانات البانر التكيُّفية لتكون بديلاً جاهزًا للاستخدام لكلّ من حجم البانر القياسي 320×50 وتنسيق البانر الذكي الذي تحلّ محلّه.
يتم استخدام أحجام إعلانات البانر هذه عادةً كإعلانات بانر ثابتة، والتي تكون عادةً مثبّتة في أعلى الشاشة أو أسفلها.
بالنسبة إلى إعلانات البانر الثابتة هذه، ستكون نسبة العرض إلى الارتفاع عند استخدام إعلانات البانر التكيُّفية مشابهة لنسبة العرض إلى الارتفاع في إعلان عادي بمقاس 320x50، كما هو موضّح في الأمثلة الثلاثة أدناه:

إعلان بانر بحجم 320x50
|

إعلان بانر تكيُّفي
|

إعلان بانر ذكي
|
يستفيد "إعلان البانر التكيّفي" بشكل أفضل من حجم الشاشة المتاح. بالإضافة إلى ذلك،
تُعدّ إعلانات البانر التكيُّفية خيارًا أفضل من إعلانات البانر الذكية للأسباب التالية:
يستخدم هذا النوع أي عرض تقدّمه، بدلاً من فرض العرض على أن يكون بملء الشاشة، ما يتيح لك مراعاة المنطقة الآمنة على iOS وعرض الأجزاء المقطوعة على Android.
ويختار ارتفاعًا مناسبًا للجهاز المحدّد، بدلاً من استخدام ارتفاع ثابت على جميع الأجهزة ذات الأحجام المختلفة، ما يقلّل من تأثيرات تجزئة الأجهزة.
ملاحظات حول التنفيذ
عند تنفيذ "البانرات التكيّفية" في تطبيقك، ضَع النقاط التالية في اعتبارك:
- يجب معرفة عرض طريقة العرض التي سيتم وضع الإعلان فيها،
ويجب أن يأخذ ذلك في الاعتبار عرض الجهاز وأي مناطق آمنة أو
فتحات شاشة سارية.
- تأكَّد من أنّ خلفية مساحة عرض الإعلان غير شفافة للامتثال لسياسات AdMob عند عرض أحجام إعلانات أصغر لا تملأ مساحة عرض الإعلان.
- تأكَّد من استخدام أحدث إصدار من إضافة Google Mobile Ads Unity. للتوسّط، استخدِم أحدث إصدار من كلّ محوّل توسّط.
- تم تصميم أحجام "إعلانات البانر التكيُّفية" لتعمل بشكل أفضل عند استخدام عرض المساحة المتاحة بأكمله. في معظم الحالات، سيكون هذا العرض هو العرض الكامل لشاشة الجهاز المستخدَم. احرص على مراعاة المناطق الآمنة السارية.
- ستحدّد حزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة حجم البانر مع ارتفاع إعلان محسّن
للعرض المحدّد عند استخدام واجهات برمجة التطبيقات AdSize التكيُّفية.
- هناك ثلاث طرق للحصول على حجم إعلان متجاوب:
AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
للعرض الأفقي،
AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth
للعرض العمودي،
AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth
للاتجاه الحالي عند التنفيذ.
- سيكون الحجم المعروض لعرض محدّد على جهاز محدّد هو نفسه دائمًا، وبالتالي بعد اختبار تصميمك على جهاز محدّد، يمكنك التأكّد من أنّ حجم الإعلان لن يتغيّر.
- لا يتجاوز ارتفاع إعلان البانر الثابت أبدًا الحد الأدنى من% 15 من ارتفاع الجهاز أو 90 بكسل مستقل الكثافة، ولا يقلّ أبدًا عن 50 بكسل مستقل الكثافة.
- بالنسبة إلى إعلانات البانر ذات العرض الكامل، يمكنك استخدام العلامة
AdSize.FullWidth
بدلاً من توفير عرض محدّد.
البدء السريع
اتّبِع الخطوات التالية لتنفيذ بانر بسيط ثابت في أسفل الشاشة.
- الحصول على حجم "إعلان بانر تكيُّفي" سيتم استخدام الحجم الذي تحصل عليه لطلب "إعلان البانر التكيّفي". للحصول على حجم الإعلان المتجاوب، تأكَّد ممّا يلي:
- يمكنك الحصول على عرض الجهاز المستخدَم بوحدات بكسل مستقلة عن الكثافة، أو ضبط العرض الخاص بك إذا كنت لا تريد استخدام العرض الكامل للشاشة.
بما أنّ واجهات برمجة التطبيقات في Unity، مثل
Screen.width
، تعرض وحدات البكسل المطلقة، عليك القسمة على مقياس الجهاز (يمكن استرداده من MobileAds.Utils.GetDeviceScale()
).
- استخدِم العلامة
AdSize.FullWidth
لإعلانات البانر ذات العرض الكامل.
- استخدِم الطرق الثابتة المناسبة في فئة حجم الإعلان، مثل
AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width)
للحصول على كائن AdSize
متجاوب مع الاتجاه الحالي.
- أنشئ عنصر
BannerView
يتضمّن معرّف الوحدة الإعلانية والحجم المتكيّف والموضع المناسب لإعلانك.
- أنشئ عنصر طلب إعلان وحمِّل البانر باستخدام الطريقة
LoadAd()
في طريقة عرض الإعلان المُعدّة، تمامًا كما تفعل مع طلب بانر عادي.
مثال على الرمز
في ما يلي مثال على نص برمجي يحمّل إعلان بانر متجاوبًا ويعيد تحميله ليتناسب مع عرض الشاشة، مع أخذ المنطقة الآمنة في الاعتبار:
using UnityEngine;
using System;
using GoogleMobileAds.Api;
public class AdaptiveBannerSample : MonoBehaviour
{
private BannerView _bannerView;
// Use this for initialization
void Start()
{
// Set your test devices.
// https://developers.google.com/ad-manager/mobile-ads-sdk/unity/test-ads
RequestConfiguration requestConfiguration = new RequestConfiguration
{
TestDeviceIds = new List<string>
{
AdRequest.TestDeviceSimulator,
// Add your test device IDs (replace with your own device IDs).
#if UNITY_IPHONE
"96e23e80653bb28980d3f40beb58915c"
#elif UNITY_ANDROID
"75EF8D155528C04DACBBA6F36F433035"
#endif
}
};
MobileAds.SetRequestConfiguration(requestConfiguration);
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize((InitializationStatus status) =>
{
RequestBanner();
});
}
public void OnGUI()
{
GUI.skin.label.fontSize = 60;
Rect textOutputRect = new Rect(
0.15f * Screen.width,
0.25f * Screen.height,
0.7f * Screen.width,
0.3f * Screen.height);
GUI.Label(textOutputRect, "Adaptive Banner Example");
}
private void RequestBanner()
{
// These ad units are configured to always serve test ads.
#if UNITY_EDITOR
string adUnitId = "unused";
#elif UNITY_ANDROID
string adUnitId = "ca-app-pub-3212738706492790/6113697308";
#elif UNITY_IPHONE
string adUnitId = "ca-app-pub-3212738706492790/5381898163";
#else
string adUnitId = "unexpected_platform";
#endif
// Clean up banner ad before creating a new one.
if (_bannerView != null)
{
_bannerView.Destroy();
}
AdSize adaptiveSize =
AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(AdSize.FullWidth);
_bannerView = new BannerView(adUnitId, adaptiveSize, AdPosition.Bottom);
// Register for ad events.
_bannerView.OnBannerAdLoaded += OnBannerAdLoaded;
_bannerView.OnBannerAdLoadFailed += OnBannerAdLoadFailed;
AdRequest adRequest = new AdRequest();
// Load a banner ad.
_bannerView.LoadAd(adRequest);
}
#region Banner callback handlers
private void OnBannerAdLoaded(object sender, EventArgs args)
{
Debug.Log("Banner view loaded an ad with response : "
+ _bannerView.GetResponseInfo());
Debug.Log("Ad Height: {0}, width: {1}",
_bannerView.GetHeightInPixels(),
_bannerView.GetWidthInPixels());
}
private void OnBannerAdLoadFailed(LoadAdError error)
{
Debug.LogError("Banner view failed to load an ad with error : "
+ error);
}
#endregion
}
في هذا المثال، يتم استخدام الدالة
AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth
للحصول على حجم بانر في موضع ثابت لاتجاه الواجهة الحالي. لتحميل بانر ثابت في موضع محدد مسبقًا في اتجاه معيّن، استخدِم الدالة ذات الصلة من AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth
وAdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
.
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-09-02 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-09-02 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eAdaptive banners maximize ad performance by optimizing the ad size for each device, using fixed aspect ratios for the best ad size.\u003c/p\u003e\n"],["\u003cp\u003eThey are a drop-in replacement for standard 320x50 banners and smart banners, designed for anchored positions (top or bottom of the screen).\u003c/p\u003e\n"],["\u003cp\u003eAdaptive banners offer advantages over smart banners: using any provided width (accounting for safe areas), selecting optimal height per device (reducing fragmentation).\u003c/p\u003e\n"],["\u003cp\u003eWhen implementing, consider the view's width (including safe areas), use an opaque background, and use the latest SDK and adapter versions.\u003c/p\u003e\n"],["\u003cp\u003eTo get an adaptive banner size, use the provided static methods, such as \u003ccode\u003eAdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width)\u003c/code\u003e, after calculating the device or desired width.\u003c/p\u003e\n"]]],[],null,["Adaptive banners are the next generation of responsive ads, maximizing\nperformance by optimizing ad size for each device. Improving on smart banners,\nwhich supported only fixed heights, adaptive banners let you specify the\nad width and use this to determine the optimal ad size.\n\nTo choose the best ad size, adaptive banners use fixed aspect ratios instead of\nfixed heights. This results in banner ads that occupy a more consistent portion\nof the screen across devices and provides opportunities for improved\nperformance.\n\nWhen working with adaptive banners, note that they will always return a\nconstant size for a given device and width. Once you've tested your layout on a\ngiven device, you can be sure that the ad size will not change. However, the\nsize of the banner creative may change across different devices. Consequently,\nwe recommend that your layout accommodate variances in ad height. In rare cases,\nthe full adaptive size may not be filled and a standard size creative will be\ncentered in this slot instead.\n\nPrerequisites\n\n- [Import the Mobile Ads Unity plugin](/ad-manager/mobile-ads-sdk/unity/quick-start#import_the_mobile_ads_unity_plugin)\n\n- [Include the Mobile Ads SDK](/ad-manager/mobile-ads-sdk/unity/quick-start#include_the_mobile_ads_sdk)\n\nWhen to use adaptive banners\n\nAdaptive banners are designed to be a drop-in replacement for both the industry\nstandard 320x50 banner size and the smart banner format which they supersede.\n\nThese banner sizes are commonly used as anchored banners, which are usually\nlocked to the top or bottom of the screen.\n\nFor such anchored banners, the aspect ratio when using adaptive banners will be\nsimilar to that of a standard 320x50 ad, as can be seen in the three examples\nbelow:\n\n|---------------|-----------------|--------------|\n| 320x50 banner | Adaptive banner | Smart banner |\n\nThe adaptive banner makes better use of the available screen size. Additionally,\ncompared to a smart banner, an adaptive banner is a better choice because:\n\n- It uses any width you provide, rather than forcing the width to be full\n screen, enabling you to account for the safe area on iOS, and display cutouts\n on Android.\n\n- It selects an optimal height for the specific device, rather than having a\n constant height across different size devices, mitigating the effects of\n device fragmentation.\n\nImplementation notes\n\nWhen implementing adaptive banners in your app, keep the following points in mind:\n\n- You must know the width of the view that the ad will be placed in, **and this should take into account the device width and any safe areas or\n cutouts that are applicable**.\n- Ensure that your ad view background is opaque to be compliant with AdMob policies when smaller ad sizes serve that do not fill the ad slot.\n- Ensure you are using the latest version of the Google Mobile Ads Unity plugin. For mediation, use the latest version of each mediation adapter.\n- The adaptive banner sizes are designed to work best when using the full available width. In most cases, this will be the full width of the screen of the device in use. Be sure to take into account applicable safe areas.\n- The Google Mobile Ads SDK will size the banner with an optimized ad height for the given width when using the adaptive AdSize APIs.\n- There are three methods to get an ad size for adaptive: `AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth` for landscape, `AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth` for portrait, and `AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth` for the current orientation at the time of execution.\n- The size returned for a given width on a given device will always be the same, hence once you've tested your layout on a given device, you can be sure that the ad size will not change.\n- Anchored banner height is never larger than the lesser of 15% of the device's height or 90 density independent pixels and never smaller than 50 density independent pixels.\n- For full width banners, you can use the `AdSize.FullWidth` flag instead of supplying a specific width.\n\nQuickstart\n\nFollow the steps below to implement a simple adaptive anchor banner.\n\n1. **Get an adaptive banner ad size.** The size you get will be used to request your adaptive banner. To get the adaptive ad size, make sure that you:\n 1. Get the width of the device in use in density independent pixels, or set your own width if you don't want to use the full width of the screen. Since Unity APIs such as `Screen.width` return absolute pixels, you need to divide by device scale (retrievable from `MobileAds.Utils.GetDeviceScale()`).\n 2. Use the `AdSize.FullWidth` flag for full width banners.\n 3. Use the appropriate static methods on the ad size class, such as `AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width)` to get an adaptive `AdSize` object for the current orientation.\n2. Create a `BannerView` object with your ad unit ID, the adaptive size, and the relevant position for your ad.\n3. Create an ad request object and load your banner using the `LoadAd()` method on your prepared ad view, just like you would with a normal banner request.\n\nCode example\n\nHere's an example script that loads and reloads an adaptive banner to fit the\nwidth of the screen, taking into account safe area: \n\n using UnityEngine;\n using System;\n using GoogleMobileAds.Api;\n\n public class AdaptiveBannerSample : MonoBehaviour\n {\n private BannerView _bannerView;\n\n // Use this for initialization\n void Start()\n {\n // Set your test devices.\n // https://developers.google.com/ad-manager/mobile-ads-sdk/unity/test-ads\n RequestConfiguration requestConfiguration = new RequestConfiguration\n {\n TestDeviceIds = new List\u003cstring\u003e\n {\n AdRequest.TestDeviceSimulator,\n // Add your test device IDs (replace with your own device IDs).\n #if UNITY_IPHONE\n \"96e23e80653bb28980d3f40beb58915c\"\n #elif UNITY_ANDROID\n \"75EF8D155528C04DACBBA6F36F433035\"\n #endif\n }\n };\n MobileAds.SetRequestConfiguration(requestConfiguration);\n\n // Initialize the Google Mobile Ads SDK.\n MobileAds.Initialize((InitializationStatus status) =\u003e\n {\n RequestBanner();\n });\n }\n\n public void OnGUI()\n {\n GUI.skin.label.fontSize = 60;\n Rect textOutputRect = new Rect(\n 0.15f * Screen.width,\n 0.25f * Screen.height,\n 0.7f * Screen.width,\n 0.3f * Screen.height);\n GUI.Label(textOutputRect, \"Adaptive Banner Example\");\n }\n\n private void RequestBanner()\n {\n // These ad units are configured to always serve test ads.\n #if UNITY_EDITOR\n string adUnitId = \"unused\";\n #elif UNITY_ANDROID\n string adUnitId = \"ca-app-pub-3212738706492790/6113697308\";\n #elif UNITY_IPHONE\n string adUnitId = \"ca-app-pub-3212738706492790/5381898163\";\n #else\n string adUnitId = \"unexpected_platform\";\n #endif\n\n // Clean up banner ad before creating a new one.\n if (_bannerView != null)\n {\n _bannerView.Destroy();\n }\n\n AdSize adaptiveSize =\n AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(AdSize.FullWidth);\n\n _bannerView = new BannerView(adUnitId, adaptiveSize, AdPosition.Bottom);\n\n // Register for ad events.\n _bannerView.OnBannerAdLoaded += OnBannerAdLoaded;\n _bannerView.OnBannerAdLoadFailed += OnBannerAdLoadFailed;\n\n AdRequest adRequest = new AdRequest();\n\n // Load a banner ad.\n _bannerView.LoadAd(adRequest);\n }\n\n #region Banner callback handlers\n\n private void OnBannerAdLoaded(object sender, EventArgs args)\n {\n Debug.Log(\"Banner view loaded an ad with response : \"\n + _bannerView.GetResponseInfo());\n Debug.Log(\"Ad Height: {0}, width: {1}\",\n _bannerView.GetHeightInPixels(),\n _bannerView.GetWidthInPixels());\n }\n\n private void OnBannerAdLoadFailed(LoadAdError error)\n {\n Debug.LogError(\"Banner view failed to load an ad with error : \"\n + error);\n }\n\n #endregion\n }\n\nHere the function\n`AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth` is used\nto get the size for a banner in an anchored position for the current interface\norientation. For pre-loading an anchored banner in a given orientation, use the\nrelevant function from `AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth`\nand `AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth`."]]