Ad Naming Patterns
Create dynamic ad names using template variables that extract and transform parts of your filenames.
Basic Variables
| Variable | Description | Example |
|---|---|---|
{filename} | Full filename without extension | summer_sale_v1.mp4 → summer_sale_v1 |
{index} | Sequential number | 1, 2, 3... |
{index:01} | Padded number starting from 1 | 01, 02, 03... |
{date} | Current date | 2026-01-13 |
{date:short} | Short date | 01-13 |
Extract Parts with Split
Use {split:DELIMITER:POSITION} to extract specific parts of a filename.
Syntax: {split:_:2} splits by _ and returns the 2nd part (1-based index).
Example
For a file named summer_sale_video_banner_9x16.mp4:
| Variable | Result |
|---|---|
{split:_:1} | summer |
{split:_:2} | sale |
{split:_:3} | video |
{split:_:4} | banner |
Multi-character delimiters are supported:
{split: - :1}splits by-(space-dash-space)
Transform Text
Transform filenames or extracted parts with case conversion.
| Variable | Description | Example |
|---|---|---|
{titlecase:} | Convert to Title Case | hello_world → Hello_world |
{uppercase:} | Convert to UPPERCASE | hello → HELLO |
{lowercase:} | Convert to lowercase | HELLO → hello |
Empty transforms default to filename. For example, {uppercase:} converts the entire filename to uppercase.
Combining Variables
Wrap {split:} inside a transform to extract AND convert:
{titlecase:{split:_:3}}
For file brand_campaign_lifestyle_product.mp4:
{split:_:3}→lifestyle{titlecase:{split:_:3}}→Lifestyle
Real-World Examples
Structured Naming Template
Files: brand_campaign_lifestyle_product_9x16.mp4
Pattern: Ad|Style: {titlecase:{split:_:3}}|Type: {titlecase:{split:_:4}}
Result: Ad|Style: Lifestyle|Type: Product
Simple Uppercase Naming
Files: summer_sale.mp4
Pattern: {uppercase:}
Result: SUMMER_SALE
Indexed Naming
Pattern: Ad {index:01} - {filename}
Result: Ad 01 - summer_sale, Ad 02 - winter_promo
Tips
- Position is 1-based: First part is
1, not0 - Missing parts return empty: If you request
{split:_:10}but only 3 parts exist, it returns nothing - Case transforms are optional: You can use
{split:}alone without wrapping in a transform