Changelog
11.0.2 - 17/12/2025
Bug fixes
- Fixed an issue where the customKvps callback was called only once in the GAM adapter
- Fixed a rare issue related to the mute state on Android
11.0.1 - 04/12/2025
Improvements
- Decreased the minimum required version of the GAM dependency for the GAM module on iOS to 12.2
11.0.0 - 14/11/2025
New Features
- Added support for custom fonts on Android and iOS
- Introduced the new StorytellerHomeView component
Bug fixes
- Fixed grid height calculations for non-scrollable layouts when the data count is lower than the display limit on Android
11.0.0-alpha.3 - 06/11/2025
Improvements
- Added support for Xcode 16.2
11.0.0-alpha.2 - 29/10/2025
Bug fixes
- Fixed issue where adUnit callback was not being invoked on iOS
11.0.0-alpha.1 - 29/10/2025
storyteller_sdk
SDK Initialization
Storyteller.initialize() with API key authentication and optional external ID
StorytellerEventTrackingOptions for personalization and ad tracking configuration
- SDK state queries:
isInitialized(), version(), currentApiKey()
StorytellerStoriesGridView - Grid layout for stories with category filtering
StorytellerStoriesRowView - Horizontal scrolling row of stories
StorytellerClipsGridView - Grid layout for clips with collection support
StorytellerClipsRowView - Horizontal scrolling row of clips
StorytellerEmbeddedClipsView - Embedded clips player with playback controls
Controllers
StorytellerEmbeddedClipsController for programmatic playback control
StorytellerListViewController for list and grid view management
Content Navigation
- Direct content opening:
openStory(), openPage(), openSheet(), openSearch()
- Collection support:
openCollection(), openCollectionWithCategory()
- External ID support:
openStoryByExternalId(), openClipByExternalId()
- Category navigation:
openCategory(), isCategoryFollowed()
- Content counts:
getStoriesCount(), getClipsCount()
User Management
- Custom attributes:
setCustomAttribute(), removeCustomAttribute(), customAttributes()
- Locale configuration:
setLocale()
- Category following:
addFollowedCategory(), removeFollowedCategory(), followedCategories()
Theming System
StorytellerTheme with light/dark mode support
- Component-specific themes: instructions, engagement units, polls, quizzes, search
- Per-collection theme support in
openCollection()
Deep Linking
isStorytellerDeeplink() for URL validation
openDeeplink() for navigation handling
isSearchEnabled() query
Player Controls
dismissPlayer() with animation and reason support
resumePlayer() for playback continuation
- Player state queries:
isPlayerVisible(), isPresentingContent()
Event Streams
onUserActivityOccurred - All user interaction events
userNavigatedToApp - Link tap navigation events
categoryFollowActionTaken - Category follow/unfollow events
onPlayerPresented - Player presentation lifecycle
onPlayerDismissed - Player dismissal lifecycle
onLog - SDK debug logging
storyteller_gam_sdk
Google Ad Manager Integration
StorytellerGAMModule.setup() for native SDK integration configuration
StorytellerGAMModuleConfiguration with dynamic ad unit callback
StorytellerAdRequestInfo providing placement, category, and experiment context
StorytellerCustomNativeTemplateIds for stories and clips ad templates
Features
- Dynamic ad unit selection per request based on placement/category/experiment
- Custom native template ID mapping for stories and clips
- Platform channel bridge to native GAM SDKs