Appearance
Activity Management
Learn how to implement and manage various interactive activities in your app using the Upshot.ai iOS SDK.
What are Tags?
Tags are keywords associated with different locations within your app where activities from Upshot.ai can be presented. Every activity can have one or more tags associated with it.
Think of tags like categories in a blogging system - they group related content together. In your app, you can tag specific trigger points (like "checkout", "onboarding", or "level_complete"), and then request activities from Upshot.ai that match those tags. This ensures the right activities appear in the right places at the right time.
How it works:
- In your app: Tag specific locations or user actions (e.g., "post_purchase", "game_over", "settings_page")
- In Upshot Dashboard: Publishers tag their activities with matching keywords
- SDK matching: When you request an activity with a tag, the SDK finds and displays activities that match that tag
Example:
swift
// Request activities tagged as "checkout" when user reaches payment screen
Brandkinesis.sharedInstance().showActivityWithType(-1, tag:@"checkout");
Creating Tags in Dashboard
Tags can be created in the Tag Manager section of the dashboard. Please see Dashboard documentation/help sections on how to use tags.
Using Tags in the App
An application can request the SDK to present an activity which will be selected by the SDK based on activity type and/or tags associated with an activity.
What are Activities?
An activity is a tool that Upshot.ai offers to a publisher to interact with the user. For example: Push Notifications, Surveys, Rating requests, Opinion Polls, Ads, In-App Messages, Tutorials etc. The terms activity and action are used interchangeably in this document.
How is an Activity Fetched?
Activities can be fetched in two ways:
Based on Tags - When an application requests for an activity with type and tag, the SDK shows an activity that matches the request criteria. If multiple activities qualify the request criteria, one of them is randomly selected. If no activities match the request criteria, an error is returned through the activity delegate functions.
Based on Events/User Actions - We can set up a list of rules in the Upshot.ai dashboard based on user actions/events performed in the application. SDK then verifies if any rule qualifies for that event and presents action on rule satisfaction.
Activity Types
Upshot.ai supports various activity types:
javascript
// Activity Type Constants
const ActivityType = {
ANY: -1, // Any activity type
SURVEY: 0, // User surveys
RATING: 1, // Rating requests
BANNER_AD: 2, // Banner advertisements
FULLSCREEN_AD: 3, // Full screen ads
CUSTOM_AD: 4, // Custom advertisements
OPINION_POLL: 5, // Opinion polls
TUTORIALS: 7, // User tutorials
IN_APP_MESSAGE: 8, // In-app messages
BADGES: 9, // Achievement badges
SCREEN_TIPS: 10, // Screen tips
TRIVIA: 11, // Trivia games
CUSTOM_ACTION: 12, // Custom actions
MINI_GAMES: 13, // Mini games
};
How to Request an Activity?
Activities are requested by tag and type. An application can allow all kinds of actions using activity type UpshotActivityType.any
(value: -1). To allow only specific type of activity, the appropriate activity type will be set.
Basic Activity Request
Request activities by tag and type:
objective-c
@import Upshot;
[[BrandKinesis sharedInstance] setDelegate:self];
// Request any activity with a specific tag
[[Brandkinesis sharedInstance] showActivityWithType:BKActivityTypeAny tag:@"Tag Name"];
// Request specific activity type (Survey) with tag
[[Brandkinesis sharedInstance] showActivityWithType:BKActivityTypeSurvey tag:@"Tag Name"];
swift
import Upshot
// Request any activity with a specific tag
BrandKinesis.sharedInstance().delegate = self
BrandKinesis.sharedInstance().showActivity(with: .any, andTag: "Tag Name")
// Request specific activity type (Survey) with tag
BrandKinesis.sharedInstance().showActivity(with: .survey, andTag: "Tag Name")
Important Notes
- Upshot.ai provides localized actions and for that you need to send localeCode to Upshot.ai as a user profile. Examples of localeCode: en_US, en_AU, etc.
- Upshot.ai Activities are shown in a new window but not application keyWindow. When the activity is dismissed, SDK will remove the Activity window from the application.
Locale Configuration
For localized activities, send the locale code as part of user profile:
objective-c
@import Upshot;
// Set locale for localized activities
BKUserInfo *userInfo = [[BKUserInfo alloc] init];
userInfo.localeCode = @"en_US";// Examples: en_US, en_AU, es_ES, fr_FR
[userInfo buildUserInfoWithCompletionBlock:^(BOOL success, NSError * _Nullable error) {
}];
swift
import Upshot
// Set locale for localized activities
let userInfo = BKUserInfo()
userInfo.localeCode = "en_US"// Examples: en_US, en_AU, es_ES, fr_FR
userInfo.build { (status, error) in
}
Activity Types
See specific guides for each activity type:
Core Activities
- Surveys - User feedback and data collection
- Ratings - Star ratings, emoji ratings, and satisfaction scores
- Opinion Polls - Quick polls and user preference collection
- Tutorials - User onboarding and feature guidance
- Messages - In-app messaging and communication
Gamification & Engagement
- Badges - Achievement systems and milestone celebrations
- Screen Tips - Contextual help and feature highlights
- Trivia - Quiz games and knowledge tests
- Custom Actions - App-specific interactions and workflows
- Mini Games - Entertainment content and engagement boosters
For detailed implementation guides and advanced examples, see the individual activity type documentation linked above.