Начало работы с Facebook SDK для iOS
Сегодня важным элементом приложения является возможность сообщить вашим друзьям, коллегам, а также всему миру, что вы делаете, где и почему. В этом нам помогают социальные сети. Сети в свою очередь стараются облегчить труд программиста и создают свои SDK. Сейчас мы рассмотрим Facebook SDK для платформы iOS.
Когда я начинал разбираться с Facebook SDK примерно год назад, еще была версия, которая называлась facebook-iphone-sdk. Она и сейчас работает. Но я стал замечать странные сбои в приложении и решил, проверить не вышло ли что-то нового. Оказалось этот проект законсервирован, а разработчикам рекомендуется теперь использовать facebook-ios-sdk, где как утверждалось все еще проще. И как оказалось, не соврали.
Пользователи Xcode 4.0 могут напрямую скачать SDK из среды разработки. Для этого открываем Organizer, идем в раздел Repositories, и после плюсика в нижнем левом углу выбираем Checkout or Clone Repository.
В директории Sample находится демо-приложение, которое мы и будем немного дорабатывать и по пути разбираться с ним. Но с ним сразу же возникла проблема при его попытке запустить. Какие-то параметры проекта мешают его компиляции в новом Xcode4 и выдается ошибка о неверной архитектуре. Надо зайти в параметры проекта и просто поубивать все в разделе Архитектура и затем у проекта восстановить только два параметра:
Architectures — Standard (arms6, arms7)
BaseSDK — Latest iOS (iOS 4.3)
Если не получилось, то ниже я прилагаю рабочий проект.
После этого наш проект начинает строится, запускается в симуляторе и сразу же «вылетает», сигнализирую в консоль — «2011-03-29 11:49:02.301 DemoApp[3098:207] missing app id!». Все потому, что мы не указали id нашего приложения.
Идем на http://www.facebook.com/developers/ и либо выбираем ваше уже существующие приложение или нажимаем кнопочку «+ Создать новое приложение». После несложной регистрации система сообщит вам кроме всего прочего «ID приложения». Он и только он нам и нужен в новой версии SDK. В файле DemoAppViewController.m мы можем увидеть такой текст:
// Your Facebook APP Id must be set before running this example
// See www.facebook.com/developers/createapp.php
// Also, your application must bind to the fb[app_id]:// URL
// scheme (substitue [app_id] for your real Facebook app id).
static NSString* kAppId = nil;
Заменяем nil на наш id приложения. Не забываем, что это строка. Пусть ДЛЯ ПРИМЕРА наш id будет 11111111111
static NSString* kAppId = @»11111111111″;
Идем в конфигурационный файл Resources/DemoApp-Info.plist и заменяем значение fb[your-app-id] на картинке на наше fb11111111111 — причем скобки вас не должны смущать, ставить значение нужно без них!
Все! Теперь мы получили полностью работающее приложение. Можем запускать и изучать, что оно умеет. Сразу после запуска видим приглашение войти. После набора емейла и пароля появляется экран, интересующийся у нас, позволяем ли мы этому приложению получить доступ к нашим данным. Нажимаем Allow и попадаем в очень минималистический дизайн программы. На этом остановимся, чтобы разобраться как это все сейчас работает.
Для начала взглянем на XIB файл.
Он предельно прост — 5 кнопочек. При запуске приложения показывается только FBLoginButton — она у нас управляется одноименным классом, который добавлен в проект. Взглянем на метод viewDidLoad
/**
* Set initial view
*/
(void)viewDidLoad <
// инициализируем facebook
_facebook = [[Facebook alloc] initWithAppId:kAppId];
[self.label setText:@»Please log in»];
// скрываем все кнопочки крочем логина
_getUserInfoButton.hidden = YES;
_getPublicInfoButton.hidden = YES;
_publishButton.hidden = YES;
_uploadPhotoButton.hidden = YES;
_fbButton.isLoggedIn = NO;
[_fbButton updateImage];
>
Заметьте, как просто теперь инициализируется объект класса Facebook — нужно id приложения и все.
_facebook = [[Facebook alloc] initWithAppId:kAppId];
при нажатии кнопочки вызывается метод:
/**
* Called on a login/logout button click.
*/
— (IBAction)fbButtonClick:(id)sender <
if (_fbButton.isLoggedIn) <
[self logout];
> else <
[self login];
>
>
И если мы еще не вошли, то вызываем метод:
/**
* Show the authorization dialog.
*/
— (void)login <
[_facebook authorize:_permissions delegate:self];
>
, где _permissions — это настройки прав на различные действия в facebook. В нашем примере мы просим права при инициализации нашего контроллера
— (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil <
.
_permissions = [[NSArray arrayWithObjects:
@»read_stream», @»offline_access»,nil] retain];
>
согласно документации тут — http://developers.facebook.com/docs/authentication/permissions/, read_stream — это право читать ленту, а offline_access — это возможность вашему приложения оставаться присоединенным гораздо дольше. Без этого права токены на доступ сгорят достаточно быстро. Мы вернемся к этой теме чуть позже. Кстати, именно подтверждение этих прав у нас и запрашивалось, когда мы нажали кнопку Allow выше.
Второй важный момент здесь, что мы указали себя, наш класс, (self) как делегата и будем получать от объекта facebook сообщения по мере их поступления.
Еще один очень важный момент связан с тем, как же мы возвращаемся в наше приложение после авторизации. Помните, мы вносили какие-то параметры выше в файл Resources/DemoApp-Info.plist. И если мы присмотримся к файлу DemoAppAppDelegate.m то увидим там маленький метод, который и ответственен за возврат в наше приложение.
— (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url <
return [[controller facebook] handleOpenURL:url];
>
Таким образом, подытожим. Если вы будете делать приложение с нуля, то для успешной работы SDK вам обязательно надо
1. Указать app ID в коде
2. Указать app ID в файле параметров вашего приложения
3. В *AppDelegate.m вашего приложения реализовать метод
— (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url <
return [[controller facebook] handleOpenURL:url];
>
Без последних двух пунктов вы не будете возвращаться в ваше приложение после окна авторизации.
В зависимости от того с чем вы вернулись в приложение, вызывается один из трех методов, которые мы прописали, как делегат.
/**
* Вызывается, если мы успешно авторизовались.
*/
— (void)fbDidLogin <
[self.label setText:@»logged in»];
_getUserInfoButton.hidden = NO;
_getPublicInfoButton.hidden = NO;
_publishButton.hidden = NO;
_uploadPhotoButton.hidden = NO;
_fbButton.isLoggedIn = YES;
[_fbButton updateImage];
>
/**
* Вызывается, если мы отказались от авторизации.
*/
-(void)fbDidNotLogin:(BOOL)cancelled <
NSLog(@»did not login»);
>
/**
* Вызывается, если мы сделали logout на фейсбуке.
*/
— (void)fbDidLogout <
[self.label setText:@»Please log in»];
_getUserInfoButton.hidden = YES;
_getPublicInfoButton.hidden = YES;
_publishButton.hidden = YES;
_uploadPhotoButton.hidden = YES;
_fbButton.isLoggedIn = NO;
[_fbButton updateImage];
>
Так как мы успешно авторизовались, все наши остальные кнопки появились на экране. Можете сами изучить, что они делают; мы подробнее вернемся к ним позже. Например, кнопка «Call Graph API» покажет вам ваше имя и фамилию, а кнопка «Call REST API» покажется вам имя и фамилию человека в а именно Mike Zuckerberg. Попытки узнать, кто же скрывается под не увенчались успехом и приложение крешнулось. Так что, желающие могут изучить этот вопрос самостоятельно. И вот пока я писал последний абзац мне пришлось как минимум несколько раз снова жать кнопку Login. Что же можно сделать, чтобы один раз авторизовавшись в приложении, не надо было входить на facebook снова. Сейчас этим и займемся. Все что нам для этого надо — это сохранить в NSUserDefaults значения двух переменных. viewDidLoad у нас примет вот такой вид:
— (void)viewDidLoad <
_facebook = [[Facebook alloc] initWithAppId:kAppId];
_facebook.accessToken = [[NSUserDefaults standardUserDefaults] stringForKey:@»AccessToken»];
_facebook.expirationDate = (NSDate *) [[NSUserDefaults standardUserDefaults] objectForKey:@»ExpirationDate»];
if ([_facebook isSessionValid] == NO) <
[self.label setText:@»Please log in»];
_getUserInfoButton.hidden = YES;
_getPublicInfoButton.hidden = YES;
_publishButton.hidden = YES;
_uploadPhotoButton.hidden = YES;
_fbButton.isLoggedIn = NO;
[_fbButton updateImage];
> else <
[self.label setText:@»logged in»];
_getUserInfoButton.hidden = NO;
_getPublicInfoButton.hidden = NO;
_publishButton.hidden = NO;
_uploadPhotoButton.hidden = NO;
_fbButton.isLoggedIn = YES;
[_fbButton updateImage];
>
>
мы проверяем валидна ли (isSessionValid) сессия с параметрами accessToken и expirationDate, сохраненных в нашем NSUserDefaults. Если да, то мы уже залогинены и можем выполнять дальнейшие действия.
в методы fbDidLogin и fbDidLogout мы добавим соответственно
fbDidLogin — записываем параметры
[[NSUserDefaults standardUserDefaults] setObject:self.facebook.accessToken forKey:@»AccessToken»];
[[NSUserDefaults standardUserDefaults] setObject:self.facebook.expirationDate forKey:@»ExpirationDate»];
fbDidLogout — обнуляем их
[[NSUserDefaults standardUserDefaults] setObject:nil forKey:@»AccessToken»];
[[NSUserDefaults standardUserDefaults] setObject:nil forKey:@»ExpirationDate»];
Запускаем нашем приложение, авторизуемся, проверяем нашем имя — все отлично. Не нажимая Logout прекращаем наше приложение и снова его запускаем — видим, что мы все еще на фейсбуке — проверяем наше имя — все работает. Напомню, что именно для этого мы в правах просили себе право @«offline_access». Этот вариант проекта можно будет скачать ниже.
И в заключение сегодняшней статьи давайте посмотрим как работает механизм запросов и обработка ответов.
Facebook настойчиво просит нас использовать GRAPH API, а не использовать старые REST API, который тем не менее все еще поддерживается. На этой странице (http://developers.facebook.com/docs/reference/api/) мы можем видеть примеры использования GRAPH API и посмотреть вывод информации для вас. В демо-программе facebook использует такой запрос:
— (IBAction)getUserInfo:(id)sender <
[_facebook requestWithGraphPath:@»me» andDelegate:self];
>
для примера они показывают какой вывод будет при таком запросе
graph.facebook.com/btaylor
Это означает, что мы получим в ответ NSDictionary и сможем получить наше полное имя по ключу «name». После того, как мы отправили запрос и назначили получателя ответа, нам надо сделать методы, отвечающие за прием ответа. За прием неразобранного (raw) ответа отвечает
— (void)request:(FBRequest *)request didReceiveResponse:(NSURLResponse *)response <
NSLog(@»received response»);
>
а разобранный ответ принимает:
— (void)request:(FBRequest *)request didLoad:(id)result <
if ([result isKindOfClass:[NSArray class]]) <
result = [result objectAtIndex:0];
>
if ([result objectForKey:@»owner»]) <
[self.label setText:@»Photo upload Success»];
> else <
[self.label setText:[result objectForKey:@»name»]];
>
>;
Ответ (result) может быть числом, строкой, массивом или dictionary. Если нам пришел ответ сразу как NSArray — значит нам пришел сразу несколько ответов и надо разбивать их по отдельным ответам. В данном случае когда мы попросили рассказать, кто же мы (me) такие, приходит ответ в NSDictionary и там нет ключа owner, и следовательно вызывается эта строчка:
[self.label setText:[result objectForKey:@»name»]];
Давайте все усложним. Например, я хочу получить в приложении информацию о том, что же любит пользователь. Изменим запрос согласно документации на:
— (IBAction)getUserInfo:(id)sender <
[_facebook requestWithGraphPath:@»me/likes» andDelegate:self];
>
если вы посмотрите на сайте фейсбука вывод этого запроса, то увидите, что ответом будем — NSDictionary всего с одним ключом data. Ему будет соответствовать массив объектов NSDictionary c ключами «name»,«category»,«id»,«created_time». Важно также не забыть в запрашиваемые права добавить «user_likes», иначе в ответ нам вернется пустой объект NSDictionary!
Чтобы принять такой ответ, перепишем наш метод
— (void)request:(FBRequest *)request didLoad:(id)result <
if ([result isKindOfClass:[NSArray class]]) <
result = [result objectAtIndex:0];
>
if ([result objectForKey:@»owner»]) <
[self.label setText:@»Photo upload Success»];
> else if ([result objectForKey:@»data»]) <
NSArray *likes = [result objectForKey:@»data»];
NSString *text=@»You don’t like Steve»;
for (NSDictionary* mylike in likes) <
NSString *mylikeName = [mylike objectForKey:@»name»];
if ([mylikeName isEqualToString:@»Steve Jobs»]) <
text=@»You like Steve»;
break;
>
>
[self.label setText:text];
>
>;
Если мы получили ответ в виде NSDictionary, и там есть значение по ключу «data», то мы проходим по этому массиву, заглядывая в каждый объект и проверяем, нет ли среди страничек facebook, которые нравятся пользователю, странички с именем Steve Jobs. У меня такая оказалась, так что приложение выдало мне «You like Steve».
На этом я остановлюсь пока, хотя хотелось бы еще рассказать, какие интересные опции есть для формирования сообщения на стену из приложения. Но видимо это будет в следующий раз.
Проект оргинальный, но с поправками в свойствах, чтобы запустился в Xcode4
Проект с добавленной возможностью сохранять сессию
Проект с измененным запросом
Только вам в них надо будет поставить свои appID 🙂
ps и еще я люблю форматирование кода на Хабре 🙂
Как продвигать мобильные приложения с помощью SDK в Facebook и Instagram. Кейс IELTS Preparation
Сегодняшний кейс особенный, ведь он познакомит вас с инструментом — Facebook SDK, о котором пока что сказано так мало, но который невозможно игнорировать, если вы хотите добиться успеха в продвижении мобильных приложений с помощью рекламы. А примером по рекламе приложения станет кейс IELTS Assistant — приложения, которое помогает тысячам людей по всему миру готовиться к сдаче IELTS.
Запуск онлайн-продукта очень похож на оффлайн-предпринимательство. Тот факт, что ваше приложение доступно в App Store, Google Play или на любой другой платформе распространения, не гарантирует, что люди легко его найдут. Следующее, что вам нужно сделать, — это разработать долгосрочную маркетинговую стратегию.
SMM-специалисты, таргетологи и собственники бизнеса привыкли, что, с помощью Pixel, Facebook позволяет отслеживать статистику и аналитику, а также настраивать рекламные кампании и оценивать уровень конверсий. Когда мы говорим о приложениях, все гораздо сложнее. Потому и появился инструмент Facebook SDK.
Что такое Facebook SDK?
Если вы никогда не слышали об SDK, не беспокойтесь. Пока что информации об этом инструменте не так много, а мы готовы рассказать важные вводные данные. Аббревиатура расшифровывается как «Software Development Kit». SDK это комплект для разработки программного обеспечения, позволяющий легко интегрировать веб-сайт или приложение с Facebook.
Кто-то путает этот инструмент c API, но они не являются одним и тем же. SDK — полный набор API, которые позволяют пользователям выполнять любые действия, необходимые для создания приложений. API с другой стороны — это просто набор связанных методов, которые могут быть полезны для конкретной цели.
Facebook предоставляет возможность познакомиться и поработать с этим инструментом в разделе Facebook for Developers.
Как видим на скриншоте, Facebook дает целый список возможных инструментов. Например, SDK для iOS и Android позволяют отслеживать открытие приложения, а также предлагать пользователю публикацию материалов и логин с помощью Facebook. Комплект установок для игр помогает пользователю присоединиться к игровым сообществам, Facebook SDK для Javascript позволяет добавить социальные плагины и вызвать АРІ.
Если говорить о приложениях, SDK это то, что позволяет запускать рекламу вашего мобильного приложения на рекламу в Facebook. Подобно пикселю Facebook, вы можете использовать инструмент для таких целей, как ретаргетинг людей, отслеживание конверсий и многое другое.
В SDK мобильных приложений входят такие компоненты:
Добавление Facebook SDK в приложение
Реклама вашего мобильного приложения поможет вам увеличить количество скачиваний и установок приложения. Это руководство предназначено для разработчиков программного обеспечения, которые настраивают приложение для рекламы приложений. В разделе Facebook for Developers есть технические инструкции о том, как настроить и оптимизировать показ рекламы мобильного приложения.
Если же вы не разработчик, мы рекомендуем вам заручиться помощью для завершения технических настроек приложения: привлеките знакомого программиста или обратитесь к партнеру Facebook (о том, как заполучить такого партнера – читайте более подробно в разделе Facebook business).
Для подключения инструмента нужно пройти несколько шагов:
2. Зарегистрируйте свое приложение с помощью панели инструментов приложения.
Здесь нужно будет добавить информацию о приложении и предоставить URL-адрес Политики конфиденциальности.
3. Добавьте платформы, на которые вы поставляете свое приложение.
4. Пройдите верификацию.
5. Установите Facebook iOS SDK или Android SDK в свое приложение. Это позволит более детально отслеживать и таргетировать рекламу.
В разделе «Настройки» > «Дополнительно» > «Рекламные учетные записи» укажите одну или несколько ID авторизованных рекламных учетных записей, которые будут использоваться для запуска и оплаты рекламы приложений. Если реклама будет запускаться от имени больше, чем одного бизнеса, также предоставьте ID бизнес-менеджера для этих предприятий. Например, если компания запускает рекламу для дочерней компании или если агентство запускает рекламу для клиента, укажите ID бизнес-менеджера в разделе «Авторизованные предприятия».
6. Добавьте события в приложении — рекомендуется для целевой доставки ваших объявлений людям, которые с наибольшей вероятностью предпримут действия.
7. Для рекламы своего приложения и анализа эффективности рекламы вам нужно будет добавить в него три обязательных события. С помощью SDK Facebook для iOS и Android можно отправлять следующие события:
После завершения настройки приложения вы можете создавать и запускать рекламные кампании через Ads Manager.
Особенности рекламы приложения в Facebook
Настройки рекламного объявления для приложений очень похоже на привычные для вас настройки в Ads Manager. Просто не забывайте указывать в настройках ваше приложение.
При выборе цели рекламы приложения Facebook предложит несколько вариантов (смотрите скриншот): повышение узнаваемости, увеличение количества лидов и конверсии. Узнаваемость стоит прокачивать, если ваше приложение только появилось на рынке, настраивать рекламу на привлечение лидов — для увеличения количества установок приложения и получения трафика. Конверсия, в свою очередь, позволит конвертировать поток людей в покупателей, которые оплачивают платный контент и совершают повторную покупку. Ключевым в продвижении приложений является, все же, установка приложений из столбца «Лиды».
Есть еще парочка важных настроек рекламы приложений:
Дополнительно напомним, что при продвижении приложения вы точно так же можете использовать динамические креативы, чтобы увеличить вариативность рекламных объявлений. Большой материал о динамических креативах — тут, а сейчас акцентируем внимание на то, что тизер должен давать человеку полное понимание, о чем ваше приложение, для кого оно и почему он должен его скачать. Объявление должно содержать качественные скриншоты вашего приложения. В формате отображения картинок каруселью выберите вариант с «продолжающимся» изображением.
Если вы решили использовать в рекламе видеоролик, используйте вертикальный формат — ведь, скорее всего, вы будете таргетироваться на пользователей, которые зашли в соцсеть с мобильного устройства.
Особенности рекламы приложения в Instagram
Опять таки, о настройке рекламы в Instagram мы писали ранее. Потому сейчас фокусируемся только на нескольких особенностях по формату продвижения вашего приложения в этой социальной сети.
Кстати, Instagram эффективен не только, как площадка для ваших рекламных объявлений, но и в целях активного взаимодействия с пользователями вашего приложения. Ведь в вашем Instagram-профиле вы можете проводить опросы, конкурсы и активности, связанные с вашим приложением. Так, мобильная корейская игра Zepeto, которая взорвала мир приложений, активно проводит розыгрыши «монет», которые потом используются в приложении. Они стимулируют пользователей оставлять фидбек, делать репосты, еще больше продвигая приложение.
Продвижение приложения IELTS Assistant
Пора перейти к чему-то прикладному. Мы дали достаточно информации, чтобы донести о важности продвижения вашего приложения и установки SDK. А теперь поговорим о том кейсе, в котором мы активно использовали все приемы, описанные выше.
Shcherbakov SMM Agency сотрудничало с командой IELTS Assistant 8 месяцев и это было действительно интересное сотрудничество. Вначале — пару слов о заказчике.
IELTS Speaking Assistant — приложение для смартфонов и планшетов, которое предоставляет новые темы, идеи и ответы, написанные опытными преподавателями, для тех, кто готовится к IELTS! Это обязательное приложение для всех кандидатов, которые хотят сэкономить свое время и получить отличные результаты IELTS! Приложение представлено как в Google Play, так и в App Store.
Для тех, кто не знает, что такое «IELTS» — это международная система тестирования английского языка для тех, у кого английский не является родным. IELTS создали и поддерживают Кембриджский университет, Британский совет и организация IDP Education Australia. Ежегодно тестирование проходит около 3 миллионов человек, а результаты тестов признают свыше 10 000 организаций со всего мира.
Несмотря на большое количество конкурентов и похожих приложений / сервисов / сайтов, IELTS Speaking Assistant имеет ряд преимуществ: самые новые темы, персонализация (ответы составлены для людей разных интересов, с учётом страны проживания), большая часть контента бесплатная.
Перед нами стояло несколько задач:
Этапы продвижения приложения IELTS Speaking Assistant
Продвижение происходило серией последовательных шагов, каждый занимал от месяца — до нескольких месяцев.
Повышение вовлеченности включало не только увеличение количества оплат более расширенного функционала, но и возвращение активности тем пользователям, которые установили приложение, и, воспользовавшись бесплатным контентом, перестали туда заходить. Им показывалась реклама о том, что мы давно их не видели, а в приложении, тем временем, появились новые темы.
3. Далее мы расширили рекламную кампанию — было составлено 10 рекламных постов, которые запускались на людей, скачавших приложение. Мы начали каждый день собирать людей, которые скачали приложение, и на них таргетировали серия постов.
Посты были на разные темы: информационные (подборка 15 наиболее частых вопросов / фраз на IELTS), продающие (описывали преимущества приложения) и даже развлекательные (да, мы использовали немного юмора, который отлично воспринимался студентами).
4. После запуска воронки с помощью когортного анализа в Facebook Analytics, через некоторое время, у нас появилось достаточно статистики, чтобы сделать вывод — самые «урожайные» дни это, особенно, первый и в целом 4 первых дня из 10. Дальше, скорей всего, аудитория уставала от рекламы и информации со стороны приложения.
5. Так как 75% пользователей совершали покупку в течение 6-ти дней воронки, совместно с заказчиком было принято решение экспериментировать и постепенно сокращать количество «рекламных» дней воронки, постоянно анализируя эффективность. На этом этапе эффективность воронки подтвердилась — около 80% покупок заказчик получал именно от пользователей с воронки.
Хорошо работали объявления, которые люди видели сразу после установки или запуска приложения.
6. В итоге, мы пришли к воронке в 5 дней. Сокращения количество дней для рекламных постов приятно сэкономило бюджет. В такой воронке важно было постоянно отслеживать «неэффективные» дни, менять тизер, экспериментировать с призывом к действию. Также правильным решением была пауза перед запуском воронки. То есть, люди начинали видеть рекламные объявления не сразу, а через 3, 5 и 7 дней после скачивания.
Цель рекламы и плейсменты в продвижении приложения
В начале сотрудничества цель рекламы была одна — увеличить количество скачиваний приложения. Поэтому изначально рекламные кампании были нацелены на теплую аудиторию (людей, которые не просто установили приложение, но и прошли весь бесплатный контент).
Спустя 2 месяца мы запустили десятидневную воронку на людей, которые скачали приложение. При этом использовалась цель «Вовлеченность». Позже, в виде эксперимента мы попробовали поменять цель и взять курс на «Охват», показывая рекламу людям, которые скачали приложение. По результатам кампаний охват был дешевле — больше людей видели рекламу, формировалась узнаваемость продукта, более лояльное отношение, которое, в результате, приводило к покупке.
Что касается мест размещения, реклама запускалась на все каналы Facebook, Instagram (включая Stories), а также Audience Network. Это набор приложений и сайтов с рекламой Facebook.
Если говорить языком цифр, то:
SDK помог нам не только запустить рекламу для продвижения, но и анализировать эффективность рекламных кампаний. Мы видели, с каких стран идут покупки, в какое время, на каком шаге воронку и через Pixel собирали новые целевые аудитории, усиливая из вовлеченность и приводя к покупке.
Результатом нашего сотрудничества с IELTS Speaking Assistant стала протестированная под разными углами воронка и четкий алгоритм рекламы, который дальше внедряется заказчиком самостоятельно.
Выводы о продвижении приложений
Выводы, думаем, очевидны. Можно просто запустить приложение и ждать ажиотажа от аудитории, не получая несколько тысяч установок приложения и, в результате, покупок.
Помните, что ваши инициативы в социальных сетях, которые стимулируют установку и покупки в приложениях, должны быть неиссякаемы, но не должны оставаться конечной целью. Рекомендуем отслеживать взаимодействие с пользователем: анализируйте, где пользователи проводят большую часть своего времени, когда они уходят, как и где взаимодействуют с приложением, нажимая, зажимая и проводя пальцем.
Искренне желаем вам низких СРІ, высоких конверсий и большого количества скачиваний вашего приложений. Пускай оно надолго задерживается на главных экранах устройств пользователей по всему миру!
А если вы вдохновились нашей статьей, но не чувствуете силу самостоятельно запустить мощное продвижение приложения, обращайтесь к нашим специалистам!
Опыта у нас не занимать.
Кейс выполнен специалистом Юлией Ваниной.




















