---
name: reklamy
description: Breaks down a competitor's video ad shot by shot (hook, beats, camera, text on screen, voice-over, pacing, offer) and writes ready prompts for Google's Gemini Omni Flash video model that rebuild the same ad, beat for beat, with the user's own product. Can also swap the avatar (who is on screen) and the awareness stage (unaware, problem aware, solution aware, product aware, most aware). Use when the user says "skopiuj tę reklamę", "rozbierz reklamę konkurencji", "zrób mi taką reklamę z moim produktem", "copy this ad", "recreate this competitor ad", or pastes or links an ad video.
author: Dawid Gac
license: MIT
---

# Reklamy: copy a competitor's ad with your own product

Author: Dawid Gac · https://dawidgac.com/pl/skills

You take an ad that already works for someone else and rebuild its structure for the user's product. You copy the structure: timing, shot types, order of beats, pacing, type of hook. You never copy the brand: its name, logo, slogans, people, reviews or claims. Talk to the user in their language (Polish if they write Polish). Write the video prompts themselves in English, because Google says only English is fully tested for Omni; the spoken lines and on-screen text can stay in the user's language.

## 0. Collect the inputs (one message, skip what you already have)

1. The ad: a video file (best) or a link. Links from TikTok, Instagram, Facebook Ad Library or YouTube work if yt-dlp can download them; if not, ask for a screen recording.
2. Their product: name, what it does, price and offer, 1-3 product photos (a clean photo on a plain background works best), and the claims that are TRUE for it (numbers, guarantee, delivery time).
3. Optional: who the ad should speak to (avatar), which awareness stage, format 9:16 or 16:9 (default 9:16).

Never invent a product fact. A missing fact stays a `[TO FILL: ...]` slot in the prompt.

## 1. Break the ad down

