adapty 0.3.0-beta.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +134 -5
  2. package/dist/commands/asa/ad-groups/create.d.ts +22 -0
  3. package/dist/commands/asa/ad-groups/create.js +54 -0
  4. package/dist/commands/asa/ad-groups/get.d.ts +11 -0
  5. package/dist/commands/asa/ad-groups/get.js +21 -0
  6. package/dist/commands/asa/ad-groups/list.d.ts +18 -0
  7. package/dist/commands/asa/ad-groups/list.js +24 -0
  8. package/dist/commands/asa/ad-groups/update.d.ts +23 -0
  9. package/dist/commands/asa/ad-groups/update.js +62 -0
  10. package/dist/commands/asa/ads/create.d.ts +16 -0
  11. package/dist/commands/asa/ads/create.js +41 -0
  12. package/dist/commands/asa/ads/get.d.ts +11 -0
  13. package/dist/commands/asa/ads/get.js +21 -0
  14. package/dist/commands/asa/ads/list.d.ts +18 -0
  15. package/dist/commands/asa/ads/list.js +24 -0
  16. package/dist/commands/asa/ads/update.d.ts +17 -0
  17. package/dist/commands/asa/ads/update.js +44 -0
  18. package/dist/commands/asa/apps/list.d.ts +13 -0
  19. package/dist/commands/asa/apps/list.js +18 -0
  20. package/dist/commands/asa/automations/create.d.ts +16 -0
  21. package/dist/commands/asa/automations/create.js +60 -0
  22. package/dist/commands/asa/automations/get.d.ts +11 -0
  23. package/dist/commands/asa/automations/get.js +21 -0
  24. package/dist/commands/asa/automations/list.d.ts +13 -0
  25. package/dist/commands/asa/automations/list.js +18 -0
  26. package/dist/commands/asa/automations/run.d.ts +16 -0
  27. package/dist/commands/asa/automations/run.js +41 -0
  28. package/dist/commands/asa/automations/runs.d.ts +16 -0
  29. package/dist/commands/asa/automations/runs.js +24 -0
  30. package/dist/commands/asa/automations/update.d.ts +21 -0
  31. package/dist/commands/asa/automations/update.js +73 -0
  32. package/dist/commands/asa/campaigns/create.d.ts +25 -0
  33. package/dist/commands/asa/campaigns/create.js +67 -0
  34. package/dist/commands/asa/campaigns/get.d.ts +11 -0
  35. package/dist/commands/asa/campaigns/get.js +21 -0
  36. package/dist/commands/asa/campaigns/list.d.ts +17 -0
  37. package/dist/commands/asa/campaigns/list.js +24 -0
  38. package/dist/commands/asa/campaigns/update.d.ts +23 -0
  39. package/dist/commands/asa/campaigns/update.js +66 -0
  40. package/dist/commands/asa/competitors/summary.d.ts +11 -0
  41. package/dist/commands/asa/competitors/summary.js +56 -0
  42. package/dist/commands/asa/connect.d.ts +12 -0
  43. package/dist/commands/asa/connect.js +39 -0
  44. package/dist/commands/asa/creatives/list.d.ts +15 -0
  45. package/dist/commands/asa/creatives/list.js +24 -0
  46. package/dist/commands/asa/keywords/add.d.ts +20 -0
  47. package/dist/commands/asa/keywords/add.js +73 -0
  48. package/dist/commands/asa/keywords/list.d.ts +19 -0
  49. package/dist/commands/asa/keywords/list.js +24 -0
  50. package/dist/commands/asa/keywords/update.d.ts +21 -0
  51. package/dist/commands/asa/keywords/update.js +64 -0
  52. package/dist/commands/asa/metrics/index.d.ts +21 -0
  53. package/dist/commands/asa/metrics/index.js +68 -0
  54. package/dist/commands/asa/metrics/overview.d.ts +15 -0
  55. package/dist/commands/asa/metrics/overview.js +51 -0
  56. package/dist/commands/asa/negative-keywords/add.d.ts +18 -0
  57. package/dist/commands/asa/negative-keywords/add.js +70 -0
  58. package/dist/commands/asa/negative-keywords/list.d.ts +19 -0
  59. package/dist/commands/asa/negative-keywords/list.js +29 -0
  60. package/dist/commands/asa/orgs/list.d.ts +13 -0
  61. package/dist/commands/asa/orgs/list.js +18 -0
  62. package/dist/commands/asa/product-pages/list.d.ts +15 -0
  63. package/dist/commands/asa/product-pages/list.js +24 -0
  64. package/dist/commands/asa/product-pages/sync.d.ts +13 -0
  65. package/dist/commands/asa/product-pages/sync.js +28 -0
  66. package/dist/commands/asa/search-terms/list.d.ts +20 -0
  67. package/dist/commands/asa/search-terms/list.js +25 -0
  68. package/dist/commands/asa/whoami.d.ts +8 -0
  69. package/dist/commands/asa/whoami.js +22 -0
  70. package/dist/lib/api-client.d.ts +15 -3
  71. package/dist/lib/api-client.js +49 -17
  72. package/dist/lib/asa-client.d.ts +16 -0
  73. package/dist/lib/asa-client.js +46 -0
  74. package/dist/lib/asa-confirm.d.ts +18 -0
  75. package/dist/lib/asa-confirm.js +41 -0
  76. package/dist/lib/asa-flags.d.ts +88 -0
  77. package/dist/lib/asa-flags.js +137 -0
  78. package/dist/lib/asa-schemas.d.ts +287 -0
  79. package/dist/lib/asa-schemas.js +1 -0
  80. package/dist/lib/errors.d.ts +25 -2
  81. package/dist/lib/errors.js +48 -7
  82. package/dist/lib/output.js +45 -15
  83. package/oclif.manifest.json +2940 -295
  84. package/package.json +40 -1
@@ -577,13 +577,13 @@
577
577
  "whoami.js"
578
578
  ]
579
579
  },
