> ## Documentation Index
> Fetch the complete documentation index at: https://docs.solidyne.ar/llms.txt
> Use this file to discover all available pages before exploring further.

# Commercial Campaign Programming

> How to register clients, schedule ads and generate commercial logs (.log) in Admicom

This section allows you to **create Client Records**, **define ad scheduling** and **generate commercial log files** (`.log`). Before starting, ensure you have configured:

* The **commercial breaks grid** in **Station Settings → Commercial Breaks**.
* **Client categories** (and their **priorities**) in **Commercial Settings → Client Category**.
* **Business categories** in **Commercial Settings → Business Category**.
* **Payment methods** in **Commercial Settings → Payment Method**.

***

## Client Record

Access **Campaign Programming → Client** to register a client in the Admicom database.\
Each client is associated with a **Category**, and **that category defines the broadcast priority** for all their ads. This priority is used when:

* Multiple commercials in the **same business category** compete for a break that **does not accept repeated categories**.
* Two or more ads with the **same "position in break"** compete within the same break.

Complete the form and click **Save** to confirm.

***

## Commercial (Campaign Scheduling)

The core of Admicom is in **Campaign Programming → Commercial**. Here you define **what is broadcast, when and how**.

### Main Data

* **Station**: station where the ad will air (abbreviation and full name).
* **Agency**: advertising agency (optional).
* **Client**: ad owner (must exist in "Client").
* **Name**: campaign identifier (e.g., *Celuphone Father's Day*).
* **Category**: associated business category.
* **Executive**: salesperson who negotiated the schedule (optional).
* **Internal No. / Agency Order No.**: administrative references.
* **Origin**: grouping label (e.g., *Barter*, *Government Ad*, *Public Service*).
* **Payment Method**: taken from commercial settings.
* **Comments**: free text.
* **Gross**: **fixed monthly** amount (if applicable). **Adds** to variable per-second rate.
* **Agency Comm.**: agency commission percentage.
* **Discounts**: amount of applied discounts.

### Scheduling Window Controls

* **Search Campaign**: lists active ads; can filter by **Station**, **Client** or **File**.
  * **Active** (default): shows **current and future** ads.\
    If you disable **Active**, you'll also see **expired contracts** (in red).\
    After changing this option, click **Search** again to refresh results.
  * To review/modify an ad, **double click** the result.
* **New**: clears fields to enter a new ad from scratch.
* **Modify**: edits current ad schedule.
* **Delete**: removes current ad schedule.
* **Copy**: duplicates schedule to **replicate across other stations** in the network.
* **Cancel and Replace**: clones campaign to **modify without losing history**.\
  Original becomes `[order]/0`; replacement becomes `[order]/1`, and so on.\
  Effectively **splits** campaign into past (until today, `/0`) and **new scheme** from tomorrow (`/1`).

***

## Ad Campaign

You can combine two scheduling methods: **Detailed Programming** (specific day/time) and **Simple Programming** (general rules).\
If an ad is scheduled **in both modes**, **the spots are added together**.

### Detailed Programming

Allows assigning spots **on specific dates and time slots** within a month.

1. **Select the month** in the calendar.
2. Click **New** to create a detailed schedule.
3. Complete the parameters:

**Available Parameters**

* **Commercial Type**:
  * **Conventional (Audio)**, **Live Read** or **Sponsorship**.
* **File and Duration**: select audio; duration is automatically filled.\
  Controls available to **preview** the file.
* **Start / End Time**: time range for this detailed schedule.
* **Rate/Sec**: **per-second** rate valid for these spots.
* **Position in Break**: *Start*, *Second Spot*, *Next-to-Last*, *Close* or *Any*.\
  If there's competition for same position, order is by client's **category priority**.
* **Live Read Text**: for live mentions, this is the text shown to the announcer in WebTools.

<Note>
  **Sponsorships**: to air they must be **at exact times** and **a break must exist** at that time. Sponsorships do **not** appear in commercial logs; they are reported through **sponsorship reports**.
</Note>

In the month grid, each cell represents a **day** within the chosen **time range**: **enter the number of spots** per cell.\
This mode facilitates adjustments for **peak audiences** or **daily targets**.

***

### Simple Programming

Defines general airing rules (by **validity**, **days**, **time range**, **programs** or **exact time**).

**Common Fields**

* **Commercial Type**: Conventional, Live Read or Sponsorship.
* **File and Duration**: duration auto-fills when loading audio.
* **Position in Break**: *Start*, *Second Spot*, *Next-to-Last*, *Close*, *Any*.\
  Ties are resolved by client's **category** priority.
* **Announcer**: identifies **male** or **female** voice (useful for Live Reads).
* **Start Date / End Date**: schedule validity.\
  Leave **End Date empty** for **indefinite** continuity.
* **Rate/Sec**: amount to bill per second for each airing.
* **Live Read Text**: text shown to announcer in WebTools.
* **Days of Week**: select which days it airs.

**Scheduling Modes**

* **By TIME RANGE**\
  Define an interval (e.g., 10:00-22:00) and **number of insertions** in that range (e.g., 4).\
  If the number **matches** the **number of breaks** in that range, typical distribution will be **one spot per break**.

  <Note>
    You can **count breaks** in a day by checking **LOG** files in **CyberPlay Editor** (breaks are numbered during generation).
  </Note>
* **By PROGRAM**\
  Associates ad with **programs/segments** defined in **Station Settings → Commercial Breaks**.\
  Operational advantage: **if program changes day or time**, ads **automatically relocate** without editing each schedule.
* **By EXACT TIME**\
  **Specific times** when the ad should be scheduled are specified.\
  **Obviously, a break must exist** for that time.\
  **If no break exists**, the ad will be scheduled in **the closest break**.\
  To **enter a time**, type it in the field and click **"Add Time"** to include it in the list.\
  **"Delete Time"** removes the selected time from the list.

***

## Best Practices and Reminders

* Combine **Simple Programming** (global rules) with **Detailed** (fine day/time control) to tune **coverage** and **frequency**.
* Respect **minutes per hour limits** (defined by regulations or "Maximum Break Time" in station).\
  Admicom **won't exceed** this limit; if saturated, it will reject ads by **priority**.
* Use **"Cancel and Replace"** to **version campaigns** without losing records; avoid directly editing historical campaigns.

***

## Special Ad Programming Functions

### Alternating Ads

You can manually enter two or more different ads in the file field, separated by a **pipe** character (`|`). This will schedule both ads in alternating fashion. The limit of ads depends on the title field length. File names must be typed manually, without extension.

**Example:**\
`YPF-1|YPF-2`\
This will alternate between ads `YPF-1` and `YPF-2`.

***

### Concatenated Ads

You can link up to two ads to be scheduled one after another. Ad names are written consecutively separated by the `>` (greater than) sign. File extension is not needed.

**Example:**\
`ad1>ad2`

This will generate the following sequence in the break:

* `AD1`
* `AD2`

File names can also be combined with AUDICOM commands. This is useful for time, temperature announcements, etc.

**Example:**\
`WEATHER_SPONSOR>/TEMP`

Will generate in the log:

* `WEATHER_SPONSOR`
* `/TEMP`

***

### AUDICOM Commands

Some AUDICOM commands can be scheduled as commercial ads. They are entered manually instead of a filename. It's recommended to create a dedicated category for these commands.

* **Meteor:** Commands like `/Time`, `/Temp`, `/Hum`, `/Pres`, `/Meteor` schedule weather announcements with pre-recorded voices.\
  Create a special campaign with client `AUDICOM` and schedule commands by air time.

* **Random:** The command `/RND,<Folder>,<Quantity>` plays a random file from the specified folder.\
  Example: `/RND,Road Safety,1`\
  Each time it's scheduled, it will air a randomly selected file from the `Road Safety` folder.

* **Pauses:** The `/Pause` command inserts a pause in the commercial break, temporarily stopping playback in the On-Air program.

***

## Generate Break

(Campaign Programming -> Generate Break) Here you generate the commercial programming files used by the AUDICOM On-Air terminal to build the integrated grid in CyberPlay (breaks + music + live events).

**Steps:**

1. Define in `Start Date` and `End Date` the range of days to generate commercial logs. By default only current day's log is created, but a full week can be generated.
2. Select from the list the stations for which logs will be generated.
3. Click **Generate**. Admicom will produce commercial log files (`.log`) for selected days.

Generated breaks can be viewed in the **CyberPlay Editor** module, which shows the integrated grid (breaks, music, events). Additionally, the **Aaudit** module provides reports of what actually aired.

***

### Rejected Ads

After break generation completes, a report shows rejected ads, indicating client and corresponding break/segment. Causes may be:

* **SEC:** Time exceeded. Maximum allowed advertising per hour reached (defined in `Station Settings -> Station`). All breaks in that hour will reject new ads.
* **CAT:** Category conflict. Two ads in same category trying to enter a break that doesn't allow repetition. Only highest priority will air.
* **POS:** Position conflict. Two ads with same priority and position compete in a break. Review category priorities or change break position.
* **REP:** Repeated ad. Same ad attempted to schedule twice in same break, which is not allowed.
