راهنمای iOS

شروع

این راهنما برای برنامه نویسانی طراحی شده است که می خواهند از طریق اپلیکیشن iOS خود کسب درآمد کنند.

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

پیش‌نیاز ها

  • استفاده از Xcode 7.0 یا بالا‌تر
  • پشتیبانی از iOS 6.0 یا بالا‌تر
  • ساخت اکانت در سایت مگنت و ثبت رسانه

یکپارچه‌سازی

ابتدا کیت توسعه نرم‌افزار مگنت را از لینک زیر دریافت کنید، پس از unzip، فایل framework را کشیده (drag and drop) و به پروژه خود در Xcode اضافه کنید.

Download Magnet Mobile SDK

پیاده‌سازی اولیه

قبل از درخواست نمایش تبلیغ، اپلیکیشن باید کیت توسعه نرم‌افزار مگنت را پیاده‌سازی کند. برای این کار فقط کافی است مطابق کد نمونه زیر کلاس 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;
}

تبلیغات بنری تصاویر و یا متن‌های مستطیلی شکل هستند که به صورت 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");
}

آخرین به روزرسانی متن راهنما دی ماه ۱۳۹۶

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