direct-cli 0.1.2__tar.gz → 0.2.2__tar.gz

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 (64) hide show
  1. {direct_cli-0.1.2 → direct_cli-0.2.2}/PKG-INFO +95 -83
  2. {direct_cli-0.1.2 → direct_cli-0.2.2}/README.md +94 -82
  3. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/auth.py +3 -1
  4. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/cli.py +15 -6
  5. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/adextensions.py +28 -1
  6. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/adgroups.py +13 -2
  7. direct_cli-0.1.2/direct_cli/commands/negativekeywordsharedsets.py → direct_cli-0.2.2/direct_cli/commands/adimages.py +43 -22
  8. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/ads.py +26 -4
  9. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/agencyclients.py +43 -1
  10. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/audiencetargets.py +3 -1
  11. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/bidmodifiers.py +66 -1
  12. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/bids.py +3 -1
  13. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/businesses.py +0 -1
  14. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/campaigns.py +3 -2
  15. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/changes.py +4 -1
  16. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/clients.py +3 -1
  17. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/creatives.py +3 -1
  18. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/dictionaries.py +3 -2
  19. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/dynamicads.py +71 -7
  20. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/feeds.py +69 -1
  21. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/keywordbids.py +0 -1
  22. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/keywords.py +3 -1
  23. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/keywordsresearch.py +30 -1
  24. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/leads.py +3 -1
  25. direct_cli-0.2.2/direct_cli/commands/negativekeywordsharedsets.py +170 -0
  26. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/reports.py +0 -4
  27. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/retargeting.py +25 -1
  28. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/sitelinks.py +25 -1
  29. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/smartadtargets.py +78 -2
  30. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/turbopages.py +3 -1
  31. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/vcards.py +25 -1
  32. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/output.py +1 -1
  33. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/utils.py +1 -1
  34. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli.egg-info/PKG-INFO +95 -83
  35. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli.egg-info/SOURCES.txt +2 -8
  36. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli.egg-info/entry_points.txt +1 -0
  37. {direct_cli-0.1.2 → direct_cli-0.2.2}/pyproject.toml +2 -1
  38. direct_cli-0.2.2/setup.cfg +8 -0
  39. {direct_cli-0.1.2 → direct_cli-0.2.2}/setup.py +0 -1
  40. {direct_cli-0.1.2 → direct_cli-0.2.2}/tests/test_auth_bw.py +5 -15
  41. {direct_cli-0.1.2 → direct_cli-0.2.2}/tests/test_auth_op.py +22 -7
  42. direct_cli-0.2.2/tests/test_cli.py +116 -0
  43. {direct_cli-0.1.2 → direct_cli-0.2.2}/tests/test_comprehensive.py +11 -10
  44. direct_cli-0.2.2/tests/test_dry_run.py +661 -0
  45. {direct_cli-0.1.2 → direct_cli-0.2.2}/tests/test_integration.py +75 -19
  46. direct_cli-0.1.2/.github/copilot-instructions.md +0 -91
  47. direct_cli-0.1.2/.github/workflows/claude-code-review.yml +0 -44
  48. direct_cli-0.1.2/.github/workflows/claude.yml +0 -50
  49. direct_cli-0.1.2/.gitignore +0 -57
  50. direct_cli-0.1.2/AGENTS.md +0 -382
  51. direct_cli-0.1.2/CLAUDE.md +0 -59
  52. direct_cli-0.1.2/direct_cli/commands/adimages.py +0 -63
  53. direct_cli-0.1.2/scripts/release_pypi.sh +0 -116
  54. direct_cli-0.1.2/setup.cfg +0 -4
  55. direct_cli-0.1.2/tests/__init__.py +0 -1
  56. direct_cli-0.1.2/tests/test_cli.py +0 -65
  57. {direct_cli-0.1.2 → direct_cli-0.2.2}/.env.example +0 -0
  58. {direct_cli-0.1.2 → direct_cli-0.2.2}/MANIFEST.in +0 -0
  59. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/__init__.py +0 -0
  60. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/api.py +0 -0
  61. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli/commands/__init__.py +0 -0
  62. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli.egg-info/dependency_links.txt +0 -0
  63. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli.egg-info/requires.txt +0 -0
  64. {direct_cli-0.1.2 → direct_cli-0.2.2}/direct_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: direct-cli
3
- Version: 0.1.2
3
+ Version: 0.2.2
4
4
  Summary: Command-line interface for Yandex Direct API
5
5
  Author: axisrow
6
6
  License: MIT
