מודעות מותאמות

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

מודעות מותאמות הן נכסי מודעות שמוצגים למשתמשים באמצעות רכיבי ממשק משתמש המותאמים לפלטפורמה. הן מוצגות באותם סוגים של תצוגות מפורטות, שבהן כבר יצרתם את הפריסות, ואפשר לעצב אותן כך שיתאימו לעיצוב החזותי של חוויית המשתמש. כשמדובר בקידוד, פירוש הדבר הוא שכאשר מודעה מותאמת נטענת, האפליקציה מקבלת NativeAd אובייקט שמכיל את הנכסים שלו, ורק לאחר מכן האפליקציה (ולא ה-SDK של מודעות Google לנייד) היא האחראית להצגתם.

באופן כללי, יש שני חלקים להטמעת מודעות מותאמות: טעינת מודעה באמצעות SDK ולאחר מכן הצגת תוכן המודעה באפליקציה.

הדף הזה עוסק בשימוש ב-SDK כדי לטעון מודעות מותאמות.

דרישות מוקדמות

יישום

מודעות מותאמות נטענות לסיווג AdLoader, שיש לו כיתה משלו מסוג Builder, כדי להתאים אותו אישית במהלך היצירה. על ידי הוספת מאזינים לAdLoader במהלך היצירה, אפליקציה מציינת את סוגי המודעות המותאמות שהיא מוכנה לקבל. לאחר מכן, AdLoader מבקש רק את הסוגים האלה.

בניית AdLoader

הקוד הבא מראה איך לבנות AdLoader שיכול לטעון מודעות מותאמות:

Java

AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
        @Override
        public void onNativeAdLoaded(NativeAd nativeAd) {
            // Show the ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(new NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build();

Kotlin

val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { ad : NativeAd ->
        // Show the ad.
    }
    .withAdListener(object : AdListener() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

הכנה לפורמט של NativeAd

השיטה הראשונה שלמעלה היא להכין את AdLoader בפורמט NativeAd:

forNativeAd()
קריאה לשיטה זו מגדירה את AdLoader לבקשת מודעות מותאמות. כשמודעה נטענת, מתבצעת קריאה למתודה onNativeAdLoaded() של אובייקט ההאזנה.

כש-AdLoader שולחת בקשה להצגת מודעה, Google בוחרת ומחזירה את המודעה שמגדילה את התפוקה של בעל האפליקציה.

הגדרה של AdListener באמצעות AdLoader (אופציונלי)

במהלך יצירת AdLoader שלמעלה, הפונקציה withAdListener מגדירה AdListener. השיטה מקבלת את AdListener כפרמטר הבודד שלה, שמקבל קריאה חוזרת (callback) מה-AdLoader כאשר מתרחשים אירועי מחזור חיים של מודעה:

Java

.withAdListener(new AdListener() {
    // AdListener callbacks can be overridden here.
})

Kotlin

.withAdListener(object : AdListener() {
    // AdListener callbacks can be overridden here.
})

טעינת מודעות

לאחר שסיימת לבנות את AdLoader, הגיע הזמן לטעון אותו. אפשר לעשות זאת בשתי שיטות: loadAd() ו-loadAds().

loadAd()
בשיטה זו נשלחת בקשה להצגת מודעה בודדת. :

Java

adLoader.loadAd(new AdRequest.Builder().build());

Kotlin

adLoader.loadAd(AdRequest.Builder().build())
loadAds()
בשיטה הזו נשלחת בקשה לגבי מספר מודעות (עד חמש מודעות): :

Java

adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

adLoader.loadAds(AdRequest.Builder().build(), 3)

שתי השיטות האלה כוללות אובייקט AdRequest כפרמטר הראשון שלהן. זוהי אותה כיתה AdRequest המשמשת אתכם למודעות באנר ולמודעות מעברון. ניתן להשתמש בשיטות של הכיתה AdRequest כדי להוסיף פרטי מיקוד, בדיוק כמו כשמשתמשים בפורמטים אחרים של מודעות.

הפרמטר loadAds() מוסיף פרמטר נוסף: מספר המודעות שה-SDK צריך לנסות לטעון בבקשה. מספר זה מוגבל לחמש, ולא בטוח שה-SDK יחזיר את המספר המדויק של המודעות המבוקשות.

מודעות Google שהוחזרו יהיו שונות זו מזו. לא מובטח שמודעות של קונים שמורים או צדדים שלישיים, כולל קונים שהוגדרו לתהליך בחירת הרשת (Mediation) ב-Waterfall או לבידינג, יהיו ייחודיות.

התקשרות חזרה

אחרי שמתקשרים אל loadAd(), מתבצעת קריאה חוזרת (callback) אחת לשיטות ההאזנה שהוגדרו קודם כדי לספק את האובייקט של המודעה המותאמת או לדווח על שגיאה.

לאחר שיחה אל loadAds(), התקשרות חזרה לשיחה חוזרת היא כמות גדולה (לפחות אחת, ולא יותר ממספר המודעות המבוקשות). אפליקציות שמבקשות להציג מספר מודעות צריכות לקרוא ל-AdLoader.isLoading() בהטמעות השיחות שלהן כדי לקבוע אם תהליך הטעינה הסתיים.

הדוגמה הבאה ממחישה איך לבדוק את isLoading() בשיחה החוזרת (onNativeAdLoaded()):

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading()) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)

