Context
direct-cli 0.3.8 introduced strict WSDL parity for ads add (PR #190, #196) and removed the free-form --json flag. Current typed flags cover --type, --title, --text, --href, --image-hash, --action, --tracking-url, --age-label.
This is insufficient to create production-grade ads via CLI. Fields available in WSDL TextAdAdd / TextAdUpdate but unreachable from CLI today:
| WSDL field |
Used for |
Type |
Title2 |
Second headline (TEXT_AD) |
string |
SitelinkSetId |
Sitelinks attached to the ad |
int64 |
AdExtensions |
Callouts and other ad extensions |
array of int64 |
VCardId |
Business card |
int64 |
TurboPageId |
Turbo page |
int64 |
DisplayUrlPath |
Display URL path |
string |
Mobile |
Mobile flag |
YES_NO |
Real-world impact: yandex-direct-mcp-plugin (downstream) cannot create ads with images, sitelinks, or callouts — they have to be filled in manually via the Direct web UI after ads add.
Proposed flags (typed, mirroring WSDL)
--title2 TEXT Second title (TEXT_AD)
--display-url-path TEXT Display URL path (TEXT_AD / TEXT_IMAGE_AD)
--mobile [YES|NO] Mobile-targeted flag (TEXT_AD)
--vcard-id INTEGER VCard ID (TEXT_AD)
--turbo-page-id INTEGER Turbo page ID (TEXT_AD / DYNAMIC_TEXT_AD)
--sitelink-set-id INTEGER Sitelink set ID (TEXT_AD)
--ad-extensions TEXT Comma-separated AdExtension IDs (TEXT_AD)
Apply the same per---type validation already in place: e.g. --title2 and --sitelink-set-id only on TEXT_AD, schema-gated.
Alternative
If adding 7+ flags is too noisy, consider a narrow --extensions-json for the small subset of "complex" fields (AdExtensions, Sitelinks), keeping simple scalars (Title2, Mobile, etc.) as flags. This would partially relax the strict WSDL parity policy but is a pragmatic middle ground.
Downstream
Tracked in yandex-direct-mcp-plugin: axisrow/yandex-direct-mcp-plugin#106 (section B1).
🤖 Generated with Claude Code
Context
direct-cli0.3.8 introduced strict WSDL parity forads add(PR #190, #196) and removed the free-form--jsonflag. Current typed flags cover--type,--title,--text,--href,--image-hash,--action,--tracking-url,--age-label.This is insufficient to create production-grade ads via CLI. Fields available in WSDL
TextAdAdd/TextAdUpdatebut unreachable from CLI today:Title2SitelinkSetIdAdExtensionsVCardIdTurboPageIdDisplayUrlPathMobileReal-world impact: yandex-direct-mcp-plugin (downstream) cannot create ads with images, sitelinks, or callouts — they have to be filled in manually via the Direct web UI after
ads add.Proposed flags (typed, mirroring WSDL)
Apply the same per-
--typevalidation already in place: e.g.--title2and--sitelink-set-idonly onTEXT_AD, schema-gated.Alternative
If adding 7+ flags is too noisy, consider a narrow
--extensions-jsonfor the small subset of "complex" fields (AdExtensions,Sitelinks), keeping simple scalars (Title2,Mobile, etc.) as flags. This would partially relax the strict WSDL parity policy but is a pragmatic middle ground.Downstream
Tracked in yandex-direct-mcp-plugin: axisrow/yandex-direct-mcp-plugin#106 (section B1).
🤖 Generated with Claude Code