@@ -58,9 +58,11 @@ YANDEX_DIRECT_LOGIN=your_yandex_login
58
58
  Or pass credentials directly per command:
59
59
 
60
60
  ```bash
61
- direct-cli --token YOUR_TOKEN --login YOUR_LOGIN campaigns get
61
+ direct --token YOUR_TOKEN --login YOUR_LOGIN campaigns get
62
62
  ```
63
63
 
64
+ Install with `pip install direct-cli`, then run commands with `direct`.
65
+
64
66
  ### Global Options
65
67
 
66
68
  | Option | Description |
@@ -71,63 +73,67 @@ direct-cli --token YOUR_TOKEN --login YOUR_LOGIN campaigns get
71
73
 
72
74
  ### Usage
73
75
 
74
- All commands follow the pattern: `direct-cli <resource> <action> [options]`
76
+ All commands follow the pattern: `direct <resource> <action> [options]`
77
+
78
+ Plugin-compatible aliases are also available for integrations that expect
79
+ canonical MCP-facing names: `dynamictargets`, `smarttargets`,
80
+ `negativekeywords`, `list`, `checkcamp`, `checkdict`, and `has-volume`.
75
81
 
76
82
  #### Campaigns
77
83
 
78
84
  ```bash
79
85
  # Get campaigns
80
- direct-cli campaigns get
81
- direct-cli campaigns get --status ACTIVE
82
- direct-cli campaigns get --ids 1,2,3 --format table
83
- direct-cli campaigns get --fetch-all --format csv --output campaigns.csv
86
+ direct campaigns get
87
+ direct campaigns get --status ACTIVE
88
+ direct campaigns get --ids 1,2,3 --format table
89
+ direct campaigns get --fetch-all --format csv --output campaigns.csv
84
90
 
85
91
  # Create (use --dry-run to preview the request)
86
- direct-cli campaigns add --name "My Campaign" --start-date 2024-02-01 --type TEXT_CAMPAIGN --budget 1000
87
- direct-cli campaigns add --name "My Campaign" --start-date 2024-02-01 --dry-run
92
+ direct campaigns add --name "My Campaign" --start-date 2024-02-01 --type TEXT_CAMPAIGN --budget 1000
93
+ direct campaigns add --name "My Campaign" --start-date 2024-02-01 --dry-run
88
94
 
89
95
  # Update / lifecycle
90
- direct-cli campaigns update --id 12345 --name "New Name"
91
- direct-cli campaigns suspend --id 12345
92
- direct-cli campaigns resume --id 12345
93
- direct-cli campaigns archive --id 12345
94
- direct-cli campaigns unarchive --id 12345
95
- direct-cli campaigns delete --id 12345
96
+ direct campaigns update --id 12345 --name "New Name"
97
+ direct campaigns suspend --id 12345
98
+ direct campaigns resume --id 12345
99
+ direct campaigns archive --id 12345
100
+ direct campaigns unarchive --id 12345
101
+ direct campaigns delete --id 12345
96
102
  ```
97
103
 
98
104
  #### Ad Groups
99
105
 
100
106
  ```bash
101
- direct-cli adgroups get --campaign-ids 1,2,3 --limit 50
102
- direct-cli adgroups add --name "Group 1" --campaign-id 12345 --dry-run
103
- direct-cli adgroups update --id 67890 --name "New Name"
104
- direct-cli adgroups delete --id 67890
107
+ direct adgroups get --campaign-ids 1,2,3 --limit 50
108
+ direct adgroups add --name "Group 1" --campaign-id 12345 --dry-run
109
+ direct adgroups update --id 67890 --name "New Name"
110
+ direct adgroups delete --id 67890
105
111
  ```
106
112
 
107
113
  #### Ads
108
114
 
109
115
  ```bash
110
- direct-cli ads get --campaign-ids 1,2,3
111
- direct-cli ads get --adgroup-ids 45678 --format table
112
- direct-cli ads add --adgroup-id 12345 --type TEXT_AD --title "Title" --text "Ad text" --href "https://example.com" --dry-run
113
- direct-cli ads update --id 99999 --status PAUSED
114
- direct-cli ads delete --id 99999
116
+ direct ads get --campaign-ids 1,2,3
117
+ direct ads get --adgroup-ids 45678 --format table
118
+ direct ads add --adgroup-id 12345 --type TEXT_AD --title "Title" --text "Ad text" --href "https://example.com" --dry-run
119
+ direct ads update --id 99999 --status PAUSED
120
+ direct ads delete --id 99999
115
121
  ```