הפצת משאבים

חשוב להשתמש בשיטה destroy() במודעות מותאמות שנטענו. כך ניתן לפנות משאבים מיותרים ולמנוע דליפות זיכרון.

עליך לוודא שכל NativeAd ההפניות שנהרסו בשיטת הפעילות של onDestroy().

בקריאה החוזרת (callback) ב-onNativeAdLoaded, חשוב להרוס את כל המודעות הקיימות שיש להן ביטול הקצאה.

בדיקה מרכזית נוספת היא אם הפעילות נהרסה ואם כן, התקשרו ל-destroy() במודעה המוחזרת וחזרו מיד:

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed()` is a method on Activity.
        if (isDestroyed()) {
            nativeAd.destroy();
            return;
        }
        ...
    }
}).build();

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { nativeAd ->
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed` is a method on Activity.
        if (isDestroyed) {
            nativeAd.destroy()
            return@forNativeAd
        }
        ...
    }.build()

תמיד לבדוק עם מודעות בדיקה

כשאתם בונים ובודקים את האפליקציות, הקפידו להשתמש במודעות בדיקה ולא במודעות ייצור חיות. אי-ציות לחוקים או לתנאים עלול להוביל להשעיה של החשבון.

הדרך הקלה ביותר לטעון מודעות בדיקה היא להשתמש במזהה יחידת המודעות הייעודי שלנו למודעות מותאמות מתקדמות ב-Android:

ca-app-pub-3940256099942544/2247696110

התצורה הוגדרה באופן ספציפי כך שתחזיר מודעות בדיקה לכל בקשה, ואתם יכולים להשתמש בה באפליקציות קוד תוך כדי קידוד, בדיקה וניפוי באגים. לפני שתפרסמו את האפליקציה, הקפידו להחליף אותה במזהה יחידת המודעות שלכם.

מידע נוסף על אופן הפעולה של מודעות בדיקה של Mobile Ads SDK זמין במאמר מודעות בדיקה.

מתי לבקש מודעות

אפליקציות שמוצגות בהן מודעות מותאמות זמינות בחינם ומבקשות להציג אותן מראש. במקרים רבים, זו השיטה המומלצת. למשל, אפליקציה שמציגה רשימה של פריטים שבהם יש מודעות מותאמות ומשולבת בהם יכולה לטעון מודעות מותאמות לרשימה כולה, אם חלקן יהיו מוצגות רק אחרי שהמשתמש גולל את התצוגה וחלקן לא יוצגו.

שיפור המהירות באמצעות חומרה במודעות וידאו

כדי שמודעות וידאו יופיעו בהצלחה בצפיות במודעות מותאמות, צריך להפעיל את האפשרות שיפור מהירות באמצעות חומרה.

ההגדרה 'שיפור מהירות באמצעות חומרה' מופעלת כברירת מחדל, אבל ייתכן שחלק מהאפליקציות בחרו להשבית אותה. אם אפשרות זו רלוונטית לאפליקציה שלכם, מומלץ להפעיל שיפור מהירות באמצעות חומרה לסיווגי פעילות שמשתמשים במודעות.

הפעלה של שיפור מהירות באמצעות חומרה

אם האפליקציה שלכם לא פועלת כראוי כשמצב 'שיפור מהירות באמצעות חומרה' פועל ברחבי העולם, תוכלו לשלוט בה גם עבור פעילויות ספציפיות. כדי להפעיל או להשבית את ההאצה בחומרה, אפשר להשתמש במאפיין 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>

מידע נוסף על האפשרויות לשליטה בהאצת החומרה זמין במדריך בנושא האצה של HW. חשוב לשים לב שלא ניתן להפעיל צפיות נפרדות במודעות להאצת חומרה, אם הפעילות מושבתת. לכן, ההגדרה 'פעילות' צריכה להיות מופעלת.

הצגת NativeAd

לאחר הטעינה של מודעה, כל מה שנשאר הוא להציג אותה למשתמשים. מומלץ לעבור למדריך המותאם המתקדם כדי לראות כיצד לעשות זאת.

