Разработка под Apple iOS / Давненько не брал я в руки шашки. Знаем, знаем, как Вы играете

в 16:42, , рубрики: Новости, метки: , , , ,

Ситуация в appStore для casual разработчиков быстро меняется.
2 года назад можно было заработать, выпуская платное приложение одновременно с бесплатным аналогом.
После появления в магазине более 100 000 программ этот трюк стал неэффективен.
Год назад шустрые парни стали выкладывать только бесплатные приложения, но с покупками внутри.
Одновременно число программ в appStore перевалило за 500 000.
В ближайшее время ( судя по финансовым отчетам 2012 года) только реклама внутри приложения принесет быстрые деньги.
До прошлого года я использовал фирменную рекламу от Apple.
Однако родная iAd реклама работает исключительно на территории врага.
Чтобы добрать деньги с игроков, живущих не в США (а это минимум 25%), следует прикрутить рекламу от, скажем, Google, которая будет мелькать там, где не работает iAd.
Под habracut я опишу механизм AdWhirl, реализующий показ баннеров от разных производителей.
Пример кода взят из бессмертной игры нашего прекрасного детства.
10 шагов разработчика

Шаг раз
Регистрируем новое приложение в тунце.
Не забываем нажать кнопку Set Up iAd Network.
На выходе мы получим Apple ID приложения и ссылку на программу в тунце.
Шаг два
Идем на сайт AdMob от Google.
Нажимаем кнопку Add site/app, заводим рекламную компанию, для этого используем название приложения, ссылку на приложение в тунце, например как эту и Apple ID приложения из первого шага. В итоге получаем ID рекламной компании adMob и ссылку на скачивание adMob SDK для iPhone/iPad.
Шаг три
Идем на сайт AdWhirl. Нажимаем кнопку Add Application, вносим в поля название приложения и ссылку. Включаем рекламные компании iAd и adMob, для чего используем Apple ID приложения для iAd и ID рекламной компании для adMob. Выставляем время обновления рекламы (минимум 15 секунд) и получаем на выходе ID adWhirl компании и ссылку на adWhirl SDK для iPhone.
Шаг четыре
Скачиваем adMob SDK, распаковываем и добавляем директорию в проект нашего приложения. Мышкой.
Шаг пять
Скачиваем adWhirl SDK, распаковываем и добавляем директорию в проект нашего приложения. Снова мышкой. Заходим в директорию adWhirl SDK, идем до C-файлов и выбрасываем все, кроме содержащих в своем названии буквы iAd и adMob. Иначе проект перестанет собираться.
Шаг шесть
Добавляем в приложении нужные для показа рекламы библиотеки — frameworks. Их около 7, полный список содержится в файле readme, скачанном вместе с SDK. Среди библиотек будут iAd.framework, sqlite3.lib, MessageUI.framework и прочие.
Шаг семь
Добавляем в header нашего главного класса ViewController текст
// ViewController.h
// chapay
//
// Created by vadim bashurov on 22.01.12
//
#import
#import "AdWhirlDelegateProtocol.h"
//
@class AdWhirlView;
//
@interface ViewController : UIViewController {
AdWhirlView *adView;
}
//
@property (nonatomic,retain) AdWhirlView *adView;
- (void)adjustAdSize;
@end

Текст простой, единственная засада — не могу угловую скобку поставить, Хабр ее съедает.AdWhirlView — это элемент, где будут крутить рекламу.
Наша задача только поместить AdWhirlView в такое место экрана, чтоб на него почаще нажимали. Р-р-раз, и цент на нашем счету. Миллион нажатий — миллион центов. Хорошо, нет?
Шаг восемь
Добавляем в тело нашего главного класса ViewController другой текст
// ViewController.m
// chapay
//
// Created by vadim bashurov on 22.01.12.
//
#import "ViewController.h"
#import "AdWhirlView.h"
//#import
@implementation ViewController
@synthesize adView;
//
- (void)viewDidLoad
{
[super viewDidLoad];
self.adView = [AdWhirlView requestAdWhirlViewWithDelegate:self];
self.adView.autoresizingMask =
UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin;
[self.view addSubview:self.adView];
}
//
#pragma mark AdWhirl
- (NSString *)adWhirlApplicationKey {
return @"6492f291f2214227a0af9983658704dd";
}
//
- (BOOL)adWhirlTestMode {
return NO;
}
//
- (void)adWhirlDidDismissFullScreenModal
{
NSLog(@"adWhirlDidDismissFullScreenModal");
}
//
- (UIViewController *)viewControllerForPresentingModalView {
return self;
}
//
- (void)adWhirlDidReceiveAd:(AdWhirlView *)adWhirlView {
[self adjustAdSize];
}
//
- (void)adjustAdSize {
[UIView beginAnimations:@"AdResize" context:nil];
[UIView setAnimationDuration:0.7];
CGSize adSize = [adView actualAdSize];
CGRect newFrame = adView.frame;
newFrame.size.height = adSize.height;
newFrame.size.width = adSize.width;
newFrame.origin.x = (self.view.bounds.size.width - adSize.width)/2;
newFrame.origin.y = self.view.bounds.size.height - adSize.height;
adView.frame = newFrame;
[UIView commitAnimations];
}
@end

Комментарии не требуются — все прозрачно.
Шаг девять
Компилируем приложение, убираем ошибки, проверяем работу рекламы на живом устройстве. Ждем сутки, ибо adMob заработает не сразу, идет проверка наших ID и ссылок на приложение, которые мы внесли в поля регистрации.
Шаг десять
Выкладываем binary код на проверку в appStore и божьей милостью через пару недель начинаем ежедневно получать финансовые отчеты на сайте adWhirl или appfigures.
Весь процесс занимает около 60-ти минут.
По итогам продаж могу сказать
1) реклама на iPhone приносит в 2 раза больше денег, чем покупки из приложения;
2) реклама на iPad приносит в 5 раз больше денег, чем покупка из приложения.
Всех с днем сурка, перцы!


* - обязательные к заполнению поля