شروع
این راهنما برای برنامه نویسانی طراحی شده است که می خواهند از طریق اپلیکیشن iOS خود کسب درآمد کنند.
یکپارچهسازی کیت توسعه نرمافزار (SDK) مگنت قدم اول خواهد بود و در قدم بعد به نمایش انواع فرمت های تبلیغات (از قبیل بنر، همسان و ...) می پردازیم. اگر شما مرحله ی یکپارچهسازی را پشت سر گذاشتهاید میتوانید از اینجا شروع کنید.
پیشنیاز ها
- استفاده از Xcode 7.0 یا بالاتر
- پشتیبانی از iOS 6.0 یا بالاتر
- ساخت اکانت در سایت مگنت و ثبت رسانه
یکپارچهسازی
ابتدا کیت توسعه نرمافزار مگنت را از لینک زیر دریافت کنید، پس از unzip، فایل framework را کشیده (drag and drop) و به پروژه خود در Xcode اضافه کنید.
پیادهسازی اولیه
قبل از درخواست نمایش تبلیغ، اپلیکیشن باید کیت توسعه نرمافزار مگنت را پیادهسازی کند. برای این کار فقط کافی است مطابق کد نمونه زیر کلاس MagnetMobileAds
را در کلاس AppDelegate
پروژه خود پیادهسازی کنید.
SWIFT
// AppDelegate.swift
import MagnetSDK
...
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions:[UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Initialize the Magnet Mobile Ads SDK.
MagnetMobileAds.sharedInstance()
return true
}
}
OBJECTIVE-C
// AppDelegate.m
@import MagnetSDK;
...
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Initialize Magnet Mobile Ads SDK
[MagnetMobileAds sharedInstance];
return YES;
}
@end
تنظیمات عمومی
تنظیمات صدای تبلیغات ویدیویی:
اگر اپلیکیشن شما از کنترلهای صوتی استفاده میکند (مانند پخش موسیقی یا افکتهای صوتی) تبلیغات مگنت به تنظیمات اپلیکیشن شما احترام می گذارد و آن را قبول میکند. چنانچه میخواهید تبلیغات ویدیویی هنگام پخش اولیه بیصدا باشند و فعال کردن صدای تبلیغ بر عهدهی کاربر قرار بگیرد، مقدار متغیر applicationMuted
را فعال کنید. در مقدار اولیه (بدون تغییر) این متغیر غیرفعال است.
SWIFT
func viewDidLoad() {
super.viewDidLoad()
// Set ad volume muted.
MagnetMobileAds.sharedInstance().applicationMuted = true
...
}
OBJECTIVE-C
- (void)viewDidLoad {
[super viewDidLoad];
// Set ad volume muted.
[MagnetMobileAds sharedInstance].applicationMuted = YES;
...
}
در صورتی که هنوز در سایت مگنت به عنوان ناشر ثبتنام و یا رسانهای ثبت نکردهاید، اکنون بهترین زمان است. شما برای دریافت و نمایش تبلیغ نیاز به یک شناسه واحد تبلیغ (AdUnitID) دارید که آن را به هنگام ساخت رسانه از پنل کاربری خود دریافت خواهید کرد.
انتخاب فرمت نمایشی
اگر مراحل یکپارچهسازی را پشت سر گذاشتهاید، حالا میتوانید مراحل پیادهسازی فرمتهای مختلف تبلیغات مگنت را پیادهسازی کنید. مگنت فرمتهای متفاوتی از تبلیغ را ارایه میکند که شما میتوانید با توجه به اپلیکیشن خود بهترین فرمت را برای تجربهی کاربری اپلیکیشن خود انتخاب کنید.
تبلیغات بنری (Banner Ads):
تبلیغات بنری تصاویر و یا متنهای مستطیلی شکل هستند که به صورت View در قسمتی از اپلیکیشن شما قرار میگیرند. این تبلیغات بر روی صفحه نمایش تا زمان تعامل کاربر، تبلیغ پخش میکنند و پس از آن کاربر را به صفحه تبلیغ هدایت میکنند. این تبلیغها در یک بازه زمانی مشخص عوض میشوند و تبلیغ جدید نمایش داده میشود. اگر شما در تبلیغات موبایلی تازهکار هستید، این بهترین پیشنهاد برای شماست.
نحوهی پیادهسازی تبلیغات بنری
تبلیغات میانی (Interstitial Ads):
تبلیغات میانی به صورت تمام صفحه، رابط کاربری اپلیکیشن شما را پوشش میدهد و تا زمانی که کاربر آن را ببندد نمایش داده میشود. این تبلیغها برای زمانهای که جریان طبیعی برنامه پایان یافته و یا بین مراحل بازیها بسیار پرکاربرد هستند.
نحوهی پیادهسازی تبلیغات میانی
تبلیغات همسان (Native Ads):
تبلیغات همسان یک نوع تبلیغ مبتنی بر جزییات اپلیکیشن شماست که در آن میتوانید آزادانه اجزای تبلیغ از قبیل فونت، رنگ و جزییات دیگر یا نحوهی چیدمان اجزای آن مثل عنوان، تصویر، متن و غیره را شخصیسازی کنید. توسط این نوع تبلیغها میتوانید تجربهای غنی و غافلگیر کننده را برای کاربر ایجاد کنید.
نحوهی پیادهسازی تبلیغات همسان
تبلیغات ویدیویی تشویقی (Rewarded Video Ads):
تبلیغات تمام صفحه ای هستند که کاربر در قبال ویدیویی که تماشا می کند پاداش درون-برنامه ای دریافت می کند.
نحوه ی پیاده سازی تبلیغات ویدیویی تشویقی
درخواست تبلیغ
برای درخواست تبلیغ نیاز دارید که یک نمونه از کلاس MagnetAdRequest
بسازید و به متد loadRequest:
هر کدام از انواع تبلیغ ها تزریق کنید.
همیشه ابتدا تست کنید
همیشه سعی کنید که ابتدا تبلیغات تستی دریافت نمایید و سپس قبل از Release اپ خود، تبلیغات را از حالت تستی خارج کنید. برای این کار می توانید درخواست تبلیغ خود را با فعال نمودن متغییر testMode تستی کنید.
رویدادنگاری (logging)
برای اینکه اتفاقات تبلیغ درخواست شده در Xcode console چاپ شوند، می توانید متغییر logging
را نیز فعال نمایید. این قسمت برای خطایابی بسیار کاربرد دارد.
SWIFT
var getMagnetAdRequest: MagnetAdRequest {
let magnetAdRequest = MagnetAdRequest()
magnetAdRequest.testMode = true
magnetAdRequest.logging = true
return magnetAdRequest
}
OBJECTIVE-C
- (MagnetAdRequest *)getMagnetAdRequest {
MagnetAdRequest *request = [MagnetAdRequest request];
request.testMode = YES;
request.logging = YES;
return magnetAdRequest;
}
تبلیغات بنری (Banner Ads):
تبلیغات بنری تصاویر و یا متنهای مستطیلی شکل هستند که به صورت view در قسمتی از اپلیکیشن شما قرار میگیرند. این تبلیغات بر روی صفحه نمایش تا زمان تعامل کاربر، تبلیغ پخش میکنند و پس از آن کاربر را به صفحه تبلیغ هدایت میکنند. این تبلیغها در یک بازه زمانی مشخص عوض میشوند و تبلیغ جدید نمایش داده میشود. اگر شما در تبلیغات موبایلی تازهکار هستید، این بهترین پیشنهاد برای شماست.
پیشنیاز
- یکپارچهسازی کیت توسعه نرم افزار مگنت و وارد کردن آن به کلاس (
Import
)
ایجاد تبلیغ بنری
بنرها در شئ MagnetAdBannerView
نمایش داده میشوند، پس ابتدا باید یک شئ MagnetAdBannerView
به View Hirarchy خود اضافه کنید. این کار معمولا به دو روش انجام میشود:
- یک MagnetAdBannerView میتواند به صورت یک View معمولی به Storyboard و یا یک فایل XIB اضافه شود. هنگامی که از این روش استفاده میکنید باید توجه داشته باشید کهاندازهی Width و Height دقیقا همان چیزی باشد که میخواهید نمایش دهید، چون تبلیغات با توجه به اندازه View درخواست میشود. برای مثال، اگر شما بخواهید یک بنر استاندارد موبایل نمایش دهید (320X50)، باید Width Constraint را با مقدار 320 و Height Constraint را با مقدار 50 مقداردهی کنید.
- همچنین میتوانید MagnetAdBannerView را در کد هم ایجاد کنید. در اینجا یک مثال برای ایجاد شئ MagnetAdBannerView در کد آورده شده است، که در آن یک بنر استاندارد موبایل به اندازه (320X50) درخواست میشود و در قسمت پایین و در وسط صفحه، نمایش داده میشود.
SWIFT
import MagnetSDK
import UIKit
class ViewController: UIViewController {
var bannerView: MagnetAdBannerView!
override func viewDidLoad() {
super.viewDidLoad()
// In this case, we instantiate the banner with desired ad size.
bannerView = MagnetAdBannerView(adSize:MagnetAdSizeMobileBanner)
addBannerViewToView(bannerView)
}
func addBannerViewToView(_ bannerView: MagnetAdBannerView) {
bannerView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(bannerView)
view.addConstraints(
[NSLayoutConstraint(item: bannerView,
attribute: .bottom,
relatedBy: .equal,
toItem: bottomLayoutGuide,
attribute: .top,
multiplier: 1,
constant: 0),
NSLayoutConstraint(item: bannerView,
attribute: .centerX,
relatedBy: .equal,
toItem: view,
attribute: .centerX,
multiplier: 1,
constant: 0)
])
}
}
OBJECTIVE-C
@import MagnetSDK;
@interface ViewController ()
@property(nonatomic, strong) MagnetAdBannerView *bannerView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// In this case, we instantiate the banner with desired ad size.
self.bannerView = [[MagnetAdBannerView alloc] initWithAdSize:MagnetAdSizeMobileBanner];
[self addBannerViewToView:bannerView];
}
- (void)addBannerViewToView:(UIView *)bannerView {
bannerView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:bannerView];
[self.view addConstraints:@[
[NSLayoutConstraint constraintWithItem:bannerView
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:self.bottomLayoutGuide
attribute:NSLayoutAttributeTop
multiplier:1
constant:0],
[NSLayoutConstraint constraintWithItem:bannerView
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeCenterX
multiplier:1
constant:0]
]];
}
@end
در این روش دیگر نیازی به مقداردهی
Width
وHeight
نمی باشد، زیرا مقدار سازندهی کلاس (MagnetAdSizeMobileBanner
) دارای مقدار ذاتی می باشد.
پیکربندی متغیرهای MagnetAdBannerView
برای بارگذاری تبلیغ نیاز به مقداردهی متغیرهای ضروری دارید:
- rootViewController
: کنترلر جاری که تبلیغ داخل آن قرار می گیرد.
- adUnitID
: شناسه واحد تبلیغ که در پنل مگنت برای رسانهی خود دریافت کردهاید.
SWIFT
override func viewDidLoad() {
super.viewDidLoad()
...
bannerView.adUnitID = "0de6ce11664r48ac68c8522f2fcbca3a"
bannerView.rootViewController = self
}
OBJECTIVE-C
- (void)viewDidLoad {
[super viewDidLoad];
...
self.bannerView.adUnitID = @"0de6ce11664r48ac68c8522f2fcbca3a";
self.bannerView.rootViewController = self;
}
بارگذاری تبلیغ
پس از پیادهسازی MagnetAdBannerView
و مقداردهی متغییرهای ضروری آن حالا زمان آن رسیده است که تبلیغ را بارگذاری کنید. برای این کار باید متد loadRequest:
را به همراه یک شئ نمونه MagnetAdRequest
فراخوانی کنید:
SWIFT
override func viewDidLoad() {
super.viewDidLoad()
...
bannerView.adUnitID = "0de6ce11664r48ac68c8522f2fcbca3a"
bannerView.rootViewController = self
bannerView.load(MagnetAdRequest())
}
OBJECTIVE-C
- (void)viewDidLoad {
[super viewDidLoad];
...
self.bannerView.adUnitID = @"0de6ce11664r48ac68c8522f2fcbca3a";
self.bannerView.rootViewController = self;
[self.bannerView loadRequest:[MagnetAdRequest request]];
}
شئ
MagnetAdRequest
یک درخواست تبلیغ می باشد که در آن متغیرهایی از جملهtestMode
،logging
و اطلاعات Targeting وجود دارند که شما میتوانید از طریق آنها درخواست خود را کنترل کنید. بیشتر
رویدادهای تبلیغ بنری
با استفاده از MagnetAdBannerViewDelegate
میتوانید به lifecycle تبلیغ بنری درخواست شده، از قبیل دریافت تبلیغ، رخ دادن خطا، خروج کاربر از اپلیکیشن و غیره دسترسی داشته باشید.
برای ثبت رویدادهای بنری باید متغیر delegate
در MagnetAdBannerView
را با شئ ای که پروتکل MagnetAdBannerViewDelegate
را پیادهسازی کرده است مقداردهی کنید. معمولا این مقدار برابر self
کلاس View Controller ای که تبلیغ را پیادهسازی کرده است خواهد بود.
SWIFT
import MagnetSDK
import UIKit
class ViewController: UIViewController, MagnetAdBannerViewDelegate {
var bannerView: MagnetAdBannerView!
override func viewDidLoad() {
super.viewDidLoad()
...
bannerView.delegate = self
}
}
OBJECTIVE-C
@import MagnetSDK;
@interface ViewController () <MagnetAdBannerViewDelegate>
@property(nonatomic, strong) MagnetAdBannerView *bannerView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
...
self.bannerView.delegate = self;
}
@end
پیادهسازی رویدادهای بنر
پیاده سازی متدهای پروتکل MagnetAdBannerViewDelegate
اختیاری است و میتوانید هر کدام از آنها را که نیاز دارید پیادهسازی کنید. در مثال زیر، تمام متدهای این پروتکل به هنگام فراخوانی نام متد خود را چاپ میکنند:
SWIFT
/// Tells the delegate an ad request loaded an ad.
func bannerViewDidReceiveAd(_ bannerView: MagnetAdBannerView) {
print("bannerViewDidReceiveAd")
}
/// Tells the delegate an ad request failed.
func bannerView(_ bannerView: MagnetAdBannerView, didFailToReceiveAdWithError error: MagnetAdRequestError) {
print("bannerView:didFailToReceiveAdWithError:\(error.localizedDescription)")
}
/// Tells the delegate that a full-screen view will be presented in response
/// to the user clicking on an ad.
func bannerViewWillPresentScreen(_ bannerView: MagnetAdBannerView) {
print("bannerViewWillPresentScreen")
}
/// Tells the delegate that the full-screen view has been dismissed.
func bannerViewDidDismissScreen(_ bannerView: MagnetAdBannerView) {
print("bannerViewDidDismissScreen")
}
/// Tells the delegate that a user click will open another app (such as the App Store), backgrounding the current app.
func bannerViewWillLeaveApplication(_ bannerView: MagnetAdBannerView) {
print("bannerViewWillLeaveApplication")
}
OBJECTIVE-C
/// Tells the delegate an ad request loaded an ad.
- (void)bannerViewDidReceiveAd:(MagnetAdBannerView *)bannerView {
NSLog(@"bannerViewDidReceiveAd");
}
/// Tells the delegate an ad request failed.
- (void)bannerView:(MagnetAdBannerView *)bannerView didFailToReceiveAdWithError:(MagnetAdRequestError *)error {
NSLog(@"bannerView:didFailToReceiveAdWithError: %@", [error localizedDescription]);
}
/// Tells the delegate that a full-screen view will be presented in response
/// to the user clicking on an ad.
- (void)bannerViewWillPresentScreen:(MagnetAdBannerView *)bannerView {
NSLog(@"bannerViewWillPresentScreen");
}
/// Tells the delegate that the full-screen view has been dismissed.
- (void)bannerViewDidDismissScreen:(MagnetAdBannerView *)bannerView {
NSLog(@"bannerViewDidDismissScreen");
}
/// Tells the delegate that a user click will open another app (such as the App Store), backgrounding the current app.
- (void)bannerViewWillLeaveApplication:(MagnetAdBannerView *)bannerView {
NSLog(@"bannerViewWillLeaveApplication");
}
موارد استفاده
در اینجا نمونه ای از موارد استفاده رویدادها آورده شده است.
در صورتی که بخواهید تبلیغ بنری تا قبل از بارگذاری به View اپلیکیشن شما اضافه نشود، میتوانید پس از بارگذاری تبلیغ، منتظر دریافت تبلیغ بمانید و در صورتی که متد bannerViewDidReceiveAd
فراخوانی شد شئ bannerView
را به View خود اضافه کنید.
SWIFT
func bannerViewDidReceiveAd(_ bannerView: MagnetAdBannerView) {
// Add banner to view and add constraints as above.
addBannerViewToView(bannerView)
}
OBJECTIVE-C
- (void)bannerViewDidReceiveAd:(MagnetAdBannerView *)bannerView {
// Add banner to view and add constraints as above.
[self addBannerViewToView:bannerView];
}
اندازههای تبلیغات بنری
تبلیغات بنری به دو شکل زیر در دسترس خواهند بود.
- 1. سازندهی رابط کاربری (Interface Builder):
- تبلیغاتی هستند که عموما به صورت ثابت در بالا یا پایین صفحه نمایش ظاهر میشوند. در تبلیغات مگنت به صورت خودکار عرض این تبلیغها به اندازه عرض صفحه گسترش پیدا میکند و ارتفاء آنها با محاسبه طول صفحه نمایش بهترین اندازه را از بین اندازههای (32|50|90) انتخاب میکند، در انتها تبلیغ مناسب بااندازهی صفحه نمایش ارایه میشود. برای درج تبلیغ به پایین یا بالای صفحه نمایش میتوانید از Constraints استفاده کنید که در مثالهای بالا به آن اشاره شده است.
- 2. بنرهای استاندارد (Medium Rectangle):
- دیگر سایزهای پرکاربرد در زیر آورده شده اند که میتوانید از طریق تزریق Constant های آنها در سازندهی MagnetAdBannerView آنها را بارگذاری کنید.
AdSize constant | Availability | Description | Size (WxH) |
---|---|---|---|
MagnetAdSizeSmartMobileBanner | Phones and tablets | Mobile Banner (Smart) | Screen width x 32|50|90 |
MagnetAdSizeMobileBanner | Phones and tablets | Medium Rectangle | 320x50 |
MagnetAdSizeLargeBanner | Phones and tablets | Medium Rectangle | 320x100 |
MagnetAdSizeMediumRectangle | Phones and tablets | Medium Rectangle | 300x250 |
MagnetAdSizeFullBanner | Tablets | Medium Rectangle | 468x60 |
MagnetAdSizeFullBanner | Tablets | Medium Rectangle | 728x90 |
همچنین شما میتوانید از طریق کلاس
MagnetAdSize
اقدام به ایجاد سایز دلخواه خود کنید.
تبلیغات میانی (Interstitial Ads):
تبلیغات میانی به صورت تمام صفحه، رابط کاربری اپلیکیشن شما را پوشش میدهد و تا زمانی که کاربر آن را ببندد نمایش داده میشود. این تبلیغها برای زمانهای که جریان طبیعی برنامه پایان یافته و یا بین مراحل بازیها بسیار پرکاربرد هستند.
پیشنیاز
- یکپارچهسازی کیت توسعه نرم افزار مگنت و وارد کردن آن به کلاس (
Import
)
ایجاد تبلیغ میانی
تبلیغات میانی توسط کلاس MagnetAdInterstitial
درخواست و نمایش داده میشوند. در اولین قدم برای ساختن یک نمونه از این تبلیغ، باید شناسه واحد تبلیغ خود را به آن بدهید. برای مثال، در زیر یک نمونه از کلاس MagnetAdInterstitial
ساخته شده است:
SWIFT
import MagnetSDK
import UIKit
class ViewController: UIViewController {
var interstitial:MagnetAdInterstitial!
override func viewDidLoad() {
super.viewDidLoad()
interstitial = MagnetAdInterstitial(adUnitID:"4df70496189808d587782772baa1c7de")
}
}
OBJECTIVE-C
@import MagnetSDK;
@import UIKit;
@interface ViewController ()
@property(nonatomic, strong) MagnetAdInterstitial *interstitial;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.interstitial = [[MagnetAdInterstitial alloc] initWithAdUnitID:@"4df70496189808d587782772baa1c7de"];
}
@end
پیکربندی متغیرهای MagnetAdInterstitial
برای بارگذاری تبلیغ نیاز به مقداردهی متغیرهای ضروری دارید: - rootViewController: کنترلر جاری که تبلیغ داخل آن قرار می گیرد. - adUnitID: شناسه واحد تبلیغ که در پنل مگنت برای رسانهی خود دریافت کردهاید. (در تبلیغ میانی مانند مثال بالا adUnitID در سازندهی کلاس دریافت میشود)
بارگذاری تبلیغ
پس از پیادهسازی شيء MagnetAdInterstitial
و مقداردهی متغییرهای ضروری آن حالا زمان آن رسیده است که تبلیغ را بارگذاری کنید. برای این کار باید متد loadRequest:
را به همراه یک شئ نمونه MagnetAdRequest
فراخوانی کنید:
SWIFT
import MagnetSDK
import UIKit
class ViewController: UIViewController {
var interstitial: MagnetAdInterstitial!
override func viewDidLoad() {
super.viewDidLoad()
interstitial = MagnetAdInterstitial(adUnitID:"4df70496189808d587782772baa1c7de")
interstitial.rootViewController = self
let request = MagnetAdRequest()
interstitial.load(request)
}
}
OBJECTIVE-C
@import MagnetSDK;
@import UIKit;
@interface ViewController ()
@property(nonatomic, strong) MagnetAdInterstitial *interstitial;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.interstitial = [[MagnetAdInterstitial alloc] initWithAdUnitID:@"4df70496189808d587782772baa1c7de"];
self.interstitial.rootViewController = self;
MagnetAdRequest *request = [MagnetAdRequest request];
[self.interstitial loadRequest:request];
}
@end
شئ
MagnetAdRequest
یک درخواست تبلیغ می باشد که در آن متغیرهایی از جملهtestMode
،logging
و اطلاعات Targeting وجود دارند که شما میتوانید از طریق آنها درخواست خود را کنترل کنید. بیشتر
نمایش تبلیغ
پس از بارگذاری تبلیغ برای نمایش آن باید آن را Present کنید. در صورتی که بارگذاری با موفقیت اتفاق بیافتد، متغییر isReady
فعال میشود و با چک کردن آن میتوانید متد present:
را فراخوانی کنید (این متد با پارامتر ورودی میتواند View Controller جاری را تغییر دهد و از View Controller ورودی تبلیغ میانی را نمایش دهد):
SWIFT
@IBAction func doSomething(_ sender: AnyObject) {
...
if interstitial.isReady {
interstitial.present() // or: interstitial.present(fromRootViewController: self)
} else {
print("Ad wasn't ready")
}
}
OBJECTIVE-C
- (IBAction)doSomething:(id)sender {
...
if (self.interstitial.isReady) {
[self.interstitial present]; // or: [self.interstitial presentFromRootViewController:self];
} else {
NSLog(@"Ad wasn't ready");
}
}
کلاس
MagnertAdInterstitial
در هر بارگذاری فقط یک بار تبلیغ را نمایش میدهد. پس برای اینکه بتوان دوباره متدpresent:
را فراخوانی کرد، باید کلاسMagnertAdInterstitial
را دوباره بسازید و یا دستور بارگذاری همان کلاس را فراخوانی کنید تا تبلیغ جدید دریافت شود. در صورتی که از نمایش داده شدن تبلیغ اطلاعی ندارید، میتوانید از متغییرhasBeenUsed
استفاده کنید. این متغییر در صورتی که تبلیغ یک بار نمایش داده شده باشد، فعال خواهد شد.
رویدادهای تبلیغ میانی
با استفاده از MagnetAdInterstitialDelegate
میتوانید به lifecycle تبلیغ میانی درخواست شده، از قبیل دریافت تبلیغ، رخ دادن خطا، خروج کاربر از اپلیکیشن و غیره دسترسی داشته باشید.
برای ثبت رویدادهای تبلیغ میانی باید متغیر delegate
در MagnetAdInterstitial
را با کلاسای که پروتکل MagnetAdInterstitialDelegate
را پیادهسازی کرده است مقداردهی کنید. معمولا این مقدار برابر self
کلاس View Controller ای که تبلیغ را پیادهسازی کرده است خواهد بود.
SWIFT
import MagnetSDK
import UIKit
class ViewController: UIViewController, MagnetAdInterstitialDelegate {
var interstitial: MagnetAdInterstitial!
override func viewDidLoad() {
super.viewDidLoad()
interstitial = MagnetAdInterstitial(adUnitID:"4df70496189808d587782772baa1c7de")
interstitial.delegate = self
}
}
OBJECTIVE-C
@import MagnetSDK;
@import UIKit;
@interface ViewController () <MagnetAdInterstitialDelegate>;
@property(nonatomic, strong) MagnetAdInterstitial *interstitial;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.interstitial = [[MagnetAdInterstitial alloc] initWithAdUnitID:@"4df70496189808d587782772baa1c7de"];
self.interstitial.delegate = self;
}
@end
پیادهسازی رویدادهای تبلیغ میانی
پیاده سازی متدهای پروتکل MagnetAdInterstitialDelegate
اختیاری است و میتوانید هر کدام از آنها را که نیاز دارید پیادهسازی کنید. در مثال زیر، تمام متدهای این پروتکل به هنگام فراخوانی، نام متد خود را چاپ میکنند:
SWIFT
/// Tells the delegate an ad request succeeded.
func interstitialDidReceiveAd(_ ad: MagnetAdInterstitial) {
print("interstitialDidReceiveAd")
}
/// Tells the delegate an ad request failed.
func interstitial(_ ad: MagnetAdInterstitial, didFailToReceiveAdWithError error: MagnetAdRequestError) {
print("interstitial:didFailToReceiveAdWithError:\(error.localizedDescription)")
}
/// Tells the delegate that an interstitial will be presented.
func interstitialWillPresentScreen(_ ad: MagnetAdInterstitial) {
print("interstitialWillPresentScreen")
}
/// Tells the delegate the interstitial is to be animated off the
screen.
func interstitialWillDismissScreen(_ ad: MagnetAdInterstitial) {
print("interstitialWillDismissScreen")
}
/// Tells the delegate the interstitial had been animated off the
screen.
func interstitialDidDismissScreen(_ ad: MagnetAdInterstitial) {
print("interstitialDidDismissScreen")
}
/// Tells the delegate that a user click will open another app
/// (such as the App Store), backgrounding the current app.
func interstitialWillLeaveApplication(_ ad: MagnetAdInterstitial) {
print("interstitialWillLeaveApplication")
}
OBJECTIVE-C
/// Tells the delegate an ad request succeeded.
- (void)interstitialDidReceiveAd:(MagnetAdInterstitial *)ad {
NSLog(@"interstitialDidReceiveAd");
}
/// Tells the delegate an ad request failed.
- (void)interstitial:(MagnetAdInterstitial *)ad didFailToReceiveAdWithError:(MagnetAdRequestError *)error {
NSLog(@"interstitial:didFailToReceiveAdWithError: %@", [error localizedDescription]);
}
/// Tells the delegate that an interstitial will be presented.
- (void)interstitialWillPresentScreen:(MagnetAdInterstitial *)ad {
NSLog(@"interstitialWillPresentScreen");
}
/// Tells the delegate the interstitial is to be animated off the screen.
- (void)interstitialWillDismissScreen:(MagnetAdInterstitial *)ad {
NSLog(@"interstitialWillDismissScreen");
}
/// Tells the delegate the interstitial had been animated off the screen.
- (void)interstitialDidDismissScreen:(MagnetAdInterstitial *)ad {
NSLog(@"interstitialDidDismissScreen");
}
/// Tells the delegate that a user click will open another app (such as the App Store), backgrounding the current app.
- (void)interstitialWillLeaveApplication:(MagnetAdInterstitial *)ad {
NSLog(@"interstitialWillLeaveApplication");
}
تبلیغات همسان (Native Ads):
تبلیغات همسان یک نوع تبلیغ مبتنی بر جزییات اپلیکیشن شماست که در آن میتوانید آزادانه اجزای تبلیغ از قبیل فونت، رنگ و جزییات دیگر یا نحوهی چیدمان اجزای آن مثل عنوان، تصویر، متن و غیره را شخصیسازی کنید. توسط این نوع تبلیغها میتوانید تجربهای غنی و غافلگیرکننده را برای کاربر ایجاد کنید.
.مگنت به شما دو روش پیادهسازی تبلیغات همسان را پیشنهاد میکند
- 1. تبلیغات همسان اکسپرس (Native Express Ads):
- در این نوع تبلیغ، تمام جزئیات تبلیغ شامل متن، تصویر و غیره در قالب CSS در سمت سرور ترکیب میشوند و نهایتا یک View برای اپلیکیشن شما ارسال میشود که. این نوع تبلیغ به مانند تبلیغات بنری در نهایت سادگی به شما امکان ایجاد تبلیغ همسان را می دهند. طریقه پیادهسازی آن هم مانند تبلیغات بنری می باشد.
- 2. تبلیغات همسان پیشرفته (Native Advanced Ads):
- تبلیغات همسان پیشرفته تبلیغاتی هستند که اجازه می دهند تمام جزئیات در سمت اپلیکیشن شما پیادهسازی شوند. در این نوع تبلیغ View در اختیار شما قرار داده میشود تا تمام جزئیات آن از قبیل فونت، رنگ، اندازه و غیره را مطابق اپلیکیشن خود تغییر دهید و چیدمان کنید.
تبلیغات همسان اکسپرس (Native Express Ads):
تبلیغات همسان اکسپرس همانند تبلیغ بنری درخواست داده میشوند و در نهایت یک View ساخته میشود.
پیشنیاز
- یکپارچهسازی کیت توسعه نرم افزار مگنت و وارد کردن آن به کلاس (
Import
)
ایجاد تبلیغ همسان اکسپرس
تبلیغات همسان اکپرس در کلاس MagnetAdNativeExpressView
نمایش داده میشوند، پس ابتدا باید یک کلاس MagnetAdNativeExpressView
به View Hirarchy خود اضافه کنید. این کار معمولا به دو روش انجام میشود:
- 1. سازندهی رابط کاربری (Interface Builder):
- یک MagnetAdNativeExpressView میتواند به صورت یک View معمولی به Storyboard و یا یک فایل XIB اضافه شود. هنگامی که از این روش استفاده میکنید باید توجه داشته باشید که اندازهی Width و Height دقیقا همان چیزی باشد که میخواهید نمایش دهید، چون تبلیغات با توجه به اندازه View درخواست میشود. برای مثال، اگر شما بخواهید یک تبلیغ همسان اکسپرس بااندازهی (300X250) نمایش دهید، باید Width Constraint را با مقدار 300 و Height Constraint را با مقدار 250 مقداردهی کنید.
- 2. برنامهنویسی (programming):
- همچنین میتوانید MagnetAdNativeExpressView را در کد هم ایجاد کنید. در اینجا یک مثال برای ایجاد کلاس MagnetAdNativeExpressView در کد آورده شده است، که در آن یک تبلیغ همسان اکسپرس با اندازهی (300X250) درخواست میشود.
SWIFT
import MagnetSDK
import UIKit
class ViewController: UIViewController {
var nativeExpressAdView: MagnetAdNativeExpressView!
override func viewDidLoad() {
super.viewDidLoad()
// In this case, we instantiate the native express with desired ad size.
nativeExpressAdView = MagnetAdNativeExpressView(adSize:MagnetAdSizeMediumRectangle)
view.addSubview(nativeExpressAdView)
}
}
OBJECTIVE-C
@import MagnetSDK;
@interface ViewController ()
@property(nonatomic, strong) MagnetAdNativeExpressView *nativeExpressAdView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// In this case, we instantiate the native express with desired ad size.
self.nativeExpressAdView = [[MagnetAdNativeExpressView alloc] initWithAdSize:MagnetAdSizeMediumRectangle];
[self.view addSubview:nativeExpressAdView];
}
@end
در این روش دیگر نیازی به مقداردهی
Width
وHeight
نمی باشد، زیرا مقدار سازندهی کلاس (MagnetAdSizeMediumRectangle
) دارای مقدار ذاتی می باشد.
پیکربندی متغیرهای MagnetAdNativeExpressView
برای بارگذاری تبلیغ نیاز به مقداردهی متغیرهای ضروری دارید:
- rootViewController
: کنترلر جاری که تبلیغ داخل آن قرار می گیرد.
- adUnitID
: شناسه واحد تبلیغ که در پنل مگنت برای رسانهی خود دریافت کردهاید.
SWIFT
override func viewDidLoad() {
super.viewDidLoad()
...
nativeExpressAdView.adUnitID = "0de6ce11664r48ac68c8522f2fcbca3a"
nativeExpressAdView.rootViewController = self
}
OBJECTIVE-C
- (void)viewDidLoad {
[super viewDidLoad];
...
self.nativeExpressAdView.adUnitID = @"0de6ce11664r48ac68c8522f2fcbca3a";
self.nativeExpressAdView.rootViewController = self;
}
بارگذاری تبلیغ همسان اکسپرس
پس از پیادهسازی MagnetAdNativeExpressView
و مقداردهی متغییرهای ضروری آن حالا زمان آن رسیده است که تبلیغ را بارگذاری کنید. برای این کار باید متد loadRequest:
را به همراه یک نمونهی کلاس MagnetAdRequest
فراخوانی کنید:
SWIFT
override func viewDidLoad() {
super.viewDidLoad()
...
nativeExpressAdView.adUnitID = "0de6ce11664r48ac68c8522f2fcbca3a"
nativeExpressAdView.rootViewController = self
nativeExpressAdView.load(MagnetAdRequest())
}
OBJECTIVE-C
- (void)viewDidLoad {
[super viewDidLoad];
...
self.nativeExpressAdView.adUnitID = @"0de6ce11664r48ac68c8522f2fcbca3a";
self.nativeExpressAdView.rootViewController = self;
[self.nativeExpressAdView loadRequest:[MagnetAdRequest request]];
}
شئ
MagnetAdRequest
یک درخواست تبلیغ می باشد که در آن متغیرهایی از جملهtestMode
،logging
و اطلاعات Targeting وجود دارند که شما میتوانید از طریق آنها درخواست خود را کنترل کنید. بیشتر
رویدادهای تبلیغ همسان اکسپرس
با استفاده از MagnetAdNativeExpressViewDelegate
میتوانید به lifecycle تبلیغ همسان اکسپرس درخواست شده، از قبیل دریافت تبلیغ، رخ دادن خطا، خروج کاربر از اپلیکیشن و غیره دسترسی داشته باشید.
برای ثبت رویدادهای همسان اکسپرس باید متغیر delegate
در MagnetAdNativeExpressView
را با شئ ای که پروتکل MagnetAdNativeExpressViewDelegate
را پیادهسازی کرده است مقداردهی کنید. معمولا این مقدار برابر self
کلاس View Controller ای که تبلیغ را پیادهسازی کرده است خواهد بود.
SWIFT
import MagnetSDK
import UIKit
class ViewController: UIViewController, MagnetAdNativeExpressViewDelegate {
var nativeExpressAdView: MagnetAdNativeExpressView!
override func viewDidLoad() {
super.viewDidLoad()
...
nativeExpressAdView.delegate = self
}
}
OBJECTIVE-C
@import MagnetSDK;
@interface ViewController () <MagnetAdNativeExpressViewDelegate>
@property(nonatomic, strong) MagnetAdNativeExpressView *nativeExpressAdView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
...
self.nativeExpressAdView.delegate = self;
}
@end
پیادهسازی رویدادهای تبلیغ همسان اکسپرس
پیاده سازی متدهای پروتکل MagnetAdNativeExpressViewDelegate
اختیاری است و میتوانید هر کدام از آنها را که نیاز دارید پیادهسازی کنید. در مثال زیر، تمام متدهای این پروتکل به هنگام فراخوانی نام متد خود را چاپ میکنند:
SWIFT
/// Tells the delegate an ad request loaded an ad.
func nativeExpressViewDidReceiveAd(_ nativeExpressView: MagnetAdNativeExpressView) {
print("nativeExpressViewDidReceiveAd")
}
/// Tells the delegate an ad request failed.
func nativeExpressView(_ nativeExpressView: MagnetAdNativeExpressView, didFailToReceiveAdWithError error: MagnetAdRequestError) {
print("nativeExpressView:didFailToReceiveAdWithError:\(error.localizedDescription)")
}
/// Tells the delegate that a full-screen view will be presented in response to the user clicking on an ad.
func nativeExpressViewWillPresentScreen(_ nativeExpressView: MagnetAdNativeExpressView) {
print("nativeExpressViewWillPresentScreen")
}
/// Tells the delegate that the full-screen view has been dismissed.
func nativeExpressViewDidDismissScreen(_ nativeExpressView: MagnetAdNativeExpressView) {
print("nativeExpressViewDidDismissScreen")
}
/// Tells the delegate that a user click will open another app (such as the App Store), backgrounding the current app.
func nativeExpressViewWillLeaveApplication(_ nativeExpressView: MagnetAdNativeExpressView) {
print("nativeExpressViewWillLeaveApplication")
}
OBJECTIVE-C
/// Tells the delegate an ad request loaded an ad.
- (void)nativeExpressViewDidReceiveAd:(MagnetAdNativeExpressView *)nativeExpressView {
NSLog(@"nativeExpressViewDidReceiveAd");
}
/// Tells the delegate an ad request failed.
- (void)nativeExpressView:(MagnetAdNativeExpressView *)nativeExpressView didFailToReceiveAdWithError:(MagnetAdRequestError *)error {
NSLog(@"nativeExpressView:didFailToReceiveAdWithError: %@", [error localizedDescription]);
}
/// Tells the delegate that a full-screen view will be presented in response to the user clicking on an ad.
- (void)nativeExpressViewWillPresentScreen:(MagnetAdNativeExpressView *)nativeExpressView {
NSLog(@"nativeExpressViewWillPresentScreen");
}
/// Tells the delegate that the full-screen view has been dismissed.
- (void)nativeExpressViewDidDismissScreen:(MagnetAdNativeExpressView *)nativeExpressView {
NSLog(@"nativeExpressViewDidDismissScreen");
}
/// Tells the delegate that a user click will open another app (such as the App Store), backgrounding the current app.
- (void)nativeExpressViewWillLeaveApplication:(MagnetAdNativeExpressView *)nativeExpressView {
NSLog(@"nativeExpressViewWillLeaveApplication");
}
موارد استفاده
در اینجا نمونهای از موارد استفاده رویدادها آورده شده است.
در صورتی که بخواهید تبلیغ همسان اکسپرس تا قبل از بارگذاری به View اپلیکیشن شما اضافه نشود، میتوانید پس از بارگذاری تبلیغ منتظر دریافت تبلیغ بمانید و در صورتی که متد nativeExpressViewDidReceiveAd
فراخوانی شد شئ nativeExpressView
را به View خود اضافه کنید.
SWIFT
func nativeExpressViewDidReceiveAd(_ nativeExpressView: MagnetAdNativeExpressView) {
view.addSubview(nativeExpressView)
}
OBJECTIVE-C
- (void)nativeExpressViewDidReceiveAd:(MagnetAdNativeExpressView *)nativeExpressView {
[self.view addSubview:nativeExpressAdView];
}
اندازههای تبلیغات همسان اکسپرس
در تبلیغات همسان اکسپرس نیز میتوانید از ثابتهای تبلیغات بنری استفاده کنید و یا با استفاده از کلاس MagnetAdSize
اندازهی دلخواه را ایجاد کنید.
تبلیغات همسان پیشرفته (Native Advanced Ads):
تبلیغات همسان پیشرفته تبلیغاتی هستند که اجازه می دهند تمام جزئیات در سمت اپلیکیشن شما پیادهسازی شوند. در این نوع تبلیغ View در اختیار شما قرار داده میشود تا تمام جزئیات آن از قبیل فونت، رنگ، اندازه و غیره را مطابق اپلیکیشن خود تغییر دهید و چیدمان کنید.
پیشنیاز
- یکپارچهسازی کیت توسعه نرم افزار مگنت و وارد کردن آن به کلاس (
Import
)
ایجاد تبلیغ همسان پیشرفته
تبلیغات همسان پیشرفته در کلاس MagnetAdNativeAdvancedView
نمایش داده میشوند، پس ابتدا باید یک کلاس MagnetAdNativeAdvancedView
به View Hirarchy خود اضافه کنید و سپس متغییرهای که به صورت IBOutlet
در این کلاس تعریف شده اند را به View های خود متصل کنید. یک MagnetAdNativeAdvancedView میتواند به صورت یک View معمولی به Storyboard و یا یک فایل XIB اضافه شود. سپس با انتخاب View و رفتن به قسمت Connections inspector اتصالات View های خود را به MagnetAdNativeAdvancedView متصل کنید.
پیکربندی متغیرهای MagnetAdNativeAdvancedView
برای بارگذاری تبلیغ نیاز به مقداردهی متغیرهای ضروری دارید:
- rootViewController
: کنترلر جاری که تبلیغ داخل آن قرار می گیرد.
- adUnitID
: شناسه واحد تبلیغ که در پنل مگنت برای رسانهی خود دریافت کردهاید.
SWIFT
override func viewDidLoad() {
super.viewDidLoad()
...
nativeAdvancedAdView.adUnitID = "0de6ce11664r48ac68c8522f2fcbca3a"
nativeAdvancedAdView.rootViewController = self
}
OBJECTIVE-C
- (void)viewDidLoad {
[super viewDidLoad];
...
self.nativeAdvancedAdView.adUnitID = @"0de6ce11664r48ac68c8522f2fcbca3a";
self.nativeAdvancedAdView.rootViewController = self;
}
بارگذاری تبلیغ همسان پیشرفته
پس از پیادهسازی MagnetAdNativeAdvancedView
و مقداردهی متغییرهای ضروری آن حالا زمان آن رسیده است که تبلیغ را بارگذاری کنید. برای این کار باید متد loadRequest:
را به همراه یک نمونهی کلای MagnetAdRequest
فراخوانی کنید:
SWIFT
override func viewDidLoad() {
super.viewDidLoad()
...
nativeAdvancedAdView.adUnitID = "0de6ce11664r48ac68c8522f2fcbca3a"
nativeAdvancedAdView.rootViewController = self
nativeAdvancedAdView.load(MagnetAdRequest())
}
OBJECTIVE-C
- (void)viewDidLoad {
[super viewDidLoad];
...
self.nativeAdvancedAdView.adUnitID = @"0de6ce11664r48ac68c8522f2fcbca3a";
self.nativeAdvancedAdView.rootViewController = self;
[self.nativeAdvancedAdView loadRequest:[MagnetAdRequest request]];
}
شئ
MagnetAdRequest
یک درخواست تبلیغ می باشد که در آن متغیرهایی از جملهtestMode
،logging
و اطلاعات Targeting وجود دارند که شما میتوانید از طریق آنها درخواست خود را کنترل کنید. بیشتر
رویدادهای تبلیغ همسان پیشرفته
با استفاده از MagnetAdNativeAdvancedViewDelegate
میتوانید به lifecycle تبلیغ همسان پیشرفته درخواست شده، از قبیل دریافت تبلیغ، رخ دادن خطا، خروج کاربر از اپلیکیشن و غیره دسترسی داشته باشید.
برای ثبت رویدادهای همسان اکسپرس باید متغیر delegate
در MagnetAdNativeAdvancedView
را با شئ ای که پروتکل MagnetAdNativeAdvancedViewDelegate
را پیادهسازی کرده است مقداردهی کنید. معمولا این مقدار برابر self
کلاس View Controller ای که تبلیغ را پیادهسازی کرده است خواهد بود.
SWIFT
import MagnetSDK
import UIKit
class ViewController: UIViewController, MagnetAdNativeAdvancedViewDelegate {
var nativeAdvancedAdView: MagnetAdNativeAdvancedView!
override func viewDidLoad() {
super.viewDidLoad()
...
nativeAdvancedAdView.delegate = self
}
}
OBJECTIVE-C
@import MagnetSDK;
@interface ViewController () <MagnetAdNativeAdvancedViewDelegate>
@property(nonatomic, strong) MagnetAdNativeAdvancedView *nativeAdvancedAdView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
...
self.nativeAdvancedAdView.delegate = self;
}
@end
پیادهسازی رویدادهای تبلیغ همسان پیشرفته
پیاده سازی متدهای پروتکل MagnetAdNativeAdvancedViewDelegate
اختیاری است و میتوانید هر کدام از آنها را که نیاز دارید پیادهسازی کنید. در مثال زیر، تمام متدهای این پروتکل به هنگام فراخوانی نام متد خود را چاپ میکنند:
SWIFT
/// Tells the delegate an ad request loaded an ad.
func nativeAdvancedViewDidReceiveAd(_ nativeAdvancedView: MagnetAdNativeAdvancedView) {
print("nativeAdvancedViewDidReceiveAd")
}
/// Tells the delegate an ad request failed.
func nativeAdvancedView(_ nativeAdvancedView: MagnetAdNativeAdvancedView, didFailToReceiveAdWithError error: MagnetAdRequestError) {
print("nativeAdvancedView:didFailToReceiveAdWithError:\(error.localizedDescription)")
}
/// Tells the delegate that a user click will open another app (such as the App Store), backgrounding the current app.
func nativeAdvancedViewWillLeaveApplication(_ nativeAdvancedView: MagnetAdNativeAdvancedView) {
print("nativeAdvancedViewWillLeaveApplication")
}
OBJECTIVE-C
/// Tells the delegate an ad request loaded an ad.
- (void)nativeAdvancedViewDidReceiveAd:(MagnetAdNativeAdvancedView *)nativeAdvancedView {
NSLog(@"nativeAdvancedViewDidReceiveAd");
}
/// Tells the delegate an ad request failed.
- (void)nativeAdvancedView:(MagnetAdNativeAdvancedView *)nativeAdvancedView didFailToReceiveAdWithError:(MagnetAdRequestError *)error {
NSLog(@"nativeAdvancedView:didFailToReceiveAdWithError: %@", [error localizedDescription]);
}
/// Tells the delegate that a user click will open another app (such as the App Store), backgrounding the current app.
- (void)nativeAdvancedViewWillLeaveApplication:(MagnetAdNativeAdvancedView *)nativeAdvancedView {
NSLog(@"nativeAdvancedViewWillLeaveApplication");
}
تبلیغات ویدیویی تشویقی (Rewarded Video Ads):
تبلیغات تمام صفحه ای هستند که کاربر در قبال ویدیویی که تماشا می کند پاداش درون-برنامه ای دریافت می کند.
پیشنیاز
- یکپارچهسازی کیت توسعه نرم افزار مگنت و وارد کردن آن به کلاس (
Import
)
ایجاد تبلیغ میانی
MagnetAdRewardedVideo
کلاسی است که به صورت Singleton طراحی شده است و به صورت زیر می توانید به نمونه ی اشتراکی آن دست پیدا کنید:
SWIFT
import MagnetSDK
import UIKit
class ViewController: UIViewController {
var rewardedVideo: MagnetAdRewardedVideo!
override func viewDidLoad() {
super.viewDidLoad()
rewardedVideo = MagnetAdRewardedVideo.sharedInstance()
}
}
OBJECTIVE-C
@import MagnetSDK;
@import UIKit;
@interface ViewController ()
@property(strong, nonatomic) MagnetAdRewardedVideo *rewardedVideo;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.rewardedVideo = [MagnetAdRewardedVideo sharedInstance];
}
@end
پیکربندی متغیرهای MagnetAdRewardedVideo
برای بارگذاری تبلیغ نیاز به مقداردهی متغیرهای ضروری دارید: - rootViewController: کنترلر جاری که تبلیغ داخل آن قرار می گیرد. - adUnitID: شناسه واحد تبلیغ که در پنل مگنت برای رسانهی خود دریافت کردهاید. (در تبلیغ میانی مانند مثال بالا adUnitID در سازندهی کلاس دریافت میشود)
بارگذاری تبلیغ
پس از دریافت نمونهکلاس MagnetAdRewardedVideo
و مقداردهی متغییرهای ضروری آن حالا زمان آن رسیده است که تبلیغ را بارگذاری کنید. برای این کار باید متد loadRequest:
را به همراه یک شئ نمونه MagnetAdRequest
فراخوانی کنید. در این مرحله تبلیغ شروع به بارگذاری می کند و فایل ویویی را جهت پخش آماده می کند:
SWIFT
import MagnetSDK
import UIKit
class ViewController: UIViewController {
var rewardedVideo: MagnetAdRewardedVideo!
override func viewDidLoad() {
super.viewDidLoad()
...
rewardedVideo.adUnitID = "0de6ce11664r48ac68c8522f2fcbca3a"
rewardedVideo.rootViewController = self
let request = MagnetAdRequest()
rewardedVideo.load(request)
}
}
OBJECTIVE-C
@import MagnetSDK;
@import UIKit;
@interface ViewController ()
@property(nonatomic, strong) MagnetAdRewardedVideo *rewardedVideo;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
...
self.rewardedVideo.adUnitID = "0de6ce11664r48ac68c8522f2fcbca3a";
self.rewardedVideo.rootViewController = self;
MagnetAdRequest *request = [MagnetAdRequest request];
[self.rewardedVideo loadRequest:request];
}
@end
شئ
MagnetAdRequest
یک درخواست تبلیغ می باشد که در آن متغیرهایی از جملهtestMode
،logging
و اطلاعات Targeting وجود دارند که شما میتوانید از طریق آنها درخواست خود را کنترل کنید. بیشتر
نمایش تبلیغ
پس از بارگذاری تبلیغ برای نمایش آن باید آن را Present کنید. در صورتی که بارگذاری با موفقیت اتفاق بیافتد، متغییر isReady
فعال میشود و با چک کردن آن میتوانید متد present:
را فراخوانی کنید (این متد با پارامتر ورودی میتواند View Controller جاری را تغییر دهد و از View Controller ورودی تبلیغ ویدیوی تشویقی را نمایش دهد):
SWIFT
@IBAction func doSomething(_ sender: AnyObject) {
...
if rewardedVideo.isReady {
rewardedVideo.present() // or: rewardedVideo.present(fromRootViewController: self)
} else {
print("Ad wasn't ready")
}
}
OBJECTIVE-C
- (IBAction)doSomething:(id)sender {
...
if (self.rewardedVideo.isReady) {
[self.rewardedVideo present]; // or: [self.rewardedVideo presentFromRootViewController:self];
} else {
NSLog(@"Ad wasn't ready");
}
}
رویدادهای ویدیوی تشویقی
با استفاده از MagnetAdRewardedVideoDelegate
میتوانید به lifecycle تبلیغ ویدیوی تشویقی درخواست شده، از قبیل دریافت تبلیغ، رخ دادن خطا، خروج کاربر از اپلیکیشن و غیره دسترسی داشته باشید.
برای ثبت رویدادهای تبلیغ ویدیوی تشویقی باید متغیر delegate
در MagnetAdRewardedVideo
را با کلاسای که پروتکل MagnetAdRewardedVideoDelegate
را پیادهسازی کرده است مقداردهی کنید. معمولا این مقدار برابر self
کلاس View Controller ای که تبلیغ را پیادهسازی کرده است خواهد بود.
SWIFT
import MagnetSDK
import UIKit
class ViewController: UIViewController, MagnetAdRewardedVideoDelegate {
var rewardedVideo: MagnetAdRewardedVideo!
override func viewDidLoad() {
super.viewDidLoad()
rewardedVideo.delegate = self
}
}
OBJECTIVE-C
@import MagnetSDK;
@import UIKit;
@interface ViewController () <MagnetAdRewardedVideoDelegate>;
@property(nonatomic, strong) MagnetAdRewardedVideo *rewardedVideo;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.rewardedVideo.delegate = self;
}
@end
پیادهسازی رویدادهای ویدیوی تشویقی
پیاده سازی متدهای پروتکل MagnetAdRewardedVideoDelegate
اختیاری است به غیر از متد didRewardUserWithReward
که به موفقیت آمیز بودن پروسه Reward اشاره می کند و شما می تواند پس از فراخوانی این متد مطمعن شوید که کاربر شما تبلیغ را دیده است. در مثال زیر، تمام متدهای این پروتکل به هنگام فراخوانی، نام متد خود را چاپ میکنند:
SWIFT
// Required method:
/// Tells the delegate that the rewarded video ad has rewarded the user.
func rewardedVideo(_ rewardedVideo: MagnetAdRewardedVideo, didRewardUserWith reward: MagnetAdReward) {
print("rewardedVideo:didRewardUserWith:\(reward.verificationToken)")
}
// All of following methods are optional:
/// Tells the delegate that the rewarded video ad failed to load.
func interstitial(_ ad: MagnetAdInterstitial, didFailToLoadWithError error: MagnetAdRequestError) {
print("interstitial:didFailToLoadWithError:\(error.localizedDescription)")
}
/// Tells the delegate that a rewarded video ad was received.
func rewardedVideoDidReceiveAd(_ rewardedVideo: MagnetAdRewardedVideo) {
print("rewardedVideoDidReceiveAd")
}
/// Tells the delegate that the rewarded video ad opened.
func rewardedVideoDidOpen(_ rewardedVideo: MagnetAdRewardedVideo) {
print("rewardedVideoDidOpen")
}
/// Tells the delegate that the rewarded video ad started playing.
func rewardedVideoDidStartPlaying(_ rewardedVideo: MagnetAdRewardedVideo) {
print("rewardedVideoDidStartPlaying")
}
/// Tells the delegate that the rewarded video ad closed.
func rewardedVideoDidClose(_ rewardedVideo: MagnetAdRewardedVideo) {
print("rewardedVideoDidClose")
}
/// Tells the delegate that the rewarded video ad will leave the application.
func rewardedVideoWillLeaveApplication(_ rewardedVideo: MagnetAdRewardedVideo) {
print("rewardedVideoWillLeaveApplication")
}
OBJECTIVE-C
// Required method:
/// Tells the delegate that the rewarded video ad has rewarded the user.
- (void)rewardedVideo:(MagnetAdRewardedVideo *)rewardedVideo didRewardUserWithReward:(MagnetAdReward *)reward {
NSLog(@"rewardedVideo:didRewardUserWithReward: %@", [reward verificationToken]);
}
// All of following methods are optional:
/// Tells the delegate that the rewarded video ad failed to load.
- (void)rewardedVideo:(MagnetAdRewardedVideo *)rewardedVideo didFailToLoadWithError:(MagnetAdRequestError *)error {
NSLog(@"rewardedVideo:didFailToLoadWithError: %@", [error localizedDescription]);
}
/// Tells the delegate that a rewarded video ad was received.
- (void)rewardedVideoDidReceiveAd:(MagnetAdRewardedVideo *)rewardedVideo {
NSLog(@"rewardedVideoDidReceiveAd");
}
/// Tells the delegate that the rewarded video ad opened.
- (void)rewardedVideoDidOpen:(MagnetAdRewardedVideo *)rewardedVideo {
NSLog(@"rewardedVideoDidOpen");
}
/// Tells the delegate that the rewarded video ad started playing.
- (void)rewardedVideoDidStartPlaying:(MagnetAdRewardedVideo *)rewardedVideo {
NSLog(@"rewardedVideoDidStartPlaying");
}
/// Tells the delegate that the rewarded video ad closed.
- (void)rewardedVideoDidClose:(MagnetAdRewardedVideo *)rewardedVideo {
NSLog(@"rewardedVideoDidClose");
}
/// Tells the delegate that the rewarded video ad will leave the application.
- (void)rewardedVideoWillLeaveApplication:(MagnetAdRewardedVideo *)rewardedVideo {
NSLog(@"rewardedVideoWillLeaveApplication");
}
آخرین به روزرسانی متن راهنما دی ماه ۱۳۹۶