Optimized User Acquisition funnel for iOS + Growth Dashboard
Introduction
Intsrallation
Tutorials
[Requirement / Compatibility](#Requirement / Compatibility)
[Release Notes](#Release Notes)
-[0.9.0 (Sep. 10, 2014)](#Release Notes 0.9.0)
FAQ
AppSocially provides app builders with an in-house "Growth" team. These tools mirror the best user-acquisition practices from companies like AirBnB, Facebook and Uber.
These companies devote huge resources to develop custom sharing experiences, custom landing pages, and custom tracking dashboards so they can test, track, and discover what works best for them. With AppSocially, you too can benefit from the bulk of their learnings. Simply install and configure the SDK and your user acquisition funnel will blow up in no time.
Our customizable UI Views can be installed with just one line of code
We can deliver these lists as optimized UI Views in iOS or Android, or through our API, so you can build your own view.
AppSocially comes in two parts:
A client side SDK: Provides Interface and the user invites their friends.
A Server Side Backend and Dashboard: Which serves the landing pages, collects the statistics and presents you with a dashboard.
First you should create an account at http://appsocial.ly and grab your API Key.
Then:
Add Podfile.
pod "AppSociallySDK"
And
$ pod install
Make sure Sandbox Mode is set to Disabled and Facebook Login is set to Enabled.
Detail : Getting Started with the Facebook SDK for iOS - 4
AppSociallySDK relies on the following frameworks.
Set "Other Linker Flags" configiration to -ObjC -all_load
of your iOS App Build Target > Build Settings tab.
Initialize AppSociallySDK in UIApplicationDelegate
class.
#import <AppSocially/AppSocially.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[AppSocially setAPIKey:@"YOUR_APPSOCIALLY_API_KEY"];
[AppSocially setFacebookAppID:@"YOUR_FACEBOOK_APP_ID"];
// And you code here...
return YES;
}
You can display invite function in Actionsheete
Import Appsocially SDK in your class
#import <AppSocially/AppSocially.h>
Call a method anywhere in your class
[ASInviter showInviteSheetInView:self.view];
You can display aggregated friend list like below. This function is only invite function via mail and address book.
Import Appsocially SDK in your class
#import <AppSocially/AppSocially.h>
Call below methods anywhere in your class.
Same as usual UIViewController subclasses.
ASFriendPickerViewController *pickerCtr = [[ASFriendPickerViewController alloc] init];
pickerCtr.delegate = self;
// customize here
[self presentViewController:pickerCtr animated:YES completion:nil];
Implement the delegate methods.
- (void)friendPickerViewController:(ASFriendPickerViewController *)controller
didPickedFriends:(NSArray *)friends
{
self.pickedFriends = friends;
[controller dismissViewControllerAnimated:YES
completion:^{
// do something after friends being picked
}];
}
To enable invitation via Twitter, you should set an ACAccount object as below:
- (void)twitterAccountDidSelect:(ACAccount *)account {
[ASInviter setSenderAccount:account type:ASInviteTypeTwitterDM];
}
It's needed because of the multi-account support.
Call inviteFriends method.
[ASInviter inviteFriends:self.pickedFriends
inviteInfo:inviteInfo
completion:nil];
You can call invite function individually anywhere in your code.
Import Appsocially SDK in your class
#import <AppSocially/AppSocially.h>
Call a method anywhere in your class
// Facebook
[ASInviter inviteVia:ASInviteTypeFacebookMessage inviteInfo:nil completion:nil];
// Mail
[ASInviter inviteVia:ASInviteTypeMail inviteInfo:nil completion:nil];
// SMS
[ASInviter inviteVia:ASInviteTypeSMS inviteInfo:nil completion:nil];
You can display invite function in UIActivity.
Import Appsocially SDK in your class
#import <AppSocially/AppSocially.h>
Call below methods anywhere in your class
Same as usual UIActivities.
ASTwitterActivity *twitter = [[ASTwitterActivity alloc] init];
ASFacebookActivity *facebook = [[ASFacebookActivity alloc] init];
ASMailActivity *mail = [[ASMailActivity alloc] init];
ASSMSActivity *sms = [[ASSMSActivity alloc] init];
NSArray *activities = @[twitter,
facebook,
mail,
sms];
UIActivityViewController *activityCtr;
activityCtr = [[UIActivityViewController alloc] initWithActivityItems:nil
applicationActivities:activities];
ShareSample will be useful for the reference.
You can display aggregated share form like below.
Import Appsocially SDK in your class
#import <AppSocially/AppSocially.h>
Call below methods anywhere in your class
Same as usual UIViewController subclasses.
ASShareComposeViewController *shareCtr;
shareCtr = [[ASShareComposeViewController alloc] init];
[self presentViewController:shareCtr
animated:YES
completion:nil];
You can call invite function individually anywhere in your code.
Import Appsocially SDK in your class
#import <AppSocially/AppSocially.h>
Call a method anywhere in your class
// Facebook
[ASInviter inviteVia:ASInviteTypeFacebookMessage inviteInfo:nil completion:nil];
// Mail
[ASInviter inviteVia:ASInviteTypeMail inviteInfo:nil completion:nil];
// SMS
[ASInviter inviteVia:ASInviteTypeSMS inviteInfo:nil completion:nil];
Create Unique Landing Pages and Share with Facebook SDK Share Dialog
You can change the messages by editing the localization file "AppSociallySDK.strings".
https://github.com/appsocially/AppSocially-iOS-SDK/tree/master/Localize
(eg) "data.video_url."
The property names are left to developers.
You can send the properties from the app as follows:
Set the properties to the argument "inviteInfo" as an object of NSDictionary.
(Sample1)
NSDictionary *inviteInfo = @{@"video_url": urlStr,
@"message": msgStr};
[ASInviter inviteVia:ASInviteTypeTwitterDM
inviteInfo:inviteInfo
completion:nil];
(Sample2)
NSDictionary *inviteInfo = @{@"video_url": urlStr,
@"message": msgStr};
[ASInviter inviteFriends:self.pickedFriends
inviteInfo:inviteInfo
onViewController:self
withMessageForm:NO
completion:nil];
Set the properties to the argument "shareInfo" as an object of NSDictionary.
// Not supported in current version.
Use template variables to customize and personalize your landing page!
Here is the list of Objects of Template Variables.
Showing the app's details
app.name :: Returns the name of the app
{{app.name}}
// "Your App Name"app.icon :: Returns URL of the app's icon image file
{{app.icon}}
// "https://appsocial.ly/img/your_app_icon_image_url.png"app.app_store_url :: Returns URL of the app's direct link on AppStore
{{app.app_store_url}}
// "https://itunes.apple.com/app/your_app_id"app.website_url :: Returns URL of the app's website
{{app.website_url}}
// "http://yourappswebsite.com"Showing sender's details
sender.name :: Returns sender's name
{{sender.name}}
// "Yusuke Takahashi"sender.profile_image_url :: Returns URL of sender's profile image
{{sender.profile_image_url}}
// "http://appsocial.ly/images/yusuke_takahashi.png"sender.account_url :: Returns URL of sender's profile page
{{sender.account_url}}
// "https://twitter.com/shu223"Showing receiver's details
receiver.name :: Returns receiver's name
{{receiver.name}}
// "Dave McClure"receiver.profile_image_url :: Returns URL of receiver's profile image
{{receiver.profile_image_url}}
// "http://appsocial.ly/images/dave_mcclure.png"receiver.account_url :: Returns URL of receiver's profile page
{{receiver.account_url}}
// "https://twitter.com/shu223"Returns the message added by the the sender for referral.
{{message}}
// "Hey, this app is awesome and I am sure you will love this!"Showing the data sent from the app by the app's user
data.{PROPERTY_NAME} :: Returns data which are sent from the app
{{data.video_url}}
// "http://yourappswebsite.com/videos/video.mp4"Returns URL of the generated landing page.
{{url}}
// "http://iloveapp.co/Enbzb04d"A: You can add pictures into the generated landing pages by passing inviteInfo
as below:
NSDictionary *inviteInfo = @{kDataPropertyContentURL: [UIImage imageNamed:@"filename"]};
[ASInviter inviteVia:ASInviteTypeFacebookMessage
inviteInfo:inviteInfo
completion:nil];
And add {{content_url}}
into the place where you'd like to display in your page template from our dashboard.
See also: Display customized data on landing pages
A: You can use initWithDetail:type:
and put the NSDictionary object which is retrieved from Twitter API (e.g. friends/ids.json) for the "detail" argument.
ASFriend *friend = [[ASFriend alloc] initWithDetail:dictionaryFromTwitterAPI
type:ASFriendTypeTwitter];
A: The share related functions in ASSharer have "shareInfo" properties or arguments. You can pass a string value for a kDataPropertyMessage key, and it become the default (preset) message in the share composer.
NSDictionary *shareInfo = @{kDataPropertyMessage: @"This is preset message"};
ShareSample is useful for the reference.