استخدام مواضع الإعلانات

يوضّح لك هذا الدليل كيفية استخدام إضافة "مواضع الإعلانات" الإضافية لمنصّة Google لإعلانات الأجهزة الجوّالة لإنشاء إعلانات لتطبيقك وعرضها.

المتطلّبات الأساسية

إعداد حزمة SDK لإعلانات Google على الأجهزة الجوّالة

قبل تحميل الإعلانات، عليك إعداد حزمة تطوير البرامج (SDK) لإعلانات الأجهزة الجوّالة من خلال استدعاء MobileAds.Initialize()، مع استدعاء Action<InitializationStatus>. ويحتاج ذلك إلى مرة واحدة فقط، ويُفضَّل عند إطلاق التطبيق.

using GoogleMobileAds.Api;
using System.Collections.Generic;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    ...
    public void Start()
    {
        // Initialize the Mobile Ads SDK.
        MobileAds.Initialize((initStatus) =>
        {
            // SDK initialization is complete
        });
        ...
    }
}

إنشاء مواضع الإعلانات

تتمثل الخطوة الأولى لعرض إعلان بانر باستخدام إعلانات Google للأجهزة الجوّالة في إنشاء موضع إعلان وضبطه. يمكنك تحديد موضع إعلان بانر أو إعلان بيني أو بمكافأة من مواد العرض وgt وإعلانات Google للأجهزة الجوّالة وgt؛ مواضع الإعلانات في "محرّر Unity". ويتم بعد ذلك إعداد ثلاثة مواضع إعلانات تجريبية وتكون جاهزة للاستخدام.

لإضافة موضع إعلان جديد، انقر على الزر إضافة موضع إعلان جديد في نهاية القائمة. يمكنك ضبط موضع الإعلان من طريقة العرض "المفحّص".

ضبط موضع الإعلان

ولكل موضع موقع الخصائص التالية:

اسم الموضع
اسم موضع الإعلان. يُستخدم لتحديد المواضع عند إعداد الإعلانات في مشهد.
شكل الإعلان
بانر، إعلان بمكافأة، إعلان بيني، إعلان بانر نوع الإعلان.
رقم تعريف الوحدة الإعلانية
أدخِل رقم تعريف الوحدة الإعلانية لإعلانات البانر لنظامَي التشغيل Android وiOS. وعليك تقديم رقم تعريف واحد للوحدة الإعلانية على الأقل.
الاستمرار في المشاهدة على مختلف المشاهد
عند وضع علامة في هذا المربّع، سيستمر عرض إعلان البانر على الشاشة بغض النظر عن تغيُّر المشهد (السلوك نفسه الذي يتضمّنه DontDestroyOnLoad).
التحميل التلقائي مفعّل
عند وضع علامة في المربّع، سيتم تحميل الإعلان تلقائيًا عند تحميل مشهد مرتبط بموضع الإعلان.

تعرض لقطة الشاشة التالية مثالاً على موضع إعلان باسم My Banner Awesome.

إضافة AdGameObject إلى المشهد

يمكنك إضافة AdAdObject لإعلانات البانر أو الإعلانات البينية أو الإعلانات بمكافأة إلى المشهد باستخدام GameObject > Google للأجهزة الجوّالة في "محرّر Unity". اختَر التنسيق لإضافة موضع للمشهد النشط.

بعد إضافة يشكّل AdGameObject إلى المشهد، سترى GameObject الذي يمثّل الإعلان في العرض الهرمي لمحرر Unity.

ويمكنك تغيير اسم موضع الإعلان عن طريق تغيير اسم GameObject نفسه. تعرض لقطة الشاشة التالية مثالاً على AdGameObject باسم إعلان البانر.

إعدادات AdGameObject

يمكنك ضبط عنصر AdGameObject في المشهد من شاشة العرض في إعدادات مكوِّن Ad Game Object (النص البرمجي).

موضع الإعلان

حدِّد موضع الإعلان من القائمة المنسدلة لمواضع الإعلانات التي تم إعدادها. لن تتضمن القائمة سوى وحدات إعلانية للشكل المناسب. على سبيل المثال، بالنسبة إلى عناصر لعبة البانر، لن تعرض القائمة المنسدلة سوى مواضع إعلانات البانر التي تم إعدادها.

إعداد BannerAdGameObject (إعلان البانر فقط)

  • الحجم - اختَر حجم البانر الذي تريد استخدامه.
    • يوفّر إعلان البانر التكيُّفي الثابت بعض الخيارات الإضافية:
      • الاتجاه - اختَر اتجاه الجهاز المستخدَم لحساب ارتفاع الإعلان.
      • استخدام عرض ملء الشاشة - عند وضع علامة في هذا المربّع، سيشغل البانر عرض الشاشة بملء الشاشة. يمكنك ضبط النسبة المئوية لعرض الشاشة (بنسبة تتراوح بين 50 و99%) في حال إزالة العلامة من المربّع استخدام عرض ملء الشاشة.
    • يتيح لك الخيار مخصص توفير عرض وارتفاع إعلان البانر.
  • موضع الإعلان - اختَر الموضع الذي يجب وضع إعلان البانر فيه.