With Python 3 and ffmpeg (run the script by its full path inside this skill's folder):

```
python3 <this skill's folder>/rozbierz.py <file or link> --out ad-breakdown --lang <pl|en>
```

It writes `shots.json` (each cut with start, end and length, plus pacing), one frame per shot (`shot-01.jpg` ...), `first.jpg`, `last.jpg`, `audio.wav`, and `transcript.json` when faster-whisper or whisper is installed. Open every frame and read the transcript. Without the script: ask the user for 6-10 screenshots plus the voice-over text, and estimate the timing from the video.

Fill this table, one row per shot. Copy text on screen and spoken words exactly, word for word.

| # | Time | Beat | Camera (shot size, angle, movement) | What happens | Text on screen | Voice-over / dialogue | Sound | Transition |
|---|---|---|---|---|---|---|---|---|

Beat is one of: HOOK, PROBLEM, AGITATE, REVEAL, DEMO, PROOF, BENEFIT, OFFER, CTA.

Then the whole-ad summary:
- **Hook (first 3 s):** what stops the scroll: a question, a bold claim, a visual pattern break, a demo, a result. Say why it works.
- **Beats in order:** e.g. HOOK > PROBLEM > DEMO > PROOF > OFFER > CTA.
- **Pacing:** number of shots, average shot length, cuts per 10 s (from shots.json).
- **Avatar:** who speaks or appears (age range, style, setting), and who the ad speaks to.
- **Awareness stage:** pick one and give the signal: names the product and price = most aware; compares with other solutions = solution aware; starts from a pain = problem aware; starts from a story or a surprise with no product talk = unaware.
- **Format:** UGC selfie, talking head, product demo, testimonial, before and after, street interview, animation.
- **Offer and CTA:** what is promised, what the viewer is told to do.

## 2. Mark what must change (always, before writing any prompt)

List every brand element and its replacement:
- brand name, logo, website address, slogans, product design details that belong to them: replace with the user's own;
- real people: never recreate the face, voice or name of a real person (a celebrity, an influencer, the competitor's creator). Write a new, fictional character. Omni also refuses many uploads of recognisable people;
- reviews, star ratings, review counts, awards, "as seen on": remove, or use the user's own real numbers;
- claims (warranty, "holds 12 cards", certificates): only what is true for the user's product, otherwise `[TO FILL]`;
- music: describe the mood ("upbeat electronic beat"), never name a song.

Tell the user in one line: "I copy the structure, not the brand. Their logo, people, reviews and slogans are replaced."

## 3. Map the structure onto the user's product

Keep the timing, shot sizes, camera moves, beat order, the hook type and the pacing. For each row write what the user's product does in that slot. A demo of their product feature becomes a demo of the user's matching feature; if there is no matching feature, use the user's strongest true benefit and say you swapped it.

## 4. Swaps on request

**Avatar swap.** Change who is on screen and who the words are for. Keep the shot sizes and timing. Rewrite the spoken lines in that person's own words (age, situation, the way they talk). Describe the new character in full once (age, look, clothes, setting) and repeat the same description in every prompt block, so the character stays the same between clips.

**Awareness stage swap.** Rewrite the hook and the first beats; keep the demo and the CTA shape.

| Stage | What the hook does | Beats |
|---|---|---|
| Unaware | Opens on a specific moment (time, place, action) where the problem shows, without naming the product | SCENE > SYMPTOM > REVEAL > DEMO > CTA |
| Problem aware | Names the pain in the viewer's words and shows the symptom | PROBLEM > AGITATE > REVEAL > DEMO > PROOF > CTA |
| Solution aware | Shows why the usual fixes fail and what is different here | OTHER FIXES > WHY THEY FAIL > MECHANISM > DEMO > PROOF > CTA |
| Product aware | Answers the main doubt (price, quality, does it work for me) | DOUBT > PROOF > DEMO > OFFER > CTA |
| Most aware | Leads with the offer | OFFER > DEMO > URGENCY > CTA |

One ad does one job: one avatar, one awareness stage, one angle. Want more stages? Write a separate ad per stage. Suggested name for each version: `Product_Angle_Stage_Format_Hook_Avatar_v1`.

## 5. Write the Gemini Omni Flash prompts

Gemini Omni Flash makes clips of 4, 6, 8 or 10 seconds. Split the ad into blocks of at most 10 s at natural cuts (a 27 s ad = 3 blocks). Each block is one prompt. Rules from Google's prompt guide:
- Use timecodes for the cuts inside a block: `[0-2s] ... [2-4s] ...`. Without them, Omni invents its own cuts.
- Attach the product photo and refer to it as `<IMAGE_REF_0>`; the product must look exactly like the reference. A photo for the first frame is `<FIRST_FRAME>`.
- Put text on screen in quotes, exactly as it should read.
- Describe the sound: `Voice-over (warm male voice, Polish): "..."`, music mood, effects. Add `No other dialogue.` if needed.
- Negatives go into the prompt as plain sentences (`No logos other than the product. No subtitles.`).
- Repeat the character, setting and light description in every block.

Prompt template (one per block):

```
Vertical 9:16 ad, [style: e.g. bright handheld UGC filmed on a phone / clean studio product demo].
Character: [full description, the same in every block].
Product: the product shown in <IMAGE_REF_0>, exactly as in the reference. [colour, size, material].
[0-2s] [shot size, angle, camera move]: [action]. Text on screen: "[text]".
[2-4s] ...
Voice-over ([voice], [language]): "[line]".
Sound design: [music mood], [effects].
No logos or brand names other than "[user's brand]". No subtitles. No other text.
```

Known limits (seen in testing, 2026-10-20): Omni does not reliably write an invented brand name on a product (a prompt saying "NORDA" engraved came out as a different word), and without a product photo the colour can drift between shots. So always attach a real product photo as `<IMAGE_REF_0>`, keep the brand name off the product in the prompt, and add your real logo and price in the edit.

When the result is close but not right, edit in the same conversation with a short instruction, e.g. `Make the wallet black. Keep everything else the same.` Short edit prompts work better than long ones.

## 6. Where to generate (check prices on the day you use it)

- **Google Flow** (labs.google/fx/tools/flow): everyone gets 50 free Flow credits a day; Google's model page says all users can use Gemini Omni, and the 360p draft costs half the credits of 720p. Without a subscription you may not be able to make videos at peak hours (about 14:00-17:00 UTC). Start with 360p drafts, then 720p for the version you keep.
- **Gemini app** (gemini.google.com): Omni needs a paid Google AI plan.
- **Gemini API** (`gemini-omni-1.1-flash`): paid tier only, about $0.10 per second of 720p video.
- In the EU, UK and Switzerland, editing or extending a video you upload is blocked, so you cannot simply upload the competitor's ad and "swap the product". That is why this skill writes the clip from text and your product photo. That is also the clean way legally.
- The same block prompts also work in other video models; only drop the `<IMAGE_REF_0>` tag and attach the photo the way that tool expects.

## 7. What you give the user

1. The breakdown table and the summary (section 1).
2. The change list (section 2).
3. The prompts, one copy-ready block per clip, in order, with the clip length to choose (e.g. "Block 1: 10 s").
4. Any `[TO FILL]` slots in one list.
5. Three lines on how to put it together: generate each block, check that the product looks right, join the clips in order in any editor (CapCut, Premiere, DaVinci), add the user's real logo and price in the edit.

Checklist before you hand it over:
- no brand name, logo, website or slogan of the competitor in any prompt;
- no real person described or named;
- every number and claim is the user's own or marked `[TO FILL]`;
- every block is 10 s or shorter and has timecodes;
- the character description is identical in every block.
