Skip to content

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:

  1. 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.

  2. 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

  1. Surveys - User feedback and data collection
  2. Ratings - Star ratings, emoji ratings, and satisfaction scores
  3. Opinion Polls - Quick polls and user preference collection
  4. Tutorials - User onboarding and feature guidance
  5. Messages - In-app messaging and communication

Gamification & Engagement

  1. Badges - Achievement systems and milestone celebrations
  2. Screen Tips - Contextual help and feature highlights
  3. Trivia - Quiz games and knowledge tests
  4. Custom Actions - App-specific interactions and workflows
  5. Mini Games - Entertainment content and engagement boosters

For detailed implementation guides and advanced examples, see the individual activity type documentation linked above.

Powered by Upshot.ai