Skip to main content
Listing pushes measure themselves. Everything else you try to grow the app (new screenshots, a UGC video, an ad angle, a price change) goes in appeeky/experiments/, with one metric and a date to check it.

Personas

Write who the app is for once, in appeeky.spec.yaml, so screenshots, UGC and ads speak to the same people:

Start an experiment

One experiment, one metric. If you cannot name the number that decides it, it is not ready to run.

Metrics measured for you

These metrics need no --baseline or --value: add measures the baseline over the same number of days before the start, and verify measures the result once the experiment is due and closes it. Each one needs its source. The automatic baseline comes from Appeeky. Without APPEEKY_API_KEY, pass --baseline for metrics read from your repo (ad_installs and cpa from your own Search Ads pull, ai_visibility from your own scans, search_clicks, search_impressions). Smart link metrics are read from the link’s last 30 days. For cpa, meta_cpi, tiktok_cpa, spend, low_ratings, web_rank and category_rank, lower is better.
Without a --target, a measured experiment is won when the metric moved at least 5% the right way, lost when it moved 5% the wrong way, and inconclusive otherwise. With attribution: set up (attribution init, see Commands), --link creates a smart link for the experiment: one URL that sends each visitor to the right store, with its installs and revenue counted to it.
On iOS the App Store passes nothing from a click to a new install, so link installs are, in practice, Google Play installs. For an App Store only app, measure link_clicks (or organic_installs). Apple Search Ads needs nothing in the spec: it is matched to the app in Appeeky, or read with search-ads pull on your own key. Meta and TikTok ad accounts usually promote more than one app, so list the campaigns that belong to this one:
Connect Meta and TikTok in Appeeky first. ads prints spend, installs (conversions for TikTok) and cost per result per channel, and --save keeps a copy in appeeky/ads/. verify compares the same numbers before and after every push, so a listing change and an ad change are judged on the same days.

Check and close

list marks experiments past their check date. close compares --value with the target: reaching it is won, missing it is lost. For a metric Appeeky measures, close without --value measures it. --playbook adds the result to appeeky/playbook.md, next to the listing results.

Screenshots

pull downloads the live App Store screenshots of every locale into appeeky/screenshots/app-store/<locale>/<display type>/. check validates their pixel sizes against the display type and counts them. Put your new screenshots in the same folders and check validates those before you upload. The pull request report fails on screenshot errors too. push does not upload screenshots, so it only warns about them. See Screenshots. Uploading screenshots is not part of Appeeky Spec yet. Use the App Store Connect CLI for uploads.