@interface YourViewController : UIViewController
@end
@implementation YourViewController
{
MTRGNativeAd *_ad;
}
- (void)initAd
{
// Включение режима отладки
// [MTRGNativeAd setDebugMode:YES];
// Создаем экземпляр MTRGNativeAd
_ad = [MTRGNativeAd nativeAdWithSlotId:YOUR_SLOT_ID];
}
@interface YourViewController : UIViewController <MTRGNativeAdDelegate>
@end
@implementation YourViewController
{
MTRGNativePromoAd *_ad;
}
- (void)initAd
{
// Создаем экземпляр MTRGNativeAd
_ad = [MTRGNativeAd nativeAdWithSlotId:YOUR_SLOT_ID];
// Устанавливаем делегат
_ad.delegate = self;
// Запускаем загрузку данных
[_ad load];
}
- (void)onLoadWithNativePromoBanner:(MTRGNativePromoBanner *)promoBanner nativeAd:(MTRGNativeAd *)nativeAd
{
}
- (void)onNoAdWithReason:(NSString *)reason nativeAd:(MTRGNativeAd *)nativeAd
{
}
- (void)onAdClickWithNativeAd:(MTRGNativeAd *)nativeAd
{
}
- (void)onShowModalWithNativeAd:(MTRGNativeAd *)nativeAd
{
}
- (void)onDismissModalWithNativeAd:(MTRGNativeAd *)nativeAd
{
}
- (void)onLeaveApplicationWithNativeAd:(MTRGNativeAd *)nativeAd
{
}
- (void)onVideoPlayWithNativeAd:(MTRGNativeAd *)nativeAd
{
}
- (void)onVideoPauseWithNativeAd:(MTRGNativeAd *)nativeAd
{
}
- (void)onVideoCompleteWithNativeAd:(MTRGNativeAd *)nativeAd
{
}
_ad.cachePolicy = MTRGCachePolicyNone;
[_ad load];
- (void)onLoadWithNativePromoBanner:(MTRGNativePromoBanner *)promoBanner nativeAd:(MTRGNativeAd *)nativeAd
{
// Заголовок рекламного объявления
NSString *title = promoBanner.title;
// Основной текст
NSString *descriptionText = promoBanner.descriptionText;
// Возрастное ограничение. Может быть nil
NSString *ageRestrictions = promoBanner.ageRestrictions;
// Дисклеймер. Может быть nil
NSString *disclaimer = promoBanner.disclaimer;
// Текст метки "Реклама"
NSString *advertisingLabel = promoBanner.advertisingLabel;
// Иконка
MTRGImageData *icon = promoBanner.icon;
// Текст действия для кнопки
NSString *ctaText = promoBanner.ctaText;
// Свойства, доступные только для объявлений, рекламирующих приложения
if (promoBanner.navigationType == MTRGNavigationTypeStore))
{
// Рейтинг приложения (0-5)
NSNumber *rating = promoBanner.rating;
// Количество оценок
NSUInteger votes = promoBanner.votes;
// Категория приложения
NSString *category = promoBanner.category;
// Подкатегория приложения
NSString *subcategory = promoBanner.subcategory;
}
// Свойства, доступные только для объявлений, рекламирующих сайты
else if (promoBanner.navigationType == MTRGNavigationTypeWeb)
{
// Домен сайта
NSString *domain = promoBanner.domain;
}
// Пример заполнения визуального компонента
UIView *adView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 300)];
UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(70, 10, 200, 20)];
titleLabel.text = title;
UILabel *descLabel = [[UILabel alloc] initWithFrame:CGRectMake(70, 50, 200, 40)];
descLabel.text = descriptionText;
UIButton *ctaButton = [[UIButton alloc] initWithFrame:CGRectMake(210, 260, 80, 30)];
[ctaButton setTitle:ctaText forState:UIControlStateNormal];
// Создаем MTRGMediaAdView
MTRGMediaAdView *mediaView = [MTRGNativeViewsFactory createMediaAdView];
mediaView.frame = CGRectMake(10, 100, 280, 150);
MTRGIconAdView *iconAdView = [MTRGNativeViewsFactory createIconAdView];
iconAdView.frame = CGRectMake(10, 10, 50, 50);
[adView addSubview:titleLabel];
[adView addSubview:descLabel];
[adView addSubview:iconAdView];
[adView addSubview:mediaView];
[adView addSubview:ctaButton];
MTRGNativeAdContainer *containerView = [MTRGNativeAdContainer createWithAdView:adView];
containerView.titleView = titleLabel;
containerView.descriptionView = descLabel;
containerView.iconView = iconAdView;
containerView.mediaView = mediaView;
containerView.ctaView = ctaButton;
// Регистрируем визуальный компонент
[nativeAd registerView:containerView withController:self];
// Добавляем на экран
[self.view addSubview:containerView];
}
mediaAdView.delegate = self;
- (void)onImageSizeChanged:(MTRGMediaAdView *)mediaAdView
{
CGFloat currentAspect = mediaView.frame.size.width / mediaView.frame.size.height;
NSLog(@"current aspect of media view: %f", currentAspect);
CGFloat actualAspect = mediaView.aspectRatio;
NSLog(@"actual aspect of media view: %f", actualAspect);
}
...
_ad.adChoicesPlacement = MTRGAdChoicesPlacementTopRight;
[_ad load];
- (void)onLoadWithNativePromoBanner:(MTRGNativePromoBanner *)promoBanner nativeAd:(MTRGNativeAd *)nativeAd
{
...
...
...
// Регистрируем визуальный компонент, с кликабельными заголовком и кнопкой призыва к действию
[nativeAd registerView:adView withController:self withClickableViews:@[titleLabel, ctaButton]];
// Добавляем на экран
[self.view addSubview:adView];
}
- (void)onLoadWithNativePromoBanner:(MTRGNativePromoBanner *)promoBanner nativeAd:(MTRGNativeAd *)nativeAd
{
// Создаем визуальный компонент
MTRGNativeAdView *adView = [MTRGNativeViewsFactory createNativeAdView];
adView.banner = promoBanner;
// Доступные для настройки внутренние визуальные компоненты
UILabel *titleLabel = adView.titleLabel;
UILabel *descriptionLabel = adView.descriptionLabel;
MTRGIconAdView *iconAdView = adView.iconAdView;
MTRGMediaAdView *mediaView = adView.mediaAdView;
UILabel *domainLabel = adView.domainLabel;
UILabel *categoryLabel = adView.categoryLabel;
UILabel *disclaimerLabel = adView.disclaimerLabel;
MTRGStarsRatingView *ratingStarsView = adView.ratingStarsView;
UILabel *votesLabel = adView.votesLabel;
UIView *buttonView = adView.buttonView;
UILabel *buttonToLabel = adView.buttonToLabel;
UILabel *ageRestrictionsLabel = adView.ageRestrictionsLabel;
UILabel *adLabel = adView.adLabel;
// Отступы
UIEdgeInsets titleMargins = adView.titleMargins;
UIEdgeInsets domainMargins = adView.domainMargins;
UIEdgeInsets categoryMargins = adView.categoryMargins;
UIEdgeInsets descriptionMargins = adView.descriptionMargins;
UIEdgeInsets disclaimerMargins = adView.disclaimerMargins;
UIEdgeInsets imageMargins = adView.imageMargins;
UIEdgeInsets iconMargins = adView.iconMargins;
UIEdgeInsets ratingStarsMargins = adView.ratingStarsMargins;
UIEdgeInsets votesMargins = adView.votesMargins;
UIEdgeInsets buttonMargins = adView.buttonMargins;
UIEdgeInsets buttonCaptionMargins = adView.buttonCaptionMargins;
UIEdgeInsets adLabelMargins = adView.adLabelMargins;
UIEdgeInsets ageRestrictionsMargins = adView.ageRestrictionsMargins;
// Регистрируем визуальный компонент
[nativeAd registerView:adView withController:self];
// Добавляем на экран
[self.view addSubview:adView];
}
// Включение режима отладки
// [MTRGNativeAdLoader setDebugMode:YES];
// Создаем MTRGNativeAdLoader
MTRGNativeAdLoader *nativeAdLoader = [MTRGNativeAdLoader loaderForCount:COUNT slotId:YOUR_SLOT_ID];
// Загружаем баннеры
[nativeAdLoader loadWithCompletionBlock:^(NSArray<MTRGNativeAd *> * _Nonnull nativeAds)
{
for (MTRGNativeAd *nativeAd in nativeAds)
{
// Устанавливаем делегат
nativeAd.delegate = self;
MTRGNativePromoBanner *promoBanner = nativeAd.banner;
// Код, аналогичный методу onLoadWithNativePromoBanner протокола MTRGNativeAdDelegate
}
}];