I just submitted multiple Shopify app .
Here's everything I learned that the docs don't clearly tell you.
1. Screencast video is REQUIRED — not optional
I assumed the demo video was a "nice to have." It's not. You literally cannot submit without a screencast URL (YouTube, Vimeo, or Loom). Plan for this before you open the listing form.
Keep it 60-90 seconds: install → enable → core feature working. Upload as unlisted on YouTube.
2. Screenshots must be exactly 1600×900
Not "at least 1600 wide." Not 2400×1350 (same aspect ratio). Exactly 1600×900 pixels. I had to re-render all my screenshots after discovering this the hard way.
Pro tip: if you're using Chrome to capture, set devicePixelRatio to 1 — HiDPI screens will silently render at 2400×1350.
3. No pricing language anywhere in images
Shopify's automated scanner catches text in screenshots too. I had "Free forever" as a badge in one screenshot — flagged immediately.
No "free", no "$0", no pricing references in any image. Pricing info belongs only in the pricing section.
4. The subtitle is a sentence, not a keyword list
"GDPR, CCPA, Cookie Banner, Consent Mode" gets flagged as keyword stuffing. Write a value statement instead: "A consent banner that keeps your analytics working after consent."
5. "Never breaks" = unsubstantiated claim
Any absolute or comparative claim gets rejected. "Never breaks your tracking", "the fastest", "guaranteed results" — all flagged.
Describe the mechanism instead: "Consent is applied through Shopify's Customer Privacy API, so pixels continue working in a consent-aware way."
6. Your app icon goes on the Dev Dashboard, not Partner Dashboard
Spent 20 minutes looking for the icon upload in the Partner Dashboard. It's not there. Go to dev.shopify.com → your app → settings. Must be exactly 1200×1200.
7. Feature Media ≠ Screenshots
I originally uploaded the same image for both. They display adjacent in the listing — duplicating looks unprofessional. Feature Media (1 image) = hero benefit image that sells the value. Screenshots (3+) = product walkthrough showing how it works.
8. Category cannot be changed after submission
Choose carefully. I almost picked the wrong one and would have had to create a new app to fix it.
9. Embedded app checks run every 2 hours
Your submit button will be greyed out until these checks pass. They run automatically every ~2 hours. To trigger them faster: open your app on a dev store so it generates session data, then click "Run" on the checks page.
10. There are hidden required fields
Category-specific tags (e.g., "Compliance types", "Accessibility tools"), Languages, and App Capabilities checkboxes are all required but don't appear until you've selected your category. I hit these at submit time and had to go back.
11. "Embedded" + "Online store" capabilities
If your app has an admin page (App Bridge) AND a theme extension (storefront widget), you need to check BOTH "Embedded" and "Online store" in the capabilities dialog. Missed "Online store" on my first try.
12. Testing instructions are gold — write them clearly
Reviewers follow your testing instructions step-by-step. A clear numbered list (install → enable → test → verify) reduces back-and-forth.
Include specific values to enter: "Enter phone number 1415555267100" — don't make the reviewer guess.
13. Approval is faster than you think
Every post online says "3-5 weeks." My first app was approved in 3 days. The second took 3 days too. Don't delay submission waiting for perfection — submit and iterate. You can update your listing after approval.
Bonus: My pre-submission checklist
I use this before every submission now:
- [ ] Icon: 1200×1200, uploaded to Dev Dashboard
- [ ] Screenshots: exactly 1600×900 (devicePixelRatio=1), no pricing text
- [ ] Feature Media: 1600×900, different from screenshot #1
- [ ] Screencast: uploaded to YouTube (unlisted), URL ready
- [ ] Listing copy: intro ≤100 chars, details ≤500 chars, features 3-5 × ≤80 chars
- [ ] No "free" in features/images, no absolute claims, subtitle is a sentence
- [ ] Category tags filled, languages selected, capabilities checked
- [ ] SEO fields: title tag (≤60), meta description (≤160)
- [ ] Privacy + Terms URLs returning 200
- [ ] App installed on dev store + working (triggers embedded checks)
- [ ] Testing instructions: clear numbered steps with specific test values
Hope this saves someone a few hours of confusion. If you're building Shopify apps and have questions about the process, happy to share more in the comments.
Top comments (0)