معاودة الاتصال

يمكنك تنفيذ الدوال التي تتوافق مع استدعاءات الإعلانات. على سبيل المثال، إذا كنت تريد معالجة الحالات التي يتعذّر فيها تحميل إعلان بانر:

  1. أنشئ دالة متوافقة مع استدعاء الإعلان.

    public void OnBannerAdFailedToLoad(string reason) {
        Debug.Log("Banner ad failed to load: " + reason);
    }
    
  2. أرفق النص البرمجي الذي يحتوي على الدالة أعلاه على GameObject في المنظر.

  3. انقر على الزر +، ثم اسحب &amp؛;أدِخل كائن اللعبة الذي عملت على إرفاقه للنص البرمجي.

  4. اختَر الدالة التي تريد ربطها بمعاودة الاتصال بالإعلان. بالنسبة إلى استدعاءات الإعلانات التي تتضمن معلمات، اختَر الدالة لقبول المتغير الديناميكي حتى يمكنك الحصول على قيمة المعلمة من حزمة تطوير البرامج (SDK).

استخدام AdGameObject من النص البرمجي

الحصول على مثيل AdGameObject من النص البرمجي

تستخدِم جميع عناصر AdGameObject الطريقة المناسبة LoadAd(). سيؤدي هذا إلى تحميل إعلان يحتوي على AdRequest عادي وغير مستهدف. لتطبيق الاستهداف، يجب استخدام LoadAd(AdRequest adRequest) باستخدام طلب الإعلان الذي تم إعداده.

للحصول على مثيل AdGameObject، استخدِم الطريقة التالية لكل شكل:

MobileAds.Instance.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

ويحتوي الكائن BannerAdGameObject المعروض أيضًا على طرق ملائمة Hide() وShow().

إعلان بيني

MobileAds.Instance.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

الكائن InterstitialAdGameObject المعروض يحتوي على طريقة ملائمة ShowIfLoaded().

تم منح المكافأة

MobileAds.Instance.GetAd<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

الكائن RewardedAdGameObject المعروض يحتوي على طريقة ملائمة ShowIfLoaded().

على سبيل المثال، يمكنك الحصول على نسخة افتراضية من BannerAdGameObject وتحميلها على النحو التالي:

using UnityEngine;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class BannerTestScript : MonoBehaviour
{
    BannerAdGameObject bannerAd;

    void Start()
    {
        bannerAd = MobileAds.Instance
            .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

        bannerAd.LoadAd();
        ...
    }
    ...
}

إذا كان هناك BannerAdGameObject اسمه إعلان بانر، يمكنك الحصول على مثيل منه كما يلي:

MobileAds.Instance.GetAd<BannerAdGameObject>("BannerAd");

الوصول إلى كائن الإعلان الأساسي في AdGameObject

توضح هذه المقتطفات كيفية الوصول إلى كائن الإعلان الأساسي المرتبط بـ AdGameObject.

BannerAdGameObject bannerAd = MobileAds.Instance
    .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

// Access BannerView object
BannerView bannerView = bannerAd.BannerView;

إعلان بيني

InterstitialAdGameObject interstitialAdGameObject = MobileAds.Instance
    .GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

// Access InterstitialAd object
InterstitialAd interstitialAd = interstitialAdGameObject.InterstitialAd;

تم منح المكافأة

RewardedAdGameObject rewardedAdGameObject = MobileAds.Instance
    .Get<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

// Access RewardedAd object
RewardedAd rewardedAd = rewardedAdGameObject.RewardedAd;

أمثلة

عرض إعلان بيني

في ما يلي مثال على كيفية إعداد لعبة لتحميلها وعرضها في إعلان بيني باستخدام AdGameObject.

أضِف InterstitialAdGameObject إلى المشهد وفعِّل ميزة التحميل التلقائي المفعّل، حتى يتم تحميل الإعلان تلقائيًا عند تحميل المشهد.

بعد ذلك، تأكد من إعداد حزمة تطوير البرامج (SDK) باستخدام ما يلي. لاحظ أن ميزة التحميل التلقائي في AdGameObject لن تعمل إذا نسيت إعداد حزمة تطوير البرامج (SDK).

بعد ذلك، اعرض إعلانًا بينيًا بين انتقال الشاشة من خلال استدعاء الدالة InterstitialAdGameObject.ShowIfLoaded(). يعرض الرمز التالي مثالاً لعرض إعلان بيني بين انتقال المشهد.

using UnityEngine;
using UnityEngine.SceneManagement;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAd<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }

    public void OnClickShowGameSceneButton()
    {
        // Display an interstitial ad
        interstitialAd.ShowIfLoaded();

        // Load a scene named "GameScene"
        SceneManager.LoadScene("GameScene");
    }
}

نظرًا لأنك فعّلت ميزة التحميل التلقائي في موضع الإعلان، لست بحاجة إلى طلب إعلان بشكل صريح. وعند تغيّر المشهد، ستظهر إعلانات بينية عندما يكون الإعلان جاهزًا.

