Send GetSocial Notifications from iOS SDK

Prerequisite

Send Notifications

You can send GetSocial Notification to any user in you application. To send notification you have to:

  1. Create a list of receivers. The list should contain GetSocial user IDs.
  2. Create a notification content.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
// The list of GetSocial user IDs whom we will send notification to
NSArray *receivers = ... ;

// The content of the notification
GetSocialMediaAttachment *attachment = ... ;
GetSocialAction *action = ...;
GetSocialNotificationContent *notificationContent = [GetSocialNotificationContent withText:@"Notification text"];
[notificationContent setTitle:@"Greetings!"];
[notificationContent setAction:action];
[notificationContent setMediaAttachment:attachment];

[GetSocialUser sendNotification:receivers withContent:notificationContent success:^(GetSocialNotificationsSummary *summary) {
    NSLog(@"Successfully sent %d notifications!", summary.successfullySentCount);
} failure:^(NSError *error) {
    NSLog(@"Failed to send notifications, %@", error);
}];
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
// The list of GetSocial user IDs whom we will send notification to
let receivers : [String] = ...

// The content of the notification
let attachment : GetSocialMediaAttachment = ...
let action: GetSocialAction = ...
let notificationContent = GetSocialNotificationContent.withText("Notification text")
notificationContent.setTitle("Greetings!")
notificationContent.setAction(action)
notificationContent.setMediaAttachment(attachment)

GetSocialUser.sendNotification(receivers, with: notificationContent, success: { (summary : GetSocialNotificationsSummary) in
    print("Successfully sent \(summary.successfullySentCount) notifications!")
}) { (error : Error) in
    print("Failed to send notifications, error: \(error.localizedDescription)")
}

Receivers

  • Receivers list can not be empty.
  • It may contain up to 25 unique user IDs and one or many placeholders from GetSocial_NotificationPlaceholder_Receivers_ from GetSocialConstants.h.

    1
    2
    3
    4
    5
    NSArray *receivers = @[ 
        GetSocial_NotificationPlaceholder_Receivers_Referrer, 
        GetSocial_NotificationPlaceholder_Receivers_ReferredUsers,
        @"[put user 1 id here]", 
        @"[put user 2 id here]"];
    
    1
    2
    3
    4
    let receivers = [GetSocial_NotificationPlaceholder_Receivers_Referrer,
                        GetSocial_NotificationPlaceholder_Receivers_ReferredUsers,
                        "put user 1 id here",
                        "put user 2 id here"]
    
  • If you will send more that 25 user IDs - method will fail and notification will not be sent.

  • If you mentioned one user twice or user is in two or more placeholder groups - the notification will be sent only once.
  • If our service can not send the notification to one or many users, it will be delivered to all other users. You can check the number of successfully sent notifications in the response.

Notification Content

There are two ways to create a notification content:

  1. Create all the content on the client side. You can customize notification text (mandatory), title, configure notification click action and attach media.

    1
    2
    GetSocialNotificationContent *notificationContent = [GetSocialNotificationContent 
           withText:@"Notification text"];
    
    1
    let notificationContent = GetSocialNotificationContent.withText("Notification text")
    
  2. Use templates provided by GetSocial or create your custom template on the GetSocial Dashboard. You can override any content in the template dynamically on the client side.

    1
    2
    GetSocialNotificationContent *notificationContent = [GetSocialNotificationContent 
            withTemplateName:@"template-name"];
    
    1
    let notificationContent = GetSocialNotificationContent.withTemplateName("template-name")
    

Action

To set an action to the notification click, use notification.withAction(Action action).

1
2
3
4
GetSocialAction *action = [[[GetSocialActionBuilder alloc] initWithType:GetSocialActionOpenInvites] build];
GetSocialNotificationContent *notificationContent = [GetSocialNotificationContent 
        withText:@"Invite Friends"];
[notificationContent setAction:action];
1
2
3
let action = GetSocialActionBuilder.init(type: GetSocialActionType.openInvites).build()
let notificationContent = GetSocialNotificationContent.withText("Invite Friends")
notificationContent.setAction(action)

Read how to create actions.

Action Buttons