580
- "placements:create": {
580
+ "asa:connect": {
581
581
  "aliases": [],
582
582
  "args": {},
583
- "description": "Create a placement with a paywall",
583
+ "description": "Connect an Apple Search Ads account to this company",
584
584
  "examples": [
585
- "<%= config.bin %> placements create --app UUID --title \"Default\" --developer-id default --audiences '[{\"segment_ids\":[],\"paywall_id\":\"PAYWALL_UUID\",\"priority\":0}]'",
586
- "<%= config.bin %> placements create --app UUID --title \"Default\" --developer-id default --paywall-id PAYWALL_UUID"
585
+ "<%= config.bin %> asa connect",
586
+ "<%= config.bin %> asa connect --no-wait"
587
587
  ],
588
588
  "flags": {
589
589
  "json": {
@@ -593,94 +593,24 @@
593
593
  "allowNo": false,
594
594
  "type": "boolean"
595
595
  },
596
- "app": {
597
- "description": "App ID (UUID)",
598
- "name": "app",
599
- "required": true,
600
- "hasDynamicHelp": false,
601
- "multiple": false,
602
- "type": "option"
603
- },
604
- "audiences": {
605
- "description": "JSON array of audience entries: [{segment_ids, paywall_id, priority}]",
606
- "name": "audiences",
607
- "hasDynamicHelp": false,
608
- "multiple": false,
609
- "type": "option"
610
- },
611
- "developer-id": {
612
- "description": "Developer ID for the placement",
613
- "name": "developer-id",
614
- "required": true,
615
- "hasDynamicHelp": false,
616
- "multiple": false,
617
- "type": "option"
618
- },
619
- "paywall-id": {
620
- "description": "Paywall ID (UUID). DEPRECATED: use --audiences.",
621
- "name": "paywall-id",
596
+ "timeout": {
597
+ "description": "Seconds to wait for the browser step",
598
+ "name": "timeout",
599
+ "default": 300,
622
600
  "hasDynamicHelp": false,
623
601
  "multiple": false,
624
602
  "type": "option"
625
603
  },
626
- "title": {
627
- "description": "Placement title",
628
- "name": "title",
629
- "required": true,
630
- "hasDynamicHelp": false,
631
- "multiple": false,
632
- "type": "option"
633
- }
634
- },
635
- "hasDynamicHelp": false,
636
- "hiddenAliases": [],
637
- "id": "placements:create",
638
- "pluginAlias": "adapty",
639
- "pluginName": "adapty",
640
- "pluginType": "core",
641
- "strict": true,
642
- "enableJsonFlag": true,
643
- "isESM": true,
644
- "relativePath": [
645
- "dist",
646
- "commands",
647
- "placements",
648
- "create.js"
649
- ]
650
- },
651
- "placements:get": {
652
- "aliases": [],
653
- "args": {
654
- "placement_id": {
655
- "description": "Placement ID (UUID)",
656
- "name": "placement_id",
657
- "required": true
658
- }
659
- },
660
- "description": "Get placement details",
661
- "examples": [
662
- "<%= config.bin %> placements get --app UUID 550e8400-e29b-41d4-a716-446655440000"
663
- ],
664
- "flags": {
665
- "json": {
666
- "description": "Format output as json.",
667
- "helpGroup": "GLOBAL",
668
- "name": "json",
669
- "allowNo": false,
604
+ "wait": {
605
+ "description": "Wait until Apple Ads reports as connected",
606
+ "name": "wait",
607
+ "allowNo": true,
670
608
  "type": "boolean"
671
- },
672
- "app": {
673
- "description": "App ID (UUID)",
674
- "name": "app",
675
- "required": true,
676
- "hasDynamicHelp": false,
677
- "multiple": false,
678
- "type": "option"
679
609
  }
680
610
  },
681
611
  "hasDynamicHelp": false,
682
612
  "hiddenAliases": [],
683
- "id": "placements:get",
613
+ "id": "asa:connect",
684
614
  "pluginAlias": "adapty",
685
615
  "pluginName": "adapty",
686
616
  "pluginType": "core",
@@ -690,79 +620,16 @@
690
620
  "relativePath": [
691
621
  "dist",
692
622
  "commands",
693
- "placements",
694
- "get.js"
623
+ "asa",
624
+ "connect.js"
695
625
  ]
696
626
  },
697
- "placements:list": {
627
+ "asa:whoami": {
698
628
  "aliases": [],
699
629
  "args": {},
700
- "description": "List placements for an app",
701
- "examples": [
702
- "<%= config.bin %> placements list --app 550e8400-..."
703
- ],
704
- "flags": {
705
- "json": {
706
- "description": "Format output as json.",
707
- "helpGroup": "GLOBAL",
708
- "name": "json",
709
- "allowNo": false,
710
- "type": "boolean"
711
- },
712
- "app": {
713
- "description": "App ID (UUID)",
714
- "name": "app",
715
- "required": true,
716
- "hasDynamicHelp": false,
717
- "multiple": false,
718
- "type": "option"
719
- },
720
- "page": {
721
- "description": "Page number",
722
- "name": "page",
723
- "default": 1,
724
- "hasDynamicHelp": false,
725
- "multiple": false,
726
- "type": "option"
727
- },
728
- "page-size": {
729
- "description": "Items per page (max 100)",
730
- "name": "page-size",
731
- "default": 20,
732
- "hasDynamicHelp": false,
733
- "multiple": false,
734
- "type": "option"
735
- }
736
- },
737
- "hasDynamicHelp": false,
738
- "hiddenAliases": [],
739
- "id": "placements:list",
740
- "pluginAlias": "adapty",
741
- "pluginName": "adapty",
742
- "pluginType": "core",
743
- "strict": true,
744
- "enableJsonFlag": true,
745
- "isESM": true,
746
- "relativePath": [
747
- "dist",
748
- "commands",
749
- "placements",
750
- "list.js"
751
- ]
752
- },
753
- "placements:update": {
754
- "aliases": [],
755
- "args": {
756
- "placement_id": {
757
- "description": "Placement ID (UUID)",
758
- "name": "placement_id",
759
- "required": true
760
- }
761
- },
762
- "description": "Update a placement",
630
+ "description": "Show which company the token unlocks and whether Apple Ads is connected",
763
631
  "examples": [
764
- "<%= config.bin %> placements update --app UUID 550e8400-... --title \"Default\" --developer-id default --audiences '[{\"segment_ids\":[],\"paywall_id\":\"PAYWALL_UUID\",\"priority\":0}]'",
765
- "<%= config.bin %> placements update --app UUID 550e8400-... --title \"Default\" --developer-id default --paywall-id PAYWALL_UUID"
632
+ "<%= config.bin %> asa whoami"
766
633
  ],
767
634
  "flags": {
768
635
  "json": {
@@ -771,49 +638,11 @@
771
638
  "name": "json",
772
639
  "allowNo": false,
773
640
  "type": "boolean"
774
- },
775
- "app": {
776
- "description": "App ID (UUID)",
777
- "name": "app",
778
- "required": true,
779
- "hasDynamicHelp": false,
780
- "multiple": false,
781
- "type": "option"
782
- },
783
- "audiences": {
784
- "description": "JSON array of audience entries: [{segment_ids, paywall_id, priority}]",
785
- "name": "audiences",
786
- "hasDynamicHelp": false,
787
- "multiple": false,
788
- "type": "option"
789
- },
790
- "developer-id": {
791
- "description": "Developer ID for the placement",
792
- "name": "developer-id",
793
- "required": true,
794
- "hasDynamicHelp": false,
795
- "multiple": false,
796
- "type": "option"
797
- },
798
- "paywall-id": {
799
- "description": "Paywall ID (UUID). DEPRECATED: use --audiences.",
800
- "name": "paywall-id",
801
- "hasDynamicHelp": false,
802
- "multiple": false,
803
- "type": "option"
804
- },
805
- "title": {
806
- "description": "Placement title",
807
- "name": "title",
808
- "required": true,
809
- "hasDynamicHelp": false,
810
- "multiple": false,
811
- "type": "option"
812
641
  }
813
642
  },
814
643
  "hasDynamicHelp": false,
815
644
  "hiddenAliases": [],
816
- "id": "placements:update",
645
+ "id": "asa:whoami",
817
646
  "pluginAlias": "adapty",
818
647
  "pluginName": "adapty",
819
648
  "pluginType": "core",
@@ -823,8 +652,8 @@
823
652
  "relativePath": [
824
653
  "dist",
825
654
  "commands",
826
- "placements",
827
- "update.js"
655
+ "asa",
656
+ "whoami.js"
828
657
  ]
829
658
  },
830
659
  "paywalls:create": {
@@ -1093,12 +922,13 @@
1093
922
  "update.js"
1094
923
  ]
1095
924
  },
1096
- "products:create": {
925
+ "placements:create": {
1097
926
  "aliases": [],
1098
927
  "args": {},
1099
- "description": "Create a product with vendor products per platform",
928
+ "description": "Create a placement with a paywall",
1100
929
  "examples": [
1101
- "<%= config.bin %> products create --app UUID --title \"Monthly\" --access-level-id UUID --period monthly --ios-product-id com.example.monthly"
930
+ "<%= config.bin %> placements create --app UUID --title \"Default\" --developer-id default --audiences '[{\"segment_ids\":[],\"paywall_id\":\"PAYWALL_UUID\",\"priority\":0}]'",
931
+ "<%= config.bin %> placements create --app UUID --title \"Default\" --developer-id default --paywall-id PAYWALL_UUID"
1102
932
  ],
1103
933
  "flags": {
1104
934
  "json": {
@@ -1116,81 +946,31 @@
1116
946
  "multiple": false,
1117
947
  "type": "option"
1118
948
  },
1119
- "access-level-id": {
1120
- "description": "Access level ID (UUID)",
1121
- "name": "access-level-id",
1122
- "required": true,
1123
- "hasDynamicHelp": false,
1124
- "multiple": false,
1125
- "type": "option"
1126
- },
1127
- "android-base-plan-id": {
1128
- "description": "Android base plan ID",
1129
- "helpGroup": "STORE BINDINGS",
1130
- "name": "android-base-plan-id",
1131
- "hasDynamicHelp": false,
1132
- "multiple": false,
1133
- "type": "option"
1134
- },
1135
- "android-product-id": {
1136
- "description": "Android product ID",
1137
- "helpGroup": "STORE BINDINGS",
1138
- "name": "android-product-id",
1139
- "hasDynamicHelp": false,
1140
- "multiple": false,
1141
- "type": "option"
1142
- },
1143
- "ios-product-id": {
1144
- "description": "iOS product ID",
1145
- "helpGroup": "STORE BINDINGS",
1146
- "name": "ios-product-id",
949
+ "audiences": {
950
+ "description": "JSON array of audience entries: [{segment_ids, paywall_id, priority}]",
951
+ "name": "audiences",
1147
952
  "hasDynamicHelp": false,
1148
953
  "multiple": false,
1149
954
  "type": "option"
1150
955
  },
1151
- "paddle-price-id": {
1152
- "description": "Paddle price ID (requires --paddle-product-id)",
1153
- "helpGroup": "STORE BINDINGS",
1154
- "name": "paddle-price-id",
956
+ "developer-id": {
957
+ "description": "Developer ID for the placement",
958
+ "name": "developer-id",
959
+ "required": true,
1155
960
  "hasDynamicHelp": false,
1156
961
  "multiple": false,
1157
962
  "type": "option"
1158
963
  },
1159
- "paddle-product-id": {
1160
- "description": "Paddle product ID (requires --paddle-price-id)",
1161
- "helpGroup": "STORE BINDINGS",
1162
- "name": "paddle-product-id",
964
+ "paywall-id": {
965
+ "description": "Paywall ID (UUID). DEPRECATED: use --audiences.",
966
+ "name": "paywall-id",
1163
967
  "hasDynamicHelp": false,
1164
968
  "multiple": false,
1165
969
  "type": "option"
1166
970
  },
1167
- "period": {
1168
- "description": "Subscription period (weekly, monthly, two_months, trimonthly, semiannual, annual, lifetime)",
1169
- "name": "period",
1170
- "required": true,
1171
- "hasDynamicHelp": false,
1172
- "multiple": false,
1173
- "type": "option"
1174
- },
1175
- "stripe-price-id": {
1176
- "description": "Stripe price ID (requires --stripe-product-id)",
1177
- "helpGroup": "STORE BINDINGS",
1178
- "name": "stripe-price-id",
1179
- "hasDynamicHelp": false,
1180
- "multiple": false,
1181
- "type": "option"
1182
- },
1183
- "stripe-product-id": {
1184
- "description": "Stripe product ID (requires --stripe-price-id)",
1185
- "helpGroup": "STORE BINDINGS",
1186
- "name": "stripe-product-id",
1187
- "hasDynamicHelp": false,
1188
- "multiple": false,
1189
- "type": "option"
1190
- },
1191
- "title": {
1192
- "description": "Product title",
1193
- "name": "title",
971
+ "title": {
972
+ "description": "Placement title",
973
+ "name": "title",
1194
974
  "required": true,
1195
975
  "hasDynamicHelp": false,
1196
976
  "multiple": false,
@@ -1199,7 +979,7 @@
1199
979
  },
1200
980
  "hasDynamicHelp": false,
1201
981
  "hiddenAliases": [],
1202
- "id": "products:create",
982
+ "id": "placements:create",
1203
983
  "pluginAlias": "adapty",
1204
984
  "pluginName": "adapty",
1205
985
  "pluginType": "core",
@@ -1209,22 +989,22 @@
1209
989
  "relativePath": [
1210
990
  "dist",
1211
991
  "commands",
1212
- "products",
992
+ "placements",
1213
993
  "create.js"
1214
994
  ]
1215
995
  },
1216
- "products:get": {
996
+ "placements:get": {
1217
997
  "aliases": [],
1218
998
  "args": {
1219
- "product_id": {
1220
- "description": "Product ID (UUID)",
1221
- "name": "product_id",
999
+ "placement_id": {
1000
+ "description": "Placement ID (UUID)",
1001
+ "name": "placement_id",
1222
1002
  "required": true
1223
1003
  }
1224
1004
  },
1225
- "description": "Get product details",
1005
+ "description": "Get placement details",
1226
1006
  "examples": [
1227
- "<%= config.bin %> products get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1007
+ "<%= config.bin %> placements get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1228
1008
  ],
1229
1009
  "flags": {
1230
1010
  "json": {
@@ -1245,7 +1025,7 @@
1245
1025
  },
1246
1026
  "hasDynamicHelp": false,
1247
1027
  "hiddenAliases": [],
1248
- "id": "products:get",
1028
+ "id": "placements:get",
1249
1029
  "pluginAlias": "adapty",
1250
1030
  "pluginName": "adapty",
1251
1031
  "pluginType": "core",
@@ -1255,16 +1035,16 @@
1255
1035
  "relativePath": [
1256
1036
  "dist",
1257
1037
  "commands",
1258
- "products",
1038
+ "placements",
1259
1039
  "get.js"
1260
1040
  ]
1261
1041
  },
1262
- "products:list": {
1042
+ "placements:list": {
1263
1043
  "aliases": [],
1264
1044
  "args": {},
1265
- "description": "List products for an app",
1045
+ "description": "List placements for an app",
1266
1046
  "examples": [
1267
- "<%= config.bin %> products list --app 550e8400-..."
1047
+ "<%= config.bin %> placements list --app 550e8400-..."
1268
1048
  ],
1269
1049
  "flags": {
1270
1050
  "json": {
@@ -1301,7 +1081,7 @@
1301
1081
  },
1302
1082
  "hasDynamicHelp": false,
1303
1083
  "hiddenAliases": [],
1304
- "id": "products:list",
1084
+ "id": "placements:list",
1305
1085
  "pluginAlias": "adapty",
1306
1086
  "pluginName": "adapty",
1307
1087
  "pluginType": "core",
@@ -1311,22 +1091,93 @@
1311
1091
  "relativePath": [
1312
1092
  "dist",
1313
1093
  "commands",
1314
- "products",
1094
+ "placements",
1315
1095
  "list.js"
1316
1096
  ]
1317
1097
  },
1318
- "products:update": {
1098
+ "placements:update": {
1319
1099
  "aliases": [],
1320
1100
  "args": {
1321
- "product_id": {
1322
- "description": "Product ID (UUID)",
1323
- "name": "product_id",
1101
+ "placement_id": {
1102
+ "description": "Placement ID (UUID)",
1103
+ "name": "placement_id",
1324
1104
  "required": true
1325
1105
  }
1326
1106
  },
1327
- "description": "Update a product (title and access level only)",
1107
+ "description": "Update a placement",
1328
1108
  "examples": [
1329
- "<%= config.bin %> products update --app UUID 550e8400-... --title \"Monthly\" --access-level-id UUID"
1109
+ "<%= config.bin %> placements update --app UUID 550e8400-... --title \"Default\" --developer-id default --audiences '[{\"segment_ids\":[],\"paywall_id\":\"PAYWALL_UUID\",\"priority\":0}]'",
1110
+ "<%= config.bin %> placements update --app UUID 550e8400-... --title \"Default\" --developer-id default --paywall-id PAYWALL_UUID"
1111
+ ],
1112
+ "flags": {
1113
+ "json": {
1114
+ "description": "Format output as json.",
1115
+ "helpGroup": "GLOBAL",
1116
+ "name": "json",
1117
+ "allowNo": false,
1118
+ "type": "boolean"
1119
+ },
1120
+ "app": {
1121
+ "description": "App ID (UUID)",
1122
+ "name": "app",
1123
+ "required": true,
1124
+ "hasDynamicHelp": false,
1125
+ "multiple": false,
1126
+ "type": "option"
1127
+ },
1128
+ "audiences": {
1129
+ "description": "JSON array of audience entries: [{segment_ids, paywall_id, priority}]",
1130
+ "name": "audiences",
1131
+ "hasDynamicHelp": false,
1132
+ "multiple": false,
1133
+ "type": "option"
1134
+ },
1135
+ "developer-id": {
1136
+ "description": "Developer ID for the placement",
1137
+ "name": "developer-id",
1138
+ "required": true,
1139
+ "hasDynamicHelp": false,
1140
+ "multiple": false,
1141
+ "type": "option"
1142
+ },
1143
+ "paywall-id": {
1144
+ "description": "Paywall ID (UUID). DEPRECATED: use --audiences.",
1145
+ "name": "paywall-id",
1146
+ "hasDynamicHelp": false,
1147
+ "multiple": false,
1148
+ "type": "option"
1149
+ },
1150
+ "title": {
1151
+ "description": "Placement title",
1152
+ "name": "title",
1153
+ "required": true,
1154
+ "hasDynamicHelp": false,
1155
+ "multiple": false,
1156
+ "type": "option"
1157
+ }
1158
+ },
1159
+ "hasDynamicHelp": false,
1160
+ "hiddenAliases": [],
1161
+ "id": "placements:update",
1162
+ "pluginAlias": "adapty",
1163
+ "pluginName": "adapty",
1164
+ "pluginType": "core",
1165
+ "strict": true,
1166
+ "enableJsonFlag": true,
1167
+ "isESM": true,
1168
+ "relativePath": [
1169
+ "dist",
1170
+ "commands",
1171
+ "placements",
1172
+ "update.js"
1173
+ ]
1174
+ },
1175
+ "products:create": {
1176
+ "aliases": [],
1177
+ "args": {},
1178
+ "description": "Create a product with vendor products per platform",
1179
+ "examples": [
1180
+ "<%= config.bin %> products create --app UUID --title \"Monthly\" --access-level-id UUID --period monthly --ios-product-id com.example.monthly"
1330
1181
  ],
1331
1182
  "flags": {
1332
1183
  "json": {
@@ -1352,6 +1203,70 @@
1352
1203
  "multiple": false,
1353
1204
  "type": "option"
1354
1205
  },
1206
+ "android-base-plan-id": {
1207
+ "description": "Android base plan ID",
1208
+ "helpGroup": "STORE BINDINGS",
1209
+ "name": "android-base-plan-id",
1210
+ "hasDynamicHelp": false,
1211
+ "multiple": false,
1212
+ "type": "option"
1213
+ },
1214
+ "android-product-id": {
1215
+ "description": "Android product ID",
1216
+ "helpGroup": "STORE BINDINGS",
1217
+ "name": "android-product-id",
1218
+ "hasDynamicHelp": false,
1219
+ "multiple": false,
1220
+ "type": "option"
1221
+ },
1222
+ "ios-product-id": {
1223
+ "description": "iOS product ID",
1224
+ "helpGroup": "STORE BINDINGS",
1225
+ "name": "ios-product-id",
1226
+ "hasDynamicHelp": false,
1227
+ "multiple": false,
1228
+ "type": "option"
1229
+ },
1230
+ "paddle-price-id": {
1231
+ "description": "Paddle price ID (requires --paddle-product-id)",
1232
+ "helpGroup": "STORE BINDINGS",
1233
+ "name": "paddle-price-id",
1234
+ "hasDynamicHelp": false,
1235
+ "multiple": false,
1236
+ "type": "option"
1237
+ },
1238
+ "paddle-product-id": {
1239
+ "description": "Paddle product ID (requires --paddle-price-id)",
1240
+ "helpGroup": "STORE BINDINGS",
1241
+ "name": "paddle-product-id",
1242
+ "hasDynamicHelp": false,
1243
+ "multiple": false,
1244
+ "type": "option"
1245
+ },
1246
+ "period": {
1247
+ "description": "Subscription period (weekly, monthly, two_months, trimonthly, semiannual, annual, lifetime)",
1248
+ "name": "period",
1249
+ "required": true,
1250
+ "hasDynamicHelp": false,
1251
+ "multiple": false,
1252
+ "type": "option"
1253
+ },
1254
+ "stripe-price-id": {
1255
+ "description": "Stripe price ID (requires --stripe-product-id)",
1256
+ "helpGroup": "STORE BINDINGS",
1257
+ "name": "stripe-price-id",
1258
+ "hasDynamicHelp": false,
1259
+ "multiple": false,
1260
+ "type": "option"
1261
+ },
1262
+ "stripe-product-id": {
1263
+ "description": "Stripe product ID (requires --stripe-price-id)",
1264
+ "helpGroup": "STORE BINDINGS",
1265
+ "name": "stripe-product-id",
1266
+ "hasDynamicHelp": false,
1267
+ "multiple": false,
1268
+ "type": "option"
1269
+ },
1355
1270
  "title": {
1356
1271
  "description": "Product title",
1357
1272
  "name": "title",
@@ -1363,7 +1278,7 @@
1363
1278
  },
1364
1279
  "hasDynamicHelp": false,
1365
1280
  "hiddenAliases": [],
1366
- "id": "products:update",
1281
+ "id": "products:create",
1367
1282
  "pluginAlias": "adapty",
1368
1283
  "pluginName": "adapty",
1369
1284
  "pluginType": "core",
@@ -1374,21 +1289,21 @@
1374
1289
  "dist",
1375
1290
  "commands",
1376
1291
  "products",
1377
- "update.js"
1292
+ "create.js"
1378
1293
  ]
1379
1294
  },
1380
- "segments:get": {
1295
+ "products:get": {
1381
1296
  "aliases": [],
1382
1297
  "args": {
1383
- "segment_id": {
1384
- "description": "Segment ID (UUID)",
1385
- "name": "segment_id",
1298
+ "product_id": {
1299
+ "description": "Product ID (UUID)",
1300
+ "name": "product_id",
1386
1301
  "required": true
1387
1302
  }
1388
1303
  },
1389
- "description": "Get segment details",
1304
+ "description": "Get product details",
1390
1305
  "examples": [
1391
- "<%= config.bin %> segments get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1306
+ "<%= config.bin %> products get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1392
1307
  ],
1393
1308
  "flags": {
1394
1309
  "json": {
@@ -1409,7 +1324,7 @@
1409
1324
  },
1410
1325
  "hasDynamicHelp": false,
1411
1326
  "hiddenAliases": [],
1412
- "id": "segments:get",
1327
+ "id": "products:get",
1413
1328
  "pluginAlias": "adapty",
1414
1329
  "pluginName": "adapty",
1415
1330
  "pluginType": "core",
@@ -1419,16 +1334,16 @@
1419
1334
  "relativePath": [
1420
1335
  "dist",
1421
1336
  "commands",
1422
- "segments",
1337
+ "products",
1423
1338
  "get.js"
1424
1339
  ]
1425
1340
  },
1426
- "segments:list": {
1341
+ "products:list": {
1427
1342
  "aliases": [],
1428
1343
  "args": {},
1429
- "description": "List segments for an app",
1344
+ "description": "List products for an app",
1430
1345
  "examples": [
1431
- "<%= config.bin %> segments list --app 550e8400-..."
1346
+ "<%= config.bin %> products list --app 550e8400-..."
1432
1347
  ],
1433
1348
  "flags": {
1434
1349
  "json": {
@@ -1465,7 +1380,7 @@
1465
1380
  },
1466
1381
  "hasDynamicHelp": false,
1467
1382
  "hiddenAliases": [],
1468
- "id": "segments:list",
1383
+ "id": "products:list",
1469
1384
  "pluginAlias": "adapty",
1470
1385
  "pluginName": "adapty",
1471
1386
  "pluginType": "core",
@@ -1475,10 +1390,2740 @@
1475
1390
  "relativePath": [
1476
1391
  "dist",
1477
1392
  "commands",
1478
- "segments",
1393
+ "products",
1479
1394
  "list.js"
1480
1395
  ]
1396
+ },
1397
+ "products:update": {
1398
+ "aliases": [],
1399
+ "args": {
1400
+ "product_id": {
1401
+ "description": "Product ID (UUID)",
1402
+ "name": "product_id",
1403
+ "required": true
1404
+ }
1405
+ },
1406
+ "description": "Update a product (title and access level only)",
1407
+ "examples": [
1408
+ "<%= config.bin %> products update --app UUID 550e8400-... --title \"Monthly\" --access-level-id UUID"
1409
+ ],
1410
+ "flags": {
1411
+ "json": {
1412
+ "description": "Format output as json.",
1413
+ "helpGroup": "GLOBAL",
1414
+ "name": "json",
1415
+ "allowNo": false,
1416
+ "type": "boolean"
1417
+ },
1418
+ "app": {
1419
+ "description": "App ID (UUID)",
1420
+ "name": "app",
1421
+ "required": true,
1422
+ "hasDynamicHelp": false,
1423
+ "multiple": false,
1424
+ "type": "option"
1425
+ },
1426
+ "access-level-id": {
1427
+ "description": "Access level ID (UUID)",
1428
+ "name": "access-level-id",
1429
+ "required": true,
1430
+ "hasDynamicHelp": false,
1431
+ "multiple": false,
1432
+ "type": "option"
1433
+ },
1434
+ "title": {
1435
+ "description": "Product title",
1436
+ "name": "title",
1437
+ "required": true,
1438
+ "hasDynamicHelp": false,
1439
+ "multiple": false,
1440
+ "type": "option"
1441
+ }
1442
+ },
1443
+ "hasDynamicHelp": false,
1444
+ "hiddenAliases": [],
1445
+ "id": "products:update",
1446
+ "pluginAlias": "adapty",
1447
+ "pluginName": "adapty",
1448
+ "pluginType": "core",
1449
+ "strict": true,
1450
+ "enableJsonFlag": true,
1451
+ "isESM": true,
1452
+ "relativePath": [
1453
+ "dist",
1454
+ "commands",
1455
+ "products",
1456
+ "update.js"
1457
+ ]
1458
+ },
1459
+ "segments:get": {
1460
+ "aliases": [],
1461
+ "args": {
1462
+ "segment_id": {
1463
+ "description": "Segment ID (UUID)",
1464
+ "name": "segment_id",
1465
+ "required": true
1466
+ }
1467
+ },
1468
+ "description": "Get segment details",
1469
+ "examples": [
1470
+ "<%= config.bin %> segments get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1471
+ ],
1472
+ "flags": {
1473
+ "json": {
1474
+ "description": "Format output as json.",
1475
+ "helpGroup": "GLOBAL",
1476
+ "name": "json",
1477
+ "allowNo": false,
1478
+ "type": "boolean"
1479
+ },
1480
+ "app": {
1481
+ "description": "App ID (UUID)",
1482
+ "name": "app",
1483
+ "required": true,
1484
+ "hasDynamicHelp": false,
1485
+ "multiple": false,
1486
+ "type": "option"
1487
+ }
1488
+ },
1489
+ "hasDynamicHelp": false,
1490
+ "hiddenAliases": [],
1491
+ "id": "segments:get",
1492
+ "pluginAlias": "adapty",
1493
+ "pluginName": "adapty",
1494
+ "pluginType": "core",
1495
+ "strict": true,
1496
+ "enableJsonFlag": true,
1497
+ "isESM": true,
1498
+ "relativePath": [
1499
+ "dist",
1500
+ "commands",
1501
+ "segments",
1502
+ "get.js"
1503
+ ]
1504
+ },
1505
+ "segments:list": {
1506
+ "aliases": [],
1507
+ "args": {},
1508
+ "description": "List segments for an app",
1509
+ "examples": [
1510
+ "<%= config.bin %> segments list --app 550e8400-..."
1511
+ ],
1512
+ "flags": {
1513
+ "json": {
1514
+ "description": "Format output as json.",
1515
+ "helpGroup": "GLOBAL",
1516
+ "name": "json",
1517
+ "allowNo": false,
1518
+ "type": "boolean"
1519
+ },
1520
+ "app": {
1521
+ "description": "App ID (UUID)",
1522
+ "name": "app",
1523
+ "required": true,
1524
+ "hasDynamicHelp": false,
1525
+ "multiple": false,
1526
+ "type": "option"
1527
+ },
1528
+ "page": {
1529
+ "description": "Page number",
1530
+ "name": "page",
1531
+ "default": 1,
1532
+ "hasDynamicHelp": false,
1533
+ "multiple": false,
1534
+ "type": "option"
1535
+ },
1536
+ "page-size": {
1537
+ "description": "Items per page (max 100)",
1538
+ "name": "page-size",
1539
+ "default": 20,
1540
+ "hasDynamicHelp": false,
1541
+ "multiple": false,
1542
+ "type": "option"
1543
+ }
1544
+ },
1545
+ "hasDynamicHelp": false,
1546
+ "hiddenAliases": [],
1547
+ "id": "segments:list",
1548
+ "pluginAlias": "adapty",
1549
+ "pluginName": "adapty",
1550
+ "pluginType": "core",
1551
+ "strict": true,
1552
+ "enableJsonFlag": true,
1553
+ "isESM": true,
1554
+ "relativePath": [
1555
+ "dist",
1556
+ "commands",
1557
+ "segments",
1558
+ "list.js"
1559
+ ]
1560
+ },
1561
+ "asa:ad-groups:create": {
1562
+ "aliases": [],
1563
+ "args": {},
1564
+ "description": "Create an ad group inside a campaign",
1565
+ "examples": [
1566
+ "<%= config.bin %> asa ad-groups create --campaign UUID --name \"Brand terms\" --default-bid 1.20",
1567
+ "<%= config.bin %> asa ad-groups create --campaign UUID --name \"Brand terms\" --default-bid 1.20 --start-time 2026-09-01 --pricing-model CPM"
1568
+ ],
1569
+ "flags": {
1570
+ "json": {
1571
+ "description": "Format output as json.",
1572
+ "helpGroup": "GLOBAL",
1573
+ "name": "json",
1574
+ "allowNo": false,
1575
+ "type": "boolean"
1576
+ },
1577
+ "currency": {
1578
+ "description": "Currency code for the amounts in this call",
1579
+ "name": "currency",
1580
+ "default": "USD",
1581
+ "hasDynamicHelp": false,
1582
+ "multiple": false,
1583
+ "type": "option"
1584
+ },
1585
+ "end-time": {
1586
+ "description": "Schedule end (YYYY-MM-DD)",
1587
+ "name": "end-time",
1588
+ "hasDynamicHelp": false,
1589
+ "multiple": false,
1590
+ "type": "option"
1591
+ },
1592
+ "start-time": {
1593
+ "description": "Schedule start (YYYY-MM-DD), defaults to today",
1594
+ "name": "start-time",
1595
+ "hasDynamicHelp": false,
1596
+ "multiple": false,
1597
+ "type": "option"
1598
+ },
1599
+ "pricing-model": {
1600
+ "description": "Pricing model; Apple requires one on every ad group",
1601
+ "name": "pricing-model",
1602
+ "default": "CPC",
1603
+ "hasDynamicHelp": false,
1604
+ "multiple": false,
1605
+ "options": [
1606
+ "CPC",
1607
+ "CPM"
1608
+ ],
1609
+ "type": "option"
1610
+ },
1611
+ "yes": {
1612
+ "char": "y",
1613
+ "description": "Apply without asking; required when the output is piped or --json is used",
1614
+ "name": "yes",
1615
+ "allowNo": false,
1616
+ "type": "boolean"
1617
+ },
1618
+ "idempotency-key": {
1619
+ "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
1620
+ "name": "idempotency-key",
1621
+ "hasDynamicHelp": false,
1622
+ "multiple": false,
1623
+ "type": "option"
1624
+ },
1625
+ "automated-keywords": {
1626
+ "description": "Let Apple add keywords automatically",
1627
+ "name": "automated-keywords",
1628
+ "allowNo": true,
1629
+ "type": "boolean"
1630
+ },
1631
+ "campaign": {
1632
+ "description": "Campaign ID (UUID)",
1633
+ "name": "campaign",
1634
+ "required": true,
1635
+ "hasDynamicHelp": false,
1636
+ "multiple": false,
1637
+ "type": "option"
1638
+ },
1639
+ "cpa-goal": {
1640
+ "description": "CPA goal (amount, e.g. 50 or 12.50)",
1641
+ "name": "cpa-goal",
1642
+ "hasDynamicHelp": false,
1643
+ "multiple": false,
1644
+ "type": "option"
1645
+ },
1646
+ "default-bid": {
1647
+ "description": "Default bid (amount, e.g. 50 or 12.50)",
1648
+ "name": "default-bid",
1649
+ "required": true,
1650
+ "hasDynamicHelp": false,
1651
+ "multiple": false,
1652
+ "type": "option"
1653
+ },
1654
+ "name": {
1655
+ "description": "Ad group name",
1656
+ "name": "name",
1657
+ "required": true,
1658
+ "hasDynamicHelp": false,
1659
+ "multiple": false,
1660
+ "type": "option"
1661
+ },
1662
+ "status": {
1663
+ "description": "Initial status",
1664
+ "name": "status",
1665
+ "hasDynamicHelp": false,
1666
+ "multiple": false,
1667
+ "options": [
1668
+ "ENABLED",
1669
+ "PAUSED"
1670
+ ],
1671
+ "type": "option"
1672
+ }
1673
+ },
1674
+ "hasDynamicHelp": false,
1675
+ "hiddenAliases": [],
1676
+ "id": "asa:ad-groups:create",
1677
+ "pluginAlias": "adapty",
1678
+ "pluginName": "adapty",
1679
+ "pluginType": "core",
1680
+ "strict": true,
1681
+ "enableJsonFlag": true,
1682
+ "isESM": true,
1683
+ "relativePath": [
1684
+ "dist",
1685
+ "commands",
1686
+ "asa",
1687
+ "ad-groups",
1688
+ "create.js"
1689
+ ]
1690
+ },
1691
+ "asa:ad-groups:get": {
1692
+ "aliases": [],
1693
+ "args": {
1694
+ "ad_group_id": {
1695
+ "description": "Ad group ID (UUID)",
1696
+ "name": "ad_group_id",
1697
+ "required": true
1698
+ }
1699
+ },
1700
+ "description": "Show one ad group; read numbers with asa metrics",
1701
+ "examples": [
1702
+ "<%= config.bin %> asa ad-groups get 550e8400-e29b-41d4-a716-446655440000"
1703
+ ],
1704
+ "flags": {
1705
+ "json": {
1706
+ "description": "Format output as json.",
1707
+ "helpGroup": "GLOBAL",
1708
+ "name": "json",
1709
+ "allowNo": false,
1710
+ "type": "boolean"
1711
+ }
1712
+ },
1713
+ "hasDynamicHelp": false,
1714
+ "hiddenAliases": [],
1715
+ "id": "asa:ad-groups:get",
1716
+ "pluginAlias": "adapty",
1717
+ "pluginName": "adapty",
1718
+ "pluginType": "core",
1719
+ "strict": true,
1720
+ "enableJsonFlag": true,
1721
+ "isESM": true,
1722
+ "relativePath": [
1723
+ "dist",
1724
+ "commands",
1725
+ "asa",
1726
+ "ad-groups",
1727
+ "get.js"
1728
+ ]
1729
+ },
1730
+ "asa:ad-groups:list": {
1731
+ "aliases": [],
1732
+ "args": {},
1733
+ "description": "List ad groups; read numbers with asa metrics",
1734
+ "examples": [
1735
+ "<%= config.bin %> asa ad-groups list",
1736
+ "<%= config.bin %> asa ad-groups list --campaign CAMPAIGN_UUID"
1737
+ ],
1738
+ "flags": {
1739
+ "json": {
1740
+ "description": "Format output as json.",
1741
+ "helpGroup": "GLOBAL",
1742
+ "name": "json",
1743
+ "allowNo": false,
1744
+ "type": "boolean"
1745
+ },
1746
+ "page": {
1747
+ "description": "Page number",
1748
+ "name": "page",
1749
+ "default": 1,
1750
+ "hasDynamicHelp": false,
1751
+ "multiple": false,
1752
+ "type": "option"
1753
+ },
1754
+ "page-size": {
1755
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
1756
+ "name": "page-size",
1757
+ "default": 100,
1758
+ "hasDynamicHelp": false,
1759
+ "multiple": false,
1760
+ "type": "option"
1761
+ },
1762
+ "app": {
1763
+ "description": "Keep only rows in this app; repeatable",
1764
+ "name": "app",
1765
+ "hasDynamicHelp": false,
1766
+ "multiple": true,
1767
+ "type": "option"
1768
+ },
1769
+ "campaign-group": {
1770
+ "description": "Keep only rows in this campaign group; repeatable",
1771
+ "name": "campaign-group",
1772
+ "hasDynamicHelp": false,
1773
+ "multiple": true,
1774
+ "type": "option"
1775
+ },
1776
+ "search": {
1777
+ "description": "Case-insensitive substring match on the name",
1778
+ "name": "search",
1779
+ "hasDynamicHelp": false,
1780
+ "multiple": false,
1781
+ "type": "option"
1782
+ },
1783
+ "campaign": {
1784
+ "description": "Keep only rows in this campaign; repeatable",
1785
+ "name": "campaign",
1786
+ "hasDynamicHelp": false,
1787
+ "multiple": true,
1788
+ "type": "option"
1789
+ },
1790
+ "status": {
1791
+ "description": "Keep only rows in this state",
1792
+ "name": "status",
1793
+ "hasDynamicHelp": false,
1794
+ "multiple": false,
1795
+ "options": [
1796
+ "ENABLED",
1797
+ "PAUSED"
1798
+ ],
1799
+ "type": "option"
1800
+ }
1801
+ },
1802
+ "hasDynamicHelp": false,
1803
+ "hiddenAliases": [],
1804
+ "id": "asa:ad-groups:list",
1805
+ "pluginAlias": "adapty",
1806
+ "pluginName": "adapty",
1807
+ "pluginType": "core",
1808
+ "strict": true,
1809
+ "enableJsonFlag": true,
1810
+ "isESM": true,
1811
+ "relativePath": [
1812
+ "dist",
1813
+ "commands",
1814
+ "asa",
1815
+ "ad-groups",
1816
+ "list.js"
1817
+ ]
1818
+ },
1819
+ "asa:ad-groups:update": {
1820
+ "aliases": [],
1821
+ "args": {
1822
+ "ad_group_id": {
1823
+ "description": "Ad group ID (UUID)",
1824
+ "name": "ad_group_id",
1825
+ "required": true
1826
+ }
1827
+ },
1828
+ "description": "Change an ad group: bid, CPA goal, status or schedule",
1829
+ "examples": [
1830
+ "<%= config.bin %> asa ad-groups update UUID --default-bid 1.50",
1831
+ "<%= config.bin %> asa ad-groups update UUID --status PAUSED"
1832
+ ],
1833
+ "flags": {
1834
+ "json": {
1835
+ "description": "Format output as json.",
1836
+ "helpGroup": "GLOBAL",
1837
+ "name": "json",
1838
+ "allowNo": false,
1839
+ "type": "boolean"
1840
+ },
1841
+ "currency": {
1842
+ "description": "Currency code for the amounts in this call",
1843
+ "name": "currency",
1844
+ "default": "USD",
1845
+ "hasDynamicHelp": false,
1846
+ "multiple": false,
1847
+ "type": "option"
1848
+ },
1849
+ "end-time": {
1850
+ "description": "Schedule end (YYYY-MM-DD)",
1851
+ "name": "end-time",
1852
+ "hasDynamicHelp": false,
1853
+ "multiple": false,
1854
+ "type": "option"
1855
+ },
1856
+ "start-time": {
1857
+ "description": "Schedule start (YYYY-MM-DD), defaults to today",
1858
+ "name": "start-time",
1859
+ "hasDynamicHelp": false,
1860
+ "multiple": false,
1861
+ "type": "option"
1862
+ },
1863
+ "yes": {
1864
+ "char": "y",
1865
+ "description": "Apply without asking; required when the output is piped or --json is used",
1866
+ "name": "yes",
1867
+ "allowNo": false,
1868
+ "type": "boolean"
1869
+ },
1870
+ "idempotency-key": {
1871
+ "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
1872
+ "name": "idempotency-key",
1873
+ "hasDynamicHelp": false,
1874
+ "multiple": false,
1875
+ "type": "option"
1876
+ },
1877
+ "automated-keywords": {
1878
+ "description": "Let Apple add keywords automatically",
1879
+ "name": "automated-keywords",
1880
+ "allowNo": true,
1881
+ "type": "boolean"
1882
+ },
1883
+ "cpa-goal": {
1884
+ "description": "CPA goal (amount, e.g. 50 or 12.50)",
1885
+ "name": "cpa-goal",
1886
+ "hasDynamicHelp": false,
1887
+ "multiple": false,
1888
+ "type": "option"
1889
+ },
1890
+ "default-bid": {
1891
+ "description": "Default bid (amount, e.g. 50 or 12.50)",
1892
+ "name": "default-bid",
1893
+ "hasDynamicHelp": false,
1894
+ "multiple": false,
1895
+ "type": "option"
1896
+ },
1897
+ "name": {
1898
+ "description": "Ad group name",
1899
+ "name": "name",
1900
+ "hasDynamicHelp": false,
1901
+ "multiple": false,
1902
+ "type": "option"
1903
+ },
1904
+ "status": {
1905
+ "description": "Ad group status",
1906
+ "name": "status",
1907
+ "hasDynamicHelp": false,
1908
+ "multiple": false,
1909
+ "options": [
1910
+ "ENABLED",
1911
+ "PAUSED"
1912
+ ],
1913
+ "type": "option"
1914
+ }
1915
+ },
1916
+ "hasDynamicHelp": false,
1917
+ "hiddenAliases": [],
1918
+ "id": "asa:ad-groups:update",
1919
+ "pluginAlias": "adapty",
1920
+ "pluginName": "adapty",
1921
+ "pluginType": "core",
1922
+ "strict": true,
1923
+ "enableJsonFlag": true,
1924
+ "isESM": true,
1925
+ "relativePath": [
1926
+ "dist",
1927
+ "commands",
1928
+ "asa",
1929
+ "ad-groups",
1930
+ "update.js"
1931
+ ]
1932
+ },
1933
+ "asa:ads:create": {
1934
+ "aliases": [],
1935
+ "args": {},
1936
+ "description": "Create an ad from a creative in an ad group",
1937
+ "examples": [
1938
+ "<%= config.bin %> asa ads create --ad-group UUID --creative-id 4321 --name \"Summer ad\""
1939
+ ],
1940
+ "flags": {
1941
+ "json": {
1942
+ "description": "Format output as json.",
1943
+ "helpGroup": "GLOBAL",
1944
+ "name": "json",
1945
+ "allowNo": false,
1946
+ "type": "boolean"
1947
+ },
1948
+ "yes": {
1949
+ "char": "y",
1950
+ "description": "Apply without asking; required when the output is piped or --json is used",
1951
+ "name": "yes",
1952
+ "allowNo": false,
1953
+ "type": "boolean"
1954
+ },
1955
+ "idempotency-key": {
1956
+ "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
1957
+ "name": "idempotency-key",
1958
+ "hasDynamicHelp": false,
1959
+ "multiple": false,
1960
+ "type": "option"
1961
+ },
1962
+ "ad-group": {
1963
+ "description": "Ad group ID (UUID) — the campaign is resolved from it",
1964
+ "name": "ad-group",
1965
+ "required": true,
1966
+ "hasDynamicHelp": false,
1967
+ "multiple": false,
1968
+ "type": "option"
1969
+ },
1970
+ "creative-id": {
1971
+ "description": "Apple creative ID from a product page or the default set",
1972
+ "name": "creative-id",
1973
+ "required": true,
1974
+ "hasDynamicHelp": false,
1975
+ "multiple": false,
1976
+ "type": "option"
1977
+ },
1978
+ "name": {
1979
+ "description": "Ad name",
1980
+ "name": "name",
1981
+ "required": true,
1982
+ "hasDynamicHelp": false,
1983
+ "multiple": false,
1984
+ "type": "option"
1985
+ },
1986
+ "status": {
1987
+ "description": "Initial status",
1988
+ "name": "status",
1989
+ "hasDynamicHelp": false,
1990
+ "multiple": false,
1991
+ "options": [
1992
+ "ENABLED",
1993
+ "PAUSED"
1994
+ ],
1995
+ "type": "option"
1996
+ }
1997
+ },
1998
+ "hasDynamicHelp": false,
1999
+ "hiddenAliases": [],
2000
+ "id": "asa:ads:create",
2001
+ "pluginAlias": "adapty",
2002
+ "pluginName": "adapty",
2003
+ "pluginType": "core",
2004
+ "strict": true,
2005
+ "enableJsonFlag": true,
2006
+ "isESM": true,
2007
+ "relativePath": [
2008
+ "dist",
2009
+ "commands",
2010
+ "asa",
2011
+ "ads",
2012
+ "create.js"
2013
+ ]
2014
+ },
2015
+ "asa:ads:get": {
2016
+ "aliases": [],
2017
+ "args": {
2018
+ "ad_id": {
2019
+ "description": "Ad ID (UUID)",
2020
+ "name": "ad_id",
2021
+ "required": true
2022
+ }
2023
+ },
2024
+ "description": "Show one ad and its serving state",
2025
+ "examples": [
2026
+ "<%= config.bin %> asa ads get 550e8400-e29b-41d4-a716-446655440000"
2027
+ ],
2028
+ "flags": {
2029
+ "json": {
2030
+ "description": "Format output as json.",
2031
+ "helpGroup": "GLOBAL",
2032
+ "name": "json",
2033
+ "allowNo": false,
2034
+ "type": "boolean"
2035
+ }
2036
+ },
2037
+ "hasDynamicHelp": false,
2038
+ "hiddenAliases": [],
2039
+ "id": "asa:ads:get",
2040
+ "pluginAlias": "adapty",
2041
+ "pluginName": "adapty",
2042
+ "pluginType": "core",
2043
+ "strict": true,
2044
+ "enableJsonFlag": true,
2045
+ "isESM": true,
2046
+ "relativePath": [
2047
+ "dist",
2048
+ "commands",
2049
+ "asa",
2050
+ "ads",
2051
+ "get.js"
2052
+ ]
2053
+ },
2054
+ "asa:ads:list": {
2055
+ "aliases": [],
2056
+ "args": {},
2057
+ "description": "List ads; serving_state_reasons explains why an enabled ad is not running",
2058
+ "examples": [
2059
+ "<%= config.bin %> asa ads list",
2060
+ "<%= config.bin %> asa ads list --ad-group AD_GROUP_UUID --status ENABLED"
2061
+ ],
2062
+ "flags": {
2063
+ "json": {
2064
+ "description": "Format output as json.",
2065
+ "helpGroup": "GLOBAL",
2066
+ "name": "json",
2067
+ "allowNo": false,
2068
+ "type": "boolean"
2069
+ },
2070
+ "page": {
2071
+ "description": "Page number",
2072
+ "name": "page",
2073
+ "default": 1,
2074
+ "hasDynamicHelp": false,
2075
+ "multiple": false,
2076
+ "type": "option"
2077
+ },
2078
+ "page-size": {
2079
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
2080
+ "name": "page-size",
2081
+ "default": 100,
2082
+ "hasDynamicHelp": false,
2083
+ "multiple": false,
2084
+ "type": "option"
2085
+ },
2086
+ "ad-group": {
2087
+ "description": "Keep only rows in this ad group; repeatable",
2088
+ "name": "ad-group",
2089
+ "hasDynamicHelp": false,
2090
+ "multiple": true,
2091
+ "type": "option"
2092
+ },
2093
+ "campaign": {
2094
+ "description": "Keep only rows in this campaign; repeatable",
2095
+ "name": "campaign",
2096
+ "hasDynamicHelp": false,
2097
+ "multiple": true,
2098
+ "type": "option"
2099
+ },
2100
+ "campaign-group": {
2101
+ "description": "Keep only rows in this campaign group; repeatable",
2102
+ "name": "campaign-group",
2103
+ "hasDynamicHelp": false,
2104
+ "multiple": true,
2105
+ "type": "option"
2106
+ },
2107
+ "search": {
2108
+ "description": "Case-insensitive substring match on the name",
2109
+ "name": "search",
2110
+ "hasDynamicHelp": false,
2111
+ "multiple": false,
2112
+ "type": "option"
2113
+ },
2114
+ "status": {
2115
+ "description": "Keep only rows in this state",
2116
+ "name": "status",
2117
+ "hasDynamicHelp": false,
2118
+ "multiple": false,
2119
+ "options": [
2120
+ "ENABLED",
2121
+ "PAUSED"
2122
+ ],
2123
+ "type": "option"
2124
+ }
2125
+ },
2126
+ "hasDynamicHelp": false,
2127
+ "hiddenAliases": [],
2128
+ "id": "asa:ads:list",
2129
+ "pluginAlias": "adapty",
2130
+ "pluginName": "adapty",
2131
+ "pluginType": "core",
2132
+ "strict": true,
2133
+ "enableJsonFlag": true,
2134
+ "isESM": true,
2135
+ "relativePath": [
2136
+ "dist",
2137
+ "commands",
2138
+ "asa",
2139
+ "ads",
2140
+ "list.js"
2141
+ ]
2142
+ },
2143
+ "asa:ads:update": {
2144
+ "aliases": [],
2145
+ "args": {
2146
+ "ad_id": {
2147
+ "description": "Ad ID (UUID)",
2148
+ "name": "ad_id",
2149
+ "required": true
2150
+ }
2151
+ },
2152
+ "description": "Rename an ad or pause it; the creative and ad group are fixed at creation",
2153
+ "examples": [
2154
+ "<%= config.bin %> asa ads update UUID --status PAUSED"
2155
+ ],
2156
+ "flags": {
2157
+ "json": {
2158
+ "description": "Format output as json.",
2159
+ "helpGroup": "GLOBAL",
2160
+ "name": "json",
2161
+ "allowNo": false,
2162
+ "type": "boolean"
2163
+ },
2164
+ "yes": {
2165
+ "char": "y",
2166
+ "description": "Apply without asking; required when the output is piped or --json is used",
2167
+ "name": "yes",
2168
+ "allowNo": false,
2169
+ "type": "boolean"
2170
+ },
2171
+ "idempotency-key": {
2172
+ "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
2173
+ "name": "idempotency-key",
2174
+ "hasDynamicHelp": false,
2175
+ "multiple": false,
2176
+ "type": "option"
2177
+ },
2178
+ "name": {
2179
+ "description": "Ad name",
2180
+ "name": "name",
2181
+ "hasDynamicHelp": false,
2182
+ "multiple": false,
2183
+ "type": "option"
2184
+ },
2185
+ "status": {
2186
+ "description": "Ad status",
2187
+ "name": "status",
2188
+ "hasDynamicHelp": false,
2189
+ "multiple": false,
2190
+ "options": [
2191
+ "ENABLED",
2192
+ "PAUSED"
2193
+ ],
2194
+ "type": "option"
2195
+ }
2196
+ },
2197
+ "hasDynamicHelp": false,
2198
+ "hiddenAliases": [],
2199
+ "id": "asa:ads:update",
2200
+ "pluginAlias": "adapty",
2201
+ "pluginName": "adapty",
2202
+ "pluginType": "core",
2203
+ "strict": true,
2204
+ "enableJsonFlag": true,
2205
+ "isESM": true,
2206
+ "relativePath": [
2207
+ "dist",
2208
+ "commands",
2209
+ "asa",
2210
+ "ads",
2211
+ "update.js"
2212
+ ]
2213
+ },
2214
+ "asa:apps:list": {
2215
+ "aliases": [],
2216
+ "args": {},
2217
+ "description": "List the apps promoted by this company in Apple Search Ads",
2218
+ "examples": [
2219
+ "<%= config.bin %> asa apps list",
2220
+ "<%= config.bin %> asa apps list --page 2 --page-size 50"
2221
+ ],
2222
+ "flags": {
2223
+ "json": {
2224
+ "description": "Format output as json.",
2225
+ "helpGroup": "GLOBAL",
2226
+ "name": "json",
2227
+ "allowNo": false,
2228
+ "type": "boolean"
2229
+ },
2230
+ "page": {
2231
+ "description": "Page number",
2232
+ "name": "page",
2233
+ "default": 1,
2234
+ "hasDynamicHelp": false,
2235
+ "multiple": false,
2236
+ "type": "option"
2237
+ },
2238
+ "page-size": {
2239
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
2240
+ "name": "page-size",
2241
+ "default": 100,
2242
+ "hasDynamicHelp": false,
2243
+ "multiple": false,
2244
+ "type": "option"
2245
+ }
2246
+ },
2247
+ "hasDynamicHelp": false,
2248
+ "hiddenAliases": [],
2249
+ "id": "asa:apps:list",
2250
+ "pluginAlias": "adapty",
2251
+ "pluginName": "adapty",
2252
+ "pluginType": "core",
2253
+ "strict": true,
2254
+ "enableJsonFlag": true,
2255
+ "isESM": true,
2256
+ "relativePath": [
2257
+ "dist",
2258
+ "commands",
2259
+ "asa",
2260
+ "apps",
2261
+ "list.js"
2262
+ ]
2263
+ },
2264
+ "asa:automations:create": {
2265
+ "aliases": [],
2266
+ "args": {},
2267
+ "description": "Create an automation rule from a JSON rule file",
2268
+ "examples": [
2269
+ "<%= config.bin %> asa automations create --file rule.json",
2270
+ "<%= config.bin %> asa automations create --file rule.json --run-now"
2271
+ ],
2272
+ "flags": {
2273
+ "json": {
2274
+ "description": "Format output as json.",
2275
+ "helpGroup": "GLOBAL",
2276
+ "name": "json",
2277
+ "allowNo": false,
2278
+ "type": "boolean"
2279
+ },
2280
+ "yes": {
2281
+ "char": "y",
2282
+ "description": "Apply without asking; required when the output is piped or --json is used",
2283
+ "name": "yes",
2284
+ "allowNo": false,
2285
+ "type": "boolean"
2286
+ },
2287
+ "idempotency-key": {
2288
+ "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
2289
+ "name": "idempotency-key",
2290
+ "hasDynamicHelp": false,
2291
+ "multiple": false,
2292
+ "type": "option"
2293
+ },
2294
+ "file": {
2295
+ "description": "JSON file with the rule body, or - to read stdin",
2296
+ "name": "file",
2297
+ "required": true,
2298
+ "hasDynamicHelp": false,
2299
+ "multiple": false,
2300
+ "type": "option"
2301
+ },
2302
+ "run-now": {
2303
+ "description": "Queue the first run right after the rule is stored",
2304
+ "name": "run-now",
2305
+ "allowNo": false,
2306
+ "type": "boolean"
2307
+ }
2308
+ },
2309
+ "hasDynamicHelp": false,
2310
+ "hiddenAliases": [],
2311
+ "id": "asa:automations:create",
2312
+ "pluginAlias": "adapty",
2313
+ "pluginName": "adapty",
2314
+ "pluginType": "core",
2315
+ "strict": true,
2316
+ "enableJsonFlag": true,
2317
+ "isESM": true,
2318
+ "relativePath": [
2319
+ "dist",
2320
+ "commands",
2321
+ "asa",
2322
+ "automations",
2323
+ "create.js"
2324
+ ]
2325
+ },
2326
+ "asa:automations:get": {
2327
+ "aliases": [],
2328
+ "args": {
2329
+ "automation_id": {
2330
+ "description": "Automation rule ID (UUID)",
2331
+ "name": "automation_id",
2332
+ "required": true
2333
+ }
2334
+ },
2335
+ "description": "Show one automation rule with its conditions and actions",
2336
+ "examples": [
2337
+ "<%= config.bin %> asa automations get 550e8400-e29b-41d4-a716-446655440000"
2338
+ ],
2339
+ "flags": {
2340
+ "json": {
2341
+ "description": "Format output as json.",
2342
+ "helpGroup": "GLOBAL",
2343
+ "name": "json",
2344
+ "allowNo": false,
2345
+ "type": "boolean"
2346
+ }
2347
+ },
2348
+ "hasDynamicHelp": false,
2349
+ "hiddenAliases": [],
2350
+ "id": "asa:automations:get",
2351
+ "pluginAlias": "adapty",
2352
+ "pluginName": "adapty",
2353
+ "pluginType": "core",
2354
+ "strict": true,
2355
+ "enableJsonFlag": true,
2356
+ "isESM": true,
2357
+ "relativePath": [
2358
+ "dist",
2359
+ "commands",
2360
+ "asa",
2361
+ "automations",
2362
+ "get.js"
2363
+ ]
2364
+ },
2365
+ "asa:automations:list": {
2366
+ "aliases": [],
2367
+ "args": {},
2368
+ "description": "List automation rules; status 1 is active, 0 is stopped",
2369
+ "examples": [
2370
+ "<%= config.bin %> asa automations list"
2371
+ ],
2372
+ "flags": {
2373
+ "json": {
2374
+ "description": "Format output as json.",
2375
+ "helpGroup": "GLOBAL",
2376
+ "name": "json",
2377
+ "allowNo": false,
2378
+ "type": "boolean"
2379
+ },
2380
+ "page": {
2381
+ "description": "Page number",
2382
+ "name": "page",
2383
+ "default": 1,
2384
+ "hasDynamicHelp": false,
2385
+ "multiple": false,
2386
+ "type": "option"
2387
+ },
2388
+ "page-size": {
2389
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
2390
+ "name": "page-size",
2391
+ "default": 100,
2392
+ "hasDynamicHelp": false,
2393
+ "multiple": false,
2394
+ "type": "option"
2395
+ }
2396
+ },
2397
+ "hasDynamicHelp": false,
2398
+ "hiddenAliases": [],
2399
+ "id": "asa:automations:list",
2400
+ "pluginAlias": "adapty",
2401
+ "pluginName": "adapty",
2402
+ "pluginType": "core",
2403
+ "strict": true,
2404
+ "enableJsonFlag": true,
2405
+ "isESM": true,
2406
+ "relativePath": [
2407
+ "dist",
2408
+ "commands",
2409
+ "asa",
2410
+ "automations",
2411
+ "list.js"
2412
+ ]
2413
+ },
2414
+ "asa:automations:run": {
2415
+ "aliases": [],
2416
+ "args": {
2417
+ "automation_id": {
2418
+ "description": "Automation rule ID (UUID)",
2419
+ "name": "automation_id",
2420
+ "required": true
2421
+ }
2422
+ },
2423
+ "description": "Run an automation rule now; the run is queued, not awaited",
2424
+ "examples": [
2425
+ "<%= config.bin %> asa automations run UUID",
2426
+ "<%= config.bin %> asa automations run UUID --dry-run"
2427
+ ],
2428
+ "flags": {
2429
+ "json": {
2430
+ "description": "Format output as json.",
2431
+ "helpGroup": "GLOBAL",
2432
+ "name": "json",
2433
+ "allowNo": false,
2434
+ "type": "boolean"
2435
+ },
2436
+ "yes": {
2437
+ "char": "y",
2438
+ "description": "Apply without asking; required when the output is piped or --json is used",
2439
+ "name": "yes",
2440
+ "allowNo": false,
2441
+ "type": "boolean"
2442
+ },
2443
+ "idempotency-key": {
2444
+ "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
2445
+ "name": "idempotency-key",
2446
+ "hasDynamicHelp": false,
2447
+ "multiple": false,
2448
+ "type": "option"
2449
+ },
2450
+ "dry-run": {
2451
+ "description": "Evaluate and log the rule without touching Apple",
2452
+ "name": "dry-run",
2453
+ "allowNo": false,
2454
+ "type": "boolean"
2455
+ }
2456
+ },
2457
+ "hasDynamicHelp": false,
2458
+ "hiddenAliases": [],
2459
+ "id": "asa:automations:run",
2460
+ "pluginAlias": "adapty",
2461
+ "pluginName": "adapty",
2462
+ "pluginType": "core",
2463
+ "strict": true,
2464
+ "enableJsonFlag": true,
2465
+ "isESM": true,
2466
+ "relativePath": [
2467
+ "dist",
2468
+ "commands",
2469
+ "asa",
2470
+ "automations",
2471
+ "run.js"
2472
+ ]
2473
+ },
2474
+ "asa:automations:runs": {
2475
+ "aliases": [],
2476
+ "args": {
2477
+ "automation_id": {
2478
+ "description": "Automation rule ID (UUID)",
2479
+ "name": "automation_id",
2480
+ "required": true
2481
+ }
2482
+ },
2483
+ "description": "List past runs of an automation rule, including dry runs",
2484
+ "examples": [
2485
+ "<%= config.bin %> asa automations runs 550e8400-e29b-41d4-a716-446655440000"
2486
+ ],
2487
+ "flags": {
2488
+ "json": {
2489
+ "description": "Format output as json.",
2490
+ "helpGroup": "GLOBAL",
2491
+ "name": "json",
2492
+ "allowNo": false,
2493
+ "type": "boolean"
2494
+ },
2495
+ "page": {
2496
+ "description": "Page number",
2497
+ "name": "page",
2498
+ "default": 1,
2499
+ "hasDynamicHelp": false,
2500
+ "multiple": false,
2501
+ "type": "option"
2502
+ },
2503
+ "page-size": {
2504
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
2505
+ "name": "page-size",
2506
+ "default": 100,
2507
+ "hasDynamicHelp": false,
2508
+ "multiple": false,
2509
+ "type": "option"
2510
+ }
2511
+ },
2512
+ "hasDynamicHelp": false,
2513
+ "hiddenAliases": [],
2514
+ "id": "asa:automations:runs",
2515
+ "pluginAlias": "adapty",
2516
+ "pluginName": "adapty",
2517
+ "pluginType": "core",
2518
+ "strict": true,
2519
+ "enableJsonFlag": true,
2520
+ "isESM": true,
2521
+ "relativePath": [
2522
+ "dist",
2523
+ "commands",
2524
+ "asa",
2525
+ "automations",
2526
+ "runs.js"
2527
+ ]
2528
+ },
2529
+ "asa:automations:update": {
2530
+ "aliases": [],
2531
+ "args": {
2532
+ "automation_id": {
2533
+ "description": "Automation rule ID (UUID)",
2534
+ "name": "automation_id",
2535
+ "required": true
2536
+ }
2537
+ },
2538
+ "description": "Change an automation rule: stop it, rename it, or replace parts of the rule",
2539
+ "examples": [
2540
+ "<%= config.bin %> asa automations update UUID --stop",
2541
+ "<%= config.bin %> asa automations update UUID --file rule.json"
2542
+ ],
2543
+ "flags": {
2544
+ "json": {
2545
+ "description": "Format output as json.",
2546
+ "helpGroup": "GLOBAL",
2547
+ "name": "json",
2548
+ "allowNo": false,
2549
+ "type": "boolean"
2550
+ },
2551
+ "yes": {
2552
+ "char": "y",
2553
+ "description": "Apply without asking; required when the output is piped or --json is used",
2554
+ "name": "yes",
2555
+ "allowNo": false,
2556
+ "type": "boolean"
2557
+ },
2558
+ "idempotency-key": {
2559
+ "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
2560
+ "name": "idempotency-key",
2561
+ "hasDynamicHelp": false,
2562
+ "multiple": false,
2563
+ "type": "option"
2564
+ },
2565
+ "file": {
2566
+ "description": "JSON file with the parts to change, or - to read stdin",
2567
+ "name": "file",
2568
+ "hasDynamicHelp": false,
2569
+ "multiple": false,
2570
+ "type": "option"
2571
+ },
2572
+ "name": {
2573
+ "description": "Rule name",
2574
+ "name": "name",
2575
+ "hasDynamicHelp": false,
2576
+ "multiple": false,
2577
+ "type": "option"
2578
+ },
2579
+ "start": {
2580
+ "description": "Activate the rule",
2581
+ "exclusive": [
2582
+ "stop"
2583
+ ],
2584
+ "name": "start",
2585
+ "allowNo": false,
2586
+ "type": "boolean"
2587
+ },
2588
+ "stop": {
2589
+ "description": "Stop the rule and clear its next run",
2590
+ "exclusive": [
2591
+ "start"
2592
+ ],
2593
+ "name": "stop",
2594
+ "allowNo": false,
2595
+ "type": "boolean"
2596
+ }
2597
+ },
2598
+ "hasDynamicHelp": false,
2599
+ "hiddenAliases": [],
2600
+ "id": "asa:automations:update",
2601
+ "pluginAlias": "adapty",
2602
+ "pluginName": "adapty",
2603
+ "pluginType": "core",
2604
+ "strict": true,
2605
+ "enableJsonFlag": true,
2606
+ "isESM": true,
2607
+ "relativePath": [
2608
+ "dist",
2609
+ "commands",
2610
+ "asa",
2611
+ "automations",
2612
+ "update.js"
2613
+ ]
2614
+ },
2615
+ "asa:campaigns:create": {
2616
+ "aliases": [],
2617
+ "args": {},
2618
+ "description": "Create a campaign in Apple Search Ads",
2619
+ "examples": [
2620
+ "<%= config.bin %> asa campaigns create --org UUID --name \"Winter push\" --adam-id 123456 --country US --daily-budget 50"
2621
+ ],
2622
+ "flags": {
2623
+ "json": {
2624
+ "description": "Format output as json.",
2625
+ "helpGroup": "GLOBAL",
2626
+ "name": "json",
2627
+ "allowNo": false,
2628
+ "type": "boolean"
2629
+ },
2630
+ "currency": {
2631
+ "description": "Currency code for the amounts in this call",
2632
+ "name": "currency",
2633
+ "default": "USD",
2634
+ "hasDynamicHelp": false,
2635
+ "multiple": false,
2636
+ "type": "option"
2637
+ },
2638
+ "yes": {
2639
+ "char": "y",
2640
+ "description": "Apply without asking; required when the output is piped or --json is used",
2641
+ "name": "yes",
2642
+ "allowNo": false,
2643
+ "type": "boolean"
2644
+ },
2645
+ "idempotency-key": {
2646
+ "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
2647
+ "name": "idempotency-key",
2648
+ "hasDynamicHelp": false,
2649
+ "multiple": false,
2650
+ "type": "option"
2651
+ },
2652
+ "ad-channel-type": {
2653
+ "description": "Ad channel type",
2654
+ "name": "ad-channel-type",
2655
+ "default": "SEARCH",
2656
+ "hasDynamicHelp": false,
2657
+ "multiple": false,
2658
+ "options": [
2659
+ "DISPLAY",
2660
+ "SEARCH"
2661
+ ],
2662
+ "type": "option"
2663
+ },
2664
+ "adam-id": {
2665
+ "description": "App Store app ID (adam_id)",
2666
+ "name": "adam-id",
2667
+ "required": true,
2668
+ "hasDynamicHelp": false,
2669
+ "multiple": false,
2670
+ "type": "option"
2671
+ },
2672
+ "bidding-strategy": {
2673
+ "description": "Bidding strategy; Apple defaults to MANUAL_CPT when omitted",
2674
+ "name": "bidding-strategy",
2675
+ "hasDynamicHelp": false,
2676
+ "multiple": false,
2677
+ "options": [
2678
+ "MANUAL_CPT",
2679
+ "MAX_CONVERSIONS"
2680
+ ],
2681
+ "type": "option"
2682
+ },
2683
+ "billing-event": {
2684
+ "description": "Billing event",
2685
+ "name": "billing-event",
2686
+ "default": "TAPS",
2687
+ "hasDynamicHelp": false,
2688
+ "multiple": false,
2689
+ "options": [
2690
+ "IMPRESSIONS",
2691
+ "TAPS"
2692
+ ],
2693
+ "type": "option"
2694
+ },
2695
+ "budget": {
2696
+ "description": "Lifetime budget (amount, e.g. 50 or 12.50)",
2697
+ "name": "budget",
2698
+ "hasDynamicHelp": false,
2699
+ "multiple": false,
2700
+ "type": "option"
2701
+ },
2702
+ "country": {
2703
+ "description": "Country or region code, repeatable",
2704
+ "name": "country",
2705
+ "required": true,
2706
+ "hasDynamicHelp": false,
2707
+ "multiple": true,
2708
+ "type": "option"
2709
+ },
2710
+ "daily-budget": {
2711
+ "description": "Daily budget (amount, e.g. 50 or 12.50)",
2712
+ "name": "daily-budget",
2713
+ "required": true,
2714
+ "hasDynamicHelp": false,
2715
+ "multiple": false,
2716
+ "type": "option"
2717
+ },
2718
+ "name": {
2719
+ "description": "Campaign name",
2720
+ "name": "name",
2721
+ "required": true,
2722
+ "hasDynamicHelp": false,
2723
+ "multiple": false,
2724
+ "type": "option"
2725
+ },
2726
+ "org": {
2727
+ "description": "Campaign group ID (UUID) — see `adapty asa orgs list`",
2728
+ "name": "org",
2729
+ "required": true,
2730
+ "hasDynamicHelp": false,
2731
+ "multiple": false,
2732
+ "type": "option"
2733
+ },
2734
+ "status": {
2735
+ "description": "Initial status",
2736
+ "name": "status",
2737
+ "hasDynamicHelp": false,
2738
+ "multiple": false,
2739
+ "options": [
2740
+ "ENABLED",
2741
+ "PAUSED"
2742
+ ],
2743
+ "type": "option"
2744
+ },
2745
+ "supply-source": {
2746
+ "description": "Supply source, repeatable",
2747
+ "name": "supply-source",
2748
+ "default": [
2749
+ "APPSTORE_SEARCH_RESULTS"
2750
+ ],
2751
+ "hasDynamicHelp": false,
2752
+ "multiple": true,
2753
+ "type": "option"
2754
+ },
2755
+ "target-cpa": {
2756
+ "description": "Target CPA (amount, e.g. 50 or 12.50)",
2757
+ "name": "target-cpa",
2758
+ "hasDynamicHelp": false,
2759
+ "multiple": false,
2760
+ "type": "option"
2761
+ }
2762
+ },
2763
+ "hasDynamicHelp": false,
2764
+ "hiddenAliases": [],
2765
+ "id": "asa:campaigns:create",
2766
+ "pluginAlias": "adapty",
2767
+ "pluginName": "adapty",
2768
+ "pluginType": "core",
2769
+ "strict": true,
2770
+ "enableJsonFlag": true,
2771
+ "isESM": true,
2772
+ "relativePath": [
2773
+ "dist",
2774
+ "commands",
2775
+ "asa",
2776
+ "campaigns",
2777
+ "create.js"
2778
+ ]
2779
+ },
2780
+ "asa:campaigns:get": {
2781
+ "aliases": [],
2782
+ "args": {
2783
+ "campaign_id": {
2784
+ "description": "Campaign ID (UUID)",
2785
+ "name": "campaign_id",
2786
+ "required": true
2787
+ }
2788
+ },
2789
+ "description": "Show one campaign; read numbers with asa metrics",
2790
+ "examples": [
2791
+ "<%= config.bin %> asa campaigns get 550e8400-e29b-41d4-a716-446655440000"
2792
+ ],
2793
+ "flags": {
2794
+ "json": {
2795
+ "description": "Format output as json.",
2796
+ "helpGroup": "GLOBAL",
2797
+ "name": "json",
2798
+ "allowNo": false,
2799
+ "type": "boolean"
2800
+ }
2801
+ },
2802
+ "hasDynamicHelp": false,
2803
+ "hiddenAliases": [],
2804
+ "id": "asa:campaigns:get",
2805
+ "pluginAlias": "adapty",
2806
+ "pluginName": "adapty",
2807
+ "pluginType": "core",
2808
+ "strict": true,
2809
+ "enableJsonFlag": true,
2810
+ "isESM": true,
2811
+ "relativePath": [
2812
+ "dist",
2813
+ "commands",
2814
+ "asa",
2815
+ "campaigns",
2816
+ "get.js"
2817
+ ]
2818
+ },
2819
+ "asa:campaigns:list": {
2820
+ "aliases": [],
2821
+ "args": {},
2822
+ "description": "List Apple Search Ads campaigns; read numbers with asa metrics",
2823
+ "examples": [
2824
+ "<%= config.bin %> asa campaigns list",
2825
+ "<%= config.bin %> asa campaigns list --app APP_UUID --status PAUSED"
2826
+ ],
2827
+ "flags": {
2828
+ "json": {
2829
+ "description": "Format output as json.",
2830
+ "helpGroup": "GLOBAL",
2831
+ "name": "json",
2832
+ "allowNo": false,
2833
+ "type": "boolean"
2834
+ },
2835
+ "page": {
2836
+ "description": "Page number",
2837
+ "name": "page",
2838
+ "default": 1,
2839
+ "hasDynamicHelp": false,
2840
+ "multiple": false,
2841
+ "type": "option"
2842
+ },
2843
+ "page-size": {
2844
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
2845
+ "name": "page-size",
2846
+ "default": 100,
2847
+ "hasDynamicHelp": false,
2848
+ "multiple": false,
2849
+ "type": "option"
2850
+ },
2851
+ "app": {
2852
+ "description": "Keep only rows in this app; repeatable",
2853
+ "name": "app",
2854
+ "hasDynamicHelp": false,
2855
+ "multiple": true,
2856
+ "type": "option"
2857
+ },
2858
+ "campaign-group": {
2859
+ "description": "Keep only rows in this campaign group; repeatable",
2860
+ "name": "campaign-group",
2861
+ "hasDynamicHelp": false,
2862
+ "multiple": true,
2863
+ "type": "option"
2864
+ },
2865
+ "search": {
2866
+ "description": "Case-insensitive substring match on the name",
2867
+ "name": "search",
2868
+ "hasDynamicHelp": false,
2869
+ "multiple": false,
2870
+ "type": "option"
2871
+ },
2872
+ "status": {
2873
+ "description": "Keep only rows in this state",
2874
+ "name": "status",
2875
+ "hasDynamicHelp": false,
2876
+ "multiple": false,
2877
+ "options": [
2878
+ "ENABLED",
2879
+ "PAUSED"
2880
+ ],
2881
+ "type": "option"
2882
+ }
2883
+ },
2884
+ "hasDynamicHelp": false,
2885
+ "hiddenAliases": [],
2886
+ "id": "asa:campaigns:list",
2887
+ "pluginAlias": "adapty",
2888
+ "pluginName": "adapty",
2889
+ "pluginType": "core",
2890
+ "strict": true,
2891
+ "enableJsonFlag": true,
2892
+ "isESM": true,
2893
+ "relativePath": [
2894
+ "dist",
2895
+ "commands",
2896
+ "asa",
2897
+ "campaigns",
2898
+ "list.js"
2899
+ ]
2900
+ },
2901
+ "asa:campaigns:update": {
2902
+ "aliases": [],
2903
+ "args": {
2904
+ "campaign_id": {
2905
+ "description": "Campaign ID (UUID)",
2906
+ "name": "campaign_id",
2907
+ "required": true
2908
+ }
2909
+ },
2910
+ "description": "Change a campaign: budgets, countries, status or schedule",
2911
+ "examples": [
2912
+ "<%= config.bin %> asa campaigns update UUID --status PAUSED",
2913
+ "<%= config.bin %> asa campaigns update UUID --daily-budget 80"
2914
+ ],
2915
+ "flags": {
2916
+ "json": {
2917
+ "description": "Format output as json.",
2918
+ "helpGroup": "GLOBAL",
2919
+ "name": "json",
2920
+ "allowNo": false,
2921
+ "type": "boolean"
2922
+ },
2923
+ "currency": {
2924
+ "description": "Currency code for the amounts in this call",
2925
+ "name": "currency",
2926
+ "default": "USD",
2927
+ "hasDynamicHelp": false,
2928
+ "multiple": false,
2929
+ "type": "option"
2930
+ },
2931
+ "yes": {
2932
+ "char": "y",
2933
+ "description": "Apply without asking; required when the output is piped or --json is used",
2934
+ "name": "yes",
2935
+ "allowNo": false,
2936
+ "type": "boolean"
2937
+ },
2938
+ "idempotency-key": {
2939
+ "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
2940
+ "name": "idempotency-key",
2941
+ "hasDynamicHelp": false,
2942
+ "multiple": false,
2943
+ "type": "option"
2944
+ },
2945
+ "bidding-strategy": {
2946
+ "description": "Bidding strategy",
2947
+ "name": "bidding-strategy",
2948
+ "hasDynamicHelp": false,
2949
+ "multiple": false,
2950
+ "options": [
2951
+ "MANUAL_CPT",
2952
+ "MAX_CONVERSIONS"
2953
+ ],
2954
+ "type": "option"
2955
+ },
2956
+ "budget": {
2957
+ "description": "Lifetime budget (amount, e.g. 50 or 12.50)",
2958
+ "name": "budget",
2959
+ "hasDynamicHelp": false,
2960
+ "multiple": false,
2961
+ "type": "option"
2962
+ },
2963
+ "country": {
2964
+ "description": "Replace the country list, repeatable",
2965
+ "name": "country",
2966
+ "hasDynamicHelp": false,
2967
+ "multiple": true,
2968
+ "type": "option"
2969
+ },
2970
+ "daily-budget": {
2971
+ "description": "Daily budget (amount, e.g. 50 or 12.50)",
2972
+ "name": "daily-budget",
2973
+ "hasDynamicHelp": false,
2974
+ "multiple": false,
2975
+ "type": "option"
2976
+ },
2977
+ "name": {
2978
+ "description": "Campaign name",
2979
+ "name": "name",
2980
+ "hasDynamicHelp": false,
2981
+ "multiple": false,
2982
+ "type": "option"
2983
+ },
2984
+ "status": {
2985
+ "description": "Campaign status",
2986
+ "name": "status",
2987
+ "hasDynamicHelp": false,
2988
+ "multiple": false,
2989
+ "options": [
2990
+ "ENABLED",
2991
+ "PAUSED"
2992
+ ],
2993
+ "type": "option"
2994
+ },
2995
+ "target-cpa": {
2996
+ "description": "Target CPA (amount, e.g. 50 or 12.50)",
2997
+ "name": "target-cpa",
2998
+ "hasDynamicHelp": false,
2999
+ "multiple": false,
3000
+ "type": "option"
3001
+ }
3002
+ },
3003
+ "hasDynamicHelp": false,
3004
+ "hiddenAliases": [],
3005
+ "id": "asa:campaigns:update",
3006
+ "pluginAlias": "adapty",
3007
+ "pluginName": "adapty",
3008
+ "pluginType": "core",
3009
+ "strict": true,
3010
+ "enableJsonFlag": true,
3011
+ "isESM": true,
3012
+ "relativePath": [
3013
+ "dist",
3014
+ "commands",
3015
+ "asa",
3016
+ "campaigns",
3017
+ "update.js"
3018
+ ]
3019
+ },
3020
+ "asa:competitors:summary": {
3021
+ "aliases": [],
3022
+ "args": {},
3023
+ "description": "Competitor summary for up to five App Store apps; the server covers the last full month and every country",
3024
+ "examples": [
3025
+ "<%= config.bin %> asa competitors summary --app-ids 1668337467,6503873027"
3026
+ ],
3027
+ "flags": {
3028
+ "json": {
3029
+ "description": "Format output as json.",
3030
+ "helpGroup": "GLOBAL",
3031
+ "name": "json",
3032
+ "allowNo": false,
3033
+ "type": "boolean"
3034
+ },
3035
+ "app-ids": {
3036
+ "description": "Apple App Store IDs (adam_id), comma-separated, 1-5 values",
3037
+ "name": "app-ids",
3038
+ "required": true,
3039
+ "hasDynamicHelp": false,
3040
+ "multiple": false,
3041
+ "type": "option"
3042
+ }
3043
+ },
3044
+ "hasDynamicHelp": false,
3045
+ "hiddenAliases": [],
3046
+ "id": "asa:competitors:summary",
3047
+ "pluginAlias": "adapty",
3048
+ "pluginName": "adapty",
3049
+ "pluginType": "core",
3050
+ "strict": true,
3051
+ "enableJsonFlag": true,
3052
+ "isESM": true,
3053
+ "relativePath": [
3054
+ "dist",
3055
+ "commands",
3056
+ "asa",
3057
+ "competitors",
3058
+ "summary.js"
3059
+ ]
3060
+ },
3061
+ "asa:creatives:list": {
3062
+ "aliases": [],
3063
+ "args": {},
3064
+ "description": "List creatives; creative_id is what `asa ads create` needs",
3065
+ "examples": [
3066
+ "<%= config.bin %> asa creatives list",
3067
+ "<%= config.bin %> asa creatives list --app APP_UUID"
3068
+ ],
3069
+ "flags": {
3070
+ "json": {
3071
+ "description": "Format output as json.",
3072
+ "helpGroup": "GLOBAL",
3073
+ "name": "json",
3074
+ "allowNo": false,
3075
+ "type": "boolean"
3076
+ },
3077
+ "page": {
3078
+ "description": "Page number",
3079
+ "name": "page",
3080
+ "default": 1,
3081
+ "hasDynamicHelp": false,
3082
+ "multiple": false,
3083
+ "type": "option"
3084
+ },
3085
+ "page-size": {
3086
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
3087
+ "name": "page-size",
3088
+ "default": 100,
3089
+ "hasDynamicHelp": false,
3090
+ "multiple": false,
3091
+ "type": "option"
3092
+ },
3093
+ "app": {
3094
+ "description": "Keep only rows in this app; repeatable",
3095
+ "name": "app",
3096
+ "hasDynamicHelp": false,
3097
+ "multiple": true,
3098
+ "type": "option"
3099
+ },
3100
+ "campaign-group": {
3101
+ "description": "Keep only rows in this campaign group; repeatable",
3102
+ "name": "campaign-group",
3103
+ "hasDynamicHelp": false,
3104
+ "multiple": true,
3105
+ "type": "option"
3106
+ }
3107
+ },
3108
+ "hasDynamicHelp": false,
3109
+ "hiddenAliases": [],
3110
+ "id": "asa:creatives:list",
3111
+ "pluginAlias": "adapty",
3112
+ "pluginName": "adapty",
3113
+ "pluginType": "core",
3114
+ "strict": true,
3115
+ "enableJsonFlag": true,
3116
+ "isESM": true,
3117
+ "relativePath": [
3118
+ "dist",
3119
+ "commands",
3120
+ "asa",
3121
+ "creatives",
3122
+ "list.js"
3123
+ ]
3124
+ },
3125
+ "asa:keywords:add": {
3126
+ "aliases": [],
3127
+ "args": {},
3128
+ "description": "Add targeting keywords to an ad group",
3129
+ "examples": [
3130
+ "<%= config.bin %> asa keywords add --ad-group UUID --text \"running shoes\" --text \"trail shoes\" --bid 1.20",
3131
+ "<%= config.bin %> asa keywords add --ad-group UUID --from-file keywords.txt --match-type EXACT"
3132
+ ],
3133
+ "flags": {
3134
+ "json": {
3135
+ "description": "Format output as json.",
3136
+ "helpGroup": "GLOBAL",
3137
+ "name": "json",
3138
+ "allowNo": false,
3139
+ "type": "boolean"
3140
+ },
3141
+ "currency": {
3142
+ "description": "Currency code for the amounts in this call",
3143
+ "name": "currency",
3144
+ "default": "USD",
3145
+ "hasDynamicHelp": false,
3146
+ "multiple": false,
3147
+ "type": "option"
3148
+ },
3149
+ "yes": {
3150
+ "char": "y",
3151
+ "description": "Apply without asking; required when the output is piped or --json is used",
3152
+ "name": "yes",
3153
+ "allowNo": false,
3154
+ "type": "boolean"
3155
+ },
3156
+ "idempotency-key": {
3157
+ "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
3158
+ "name": "idempotency-key",
3159
+ "hasDynamicHelp": false,
3160
+ "multiple": false,
3161
+ "type": "option"
3162
+ },
3163
+ "ad-group": {
3164
+ "description": "Ad group ID (UUID) — the campaign is resolved from it",
3165
+ "name": "ad-group",
3166
+ "required": true,
3167
+ "hasDynamicHelp": false,
3168
+ "multiple": false,
3169
+ "type": "option"
3170
+ },
3171
+ "bid": {
3172
+ "description": "Bid per keyword (amount, e.g. 50 or 12.50)",
3173
+ "name": "bid",
3174
+ "hasDynamicHelp": false,
3175
+ "multiple": false,
3176
+ "type": "option"
3177
+ },
3178
+ "from-file": {
3179
+ "description": "File with one keyword per line, combined with any --text values",
3180
+ "name": "from-file",
3181
+ "hasDynamicHelp": false,
3182
+ "multiple": false,
3183
+ "type": "option"
3184
+ },
3185
+ "match-type": {
3186
+ "description": "Match type",
3187
+ "name": "match-type",
3188
+ "default": "BROAD",
3189
+ "hasDynamicHelp": false,
3190
+ "multiple": false,
3191
+ "options": [
3192
+ "BROAD",
3193
+ "EXACT"
3194
+ ],
3195
+ "type": "option"
3196
+ },
3197
+ "status": {
3198
+ "description": "Keyword status",
3199
+ "name": "status",
3200
+ "default": "ACTIVE",
3201
+ "hasDynamicHelp": false,
3202
+ "multiple": false,
3203
+ "options": [
3204
+ "ACTIVE",
3205
+ "PAUSED"
3206
+ ],
3207
+ "type": "option"
3208
+ },
3209
+ "text": {
3210
+ "description": "Keyword text, repeatable",
3211
+ "name": "text",
3212
+ "hasDynamicHelp": false,
3213
+ "multiple": true,
3214
+ "type": "option"
3215
+ }
3216
+ },
3217
+ "hasDynamicHelp": false,
3218
+ "hiddenAliases": [],
3219
+ "id": "asa:keywords:add",
3220
+ "pluginAlias": "adapty",
3221
+ "pluginName": "adapty",
3222
+ "pluginType": "core",
3223
+ "strict": true,
3224
+ "enableJsonFlag": true,
3225
+ "isESM": true,
3226
+ "relativePath": [
3227
+ "dist",
3228
+ "commands",
3229
+ "asa",
3230
+ "keywords",
3231
+ "add.js"
3232
+ ]
3233
+ },
3234
+ "asa:keywords:list": {
3235
+ "aliases": [],
3236
+ "args": {},
3237
+ "description": "List targeting keywords; read numbers with asa metrics",
3238
+ "examples": [
3239
+ "<%= config.bin %> asa keywords list",
3240
+ "<%= config.bin %> asa keywords list --ad-group AD_GROUP_UUID --status ACTIVE"
3241
+ ],
3242
+ "flags": {
3243
+ "json": {
3244
+ "description": "Format output as json.",
3245
+ "helpGroup": "GLOBAL",
3246
+ "name": "json",
3247
+ "allowNo": false,
3248
+ "type": "boolean"
3249
+ },
3250
+ "page": {
3251
+ "description": "Page number",
3252
+ "name": "page",
3253
+ "default": 1,
3254
+ "hasDynamicHelp": false,
3255
+ "multiple": false,
3256
+ "type": "option"
3257
+ },
3258
+ "page-size": {
3259
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
3260
+ "name": "page-size",
3261
+ "default": 100,
3262
+ "hasDynamicHelp": false,
3263
+ "multiple": false,
3264
+ "type": "option"
3265
+ },
3266
+ "app": {
3267
+ "description": "Keep only rows in this app; repeatable",
3268
+ "name": "app",
3269
+ "hasDynamicHelp": false,
3270
+ "multiple": true,
3271
+ "type": "option"
3272
+ },
3273
+ "campaign-group": {
3274
+ "description": "Keep only rows in this campaign group; repeatable",
3275
+ "name": "campaign-group",
3276
+ "hasDynamicHelp": false,
3277
+ "multiple": true,
3278
+ "type": "option"
3279
+ },
3280
+ "search": {
3281
+ "description": "Case-insensitive substring match on the name",
3282
+ "name": "search",
3283
+ "hasDynamicHelp": false,
3284
+ "multiple": false,
3285
+ "type": "option"
3286
+ },
3287
+ "campaign": {
3288
+ "description": "Keep only rows in this campaign; repeatable",
3289
+ "name": "campaign",
3290
+ "hasDynamicHelp": false,
3291
+ "multiple": true,
3292
+ "type": "option"
3293
+ },
3294
+ "ad-group": {
3295
+ "description": "Keep only rows in this ad group; repeatable",
3296
+ "name": "ad-group",
3297
+ "hasDynamicHelp": false,
3298
+ "multiple": true,
3299
+ "type": "option"
3300
+ },
3301
+ "status": {
3302
+ "description": "Keep only rows in this state",
3303
+ "name": "status",
3304
+ "hasDynamicHelp": false,
3305
+ "multiple": false,
3306
+ "options": [
3307
+ "ACTIVE",
3308
+ "PAUSED"
3309
+ ],
3310
+ "type": "option"
3311
+ }
3312
+ },
3313
+ "hasDynamicHelp": false,
3314
+ "hiddenAliases": [],
3315
+ "id": "asa:keywords:list",
3316
+ "pluginAlias": "adapty",
3317
+ "pluginName": "adapty",
3318
+ "pluginType": "core",
3319
+ "strict": true,
3320
+ "enableJsonFlag": true,
3321
+ "isESM": true,
3322
+ "relativePath": [
3323
+ "dist",
3324
+ "commands",
3325
+ "asa",
3326
+ "keywords",
3327
+ "list.js"
3328
+ ]
3329
+ },
3330
+ "asa:keywords:update": {
3331
+ "aliases": [],
3332
+ "args": {
3333
+ "keyword_id": {
3334
+ "description": "Keyword ID (UUID), repeatable as extra arguments",
3335
+ "name": "keyword_id",
3336
+ "required": true
3337
+ }
3338
+ },
3339
+ "description": "Change bid, status, text or match type of keywords",
3340
+ "examples": [
3341
+ "<%= config.bin %> asa keywords update UUID --bid 2.00",
3342
+ "<%= config.bin %> asa keywords update UUID_A UUID_B --status PAUSED"
3343
+ ],
3344
+ "flags": {
3345
+ "json": {
3346
+ "description": "Format output as json.",
3347
+ "helpGroup": "GLOBAL",
3348
+ "name": "json",
3349
+ "allowNo": false,
3350
+ "type": "boolean"
3351
+ },
3352
+ "currency": {
3353
+ "description": "Currency code for the amounts in this call",
3354
+ "name": "currency",
3355
+ "default": "USD",
3356
+ "hasDynamicHelp": false,
3357
+ "multiple": false,
3358
+ "type": "option"
3359
+ },
3360
+ "yes": {
3361
+ "char": "y",
3362
+ "description": "Apply without asking; required when the output is piped or --json is used",
3363
+ "name": "yes",
3364
+ "allowNo": false,
3365
+ "type": "boolean"
3366
+ },
3367
+ "idempotency-key": {
3368
+ "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
3369
+ "name": "idempotency-key",
3370
+ "hasDynamicHelp": false,
3371
+ "multiple": false,
3372
+ "type": "option"
3373
+ },
3374
+ "bid": {
3375
+ "description": "Bid (amount, e.g. 50 or 12.50)",
3376
+ "name": "bid",
3377
+ "hasDynamicHelp": false,
3378
+ "multiple": false,
3379
+ "type": "option"
3380
+ },
3381
+ "match-type": {
3382
+ "description": "Match type",
3383
+ "name": "match-type",
3384
+ "hasDynamicHelp": false,
3385
+ "multiple": false,
3386
+ "options": [
3387
+ "BROAD",
3388
+ "EXACT"
3389
+ ],
3390
+ "type": "option"
3391
+ },
3392
+ "status": {
3393
+ "description": "Keyword status",
3394
+ "name": "status",
3395
+ "hasDynamicHelp": false,
3396
+ "multiple": false,
3397
+ "options": [
3398
+ "ACTIVE",
3399
+ "PAUSED"
3400
+ ],
3401
+ "type": "option"
3402
+ },
3403
+ "text": {
3404
+ "description": "Keyword text (only meaningful for a single keyword)",
3405
+ "name": "text",
3406
+ "hasDynamicHelp": false,
3407
+ "multiple": false,
3408
+ "type": "option"
3409
+ }
3410
+ },
3411
+ "hasDynamicHelp": false,
3412
+ "hiddenAliases": [],
3413
+ "id": "asa:keywords:update",
3414
+ "pluginAlias": "adapty",
3415
+ "pluginName": "adapty",
3416
+ "pluginType": "core",
3417
+ "strict": false,
3418
+ "enableJsonFlag": true,
3419
+ "isESM": true,
3420
+ "relativePath": [
3421
+ "dist",
3422
+ "commands",
3423
+ "asa",
3424
+ "keywords",
3425
+ "update.js"
3426
+ ]
3427
+ },
3428
+ "asa:metrics": {
3429
+ "aliases": [],
3430
+ "args": {},
3431
+ "description": "Query metrics for any level of the account over a date range\n\nOne row per entity, already aggregated server-side and sorted by --order-by, so a top-N question is one\ncall with --order-by and --page-size N — never sum pages yourself. Account-level totals are one call to\nasa metrics overview instead. The date window is capped by the coarsest --group-by period: 90 days for\nday or no period grouping, 180 by week, 365 by month and coarser — widen the window by coarsening the\ngrouping, not by splitting into more calls. Budget: 5 metrics calls per minute, at most 2 per 10 seconds.",
3432
+ "examples": [
3433
+ "<%= config.bin %> asa metrics --entity campaign --date-from 2026-07-01 --date-to 2026-07-31",
3434
+ "<%= config.bin %> asa metrics --entity campaign --date-from 2026-07-01 --date-to 2026-07-31 --order-by spend --page-size 5",
3435
+ "<%= config.bin %> asa metrics --entity campaign --date-from 2026-07-01 --date-to 2026-07-31 --group-by country --page-size 1000",
3436
+ "<%= config.bin %> asa metrics --entity keyword --date-from 2026-07-01 --date-to 2026-07-31 --metric spend --metric roas",
3437
+ "<%= config.bin %> asa metrics --entity campaign --date-from 2026-07-01 --date-to 2026-07-31 --metric roas --by-days 7 --by-days 90"
3438
+ ],
3439
+ "flags": {
3440
+ "json": {
3441
+ "description": "Format output as json.",
3442
+ "helpGroup": "GLOBAL",
3443
+ "name": "json",
3444
+ "allowNo": false,
3445
+ "type": "boolean"
3446
+ },
3447
+ "page": {
3448
+ "description": "Page number",
3449
+ "name": "page",
3450
+ "default": 1,
3451
+ "hasDynamicHelp": false,
3452
+ "multiple": false,
3453
+ "type": "option"
3454
+ },
3455
+ "page-size": {
3456
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
3457
+ "name": "page-size",
3458
+ "default": 100,
3459
+ "hasDynamicHelp": false,
3460
+ "multiple": false,
3461
+ "type": "option"
3462
+ },
3463
+ "by-days": {
3464
+ "description": "Renewal window in days for cohort metrics, repeatable; omit for the dashboard defaults",
3465
+ "name": "by-days",
3466
+ "hasDynamicHelp": false,
3467
+ "multiple": true,
3468
+ "type": "option"
3469
+ },
3470
+ "date-from": {
3471
+ "description": "Start of the period (YYYY-MM-DD)",
3472
+ "name": "date-from",
3473
+ "required": true,
3474
+ "hasDynamicHelp": false,
3475
+ "multiple": false,
3476
+ "type": "option"
3477
+ },
3478
+ "date-to": {
3479
+ "description": "End of the period (YYYY-MM-DD)",
3480
+ "name": "date-to",
3481
+ "required": true,
3482
+ "hasDynamicHelp": false,
3483
+ "multiple": false,
3484
+ "type": "option"
3485
+ },
3486
+ "entity": {
3487
+ "description": "What to report on",
3488
+ "name": "entity",
3489
+ "required": true,
3490
+ "hasDynamicHelp": false,
3491
+ "multiple": false,
3492
+ "options": [
3493
+ "ad",
3494
+ "ad-group",
3495
+ "campaign",
3496
+ "keyword"
3497
+ ],
3498
+ "type": "option"
3499
+ },
3500
+ "group-by": {
3501
+ "description": "Break the rows down by a dimension, repeatable",
3502
+ "name": "group-by",
3503
+ "hasDynamicHelp": false,
3504
+ "multiple": true,
3505
+ "options": [
3506
+ "country",
3507
+ "day",
3508
+ "month",
3509
+ "quarter",
3510
+ "week",
3511
+ "year"
3512
+ ],
3513
+ "type": "option"
3514
+ },
3515
+ "metric": {
3516
+ "description": "Metric name (dashboard nomenclature, e.g. spend, taps, gross_roas), repeatable; omit for every metric; a wrong name fails listing all valid ones",
3517
+ "name": "metric",
3518
+ "hasDynamicHelp": false,
3519
+ "multiple": true,
3520
+ "type": "option"
3521
+ },
3522
+ "order": {
3523
+ "description": "Sort direction",
3524
+ "name": "order",
3525
+ "default": "desc",
3526
+ "hasDynamicHelp": false,
3527
+ "multiple": false,
3528
+ "options": [
3529
+ "asc",
3530
+ "desc"
3531
+ ],
3532
+ "type": "option"
3533
+ },
3534
+ "order-by": {
3535
+ "description": "Metric or field to sort by; cohort metrics rank via their gross_/proceeds_/net_ names",
3536
+ "name": "order-by",
3537
+ "hasDynamicHelp": false,
3538
+ "multiple": false,
3539
+ "type": "option"
3540
+ },
3541
+ "order-by-day": {
3542
+ "description": "Rank by a cohort metric at this renewal window; must be one of the --by-days values",
3543
+ "name": "order-by-day",
3544
+ "hasDynamicHelp": false,
3545
+ "multiple": false,
3546
+ "type": "option"
3547
+ }
3548
+ },
3549
+ "hasDynamicHelp": false,
3550
+ "hiddenAliases": [],
3551
+ "id": "asa:metrics",
3552
+ "pluginAlias": "adapty",
3553
+ "pluginName": "adapty",
3554
+ "pluginType": "core",
3555
+ "strict": true,
3556
+ "enableJsonFlag": true,
3557
+ "isESM": true,
3558
+ "relativePath": [
3559
+ "dist",
3560
+ "commands",
3561
+ "asa",
3562
+ "metrics",
3563
+ "index.js"
3564
+ ]
3565
+ },
3566
+ "asa:metrics:overview": {
3567
+ "aliases": [],
3568
+ "args": {},
3569
+ "description": "Totals for a period, optionally split into day, week or month buckets\n\nThe one-call answer to \"how much did I spend / earn overall\" and to any single-period trend question:\ntotals for the whole entity level plus a per-period series, no pagination, no client-side summing. The\ndate window is capped by --period-unit: 90 days at day, 180 by week, 365 by month and coarser. Shares\nthe 5-per-minute metrics budget with asa metrics.",
3570
+ "examples": [
3571
+ "<%= config.bin %> asa metrics overview --entity campaign --date-from 2026-07-01 --date-to 2026-07-31",
3572
+ "<%= config.bin %> asa metrics overview --entity campaign --date-from 2026-07-01 --date-to 2026-07-31 --period-unit WEEK"
3573
+ ],
3574
+ "flags": {
3575
+ "json": {
3576
+ "description": "Format output as json.",
3577
+ "helpGroup": "GLOBAL",
3578
+ "name": "json",
3579
+ "allowNo": false,
3580
+ "type": "boolean"
3581
+ },
3582
+ "by-days": {
3583
+ "description": "Renewal window in days for cohort metrics, repeatable; omit for the dashboard defaults",
3584
+ "name": "by-days",
3585
+ "hasDynamicHelp": false,
3586
+ "multiple": true,
3587
+ "type": "option"
3588
+ },
3589
+ "date-from": {
3590
+ "description": "Start of the period (YYYY-MM-DD)",
3591
+ "name": "date-from",
3592
+ "required": true,
3593
+ "hasDynamicHelp": false,
3594
+ "multiple": false,
3595
+ "type": "option"
3596
+ },
3597
+ "date-to": {
3598
+ "description": "End of the period (YYYY-MM-DD)",
3599
+ "name": "date-to",
3600
+ "required": true,
3601
+ "hasDynamicHelp": false,
3602
+ "multiple": false,
3603
+ "type": "option"
3604
+ },
3605
+ "entity": {
3606
+ "description": "What to report on",
3607
+ "name": "entity",
3608
+ "required": true,
3609
+ "hasDynamicHelp": false,
3610
+ "multiple": false,
3611
+ "options": [
3612
+ "ad",
3613
+ "ad-group",
3614
+ "campaign",
3615
+ "keyword"
3616
+ ],
3617
+ "type": "option"
3618
+ },
3619
+ "metric": {
3620
+ "description": "Metric name, repeatable; cohort roots only here (revenue, roas, arpu), not their gross_/proceeds_/net_ variants; omit for every metric",
3621
+ "name": "metric",
3622
+ "hasDynamicHelp": false,
3623
+ "multiple": true,
3624
+ "type": "option"
3625
+ },
3626
+ "period-unit": {
3627
+ "description": "Bucket size",
3628
+ "name": "period-unit",
3629
+ "default": "day",
3630
+ "hasDynamicHelp": false,
3631
+ "multiple": false,
3632
+ "options": [
3633
+ "day",
3634
+ "month",
3635
+ "quarter",
3636
+ "week",
3637
+ "year"
3638
+ ],
3639
+ "type": "option"
3640
+ }
3641
+ },
3642
+ "hasDynamicHelp": false,
3643
+ "hiddenAliases": [],
3644
+ "id": "asa:metrics:overview",
3645
+ "pluginAlias": "adapty",
3646
+ "pluginName": "adapty",
3647
+ "pluginType": "core",
3648
+ "strict": true,
3649
+ "enableJsonFlag": true,
3650
+ "isESM": true,
3651
+ "relativePath": [
3652
+ "dist",
3653
+ "commands",
3654
+ "asa",
3655
+ "metrics",
3656
+ "overview.js"
3657
+ ]
3658
+ },
3659
+ "asa:negative-keywords:add": {
3660
+ "aliases": [],
3661
+ "args": {},
3662
+ "description": "Add negative keywords to an ad group or across a campaign",
3663
+ "examples": [
3664
+ "<%= config.bin %> asa negative-keywords add --ad-group UUID --text \"free\"",
3665
+ "<%= config.bin %> asa negative-keywords add --campaign UUID --text \"free\" --text \"cheap\"",
3666
+ "<%= config.bin %> asa negative-keywords add --campaign UUID --all-ad-groups --text \"free\""
3667
+ ],
3668
+ "flags": {
3669
+ "json": {
3670
+ "description": "Format output as json.",
3671
+ "helpGroup": "GLOBAL",
3672
+ "name": "json",
3673
+ "allowNo": false,
3674
+ "type": "boolean"
3675
+ },
3676
+ "yes": {
3677
+ "char": "y",
3678
+ "description": "Apply without asking; required when the output is piped or --json is used",
3679
+ "name": "yes",
3680
+ "allowNo": false,
3681
+ "type": "boolean"
3682
+ },
3683
+ "idempotency-key": {
3684
+ "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
3685
+ "name": "idempotency-key",
3686
+ "hasDynamicHelp": false,
3687
+ "multiple": false,
3688
+ "type": "option"
3689
+ },
3690
+ "ad-group": {
3691
+ "description": "Ad group ID (UUID) — the campaign is resolved from it",
3692
+ "exclusive": [
3693
+ "campaign"
3694
+ ],
3695
+ "name": "ad-group",
3696
+ "hasDynamicHelp": false,
3697
+ "multiple": false,
3698
+ "type": "option"
3699
+ },
3700
+ "all-ad-groups": {
3701
+ "dependsOn": [
3702
+ "campaign"
3703
+ ],
3704
+ "description": "Apply to every ad group of the campaign instead of the campaign itself",
3705
+ "name": "all-ad-groups",
3706
+ "allowNo": false,
3707
+ "type": "boolean"
3708
+ },
3709
+ "campaign": {
3710
+ "description": "Campaign ID (UUID)",
3711
+ "exclusive": [
3712
+ "ad-group"
3713
+ ],
3714
+ "name": "campaign",
3715
+ "hasDynamicHelp": false,
3716
+ "multiple": false,
3717
+ "type": "option"
3718
+ },
3719
+ "match-type": {
3720
+ "description": "Match type",
3721
+ "name": "match-type",
3722
+ "default": "EXACT",
3723
+ "hasDynamicHelp": false,
3724
+ "multiple": false,
3725
+ "options": [
3726
+ "BROAD",
3727
+ "EXACT"
3728
+ ],
3729
+ "type": "option"
3730
+ },
3731
+ "status": {
3732
+ "description": "Keyword status",
3733
+ "name": "status",
3734
+ "default": "ACTIVE",
3735
+ "hasDynamicHelp": false,
3736
+ "multiple": false,
3737
+ "options": [
3738
+ "ACTIVE",
3739
+ "PAUSED"
3740
+ ],
3741
+ "type": "option"
3742
+ },
3743
+ "text": {
3744
+ "description": "Keyword text, repeatable",
3745
+ "name": "text",
3746
+ "required": true,
3747
+ "hasDynamicHelp": false,
3748
+ "multiple": true,
3749
+ "type": "option"
3750
+ }
3751
+ },
3752
+ "hasDynamicHelp": false,
3753
+ "hiddenAliases": [],
3754
+ "id": "asa:negative-keywords:add",
3755
+ "pluginAlias": "adapty",
3756
+ "pluginName": "adapty",
3757
+ "pluginType": "core",
3758
+ "strict": true,
3759
+ "enableJsonFlag": true,
3760
+ "isESM": true,
3761
+ "relativePath": [
3762
+ "dist",
3763
+ "commands",
3764
+ "asa",
3765
+ "negative-keywords",
3766
+ "add.js"
3767
+ ]
3768
+ },
3769
+ "asa:negative-keywords:list": {
3770
+ "aliases": [],
3771
+ "args": {},
3772
+ "description": "List negative keywords; ad_group_id is empty for campaign-level ones",
3773
+ "examples": [
3774
+ "<%= config.bin %> asa negative-keywords list",
3775
+ "<%= config.bin %> asa negative-keywords list --campaign CAMPAIGN_UUID"
3776
+ ],
3777
+ "flags": {
3778
+ "json": {
3779
+ "description": "Format output as json.",
3780
+ "helpGroup": "GLOBAL",
3781
+ "name": "json",
3782
+ "allowNo": false,
3783
+ "type": "boolean"
3784
+ },
3785
+ "page": {
3786
+ "description": "Page number",
3787
+ "name": "page",
3788
+ "default": 1,
3789
+ "hasDynamicHelp": false,
3790
+ "multiple": false,
3791
+ "type": "option"
3792
+ },
3793
+ "page-size": {
3794
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
3795
+ "name": "page-size",
3796
+ "default": 100,
3797
+ "hasDynamicHelp": false,
3798
+ "multiple": false,
3799
+ "type": "option"
3800
+ },
3801
+ "app": {
3802
+ "description": "Keep only rows in this app; repeatable",
3803
+ "name": "app",
3804
+ "hasDynamicHelp": false,
3805
+ "multiple": true,
3806
+ "type": "option"
3807
+ },
3808
+ "campaign-group": {
3809
+ "description": "Keep only rows in this campaign group; repeatable",
3810
+ "name": "campaign-group",
3811
+ "hasDynamicHelp": false,
3812
+ "multiple": true,
3813
+ "type": "option"
3814
+ },
3815
+ "search": {
3816
+ "description": "Case-insensitive substring match on the name",
3817
+ "name": "search",
3818
+ "hasDynamicHelp": false,
3819
+ "multiple": false,
3820
+ "type": "option"
3821
+ },
3822
+ "campaign": {
3823
+ "description": "Keep only rows in this campaign; repeatable",
3824
+ "name": "campaign",
3825
+ "hasDynamicHelp": false,
3826
+ "multiple": true,
3827
+ "type": "option"
3828
+ },
3829
+ "ad-group": {
3830
+ "description": "Keep only rows in this ad group; repeatable",
3831
+ "name": "ad-group",
3832
+ "hasDynamicHelp": false,
3833
+ "multiple": true,
3834
+ "type": "option"
3835
+ },
3836
+ "campaign-level-only": {
3837
+ "description": "Keep only campaign-level rows (ad_group_id is null)",
3838
+ "name": "campaign-level-only",
3839
+ "allowNo": false,
3840
+ "type": "boolean"
3841
+ }
3842
+ },
3843
+ "hasDynamicHelp": false,
3844
+ "hiddenAliases": [],
3845
+ "id": "asa:negative-keywords:list",
3846
+ "pluginAlias": "adapty",
3847
+ "pluginName": "adapty",
3848
+ "pluginType": "core",
3849
+ "strict": true,
3850
+ "enableJsonFlag": true,
3851
+ "isESM": true,
3852
+ "relativePath": [
3853
+ "dist",
3854
+ "commands",
3855
+ "asa",
3856
+ "negative-keywords",
3857
+ "list.js"
3858
+ ]
3859
+ },
3860
+ "asa:orgs:list": {
3861
+ "aliases": [],
3862
+ "args": {},
3863
+ "description": "List the Apple Search Ads organizations this company can spend from",
3864
+ "examples": [
3865
+ "<%= config.bin %> asa orgs list"
3866
+ ],
3867
+ "flags": {
3868
+ "json": {
3869
+ "description": "Format output as json.",
3870
+ "helpGroup": "GLOBAL",
3871
+ "name": "json",
3872
+ "allowNo": false,
3873
+ "type": "boolean"
3874
+ },
3875
+ "page": {
3876
+ "description": "Page number",
3877
+ "name": "page",
3878
+ "default": 1,
3879
+ "hasDynamicHelp": false,
3880
+ "multiple": false,
3881
+ "type": "option"
3882
+ },
3883
+ "page-size": {
3884
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
3885
+ "name": "page-size",
3886
+ "default": 100,
3887
+ "hasDynamicHelp": false,
3888
+ "multiple": false,
3889
+ "type": "option"
3890
+ }
3891
+ },
3892
+ "hasDynamicHelp": false,
3893
+ "hiddenAliases": [],
3894
+ "id": "asa:orgs:list",
3895
+ "pluginAlias": "adapty",
3896
+ "pluginName": "adapty",
3897
+ "pluginType": "core",
3898
+ "strict": true,
3899
+ "enableJsonFlag": true,
3900
+ "isESM": true,
3901
+ "relativePath": [
3902
+ "dist",
3903
+ "commands",
3904
+ "asa",
3905
+ "orgs",
3906
+ "list.js"
3907
+ ]
3908
+ },
3909
+ "asa:search-terms:list": {
3910
+ "aliases": [],
3911
+ "args": {},
3912
+ "description": "List the search terms your ads matched, with their metrics",
3913
+ "examples": [
3914
+ "<%= config.bin %> asa search-terms list --date-from 2026-07-01 --date-to 2026-07-31",
3915
+ "<%= config.bin %> asa search-terms list --ad-group AD_GROUP_UUID"
3916
+ ],
3917
+ "flags": {
3918
+ "json": {
3919
+ "description": "Format output as json.",
3920
+ "helpGroup": "GLOBAL",
3921
+ "name": "json",
3922
+ "allowNo": false,
3923
+ "type": "boolean"
3924
+ },
3925
+ "page": {
3926
+ "description": "Page number",
3927
+ "name": "page",
3928
+ "default": 1,
3929
+ "hasDynamicHelp": false,
3930
+ "multiple": false,
3931
+ "type": "option"
3932
+ },
3933
+ "page-size": {
3934
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
3935
+ "name": "page-size",
3936
+ "default": 100,
3937
+ "hasDynamicHelp": false,
3938
+ "multiple": false,
3939
+ "type": "option"
3940
+ },
3941
+ "date-from": {
3942
+ "description": "Start of the reporting period (YYYY-MM-DD), defaults to today",
3943
+ "name": "date-from",
3944
+ "hasDynamicHelp": false,
3945
+ "multiple": false,
3946
+ "type": "option"
3947
+ },
3948
+ "date-to": {
3949
+ "description": "End of the reporting period (YYYY-MM-DD), defaults to today",
3950
+ "name": "date-to",
3951
+ "hasDynamicHelp": false,
3952
+ "multiple": false,
3953
+ "type": "option"
3954
+ },
3955
+ "app": {
3956
+ "description": "Keep only rows in this app; repeatable",
3957
+ "name": "app",
3958
+ "hasDynamicHelp": false,
3959
+ "multiple": true,
3960
+ "type": "option"
3961
+ },
3962
+ "campaign-group": {
3963
+ "description": "Keep only rows in this campaign group; repeatable",
3964
+ "name": "campaign-group",
3965
+ "hasDynamicHelp": false,
3966
+ "multiple": true,
3967
+ "type": "option"
3968
+ },
3969
+ "search": {
3970
+ "description": "Case-insensitive substring match on the name",
3971
+ "name": "search",
3972
+ "hasDynamicHelp": false,
3973
+ "multiple": false,
3974
+ "type": "option"
3975
+ },
3976
+ "campaign": {
3977
+ "description": "Keep only rows in this campaign; repeatable",
3978
+ "name": "campaign",
3979
+ "hasDynamicHelp": false,
3980
+ "multiple": true,
3981
+ "type": "option"
3982
+ },
3983
+ "ad-group": {
3984
+ "description": "Keep only rows in this ad group; repeatable",
3985
+ "name": "ad-group",
3986
+ "hasDynamicHelp": false,
3987
+ "multiple": true,
3988
+ "type": "option"
3989
+ }
3990
+ },
3991
+ "hasDynamicHelp": false,
3992
+ "hiddenAliases": [],
3993
+ "id": "asa:search-terms:list",
3994
+ "pluginAlias": "adapty",
3995
+ "pluginName": "adapty",
3996
+ "pluginType": "core",
3997
+ "strict": true,
3998
+ "enableJsonFlag": true,
3999
+ "isESM": true,
4000
+ "relativePath": [
4001
+ "dist",
4002
+ "commands",
4003
+ "asa",
4004
+ "search-terms",
4005
+ "list.js"
4006
+ ]
4007
+ },
4008
+ "asa:product-pages:list": {
4009
+ "aliases": [],
4010
+ "args": {},
4011
+ "description": "List custom product pages (read-only; authoring stays in App Store Connect)",
4012
+ "examples": [
4013
+ "<%= config.bin %> asa product-pages list",
4014
+ "<%= config.bin %> asa product-pages list --app APP_UUID"
4015
+ ],
4016
+ "flags": {
4017
+ "json": {
4018
+ "description": "Format output as json.",
4019
+ "helpGroup": "GLOBAL",
4020
+ "name": "json",
4021
+ "allowNo": false,
4022
+ "type": "boolean"
4023
+ },
4024
+ "page": {
4025
+ "description": "Page number",
4026
+ "name": "page",
4027
+ "default": 1,
4028
+ "hasDynamicHelp": false,
4029
+ "multiple": false,
4030
+ "type": "option"
4031
+ },
4032
+ "page-size": {
4033
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
4034
+ "name": "page-size",
4035
+ "default": 100,
4036
+ "hasDynamicHelp": false,
4037
+ "multiple": false,
4038
+ "type": "option"
4039
+ },
4040
+ "app": {
4041
+ "description": "Keep only rows in this app; repeatable",
4042
+ "name": "app",
4043
+ "hasDynamicHelp": false,
4044
+ "multiple": true,
4045
+ "type": "option"
4046
+ },
4047
+ "campaign-group": {
4048
+ "description": "Keep only rows in this campaign group; repeatable",
4049
+ "name": "campaign-group",
4050
+ "hasDynamicHelp": false,
4051
+ "multiple": true,
4052
+ "type": "option"
4053
+ }
4054
+ },
4055
+ "hasDynamicHelp": false,
4056
+ "hiddenAliases": [],
4057
+ "id": "asa:product-pages:list",
4058
+ "pluginAlias": "adapty",
4059
+ "pluginName": "adapty",
4060
+ "pluginType": "core",
4061
+ "strict": true,
4062
+ "enableJsonFlag": true,
4063
+ "isESM": true,
4064
+ "relativePath": [
4065
+ "dist",
4066
+ "commands",
4067
+ "asa",
4068
+ "product-pages",
4069
+ "list.js"
4070
+ ]
4071
+ },
4072
+ "asa:product-pages:sync": {
4073
+ "aliases": [],
4074
+ "args": {},
4075
+ "description": "Refresh custom product pages from Apple",
4076
+ "examples": [
4077
+ "<%= config.bin %> asa product-pages sync",
4078
+ "<%= config.bin %> asa product-pages sync --adam-id 123456"
4079
+ ],
4080
+ "flags": {
4081
+ "json": {
4082
+ "description": "Format output as json.",
4083
+ "helpGroup": "GLOBAL",
4084
+ "name": "json",
4085
+ "allowNo": false,
4086
+ "type": "boolean"
4087
+ },
4088
+ "yes": {
4089
+ "char": "y",
4090
+ "description": "Apply without asking; required when the output is piped or --json is used",
4091
+ "name": "yes",
4092
+ "allowNo": false,
4093
+ "type": "boolean"
4094
+ },
4095
+ "idempotency-key": {
4096
+ "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
4097
+ "name": "idempotency-key",
4098
+ "hasDynamicHelp": false,
4099
+ "multiple": false,
4100
+ "type": "option"
4101
+ },
4102
+ "adam-id": {
4103
+ "description": "Limit the refresh to one app; omit to cover every app",
4104
+ "name": "adam-id",
4105
+ "hasDynamicHelp": false,
4106
+ "multiple": false,
4107
+ "type": "option"
4108
+ }
4109
+ },
4110
+ "hasDynamicHelp": false,
4111
+ "hiddenAliases": [],
4112
+ "id": "asa:product-pages:sync",
4113
+ "pluginAlias": "adapty",
4114
+ "pluginName": "adapty",
4115
+ "pluginType": "core",
4116
+ "strict": true,
4117
+ "enableJsonFlag": true,
4118
+ "isESM": true,
4119
+ "relativePath": [
4120
+ "dist",
4121
+ "commands",
4122
+ "asa",
4123
+ "product-pages",
4124
+ "sync.js"
4125
+ ]
1481
4126
  }
1482
4127
  },
1483
- "version": "0.3.0-beta.0"
4128
+ "version": "0.4.0"
1484
4129
  }