,

מודעות מותאמות הן נכסי מודעות שמוצגים למשתמשים באמצעות רכיבי ממשק משתמש המותאמים לפלטפורמה. הן מוצגות באותם סוגים של תצוגות מפורטות, שבהן כבר יצרתם את הפריסות, ואפשר לעצב אותן כך שיתאימו לעיצוב החזותי של חוויית המשתמש. כשמדובר בקידוד, פירוש הדבר הוא שכאשר מודעה מותאמת נטענת, האפליקציה מקבלת NativeAd אובייקט שמכיל את הנכסים שלו, ורק לאחר מכן האפליקציה (ולא ה-SDK של מודעות Google לנייד) היא האחראית להצגתם.

באופן כללי, יש שני חלקים להטמעת מודעות מותאמות: טעינת מודעה באמצעות SDK ולאחר מכן הצגת תוכן המודעה באפליקציה.

הדף הזה עוסק בשימוש ב-SDK כדי לטעון מודעות מותאמות.

דרישות מוקדמות

יישום

מודעות מותאמות נטענות לסיווג AdLoader, שיש לו כיתה משלו מסוג Builder, כדי להתאים אותו אישית במהלך היצירה. על ידי הוספת מאזינים לAdLoader במהלך היצירה, אפליקציה מציינת את סוגי המודעות המותאמות שהיא מוכנה לקבל. לאחר מכן, AdLoader מבקש רק את הסוגים האלה.

בניית AdLoader

הקוד הבא מראה איך לבנות AdLoader שיכול לטעון מודעות מותאמות:

Java

AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
        @Override
        public void onNativeAdLoaded(NativeAd nativeAd) {
            // Show the ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(new NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build();

Kotlin

val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { ad : NativeAd ->
        // Show the ad.
    }
    .withAdListener(object : AdListener() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

הכנה לפורמט של NativeAd

השיטה הראשונה שלמעלה היא להכין את AdLoader בפורמט NativeAd:

forNativeAd()
קריאה לשיטה זו מגדירה את AdLoader לבקשת מודעות מותאמות. כשמודעה נטענת, מתבצעת קריאה למתודה onNativeAdLoaded() של אובייקט ההאזנה.

כש-AdLoader שולחת בקשה להצגת מודעה, Google בוחרת ומחזירה את המודעה שמגדילה את התפוקה של בעל האפליקציה.

הגדרה של AdListener באמצעות AdLoader (אופציונלי)

במהלך יצירת AdLoader שלמעלה, הפונקציה withAdListener מגדירה AdListener. השיטה מקבלת את AdListener כפרמטר הבודד שלה, שמקבל קריאה חוזרת (callback) מה-AdLoader כאשר מתרחשים אירועי מחזור חיים של מודעה:

Java

.withAdListener(new AdListener() {
    // AdListener callbacks can be overridden here.
})

Kotlin

.withAdListener(object : AdListener() {
    // AdListener callbacks can be overridden here.
})

טעינת מודעות

לאחר שסיימת לבנות את AdLoader, הגיע הזמן לטעון אותו. אפשר לעשות זאת בשתי שיטות: loadAd() ו-loadAds().

loadAd()
בשיטה זו נשלחת בקשה להצגת מודעה בודדת. :

Java

adLoader.loadAd(new AdRequest.Builder().build());

Kotlin

adLoader.loadAd(AdRequest.Builder().build())
loadAds()
בשיטה הזו נשלחת בקשה לגבי מספר מודעות (עד חמש מודעות): :

Java

adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

adLoader.loadAds(AdRequest.Builder().build(), 3)

שתי השיטות האלה כוללות אובייקט AdRequest כפרמטר הראשון שלהן. זוהי אותה כיתה AdRequest המשמשת אתכם למודעות באנר ולמודעות מעברון. ניתן להשתמש בשיטות של הכיתה AdRequest כדי להוסיף פרטי מיקוד, בדיוק כמו כשמשתמשים בפורמטים אחרים של מודעות.

הפרמטר loadAds() מוסיף פרמטר נוסף: מספר המודעות שה-SDK צריך לנסות לטעון בבקשה. מספר זה מוגבל לחמש, ולא בטוח שה-SDK יחזיר את המספר המדויק של המודעות המבוקשות.

מודעות Google שהוחזרו יהיו שונות זו מזו. לא מובטח שמודעות של קונים שמורים או צדדים שלישיים, כולל קונים שהוגדרו לתהליך בחירת הרשת (Mediation) ב-Waterfall או לבידינג, יהיו ייחודיות.

התקשרות חזרה

אחרי שמתקשרים אל loadAd(), מתבצעת קריאה חוזרת (callback) אחת לשיטות ההאזנה שהוגדרו קודם כדי לספק את האובייקט של המודעה המותאמת או לדווח על שגיאה.

לאחר שיחה אל loadAds(), התקשרות חזרה לשיחה חוזרת היא כמות גדולה (לפחות אחת, ולא יותר ממספר המודעות המבוקשות). אפליקציות שמבקשות להציג מספר מודעות צריכות לקרוא ל-AdLoader.isLoading() בהטמעות השיחות שלהן כדי לקבוע אם תהליך הטעינה הסתיים.

הדוגמה הבאה ממחישה איך לבדוק את isLoading() בשיחה החוזרת (onNativeAdLoaded()):

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading()) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)

הפצת משאבים

חשוב להשתמש בשיטה destroy() במודעות מותאמות שנטענו. כך ניתן לפנות משאבים מיותרים ולמנוע דליפות זיכרון.

עליך לוודא שכל NativeAd ההפניות שנהרסו בשיטת הפעילות של onDestroy().

בקריאה החוזרת (callback) ב-onNativeAdLoaded, חשוב להרוס את כל המודעות הקיימות שיש להן ביטול הקצאה.

בדיקה מרכזית נוספת היא אם הפעילות נהרסה ואם כן, התקשרו ל-destroy() במודעה המוחזרת וחזרו מיד:

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed()` is a method on Activity.
        if (isDestroyed()) {
            nativeAd.destroy();
            return;
        }
        ...
    }
}).build();

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { nativeAd ->
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed` is a method on Activity.
        if (isDestroyed) {
            nativeAd.destroy()
            return@forNativeAd
        }
        ...
    }.build()

תמיד לבדוק עם מודעות בדיקה

כשאתם בונים ובודקים את האפליקציות, הקפידו להשתמש במודעות בדיקה ולא במודעות ייצור חיות. אי-ציות לחוקים או לתנאים עלול להוביל להשעיה של החשבון.

הדרך הקלה ביותר לטעון מודעות בדיקה היא להשתמש במזהה יחידת המודעות הייעודי שלנו למודעות מותאמות מתקדמות ב-Android:

ca-app-pub-3940256099942544/2247696110

התצורה הוגדרה באופן ספציפי כך שתחזיר מודעות בדיקה לכל בקשה, ואתם יכולים להשתמש בה באפליקציות קוד תוך כדי קידוד, בדיקה וניפוי באגים. לפני שתפרסמו את האפליקציה, הקפידו להחליף אותה במזהה יחידת המודעות שלכם.

מידע נוסף על אופן הפעולה של מודעות בדיקה של Mobile Ads SDK זמין במאמר מודעות בדיקה.

מתי לבקש מודעות

אפליקציות שמוצגות בהן מודעות מותאמות זמינות בחינם ומבקשות להציג אותן מראש. במקרים רבים, זו השיטה המומלצת. למשל, אפליקציה שמציגה רשימה של פריטים שבהם יש מודעות מותאמות ומשולבת בהם יכולה לטעון מודעות מותאמות לרשימה כולה, אם חלקן יהיו מוצגות רק אחרי שהמשתמש גולל את התצוגה וחלקן לא יוצגו.

שיפור המהירות באמצעות חומרה במודעות וידאו

כדי שמודעות וידאו יופיעו בהצלחה בצפיות במודעות מותאמות, צריך להפעיל את האפשרות שיפור מהירות באמצעות חומרה.

ההגדרה 'שיפור מהירות באמצעות חומרה' מופעלת כברירת מחדל, אבל ייתכן שחלק מהאפליקציות בחרו להשבית אותה. אם אפשרות זו רלוונטית לאפליקציה שלכם, מומלץ להפעיל שיפור מהירות באמצעות חומרה לסיווגי פעילות שמשתמשים במודעות.

הפעלה של שיפור מהירות באמצעות חומרה

אם האפליקציה שלכם לא פועלת כראוי כשמצב 'שיפור מהירות באמצעות חומרה' פועל ברחבי העולם, תוכלו לשלוט בה גם עבור פעילויות ספציפיות. כדי להפעיל או להשבית את ההאצה בחומרה, אפשר להשתמש במאפיין 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>

מידע נוסף על האפשרויות לשליטה בהאצת החומרה זמין במדריך בנושא האצה של HW. חשוב לשים לב שלא ניתן להפעיל צפיות נפרדות במודעות להאצת חומרה, אם הפעילות מושבתת. לכן, ההגדרה 'פעילות' צריכה להיות מופעלת.

הצגת NativeAd

לאחר הטעינה של מודעה, כל מה שנשאר הוא להציג אותה למשתמשים. מומלץ לעבור למדריך המותאם המתקדם כדי לראות כיצד לעשות זאת.