116
122
 
117
123
  #### Keywords
118
124
 
119
125
  ```bash
120
- direct-cli keywords get --campaign-ids 1,2,3
121
- direct-cli keywords add --adgroup-id 12345 --keyword "buy laptop" --bid 10.50 --dry-run
122
- direct-cli keywords update --id 88888 --bid 15.00
123
- direct-cli keywords delete --id 88888
126
+ direct keywords get --campaign-ids 1,2,3
127
+ direct keywords add --adgroup-id 12345 --keyword "buy laptop" --bid 10.50 --dry-run
128
+ direct keywords update --id 88888 --bid 15.00
129
+ direct keywords delete --id 88888
124
130
  ```
125
131
 
126
132
  #### Reports
127
133
 
128
134
  ```bash
129
135
  # Get a report (saved to file)
130
- direct-cli reports get \
136
+ direct reports get \
131
137
  --type CAMPAIGN_PERFORMANCE_REPORT \
132
138
  --from 2024-01-01 --to 2024-01-31 \
133
139
  --name "January Report" \
@@ -135,7 +141,7 @@ direct-cli reports get \
135
141
  --format csv --output report.csv
136
142
 
137
143
  # List available report types
138
- direct-cli reports list-types
144
+ direct reports list-types
139
145
  ```
140
146
 
141
147
  Available report types: `CAMPAIGN_PERFORMANCE_REPORT`, `ADGROUP_PERFORMANCE_REPORT`, `AD_PERFORMANCE_REPORT`, `CRITERIA_PERFORMANCE_REPORT`, `CUSTOM_REPORT`, `REACH_AND_FREQUENCY_CAMPAIGN_REPORT`, `SEARCH_QUERY_PERFORMANCE_REPORT`
@@ -144,21 +150,21 @@ Available report types: `CAMPAIGN_PERFORMANCE_REPORT`, `ADGROUP_PERFORMANCE_REPO
144
150
 
145
151
  ```bash
146
152
  # Reference dictionaries
147
- direct-cli dictionaries get --names Currencies,GeoRegions
153
+ direct dictionaries get --names Currencies,GeoRegions
148
154
 
149
155
  # Client info
150
- direct-cli clients get --fields ClientId,Login,Currency
156
+ direct clients get --fields ClientId,Login,Currency
151
157
 
152
158
  # Changes feed
153
- direct-cli changes get --campaign-ids 1,2,3
159
+ direct changes get --campaign-ids 1,2,3
154
160
 
155
161
  # Retargeting lists
156
- direct-cli retargeting get --limit 10
162
+ direct retargeting get --limit 10
157
163
 
158
164
  # Ad extensions, sitelinks, vCards, images, creatives, feeds, bids, etc.
159
- direct-cli adextensions get
160
- direct-cli sitelinks get --ids 1,2,3
161
- direct-cli bids get --campaign-ids 1,2,3
165
+ direct adextensions get
166
+ direct sitelinks get --ids 1,2,3
167
+ direct bids get --campaign-ids 1,2,3
162
168
  ```
163
169
 
164
170
  ### Output Formats
@@ -173,15 +179,15 @@ All `get` commands support `--format`:
173
179
  | `tsv` | TSV |
174
180
 
175
181
  ```bash
176
- direct-cli campaigns get --format table
177
- direct-cli campaigns get --format csv --output campaigns.csv
182
+ direct campaigns get --format table
183
+ direct campaigns get --format csv --output campaigns.csv
178
184
  ```
179
185
 
180
186
  ### Pagination
181
187
 
182
188
  ```bash
183
- direct-cli campaigns get --limit 10 # first 10 results
184
- direct-cli campaigns get --fetch-all # all pages
189
+ direct campaigns get --limit 10 # first 10 results
190
+ direct campaigns get --fetch-all # all pages
185
191
  ```
186
192
 
187
193
  ### ⚠️ Destructive Commands
@@ -203,7 +209,7 @@ Commands that affect bids and spending: `bids set`, `keywordbids set`, `bidmodif
203
209
  Use `--dry-run` on `add` / `update` commands to preview the API request before sending:
204
210
 
205
211
  ```bash
206
- direct-cli campaigns add --name "Test" --start-date 2024-01-01 --dry-run
212
+ direct campaigns add --name "Test" --start-date 2024-01-01 --dry-run
207
213
  ```
208
214
 
209
215
  ### Release Process
@@ -264,9 +270,11 @@ YANDEX_DIRECT_LOGIN=ваш_логин_на_яндексе
264
270
  Или передавайте credentials напрямую в команду:
