appeeky/experiments/, with one metric and a date to check it.
Personas
Write who the app is for once, inappeeky.spec.yaml, so screenshots, UGC and ads speak to the same people:
Start an experiment
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.
--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.
Smart links
Withattribution: 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.
link_clicks (or organic_installs).
Paid channels
Apple Search Ads needs nothing in the spec: it is matched to the app in Appeeky, or read withsearch-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:
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.
