A/B testing app icons in App Store Connect with Product Page Optimizations
Published 24th July, 2024 by Stuart Hall![A/B testing app icons in App Store Connect with Product Page Optimizations diagram](/images/static/blog/ogp-a-b-testing-icons.webp)
What we cover:
- Adding The Icons To Your Assets
- Configuring Your Build Settings
- Add a Screen to Change Icons
- Submit Your Build
- Create the Product Page Optimization
- The Results
- Conclusion
![Monitor Icon](/images/icons/hero/block_monitor-83ca4041.png)
Want to monitor & track your app reviews?
Try Appbot free now, no credit card needed →Adding The Icons To Your Assets
When you want to A/B test your screenshots you can simply add the screenshots to App Store Connect and start the test. If you want to A/B test icons, however, you need to add them as assets and submit a new build. So it's a bit more effort than screenshots, but still not too hard!
Obviously, first you need to add all the icons to you your Asset file. Pretty easy, just drag them in and give them unique names. I like to prefix them all with "AppIcon-" and call the default icon "AppIcon-Default", but dealers choice!
![Icon Assets](/images/blog/a-b-testing-app-icons-in-app-store-connect-with-product-page-optimizations/icon-assets-c53e3c7b.png)
Configuring Your Build Settings
Now you need to let the project know they are icons, and which is which.
- Locate "Build Settings" for your target
- Search for "icon" in the top right
- Set "Primary App Icon Set Name" to the default icon your added above. What I usually call "AppIcon-Default"
- Set "Include All App Icon Sets" to "Yes" so all the icons are included in the final build.
- Add all of your alternative icons to "Alternative App Icon Sets".
![Icon Assets](/images/blog/a-b-testing-app-icons-in-app-store-connect-with-product-page-optimizations/build-settings-e5d8ef1e.png)
Add a Screen to Change Icons
This is a totally optional step, but I like to add a screen so the user can pick the icon. If you just want to A/B test then you can skip this :)
![Icon Assets](/images/blog/a-b-testing-app-icons-in-app-store-connect-with-product-page-optimizations/select-icon-658d0ede.png)
Here's some example SwiftUI code for the screen above, obviously you'll need to swap out the icons for your own names.
import SwiftUI struct IconSelectionView: View { private static let defaultIcon = "AppIcon-Default" let iconNames: [(name: String, displayName: String)] = [ (name: defaultIcon, displayName: "Default"), (name: "AppIcon-Cake", displayName: "Cake"), (name: "AppIcon-Birthday Text", displayName: "Birthday Text"), (name: "AppIcon-Popper", displayName: "Popper") ] @State private var currentIconName: String = UIApplication.shared.alternateIconName ?? defaultIcon @Environment(\.presentationMode) var presentationMode var body: some View { NavigationView { VStack { List(iconNames, id: \.name) { icon in IconRow(icon: icon, currentIconName: $currentIconName, setAppIcon: setAppIcon) } Spacer() } .navigationTitle("Select Icon") .navigationBarItems(trailing: Button("Close") { presentationMode.wrappedValue.dismiss() }) } } private func setAppIcon(to iconName: String) { guard UIApplication.shared.supportsAlternateIcons else { return } UIApplication.shared.setAlternateIconName(iconName == IconSelectionView.defaultIcon ? nil : iconName) { error in if let error = error { print("Error setting icon: \(error.localizedDescription)") } else { self.currentIconName = iconName } } } } struct IconRow: View { let icon: (name: String, displayName: String) @Binding var currentIconName: String let setAppIcon: (String) -> Void var body: some View { if let uiIcon = UIImage(named: icon.name) { Button(action: { setAppIcon(icon.name) }) { HStack { Image(systemName: currentIconName == icon.name ? "checkmark.circle.fill" : "circle") .padding(.trailing, 10) Image(uiImage: uiIcon) .resizable() .frame(width: 50, height: 50) .cornerRadius(10) .padding(.trailing, 10) Text(icon.displayName) Spacer() } .padding() } } } } struct IconSelectionView_Previews: PreviewProvider { static var previews: some View { IconSelectionView() } }
Submit Your Build
Now you'll need to archive and submit a new version of your app like you would for any update. I'm going to assume you know how to do this step :)
When you choose the build in App Store Connect the default icon should appear like below.
![Uploaded Icon](/images/blog/a-b-testing-app-icons-in-app-store-connect-with-product-page-optimizations/uploaded-icon-a8dd782d.png)
If you click on it you should be able to screen through your alternative icons. If you can then you have succeeded!
![Alternative Icons](/images/blog/a-b-testing-app-icons-in-app-store-connect-with-product-page-optimizations/alternative-icons-120efdec.png)
Create the Product Page Optimization
Once the version is approved you are ready to setup the optimization / a/b test.
- Choose Product Page Optimization from the side menu of App Store Connect.
- Give the test a Reference Name, e.g. "Icon Test".
- Choose the number of treatments. So if you want to test your original and 1 other icon, choose 1 here.
- Traffic proportion I just leave with their recommendation.
![Alternative Icons](/images/blog/a-b-testing-app-icons-in-app-store-connect-with-product-page-optimizations/create-test-75a45d69.png)
On the next screen select "Icon" and then select the alternative icons to test.
![Test Setup](/images/blog/a-b-testing-app-icons-in-app-store-connect-with-product-page-optimizations/test-setup-6b482264.png)
You're done!
The Results
After a few days you'll start seeing results trickling in. Depending on how many impressions you get for your app, it might take a while to get meaningful results. Below are some results for my app WordBoard. I definitely recommend not testing as many icons as I have below!
![Icons Tested](/images/blog/a-b-testing-app-icons-in-app-store-connect-with-product-page-optimizations/icons-tested-306936aa.png)
![Icons Tested Results](/images/blog/a-b-testing-app-icons-in-app-store-connect-with-product-page-optimizations/icons-tested-results-50d8e22e.png)
Conclusion
Testing icons can be fun, and rewarding! However, they do take a bit of setup. I hope you found this useful to start your testing. Let me know how you go!
![Monitor Icon](/images/icons/hero/block_monitor-83ca4041.png)
Want to monitor & track your app reviews?
Try Appbot free now, no credit card needed →Where to from here?
- Explore the strategies employed by top grossing apps and learn how to achieve success.
- Master the art of writing an irresistible app store description that captures attention and drives downloads.
- Reply to app store reviews on the Apple and Google Play stores for happier customers and better star ratings.
- Dive into the secrets of creating addictive apps that keep users hooked and coming back for more.
About The Author
![stu](/images/static/authors/stu.png)
Stuart is Co-founder & Co-CEO of Appbot. Stuart has been involved in mobile as a developer, blogger and entrepreneur since the early days of the App Store. He built the 7 Minute Workout app in one night and blogged the story of growing the app to 2.3 million downloads before exiting to a large fitness device company. Previously he was the co-founder of the Discovr series of applications which achieved over 4 million downloads. You can connect with him on LinkedIn.
Enjoying the read? You may also like these
![App pricing strategy 101: Roadmap to pricing your app](/images/static/blog/ogp-app-pricing-strategies.png)
Whether you're launching a new app or looking to optimize an existing one, this guide will empower you to level up your app's profitability.
Are App Store subscriptions better than one-off in-app purchases? Read about our subscription pricing experiments to the first $1k in MRR.
Want to learn WHEN to prompt an app review? See our advice after talking to thousands of mobile app developers on best techniques for IOS and Android apps.
Your app or game name is one of the most difficult, but also most important, decisions you will make.