TestimonialKit automatically prompts satisfied users for App Store reviews while collecting feedback from unhappy ones. Free tier available — boost your ASO in under 5 minutes.

Three simple steps to turn your happy users into App Store advocates while keeping unhappy users engaged.
TestimonialKit monitors user behavior to identify meaningful moments in your app flow.
Tracks events you define as positive, such as completed actions, purchases, or level completions.
Evaluate user sentiment with a lightweight, non-intrusive prompt at appropriate moments.
Classifies the experience as positive or negative based on the signals gathered during the session.
Based on sentiment, invite a public review or collect private feedback for your dashboard.
If positive, prompt for a public review. If negative, route feedback to the TestimonialKit dashboard for follow-up and improvements.
TestimonialKit combines smart user sentiment detection with automated review flows to maximize your App Store presence.
Add TestimonialKit to your app in under 5 minutes with our simple SDK. No complex setup required.
Respects user privacy with minimal data collection. GDPR compliant and transparent.
Built specifically for mobile apps with native SDKs for both platforms. No web views or compromises.
Track review conversion rates, sentiment trends, and user feedback patterns in real-time.
Uses behavioral triggers to prompt users at optimal moments when they're most satisfied.
Seamlessly integrates with your app's design. Users barely notice it's there until they need it.
Add TestimonialKit to your app with just a few lines of code. Native SDKs for iOS and Android.
// Initialize TestimonialKit with your API key TestimonialKit.setup(withKey: "YOUR_API_KEY") // Track a positive event TestimonialKit.trackEvent( name: "completed_purchase", score: 10, metadata: ["item_id": "123", "price": "9.99"] ) // Track a negative event TestimonialKit.trackEvent( name: "cancellation", score: -5, metadata: ["reason": "too_expensive"] ) // Call the `promptIfPossible` method when you think it might be a good time to show the feedback prompt TestimonialKit.promptIfPossible { result in switch result { case .completed: print("User completed the feedback flow with a comment") case .completedWithoutComment: print("User submitted a rating without a comment") case .redirectedToStore: print("User was redirected to the App Store") case .storeReviewSkipped: print("User provided feedback but skipped App Store review") case .cancelled: print("User cancelled the feedback flow") } }
// Android Kotlin Integration import com.testimonialkit.sdk.TestimonialKit class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // Initialize TestimonialKit TestimonialKit.configure( context = this, apiKey = "your_api_key" ) // Track positive user interactions TestimonialKit.trackEvent(Event.LEVEL_COMPLETED) TestimonialKit.trackEvent(Event.PURCHASE_COMPLETED) } private fun onUserSuccess() { // Smart review prompting TestimonialKit.promptForReview() } }
.package(url: "https://github.com/testimonialkit/ios-sdk.git", from: "1.1.1")implementation 'com.testimonialkit:android:1.0.0'Choose the plan that's right for you
Every day you wait is another day of missed 5-star reviews. Join 500+ indie developers already boosting their ASO with TestimonialKit's free tier.