To add an action button use [notification addActionButton:(GetSocialActionButton *)button] or [notification addActionButtons:(NSArray<GetSocialActionButton *> *)actionButtons] to add multiple buttons at once.

1
2
3
4
5
6
7
GetSocialAction *action = [[[GetSocialActionBuilder alloc] initWithType:@"add_friend"] build];
GetSocialNotificationContent *notificationContent = [GetSocialNotificationContent withText:[NSString stringWithFormat:@"Add %@ to friends", GetSocial_NotificationPlaceholder_CustomText_SenderDisplayName]];
[notificationContent setAction:action];
[notificationContent addActionButtons:@[
    [GetSocialActionButton createWithTitle:@"Accept" andActionId:GetSocialActionIdConsume],
    [GetSocialActionButton createWithTitle:@"Decline" andActionId:GetSocialActionIdIgnore]
]];
1
2
3
4
5
6
7
let action = GetSocialActionBuilder(type: GetSocialActionType(rawValue: "add_friend")).build()
let notificationContent = GetSocialNotificationContent.withText("Add \(GetSocial_NotificationPlaceholder_CustomText_SenderDisplayName) to friends")
notificationContent.setAction(action)
notificationContent.add([
    GetSocialActionButton.create(withTitle: "Accept", andActionId: GetSocialActionId.consume),
    GetSocialActionButton.create(withTitle: "Decline", andActionId: GetSocialActionId.ignore)
])

Media Attachment

It’s possible to send image and video content in notification. To set image or video use [content setMediaAttachment:attachment]:

1
2
3
GetSocialMediaAttachment *attachment = ... ;
GetSocialNotificationContent *content = [GetSocialNotificationContent withText:@"Check this cool image"];
[content setMediaAttachment:attachment];
1
2
3
let mediaAttachment: GetSocialMediaAttachment = ...
let content = GetSocialNotificationContent.withText("Check this cool image")
content.setMediaAttachment(mediaAttachment)

Check full Media Attachment guide to learn about supported image, GIF and video formats and limitations.

Notification Templates

To create a template for notifications:

  1. Login to the GetSocial Dashboard.

  2. Go to the Notifications section → Templates tab.

  3. Press New Template button.

    GetSocial Dashboard - Create New Template

  4. Create a new template by giving a unique name and meaningful description.

  5. Setup the notification content. You can add translations, emojis, default placeholders (Sender/Receiver display name) or custom placeholders that can be replaced on the SDK. Also you can set the fallback value for each placeholder which will be used if it wasn’t sent from the SDK side.

  6. To check the list of your custom templates switch to Custom tab using radio button.

Now create and setup notification using GetSocial Android SDK:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// Text for the template "new_level_achieved" on the Dashboard:
// "Your friend [SENDER_DISPLAY_NAME] just reached [USER_LEVEL] lvl! Try to beat his score!"

GetSocialNotificationContent *notificationContent = [GetSocialNotificationContent withTemplateName:@"new_level_achieved"];
... // set up your notification
[notificationContent addTemplatePlaceholderValue:@"7" forKey:@"USER_LEVEL"]; // add replacement for your placeholders without brackets

[GetSocialUser sendNotification:receivers withContent:notificationContent success:onSuccess failure:onError];
// Your recipients will receive text:
// "Your friend John Doe just reached 7 lvl! Try to beat his score!"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// Text for the template "new_level_achieved" on the Dashboard:
// "Your friend [SENDER_DISPLAY_NAME] just reached [USER_LEVEL] lvl! Try to beat his score!"

let notificationContent = GetSocialNotificationContent.withTemplateName("new_level_achieved")
... // set up your notification
notificationContent.addTemplatePlaceholderValue("7", forKey: "USER_LEVEL") // add replacement for your placeholders without brackets

GetSocialUser.sendNotification(receivers, with: notificationContent, success: onSuccess, failure: onFailure)
// Your recipients will receive text:
// "Your friend John Doe just reached 7 lvl! Try to beat his score!"

[SENDER_DISPLAY_NAME] is automatically replaced with sender display name. You can check all possible placeholders in GetSocialConstants.h prefixed with GetSocial_NotificationPlaceholder_CustomText_.

Next Steps

Give us your feedback! Was this article helpful?

😀 🙁