تشغل إعلانات البانر موضعًا داخل تخطيط التطبيق، إما في الجزء العلوي أو السفلي من شاشة الجهاز. وتظل معروضة على الشاشة أثناء تفاعل المستخدمين مع التطبيق، ويمكنها إعادة تحميلها تلقائيًا بعد فترة زمنية معينة. إذا كنت مبتدئًا في مجال الإعلان على الأجهزة الجوّالة، فإنها مكان رائع للبدء. دراسة الحالة.
يوضّح لك هذا الدليل كيفية دمج إعلانات البانر من AdMob في أحد تطبيقات Android. بالإضافة إلى مقتطفات الرمز والتعليمات، يتضمّن أيضًا معلومات عن تغيير حجم إعلانات البانر بشكل صحيح وروابط إلى مراجع إضافية.
المتطلبات الأساسية
- أكمِل دليل البدء.
إضافة AdView إلى التنسيق
تتمثّل الخطوة الأولى لعرض إعلان البانر في وضع AdView
في تنسيق Activity
أو Fragment
الذي تريد عرضه فيه. وأسهل طريقة للقيام بذلك هي إضافة ملف إلى ملف تنسيق XML المقابل. إليك مثال يعرض AdView
لنشاط:
# main_activity.xml
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
</com.google.android.gms.ads.AdView>
يُرجى ملاحظة السمات المطلوبة التالية:
ads:adSize
: عيِّن هذا على حجم الإعلان الذي تريد استخدامه. إذا كنت لا تريد استخدام الحجم القياسي المحدد بواسطة الثابت، يمكنك تعيين حجم مخصص بدلاً من ذلك. راجِع قسم حجم البانر للحصول على التفاصيل.ads:adUnitId
: يمكنك ضبط هذا المعرّف على المعرّف الفريد الذي تم منحه إلى الوحدة الإعلانية في تطبيقك حيث سيتم عرض الإعلانات. وإذا عرضت إعلانات بانر في أنشطة مختلفة، سيحتاج كل منها إلى وحدة إعلانية.
يمكنك بدلاً من ذلك إنشاء AdView
بشكل آلي:
Java
AdView adView = new AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
// TODO: Add adView to your view hierarchy.
Kotlin
val adView = AdView(this)
adView.adSize = AdSize.BANNER
adView.adUnitId = "ca-app-pub-3940256099942544/6300978111"
// TODO: Add adView to your view hierarchy.
الاختبار دائمًا من خلال الإعلانات الاختبارية
عند إنشاء تطبيقاتك واختبارها، تأكد من استخدام إعلانات اختبارية بدلاً من إعلانات مباشرة وإنتاجية. وقد يؤدي عدم الالتزام بذلك إلى تعليق حسابك.
أسهل طريقة لتحميل الإعلانات الاختبارية هي استخدام رقم تعريف الوحدة الإعلانية التجريبية المخصّص لإعلانات البانر في Android:
ca-app-pub-3940256099942544/6300978111
لقد تم إعدادها خصيصًا لعرض إعلانات اختبارية لكل طلب، ويمكنك استخدامها في تطبيقاتك أثناء الترميز والاختبار وتصحيح الأخطاء. ما عليك سوى التأكّد من استبداله بمعرّف وحدتك الإعلانية قبل نشر تطبيقك.
لمزيد من المعلومات عن آلية عمل الإعلانات الاختبارية في "حزمة تطوير البرامج (SDK) لإعلانات الأجهزة الجوّالة"، اطّلِع على الإعلانات الاختبارية.
تحميل إعلان
بعد تفعيل AdView ، تكون الخطوة التالية
هي تحميل إعلان. ويتم ذلك باستخدام الطريقة
loadAd()
في الفئة AdView
. يتطلّب ذلك معلَمة AdRequest
التي تحتوي على معلومات وقت التشغيل حول طلب إعلان واحد، مثل معلومات الاستهداف.
في ما يلي مثال يوضّح كيفية تحميل إعلان بطريقة onCreate()
في Activity
:
MainActivity (مقتطف)
Java
package ...
import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
public class MainActivity extends AppCompatActivity {
private AdView mAdView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});
mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
}
}
Kotlin
package ...
import ...
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView
class MainActivity : AppCompatActivity() {
lateinit var mAdView : AdView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
MobileAds.initialize(this) {}
mAdView = findViewById(R.id.adView)
val adRequest = AdRequest.Builder().build()
mAdView.loadAd(adRequest)
}
}
إذا تعذّر تحميل إعلانك، لا تحتاج إلى طلب إعلان آخر بشكل صريح طالما أنّك قد أعددت وحدتك الإعلانية بهدف إعادة التحميل، فحزمة SDK لإعلانات Google على الأجهزة الجوّالة تلتزم بأي معدّل تحديث حدّدته فيAdMob واجهة الويب. إذا لم تمكّن "التحديث"، فستحتاج إلى إصدار طلب جديد.
أكملت هذه الخطوة. تطبيقك جاهز الآن لعرض إعلانات البانر.
أحداث الإعلانات
لتخصيص سلوك إعلانك بصورةٍ أكبر، يمكنك جذب عدد من الأحداث في مراحل نشاط الإعلان، وهي: التحميل والفتح والإغلاق وما إلى ذلك. يمكنك
الاستماع إلى هذه الأحداث من خلال صف
AdListener
.
لاستخدام AdListener
مع AdView
، يجب استدعاء الطريقة setAdListener()
:
Java
mAdView.setAdListener(new AdListener() {
@Override
public void onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
@Override
public void onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
@Override
public void onAdFailedToLoad(LoadAdError adError) {
// Code to be executed when an ad request fails.
}
@Override
public void onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
@Override
public void onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
});
Kotlin
mAdView.adListener = object: AdListener() {
override fun onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
override fun onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
override fun onAdFailedToLoad(adError : LoadAdError) {
// Code to be executed when an ad request fails.
}
override fun onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
override fun onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
override fun onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
}
تتوافق كل طريقة من الطرق التي يمكن إلغاؤها في
AdListener
مع حدث في دورة حياة الإعلان.
الطرق التي يمكن إلغاؤها | |
---|---|
onAdClicked() |
يتم استدعاء طريقة onAdClicked()
عند تسجيل نقرة على أحد الإعلانات.
|
onAdClosed() |
يتم استدعاء طريقة onAdClosed() عندما يعود المستخدم إلى التطبيق بعد عرض عنوان URL المقصود للإعلان. ويمكن للتطبيق استخدامه لاستئناف الأنشطة المعلّقة أو
تنفيذ أي عمل آخر ضروري ليكون جاهزًا للتفاعل.
يمكنك الرجوع إلى مثال
AdListener في AdMob للاطّلاع على تنفيذ طرق أداة معالجة الإعلانات في
تطبيق Android API التجريبي.
|
onAdFailedToLoad() |
إنّ الطريقة onAdFailedToLoad()
هي الطريقة الوحيدة التي تتضمّن مَعلمة. معلَمة الخطأ من النوع LoadAdError
توضّح الخطأ الذي حدث. لمزيد من المعلومات،
راجِع مستند تصحيح أخطاء تحميل الإعلانات.
|
onAdImpression() |
يتم استدعاء طريقة onAdImpression()
عند تسجيل مرة ظهور لأحد الإعلانات.
|
onAdLoaded() |
يتم تنفيذ الإجراء onAdLoaded()
عند الانتهاء من تحميل الإعلان. إذا أردت تأخير إضافة AdView إلى نشاطك أو الجزء إلى أن تتأكّد من تحميل إعلان، على سبيل المثال، يمكنك إجراء ذلك هنا.
|
onAdOpened() |
يتم استدعاء طريقة onAdOpened()
عندما يفتح إعلان إعلانًا يظهر على سطح الفيديو يغطي الشاشة.
|
أحجام البانر
يجب أن يكون حجم الحاوية التي تضع فيها إعلانك مساويًا على الأقل لحجم إعلان البانر. إذا كانت الحاوية تحتوي على مساحة متروكة، فإن ذلك يؤدي إلى تقليل حجم الحاوية بشكل فعّال. وفي حال عدم احتواء الحاوية على إعلان البانر، لن يظهر البانر، وسيظهر هذا التحذير في السجلات:
W/Ads: Not enough space to show ad. Needs 320x50 dp, but only has 288x495 dp.
يسرد الجدول التالي الأحجام القياسية لإعلان البانر.
الحجم وحدات بكسل مستقلة الكثافة (عرض × ارتفاع) | الوصف | مدى التوفّر | ثابت AdSize |
---|---|---|---|
320x50 | بانر | الهواتف والأجهزة اللوحية | BANNER |
320×100 | بانر كبير | الهواتف والأجهزة اللوحية | LARGE_BANNER |
300 × 250 | إعلان مستطيل متوسط من مكتب الإعلانات التفاعلية (IAB) | الهواتف والأجهزة اللوحية | MEDIUM_RECTANGLE |
468×60 | إعلان بانر بالحجم الكامل لمكتب IAB | الأجهزة اللوحية | FULL_BANNER |
728×90 | قائمة الصدارة في مكتب الإعلانات التفاعلية (IAB) | الأجهزة اللوحية | LEADERBOARD |
العرض الذي تم إدخاله x الارتفاع التكيُّفي | إعلان بانر تكيُّفي | الهواتف والأجهزة اللوحية | لا ينطبق |
عرض الشاشة × 32|50|90 | إعلان بانر ذكي | الهواتف والأجهزة اللوحية | SMART_BANNER |
لتحديد حجم إعلان بانر مخصّص، اضبط AdSize
المطلوب كما هو موضّح:
Java
AdSize adSize = new AdSize(300, 50);
Kotlin
val adSize = AdSize(300, 50)
تسريع الأجهزة لإعلانات الفيديو
لعرض إعلانات الفيديو بنجاح في طرق عرض إعلانات البانر، يجب تفعيل تسريع الأجهزة.
تفعيل ميزة "تسريع الأجهزة" بشكل تلقائي، إلا أنّ بعض التطبيقات قد تختار إيقافه. إذا كان ذلك ينطبق على تطبيقك، ننصحك بتفعيل ميزة "تسريع الأجهزة" لفئات
Activity
من الفئات التي تستخدم الإعلانات.
تفعيل ميزة "تسريع الأجهزة"
إذا كان تطبيقك لا يعمل بالشكل الصحيح مع تفعيل ميزة "تسريع الأجهزة"
على مستوى العالم، يمكنك التحكّم في تفعيل ميزة "تسريع الأجهزة" للأنشطة الفردية أيضًا. لتفعيل ميزة "تسريع الأجهزة" أو إيقافها، يمكنك استخدام السمة android:hardwareAccelerated
لعناصر
<application>
و<activity>
في AndroidManifest.xml
. يعمل المثال التالي على تفعيل تسريع الأجهزة للتطبيق بأكمله ولكنه يوقِفه لنشاط واحد:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
راجِع دليل تسريع الأجهزة للحصول على مزيد من المعلومات حول خيارات التحكم في تسريع الأجهزة. تجدر الإشارة إلى أنّه لا يمكن تفعيل مشاهدات الإعلانات الفردية لتسريع الأجهزة إذا كان النشاط غير مفعّل، وبالتالي يجب تفعيل ميزة "تسريع الأجهزة" في النشاط نفسه.
مراجع إضافية
أمثلة على GitHub
نموذج تطبيق بانر RecyclerView: Java
فيديوهات تعليمية من Mobile Ads Garage
قصص النجاح
الخطوات التالية
يمكنك استكشاف المواضيع التالية: