راهنمای اندروید

برای استفاده از نسخه اندروید کتابخانه مگنت لازم است متن زیر را به دقت مطالعه کنید و مراحل لازم را انجام دهید. این متن شامل بخش‌های مختلفی است که در فهرست زیر مشاهده می‌کنید.

1- ساخت رسانه در پنل

برای استفاده از سیستم تبلیغاتی مگنت ابتدا لازم است در سایت مگنت به عنوان ناشر یک حساب کاربری بسازید. پس از ورود به حساب کاربری خود، در پنل کاربری خود و در قسمت رسانه‌ها یک رسانه جدید بسازید. پس از ساخت رسانه، واحدهای تبلیغ مورد نیاز خود را نیز اضافه کنید. به ازای هر جایگاه تبلیغاتی یک شناسه به شما داده می‌شود که از این شناسه در مراحل بعدی برای دریافت تبلیغ استفاده خواهید کرد. توجه داشته باشید که برای دریافت تبلیغات، رسانه شما باید توسط مگنت تایید شود. در غیر این صورت برای تست برنامه خود می‌توانید از تبلیغات تستی مگنت کمک بگیرید که در ادامه چگونگی دریافت این تبلیغات توضیح داده می‌شود.

2- راه‌اندازی سیستم تبلیغ

پس از ساخت رسانه و واحد تبلیغ، می‌توانید کتابخانه مگنت را به برنامه خود اضافه کنید و تبلیغات مورد نیاز خود را پیاده‌سازی کنید. در این بخش تغییرات لازم برای استفاده از این کتابخانه بررسی می‌شود.

2-1- اضافه کردن کتابخانه مگنت به پروژه

کتابخانه مگنت را می‌توانید از اینجا دریافت کنید. پس از دریافت jar فایل، لازم است آن را در پوشه app > libs برنامه خود قرار دهید. برای اضافه شدن کتابخانه به پروژه شما لازم است در فایل app > build.gradle و در قسمت dependencies مسیر فایل کتابخانه در پروژه خود را اضافه کنید.

2-2- تنظیمات proguard

در صورتی که در برنامه خود از تنظیمات proguard استفاده می‌کنید، خطوط زیر را به فایل app > proguard-rules.pro اضافه کنید.

-keep class com.magnetadservices.sdk.** { *; }
-keepattributes Signature
-keepattributes *Annotation*

2-3- تنظیمات manifest

برای استفاده از کتابخانه مگنت لازم است تغییراتی در فایل manifest ایجاد شود.

2-3-1- اضافه کردن دسترسی‌ها

برای دریافت تبلیغ در پروژه خود، باید دسترسی‌های زیر را به فایل AndroidManifest.xml اضافه کنید.

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!--optional-->

البته دسترسی ACCESS_COARSE_LOCATION اختیاری است؛ برای دقیق‌تر شدن هدف تبلیغات می‌توانید از آن استفاده کنید.

2-3-2- اضافه کردن اکتیویتی جدید

همچنین برای نمایش تبلیغات لازم است اکتیویتی MagnetInterstitialActivity را به فایل AndroidManifest.xml اضافه کنید.

<activity
    android:name="com.magnetadservices.sdk.MagnetInterstitialActivity"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:configChanges="orientation|screenSize|keyboardHidden"
    android:hardwareAccelerated="true" />

یک نمونه فایل AndroidManifest.xml با اعمال تغییرات ذکرشده را در زیر می‌بینید.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="your.company.package" >

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!--optional-->

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name="com.magnetadservices.sdk.MagnetInterstitialActivity"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:configChanges="orientation|screenSize|keyboardHidden"
            android:hardwareAccelerated="true" />
    </application>
</manifest>

2-4- راه‌اندازی اولیه کتابخانه مگنت

در مراحل قبلی تنظیمات لازم برای استفاده از کتابخانه مگنت توضیح داده شد. در این بخش و بخش‌های بعدی به پیاده‌سازی انواع تبلیغات می‌پردازیم. برای شروع کتابخانه مگنت (MagnetSDK) را به شکل زیر در ابتدای برنامه خود راه‌اندازی کنید. این کار را می‌توانید ابتدای OnCreate اکتیویتی برنامه خود انجام دهید.

MagnetSDK.initialize(getApplicationContext());

همان طور که در مراحل قبل هم گفته شد، در صورتی که رسانه‌ای که در پنل کاربری خود ساختید، تایید نشده باشد، تنها می‌توانید تبلیغات تستی را در برنامه خود دریافت کنید. برای تست کتابخانه مگنت و دریافت تبلیغات تستی حالت تست را فعال کنید و تنها در صورت نهایی شدن و قبل از انتشار برنامه آن را غیر فعال کنید.

MagnetSDK.getSettings().setTestMode(true);

2-5- پیاده‌سازی انواع تبلیغات

با استفاده از کتابخانه مگنت، می‌توانید تبلیغات بنر موبایل، بنر استاندارد، همسان اکسپرس، میانی و جایزه‌ای را در برنامه خود قرار دهید. در این بخش به صورت جداگانه پیاده‌سازی هر کدام از تبلیغات توضیح داده می‌شود.

2-5-1- همسان اکسپرس

برای قرار دادن تبلیغات همسان اکسپرس در برنامه خود ابتدا لازم است جایگاهی برای تبلیغ در نظر بگیرید.

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/nativeExpress">
</FrameLayout>

سپس جایگاه ساخته‌شده را دریافت کنید.

FrameLayout adLayout = findViewById(R.id.nativeExpress);

در گام بعدی با استفاده از شناسه‌ای که بعد از ساخت واحد تبلیغ در پنل کاربری خود دریافت کردید و همین طور سایز مورد نظر خود برای جایگاه تبلیع، درخواست تبلیغ دهید. باید توجه داشته باشید سایزی که برای تبلیغ همسان اکسپرس در نظر می‌گیرید، متناسب با قالب تبلیغ باشد تا تبلیغ به صورت مناسبی نمایش داده شود.

2-5-1-1- پست جامع

برای پیاده‌سازی پست جامع دو روش وجود دارد.

روش اول: تعریف طول و عرض تبلیغ بنا به فضایی که شما در اپلیکیشن خود دارید. به این منظور عرضی که برای فضای تبلیغ در نظر می‌گیرید حداقل از ۳۰۰ پیکسل بیشتر باشد. پیشنهاد ما عرضی مابین ۳۰۰ الی ۳۲۰ پیکسل است. ارتفاع فضای تبلیغ بهتر است به نسبت عرض تبلیغ تعریف شود. بهترین نسبت، نسبت ۱ به ۱ و یا ۳ به ۲ است. (مثال : ۳۰۰x۳۰۰ و یا ۲۰۰x۳۰۰ و یا ۲۵۰x۳۲۰) لازم به ذکر است نسبت عرض و ارتفاعی که تعریف می‌کنید هرگز از نسبت ۳ به ۲ کوچکتر نشود تا تبلیغات به بهترین شکل ممکن نمایش داده شود. ( مثال سایز نادرست : ۱۵۰x۳۰۰)

MagnetNativeExpress nativeExpress = MagnetNativeExpress.create(getApplicationContext());
nativeExpress.load("AdUnitId", adLayout, new AdSize(300, 300));

روش دوم: عرض تبلیغ برابر با عرض دستگاه تغییر کند. در این حالت عرض فضای تبلیغ شما همیشه ۱۰۰٪ خواهد بود که نمونه کد مرتبط با پیاده‌سازی به این روش در ذیل وجود دارد. در این حالت ارتفاع فضای تبلیغ حداقل باید ۲۵۰ پیکسل باشد. البته شما بر اساس فضای خالی که در اپلیکیشن خود دارید می‌توانید ارتفاع بیشتری هم به آن اختصاص دهید . پیشنهاد ما برای این حالت، ارتفاعی ما بین ۲۵۰ الی ۳۵۰ پیکسل است. توجه داشته باشید که عرض جایگاهی که تعریف کردید باید مقدار match_parent را داشته باشد.

MagnetNativeExpress nativeExpress = MagnetNativeExpress.create(getApplicationContext());
nativeExpress.load("AdUnitId", adLayout, 300);

همچنین در این حالت می‌توانید عرض و ارتفاعی که برای این قالب از تبلیغ در نظر می‌گیرید، نسبت ۱ به ۱ را رعایت کند تا تبلیغ ظاهر بهتری داشته باشد. برای مثال برای دریافت تبلیغ به صورتی که تمام عرض جایگاه را پر کند و نسبت ۱ به ۱ را رعایت کند، می توانید از قطعه کد زیر در onCreate اکتیویتی یا onCreateView فرگمنت برنامه خود استفاده کنید. توجه داشته باشید که عرض جایگاهی که تعریف کردید باید مقدار match_parent را داشته باشد.

MagnetNativeExpress nativeExpress = MagnetNativeExpress.create(getApplicationContext());
ViewTreeObserver vto = adLayout.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
            adLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
        } else {
            adLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
        }
        int width = (int) (adLayout.getMeasuredWidth() / getResources().getDisplayMetrics().density);
        nativeExpress.load("AdUnitId", adLayout, new AdSize(width, width));
    }
});

اگر بخواهید تبلیغ خود را بعد از ایجاد ویو اکتیویتی و یا فرگمنت درخواست دهید، مثلا بعد از کلیک شدن دکمه، عرض جایگاه را می‌توانید به صورت زیر دریافت کنید و سپس درخواست تبلیغ دهید.

int width = (int) (adLayout.getWidth() / metrics.density);
nativeExpress.load("AdUnitId", adLayout, new AdSize(width, width));

البته توجه داشته باشید که شما می‌توانید ارتفاع تبلیغ خود را متناسب با فضای برنامه خود تغییر دهید تا چینش دلخواه‌تان را داشته باشید. برای توضیحات بیشتر در مورد نحوه تعیین سایز جایگاه تبلیغ برای تبلیغ همسان اکسپرس می‌توانید این بخش را مطالعه کنید. همچنین برای اطلاع از وضعیت تبلیغ درخواست‌شده، می‌توانید از MagnetAdLoadListener استفاده کنید. با استفاده از این از رویدادهای دریافت تبلیغ (onReceive) و بروز خطا در دریافت تبلیغ (onFail) مطلع می‌شوید.

nativeExpress.setAdLoadListener(new MagnetAdLoadListener() {
    @Override
    public void onPreload(int i, String s) {
        //این تابع در همسان اکسپرس فراخوانی نمی‌شود.
    }

    @Override
    public void onReceive() {
        //زمانی که تبلیغ دریافت و نمایش داده می‌شود این تابع فراخوانی می‌شود.
    }

    @Override
    public void onFail(int i, String s) {
        //زمانی که دریافت و نمایش تبلیغ به مشکل برمی‌خورد این تابع فراخوانی می‌شود .
    }

    @Override
    public void onClose() {
        // این تابع در همسان اکسپرس فراخوانی نمی‌شود.
    }
});

2-5-2- میانی

تبلیغات میانی یا تبلیغات تمام صفحه، در هنگام نمایش تمام صفحه نمایش را دربرمی‌گیرند و معمولا بین قسمت‌های مختلف برنامه استفاده می‌شوند. این تبلیغات بعد از دریافت کامل قابل نمایش هستند و بهتر است قبل از آن که به نمایش دادن آن نیاز داشته باشید، آن را درخواست دهید و بعدا در زمان مورد نظرتان آن را نمایش دهید. برای درخواست تبلیغات میانی فقط به شناسه‌ای که در مرحله ساخت واحد تبلیغ دریافت کردید (AdUnitId) نیاز دارید. قطعه کد زیر چگونگی درخواست تبلیغات میانی را نشان می‌دهد.

MagnetInterstitialAd interstitialAd = MagnetInterstitialAd.create(getApplicationContext());
interstitialAd.load("AdUnitId");

هنگامی که تبلیغ به صورت کامل دریافت شود، می‌توانید با فراخوانی تابع show تبلیغ را نمایش دهید. همچنین برای بررسی وضعیت دریافت تبلیغ می‌توانید از تابع isAdReady استفاده کنید. اگر تبلیغ به صورت کامل دریافت شده باشد، خروجی این تابع true خواهد بود و در غیر این صورت مقدار false را برمی‌گرداند. قطعه کد زیر نمونه استفاده از دو تابعی که توضیح داده شد را نشان می‌دهد.

if (interstitialAd.isAdReady()) {
    interstitialAd.show();
} else {
    // تبلیغ برای نمایش آماده نیست
}

همچنین برای دریافت رویدادهای تبلیغ درخواستی، می‌توانید از MagnetAdLoadListener استفاده کنید. به این طریق می‌توانید از رویدادهای دریافت تبلیغ (onReceive) و بروز خطا در هنگام دریافت تبلیغ (onFail) مطلع شوید. قطعه کد زیر چگونگی درخواست تبلیغ میانی با استفاده از MagnetAdLoadListener نشان می‌دهد.

final MagnetInterstitialAd interstitialAd = MagnetInterstitialAd.create(getApplicationContext());
interstitialAd.setAdLoadListener(new MagnetAdLoadListener() {
    @Override
    public void onPreload(int price, String currency) {
        // این تابع برای میانی فراخوانی نمی‌شود.
    }

    @Override
    public void onReceive() {
        //زمانی که تبلیغ دریافت می‌شود این تابع فراخوانی می‌شود و از این زمان می‌توانید تبلیغ را نمایش دهید.
        interstitialAd.show();
    }

    @Override
    public void onFail(int errorCode, String errorMessage) {
        //زمانی که دریافت و نمایش تبلیغ به مشکل برمی‌خورد این تابع فراخوانی می‌شود .
    }

    @Override
    public void onClose() {
        // زمانی که تبلیغ توسط کاربر بسته می‌شود، این تابع فراخوانی می‌شود.
    }
});
interstitialAd.load("AdUnitID");

2-5-3- بنر موبایل

تبلیغات بنر موبایل به تبلیغاتی گفته می‌شود که در پایین یا بالای برنامه قرار می‌گیرند و محتوای آن در بازه زمانی مشخص مجددا بارگذاری می‌شود. توصیه می‌شود از این تبلیغ در جایگاه‌های ذکرشده استفاده کنید. با این حال شما می‌توانید در محل دلخواه خود نیز از این تبلیغ استفاده کنید. برای اضافه کردن تبلیغ بنر موبایل به برنامه خود، ابتدا باید جایگاهی برای نمایش آن تعریف کنید. این جایگاه باید یک ViewGroup باشد که نمونه ساده آن را می‌توانید در زیر ببینید.

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:id="@+id/mobileBanner">
</FrameLayout>

سپس این جایگاه را در اکتیویتی برنامه خود دریافت کنید.

FrameLayout adLayout = findViewById(R.id.mobileBanner);

و در نهایت با استفاده از شناسه‌ای که بعد از ساخت واحد تبلیغ در پنل کاربری خود دریافت کردید (AdUnitId)، تبلیغ بنر موبایل را بارگذاری کنید.

MagnetMobileBannerAd bannerAd = MagnetMobileBannerAd.create(getApplicationContext());
bannerAd.load("AdUnitId", adLayout);

بعد از دریافت و بارگذاری کامل، تبلیغ در جایگاه مشخص‌شده نمایش داده می‌شود. شما می‌توانید برای اطلاع از وضعیت تبلیغ درخواست‌شده برای MagnetMobileBannerAd یک MagnetAdLoadListener ایجاد کنید. MagnetAdLoadListener برای تبلیغات بنر موبایل رویدادهای دریافت تبلیغ (onReceive) و بروز خطا در هنگام دریافت تبلیغ (onFail) را به شما گزارش می‌دهد. نمونه کامل کد مربوط به تبلیغ بنر موبایل را در زیر مشاهده می‌کنید.

MagnetMobileBannerAd bannerAd = MagnetMobileBannerAd.create(getApplicationContext());
bannerAd.setAdLoadListener(new MagnetAdLoadListener() {
    @Override
    public void onPreload(int i, String s) {
        //این متد در بنر موبایل فراخوانی نمی‌شود.
    }

    @Override
    public void onReceive() {
        //زمانی که بنر دریافت و نمایش داده می‌شود، این متد فراخوانی می‌شود.
    }

    @Override
    public void onFail(int i, String s) {
        //زمانی که دریافت و نمایش بنر به مشکل برمی‌خورد، این متد فراخوانی می‌شود .
    }

    @Override
    public void onClose() {
        // این تابع در بنر موبایل فراخوانی نمی‌شود.
    }
});
bannerAd.load("AdUnitId", adLayout);

همان طور که قبلا هم ذکر شد، تبلیغات بنر موبایل در بازه زمانی مشخص دوباره بارگذاری می‌شوند و تبلیغ جدیدی را نمایش می‌دهند. برای توقف بارگذاری مجدد تبلیغات می‌توانید تابع stop را فراخوانی کنید. همچنین پس از آن برای بارگذاری مجدد تبلیغات کافیست تابع load را مجددا فراخوانی کنید. چگونگی توقف دریافت تبلیغ جدید را در قطعه کد زیر مشاهده می‌کنید.

bannerAd.stop();
سایز بنر موبایل

این نوع از واحد تبلیغ عرضی برابر با عرض دستگاه دارد. بنابراین توصیه می‌شود برای نمایش بهتر تبلیغات بنری جایگاه تبلیغ را به نحوی قرار دهید تا بتواند عرضی برابر با عرض دستگاه را داشته باشد. درغیر اینصورت تبلیغ به درستی نمایش داده نمی‌شود. لازم به ذکر است که ارتفاع این نوع از تبلیغات در شرایط مختلف می‌تواند متفاوت باشد. در شرایطی که ارتفاع صفحه 400 dp یا کمتر باشد، ارتفاع بنر موبایل 32 dp و در غیر این صورت ارتفاع آن 50 dp خواهد بود.

2-5-4- بنر استاندارد

تبلیغات بنر استاندارد همانند بنر موبایل است با این تفاوت که سایز تبلیغات را شما مشخص می‌کنید. اگر می‌خواهید تبلیغات بنری را با سایز دلخواه خودتان داشته باشید، می‌توانید بنر استاندارد را در برنامه خود پیاده کنید. همان طور که برای تبلیغات بنر موبایل هم گفته شد، این تبلیغات در بازه زمانی مشخص مجددا بارگذاری می‌شوند و تبلیغ جدیدی را نمایش می‌دهند. برای پیاده‌سازی تبلیغات بنر استاندارد ابتدا باید همانند قطعه کد زیر، جایگاه مشخصی را برای تبلیغ تعیین کنید.

<FrameLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:id="@+id/mrectBanner">
</FrameLayout>

سپس می‌توانید جایگاه ساخته شده را به صورت زیر دریافت کنید.

FrameLayout adLayout = findViewById(R.id.mrectBanner);

در مرحله بعدی می‌توانید با استفاده از شناسه‌ای که در مرحله اول بعد از ساختن واحد تبلیغ در پنل کاربری خود دریافت کردید (AdUnitId) و همچنین سایز دلخواه خود تبلیغ بنر استاندارد را به برنامه خود اضافه کنید.

MagnetMRectAd mrectAd = MagnetMRectAd.create(getApplicationContext());
mrectAd.load("AdUnitId", adLayout, MagnetAdSize.SIZE_MEDIUM_RECTANGLE);

برای تعیین سایز مورد نظر خود می‌توانید از دو راه اقدام کنید. ساده‌ترین راه استفاده از کلاس MagnetAdSize است. این کلاس شامل سایزهای پیش‌فرض است و کافیست شما یکی ازسایزها را برای دریافت تبلیغ انتخاب کنید. راه بعدی استفاده از کلاس AdSize است. برای استفاده از این کلاس باید با استفاده از عرض و ارتفاع مورد نظر خود یک سایز جدید ایجاد کنید و با استفاده از این سایز تابع load را فراخوانی کنید. برای توضیحات بیشتر در این مورد می‌توانید این بخش را مطالعه کنید.

بعد از فراخوانی تابع load و همچنین بعد از دریافت تبلیغ توسط کتابخانه مگنت تبلیغ در جایگاه مشخص‌شده نمایش داده می‌شود و پس از بازه زمانی مشخصی این تبلیغ با تبلیغ جدید جایگزین می‌شود. اگر زمانی خواستید سیستم دریافت تبلیغ جدید را متوقف سازید، می‌توانید از تابع stop استفاده کنید. نمونه استفاده را در خط زیر مشاهده می‌کنید.

mrectAd.stop();

همچنین برای اطلاع از وضعیت دریافت تبلیغ می‌توانید یک MagnetAdLoadListener برای تبلیغ خود ایجاد کنید. MagnetAdLoadListener برای تبلیغ بنر استاندارد رویدادهای دریافت تبلیغ (onReceive) و بروز خطا در دریافت تبلیغ (onFail) را به شما گزارش می‌دهد و می‌توانید در هنگام رخداد هر کدام از رویدادها عملیات دلخواه خود را انجام دهید. نمونه کد زیر روند کامل دریافت تبلیغ با استفاده از MagnetAdLoadListener را نشان می‌دهد.

MagnetMRectAd mrectAd = MagnetMRectAd.create(getApplicationContext());
mrectAd.setAdLoadListener(new MagnetAdLoadListener() {
    @Override
    public void onPreload(int i, String s) {
        //این متد در بنر استاندارد فراخوانی نمی‌شود.
    }

    @Override
    public void onReceive() {
        //زمانی که بنر دریافت و نمایش داده می‌شود، این متد فراخوانی می‌شود.
    }

    @Override
    public void onFail(int i, String s) {
        //زمانی که دریافت و نمایش بنر به مشکل برمی‌خورد، این متد فراخوانی می‌شود .
    }

    @Override
    public void onClose() {
        // این تابع در بنر استاندارد فراخوانی نمی‌شود.
    }
});
mrectAd.load("AdUnitId", adLayout, MagnetAdSize.SIZE_MEDIUM_RECTANGLE);

2-5-5- جایزه‌ای

تبلیغات جایزه‌ای به صورت تمام صفحه نمایش داده می‌شوند. این نوع از تبلیغات، بعد از نمایش موفق به شما این امکان را می‌دهد که بر این اساس به کاربران برنامه خود جایزه بدهید. به صورت پیش‌فرض بعد از درخواست تبلیغ جایزه‌ای محتوای این تبلیغ باید به صورت کامل توسط کتابخانه مگنت دریافت شود تا قابل نمایش باشد. به همین دلیل ممکن است این فرآیند زمان‌بر باشد و بهتر است درخواست این نوع از تبلیغات را قبل از این که بخواهید این تبلیغات را نمایش دهید، انجام دهید. برای درخواست تبلیغ جایزه‌ای کافیست با استفاده از شناسه‌ای که در مرحله ساخت واحد تبلیغ در پنل کاربری خود دریافت کردید (AdUnitId)، قطعه کد زیر را به برنامه خود اضافه کنید.

MagnetRewardAd rewardAd = MagnetRewardAd.create(getApplicationContext());
rewardAd.load("AdUnitID");

همان طور که گفته شد، تبلیغ جایزه‌ای بعد از درخواست باید به صورت کامل دریافت شود و بعد از آن برنامه شما می‌تواند تبلیغ دریافت‌شده را نمایش دهد. برای اطلاع از وضعیت تبلیغ درخواستی می‌توانید از MagnetAdLoadListener استفاده کنید. در این صورت می‌توانید از رویدادهای دریافت تبلیغ (onReceive) و بروز خطا در دریافت تبلیغ (onFail) مطلع شوید. برای نمایش تبلیغ دریافتی باید با استفاده از MagnetRewardListener تابع show را فراخوانی کنید که به شما این امکان را می‌دهد تا از موفقیت و یا عدم موفقیت نمایش مطلع شوید. کلاس MagnetRewardListener شامل یک تابع به نام onFinish است که ورودی آن مشخص می‌کند تبلیغ مشاهده‌شده موفقیت‌آمیز بوده است یا خیر. اگر ورودی تابع مقدار true را داشته باشد، نمایش موفقیت‌آمیز بوده و در غیر این صورت نمایش موفق نبوده است. نمونه کامل نحوه درخواست و نمایش تبلیغ جایزه‌ای را در قطعه کد زیر مشاهده می‌کنید.

final MagnetRewardAd rewardAd = MagnetRewardAd.create(getApplicationContext());
rewardAd.setAdLoadListener(new MagnetAdLoadListener() {
    @Override
    public void onPreload(int price, String currency) {
        /**
        * This event won't be triggered in common cases, leave it blank.
        * Refer to more setting section if you want to learn more about this event.
        */
    }

    @Override
    public void onReceive() {
        rewardAd.show(new MagnetRewardListener() {
            @Override
            public void onFinish(boolean isRewardSuccessful) {
                // If isRewardSuccessful == true, give reward to your user
            }
        });
    }

    @Override
    public void onFail(int errorCode, String errorMessage) {
        // No ad is available to display.  Perform failover logic...
    }

    @Override
    public void onClose() {
        // Ad is closed by user.
    }
});
rewardAd.load("AdUnitID");

2-6- توضیحات بیشتر

برای نمایش تبلیغات بنر استاندارد و همسان اکسپرس لازم است سایز تبلیغ را مشخص کنید. برای این کار دو راه وجود دارد: راه اول می‌توانید از سایزهای پیش‌فرض مگنت استفاده کنید و راه دوم ایجاد سایز دلخواه خود با تعیین کردن عرض و ارتفاع تبلیغ است. در ادامه به توضیح هر کدام از این روش‌ها می‌پردازیم.

2-6-1- سایزهای پیش‌فرض

ساده‌ترین راه برای تعیین سایز تبلیغ، استفاده از سایزهای پیش‌فرض کتابخانه مگنت است. برای دسترسی به این سایزها می‌توانید از MagnetAdSize استفاده کنید که سایزهای تعریف‌شده در آن را در زیر مشاهده می‌کنید.

SIZE_MEDIUM_RECTANGLE, //width = 300, height = 250
SIZE_LEADER_BOARD, //width = 728, height = 90
SIZE_MOBILE_BANNER, //width = 320, height = 50
SIZE_FULL_BANNER, //width = 468, height = 60
SIZE_300_600; //width = 300, height = 600

2-6-2- تعیین سایز دلخواه

برای درخواست تبلیغ در سایز مورد نظر خود، می‌توانید از کلاس AdSize استفاده کنید. با دادن عرض و ارتفاع دلخواه خود یک سایز جدید ایجاد کنید و توسط آن تبلیغ مورد نظر خود را درخواست دهید. یک مثال برای استفاده از این کلاس را در قطعه کد زیر مشاهده می‌کنید.

MagnetMRectAd mrectAd = MagnetMRectAd.create(getApplicationContext());
mrectAd.load("AdUnitId", adLayout, new AdSize(300, 300));

3- اپلیکیشن نمونه

همچنین برای مشاهده چگونگی پیاده‌سازی انواع تبلیغات مختلف، می‌توانید از طریق این لینک اپلیکیشن نمونه را مشاهده و دریافت کنید.

آیا این متن توانست به شما کمک کند؟