265
271
 
266
272
  ```bash
267
- direct-cli --token ВАШ_ТОКЕН --login ВАШ_ЛОГИН campaigns get
273
+ direct --token ВАШ_ТОКЕН --login ВАШ_ЛОГИН campaigns get
268
274
  ```
269
275
 
276
+ Установка остаётся через `pip install direct-cli`, а запуск команд теперь идет через `direct`.
277
+
270
278
  ### Глобальные опции
271
279
 
272
280
  | Опция | Описание |
@@ -277,63 +285,67 @@ direct-cli --token ВАШ_ТОКЕН --login ВАШ_ЛОГИН campaigns get
277
285
 
278
286
  ### Использование
279
287
 
280
- Все команды следуют шаблону: `direct-cli <ресурс> <действие> [опции]`
288
+ Для интеграций доступны и alias-имена, совместимые с MCP-контрактом:
289
+ `dynamictargets`, `smarttargets`, `negativekeywords`, `list`, `checkcamp`,
290
+ `checkdict`, `has-volume`.
291
+
292
+ Все команды следуют шаблону: `direct <ресурс> <действие> [опции]`
281
293
 
282
294
  #### Кампании
283
295
 
284
296
  ```bash
285
297
  # Получить кампании
286
- direct-cli campaigns get
287
- direct-cli campaigns get --status ACTIVE
288
- direct-cli campaigns get --ids 1,2,3 --format table
289
- direct-cli campaigns get --fetch-all --format csv --output campaigns.csv
298
+ direct campaigns get
299
+ direct campaigns get --status ACTIVE
300
+ direct campaigns get --ids 1,2,3 --format table
301
+ direct campaigns get --fetch-all --format csv --output campaigns.csv
290
302
 
291
303
  # Создать (--dry-run покажет запрос без отправки)
292
- direct-cli campaigns add --name "Моя кампания" --start-date 2024-02-01 --type TEXT_CAMPAIGN --budget 1000
293
- direct-cli campaigns add --name "Моя кампания" --start-date 2024-02-01 --dry-run
304
+ direct campaigns add --name "Моя кампания" --start-date 2024-02-01 --type TEXT_CAMPAIGN --budget 1000
305
+ direct campaigns add --name "Моя кампания" --start-date 2024-02-01 --dry-run
294
306
 
295
307
  # Обновление и управление статусом
296
- direct-cli campaigns update --id 12345 --name "Новое название"
297
- direct-cli campaigns suspend --id 12345
298
- direct-cli campaigns resume --id 12345
299
- direct-cli campaigns archive --id 12345
300
- direct-cli campaigns unarchive --id 12345
301
- direct-cli campaigns delete --id 12345
308
+ direct campaigns update --id 12345 --name "Новое название"
309
+ direct campaigns suspend --id 12345
310
+ direct campaigns resume --id 12345
311
+ direct campaigns archive --id 12345
312
+ direct campaigns unarchive --id 12345
313
+ direct campaigns delete --id 12345
302
314
  ```
303
315
 
304
316
  #### Группы объявлений
305
317
 
306
318
  ```bash
307
- direct-cli adgroups get --campaign-ids 1,2,3 --limit 50
308
- direct-cli adgroups add --name "Группа 1" --campaign-id 12345 --dry-run
309
- direct-cli adgroups update --id 67890 --name "Новое название"
310
- direct-cli adgroups delete --id 67890
319
+ direct adgroups get --campaign-ids 1,2,3 --limit 50
320
+ direct adgroups add --name "Группа 1" --campaign-id 12345 --dry-run
321
+ direct adgroups update --id 67890 --name "Новое название"
322
+ direct adgroups delete --id 67890
311
323
  ```
312
324
 
313
325
  #### Объявления
314
326
 
315
327
  ```bash
316
- direct-cli ads get --campaign-ids 1,2,3
317
- direct-cli ads get --adgroup-ids 45678 --format table
318
- direct-cli ads add --adgroup-id 12345 --type TEXT_AD --title "Заголовок" --text "Текст объявления" --href "https://example.com" --dry-run
319
- direct-cli ads update --id 99999 --status PAUSED
320
- direct-cli ads delete --id 99999
328
+ direct ads get --campaign-ids 1,2,3
329
+ direct ads get --adgroup-ids 45678 --format table
330
+ direct ads add --adgroup-id 12345 --type TEXT_AD --title "Заголовок" --text "Текст объявления" --href "https://example.com" --dry-run
331
+ direct ads update --id 99999 --status PAUSED
332
+ direct ads delete --id 99999
321
333
  ```
