Overview
The ad integration architecture:- SDK requests ad: Feed controller determines when an ad slot is due
- IMA SDK fetches ad: Requests ad from Google Ad Manager
- Native rendering: SDK renders ad in its own feed card with your styling
- Tracking compliance: SDK fires all required VAST tracking events
Account setup
Option 1: Self-managed
Use your own Google Ad Manager account:Get your GAM credentials
From your Google Ad Manager account:
- Network code
- Ad unit ID for in-feed video
Configure in Admin Portal
- Go to Ads → Configuration
- Select Self-managed
- Enter your network code and ad unit ID
- Click Verify Connection
Option 2: Platform-managed
Let shortkit handle ad operations:- Go to Ads → Configuration
- Select Platform-managed
- Complete enrollment form
- Our team sets up your inventory
- View revenue in the Ads dashboard
- Optimized fill rates and CPMs
- No ad ops expertise required
- Aggregate data improves targeting
- Dedicated support
SDK configuration
Enable ads in your SDK configuration:- iOS
- Android
- React Native
- Web
Ad frequency modes
Count-based
Show an ad every N content videos:Time-based
Show an ad every M minutes of watch time:Platform-optimized
Let the platform determine optimal frequency:- Session depth
- Content completion rates
- Aggregate engagement data
Native ad styling
Ads render as native feed cards matching your theme. Customize the sponsored label:Styling options
| Option | Description |
|---|---|
text | Label text: “Ad”, “Sponsored”, etc. |
textColor | Label text color |
backgroundColor | Label background color |
fontSize | Text size in points |
position | Corner: topLeft, topRight, bottomLeft, bottomRight |
Ad events
Handle ad-related events in your app:- iOS
- React Native
Available events
| Event | Description |
|---|---|
adImpression | Ad rendered in feed |
adStarted | Ad playback began |
adFirstQuartile | 25% of ad watched |
adMidpoint | 50% of ad watched |
adThirdQuartile | 75% of ad watched |
adCompleted | Ad finished playing |
adSkipped | User skipped the ad |
adClicked | User tapped the ad |
adError | Ad failed to load or play |
VAST compliance
The SDK automatically handles VAST tracking requirements:- Impression tracking
- Quartile events (25%, 50%, 75%)
- Completion tracking
- Click tracking
- Error reporting
Testing ads
Test mode
Enable test ads during development:- Shows Google test ad creatives
- No real impressions recorded
- No revenue generated
Ad Inspector
Debug ad delivery:- Enable debug logging
- View ad request/response in console
- Check fill status and errors
Best practices
Start with conservative frequency
Start with conservative frequency
Begin with 1 ad every 6-8 videos. Monitor retention metrics before increasing.
Monitor user experience
Monitor user experience
Track session length and return rates. If they drop after changing ad frequency, roll back.
Use A/B testing
Use A/B testing
Test different frequencies to find the optimal balance between revenue and engagement.
Style ads to match your feed
Style ads to match your feed
Native-looking ads perform better and annoy users less than disruptive formats.
Exclude sensitive content
Exclude sensitive content
Map content categories carefully to avoid inappropriate ad/content combinations.
