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

يوضّح لك هذا الدليل كيفية استخدام مكوّن Unity الإضافي لإعلانات 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 للجوّال في إنشاء تهيئة موضع إعلان. يمكنك اختيار موضع إعلان "بانر" شكل إعلان بيني أو إعلان يضم مكافأة من مواد العرض >. إعلانات Google للأجهزة الجوّالة > الإعلان مواضع الإعلان في Unity Editor. بعد ذلك يتم عرض ثلاثة مواضع للإعلانات التجريبية إعدادًا وجاهزًا للاستخدام.

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

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

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

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

توضح لقطة الشاشة التالية مثالاً على موضع إعلان باسم بانر برنامجي الرائع:

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

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

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

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

إعدادات AdGameObject

يمكنك ضبط AdGameObject في المشهد من أداة الفحص. في إعدادات عنصر لعبة الإعلان (النص البرمجي).

موضع الإعلان

اختَر موضع الإعلان من القائمة المنسدلة لمواضع الإعلانات التي تم ضبطها. تشير رسالة الأشكال البيانية على وحدات إعلانية للشكل الصحيح فقط. على سبيل المثال، بالنسبة إلى إعلان البانر كائنات اللعبة، لن تعرض القائمة المنسدلة سوى مواضع إعلانات البانر التي تم ضبطها فقط.

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

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

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

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

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

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

  3. انقر على الزر +، ثم اسحب إفلات GameObject الذي أرفقته النص البرمجي إليه.

  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 باسم BannerAd، يمكنك الحصول على مثال على النحو التالي:

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) باستخدام ما يلي: لاحظ أن عنصر Auto لن تعمل ميزة "التحميل" في 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 Ad Loaded() لتفعيل طلب الدالة عند تحميل إعلان يضم مكافأة

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

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

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

بعد ذلك، أرفِق الدالة RewardedAdGameObject.ShowIfLoaded() بالعناصر عند النقر().

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

using UnityEngine;

using GoogleMobileAds.Api;

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

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

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

ضبط عملية استدعاء مكافأة لـ BonusedAdGameObject

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

يمكنك إنشاء نص برمجي جديد وتحديد دالة تقبل بـ 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) في المشهد. في هذا المثال، يتم إرفاقه بالوحدة الرئيسية GameObject الكاميرا.

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

اسحب عنصر GameObject الرئيسي الذي أضفته في الفيديو السابق وأفلِته إلى الحقل بدون (كائن). حدد الدالة المطلوب استدعاؤها من المنسدلة. انقر على بدون دالة > BonusedTestScript > OnUserRevenueedمكافأة:

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