322
334
 
323
335
  #### Ключевые слова
324
336
 
325
337
  ```bash
326
- direct-cli keywords get --campaign-ids 1,2,3
327
- direct-cli keywords add --adgroup-id 12345 --keyword "купить ноутбук" --bid 10.50 --dry-run
328
- direct-cli keywords update --id 88888 --bid 15.00
329
- direct-cli keywords delete --id 88888
338
+ direct keywords get --campaign-ids 1,2,3
339
+ direct keywords add --adgroup-id 12345 --keyword "купить ноутбук" --bid 10.50 --dry-run
340
+ direct keywords update --id 88888 --bid 15.00
341
+ direct keywords delete --id 88888
330
342
  ```
331
343
 
332
344
  #### Отчёты
333
345
 
334
346
  ```bash
335
347
  # Сформировать отчёт (сохраняется в файл)
336
- direct-cli reports get \
348
+ direct reports get \
337
349
  --type CAMPAIGN_PERFORMANCE_REPORT \
338
350
  --from 2024-01-01 --to 2024-01-31 \
339
351
  --name "Отчёт за январь" \
@@ -341,7 +353,7 @@ direct-cli reports get \
341
353
  --format csv --output report.csv
342
354
 
343
355
  # Список доступных типов отчётов
344
- direct-cli reports list-types
356
+ direct reports list-types
345
357
  ```
346
358
 
347
359
  Доступные типы: `CAMPAIGN_PERFORMANCE_REPORT`, `ADGROUP_PERFORMANCE_REPORT`, `AD_PERFORMANCE_REPORT`, `CRITERIA_PERFORMANCE_REPORT`, `CUSTOM_REPORT`, `REACH_AND_FREQUENCY_CAMPAIGN_REPORT`, `SEARCH_QUERY_PERFORMANCE_REPORT`
@@ -350,21 +362,21 @@ direct-cli reports list-types
350
362
 
351
363
  ```bash
352
364
  # Справочники
353
- direct-cli dictionaries get --names Currencies,GeoRegions
365
+ direct dictionaries get --names Currencies,GeoRegions
354
366
 
355
367
  # Информация о клиенте
356
- direct-cli clients get --fields ClientId,Login,Currency
368
+ direct clients get --fields ClientId,Login,Currency
357
369
 
358
370
  # Лента изменений
359
- direct-cli changes get --campaign-ids 1,2,3
371
+ direct changes get --campaign-ids 1,2,3
360
372
 
361
373
  # Списки ретаргетинга
362
- direct-cli retargeting get --limit 10
374
+ direct retargeting get --limit 10
363
375
 
364
376
  # Расширения объявлений, быстрые ссылки, визитки, изображения, ставки и т.д.
365
- direct-cli adextensions get
366
- direct-cli sitelinks get --ids 1,2,3
367
- direct-cli bids get --campaign-ids 1,2,3
377
+ direct adextensions get
378
+ direct sitelinks get --ids 1,2,3
379
+ direct bids get --campaign-ids 1,2,3
368
380
  ```
369
381
 
370
382
  ### Форматы вывода
@@ -379,15 +391,15 @@ direct-cli bids get --campaign-ids 1,2,3
379
391
  | `tsv` | TSV |
380
392
 
381
393
  ```bash
382
- direct-cli campaigns get --format table
383
- direct-cli campaigns get --format csv --output campaigns.csv
394
+ direct campaigns get --format table
395
+ direct campaigns get --format csv --output campaigns.csv
384
396
  ```
385
397
 
386
398
  ### Пагинация
387
399
 
388
400
  ```bash
389
- direct-cli campaigns get --limit 10 # первые 10 результатов
390
- direct-cli campaigns get --fetch-all # все страницы
401
+ direct campaigns get --limit 10 # первые 10 результатов
402
+ direct campaigns get --fetch-all # все страницы
391
403
  ```
392
404
 
393
405
  ### ⚠️ Опасные команды
@@ -409,7 +421,7 @@ direct-cli campaigns get --fetch-all # все страницы
409
421
  Используйте `--dry-run` в командах `add` / `update`, чтобы увидеть тело запроса до отправки:
410
422
 
411
423
  ```bash
412
- direct-cli campaigns add --name "Тест" --start-date 2024-01-01 --dry-run
424
+ direct campaigns add --name "Тест" --start-date 2024-01-01 --dry-run
413
425
  ```
414
426
 
415
427
  ### Публикация на PyPI