وإذا كنت تريد طلب إعلان يدويًا، عليك إيقاف ميزة التحميل التلقائي من أداة فحص مواضع الإعلانات واستدعاء الوظيفة InterstitialAdGameObject.LoadAd() بدلاً من ذلك. يعرض مقتطف الرمز التالي كيفية طلب الإعلان يدويًا.

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAdGameObject<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("MobileAds initialized");

            // Load an interstitial ad after the SDK initialization is complete
            interstitialAd.LoadAd();
        });
    }
    ...
}

تعامل مع &علامة إعلان بمكافأة بمكافأة

في ما يلي مثال على كيفية تفعيل زر "&إعلان بمكافأة" باستخدام مواضع الإعلانات.

أضفزر GameObject (الذي يُعرف باسم Button في هذا المثال) إلى المشهد الذي سيُستخدَم لعرض إعلان بمكافأة. لن يكون هذا الزر متاحًا إلا عند توفّر إعلان بمكافأة.

في طريقة Start()، غيِّر الحالة النشطة للزر إلى false. وسيؤدي ذلك إلى اختفاء الزر من المشهد.

public class MainScene : MonoBehaviour
{
    ...
    void Start()
    {
        GameObject.Find("Button").SetActive(false);
        ...
    }
}

أضِف RewardedAdGameObject إلى المشهد واختَر موضع الإعلان بمكافأة لإصدار AdMob التجريبي.

ضمن قسم "معاودة الاتصال" في أداة فحص RewardedAdGameObject، انقر على الزر + من On Loaded() لتفعيل استدعاء الوظيفة عند تحميل إعلان بمكافأة.

اسحب نموذج GameObject الذي أضفته في الخطوة السابقة وأفلته في الحقل None (Object) (لا شيء). اختَر دالة ليتم طلبها من القائمة المنسدلة. انقر على لا دالة > GameObject > SetActive(bool)، ثم انقر على مربّع الاختيار بحيث يرسل true كمعلمة (تسمى SetActive(true)).

وفي هذا القسم، يمكنك أيضًا ربط حدث سيتم الاتصال به عند تنشيط الحدث RewardedAd.OnUserEarnedReward. لمزيد من التفاصيل، يُرجى الرجوع إلى هذا القسم.

بعد ذلك، يمكنك إنشاء الزر لعرض إعلان بمكافأة عند النقر عليه. من قسم On Click() Callbacks في فاحص الزر، انقر على الزر + واسحب وأزِل حقل GameObject لموضع الإعلان بمكافأة (الذي يحمل اسم إعلان بمكافأة في هذا المثال) إلى الحقل بدون (كائن).

ثم أرفِق الدالة RewardedAdGameObject.ShowIfLoaded() بالزر و's في Click().

وأخيرًا، لا تنسَ إعداد حزمة تطوير البرامج (SDK). مقتطف الرمز التالي هو الرمز الكامل للمشهد المستخدَم في هذا المثال:

using UnityEngine;

using GoogleMobileAds.Api;

public class MainScene : MonoBehaviour
{
    void Start()
    {
        GameObject.Find("Button").SetActive(false);

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }
}

بعد تشغيل المشروع، سترى الزر معروضًا على الشاشة عند تحميل إعلان بمكافأة ويكون جاهزًا للعرض.

ضبط رد اتصال مكافأة على إعلان بمكافأة

في ما يلي مثال عن كيفية ضبط استدعاء بمكافأة بمكافأة لموضع إعلان بمكافأة، حتى يمكنك منح مكافأة إلى مستخدم عند استدعاء وظيفة رد اتصال.

يمكنك إنشاء نص برمجي جديد وتحديد دالة تقبل Reward كمعلَمة على النحو التالي.

using UnityEngine;
using GoogleMobileAds.Api;

class RewardedTestScript : MonoBehaviour {
    ...
    public void OnUserEarnedReward(Reward reward) {
        Debug.Log("OnUserEarnedReward: reward=" +
            reward.Type + ", amount=" + reward.Amount);
    }
    ...
}

إرفاق النص البرمجي RewardedTestScript بأي GameObject (باستثناء موضع إعلان اللعبة) في المشهد. في هذا المثال، يتم إرفاقه بكاميرا GameObject الرئيسية.

أضف RewardedAdGameObject إلى المشهد. وبعد ذلك، ضمن قسم معاودة الاتصال في فاحص RewardedAdGameObject، انقر على الزر + على المستخدم مكافأة مكتسبة (مكافأة) لتفعيل طلب الوظيفة عندما يتم منح المكافأة.

اسحب أداة GameObject الرئيسية التي أضفتها وأفلتها في الخطوة السابقة في حقل بدون (كائن). اختَر دالة ليتم استدعاؤها من القائمة المنسدلة. انقر على بلا وظيفة > RewardTestScript > OnUserearnedReward.

بعد تشغيل المشروع ومشاهدة إعلان بمكافأة، سيتم استدعاء RewardedTestScript.OnUserEarnedReward() عندما يتم منحك مكافآت مقابل التفاعل مع الإعلان.