AI Prompts Black Friday Prompt Library:
Turn last season’s Google Ads exports into a Black Friday plan.

Black Friday vs. Every Friday

Black Friday vs. Every Friday

See how far Black Friday breaks from a
normal Friday, on every metric.

Black Friday vs. Every Friday
smec Prompt Library Badge

How to use:

01

What can I use it for?

To see how big Black Friday really is in your account. It compares last year's Black Friday with every other Friday of the year, metric by metric, and shows each one as a multiple of a
typical Friday.

02

Why does it matter?

"Black Friday is big" isn't a plan. You need to know how much bigger, and where: more traffic, more buyers, bigger baskets or just higher costs. And whether efficiency rises with the volume, or falls.

03

What do I do with the results?

Size your Black Friday budget on how the day really behaves, not on a feeling. Check your targets and tracking against the spike. And tell your boss before the day whether to expect more revenue, better efficiency, or both.

Info icon Works with ChatGPT, Claude, Gemini and Google Antigravity. Use a paid plan.

# Every Friday Before Black Friday v1 · smec Seasonal Prompt Library
**Attachment:** one Google Ads CSV with one row per day, covering at least last year's Black Friday.
 
## ROLE
You are a Google Ads performance analyst. Compare Black Friday with every other Friday in the data, to show advertisers what to expect on the day and how to prepare.
 
## HARD RULE: compute, never estimate
Do the calculations in code from the CSV rather than typing numbers by hand. If you have no code-execution tool, stop and say: *"ERROR: Code execution environment not detected. To guarantee mathematical accuracy, this task must be run on a platform that can natively execute code—such as ChatGPT (with Data Analysis enabled), Claude Desktop, or Google Antigravity."*
 
## STEP 1 — Read the input
Attached is a Google Ads export (CSV) with one row per day. The first rows may be a report title and date range; the real header row contains "Day" plus metric columns such as Impr., Clicks, Conversions, Cost, Conv. value, CTR, Conv. rate, Avg. CPC, Value / conv. and Conv. value / cost. Numbers may contain thousands separators and % signs; a "Currency code" column gives the currency.
 
**Stop and refuse** if any of these is true:
1. There is no `Day` column.
2. Black Friday is not in the date range.
3. `Currency code` has more than one value.
When you stop, print this recipe with the year of the most recent completed Black Friday filled in, then wait:
 
> Google Ads → **Reports → Report editor → + → Table**
> Rows: `Day`
> Columns: `Impr.`, `Clicks`, `Conversions`, `Cost`, `Conv. value`, `CTR`, `Conv. rate`, `Avg. CPC`, `Value / conv.`, `Conv. value / cost`
> No other rows or segments.
> Date range: **1 Jan {YYYY}** to **31 Dec {YYYY}**
> Download → **.csv**, attach it here.
 
## STEP 2 — Compute (all in code)
* If a day has more than one row (e.g. the export is split by campaign or campaign type), add up the counts per day (Impr., Clicks, Conversions, Cost, Conv. value) and recalculate the rates from those totals: CTR = Clicks ÷ Impr., Avg. CPC = Cost ÷ Clicks, Value / conv. = Conv. value ÷ Conversions, ROAS = Conv. value ÷ Cost, and Conv. rate = Conversions ÷ Interactions (Google divides by interactions, not clicks, so drop Conv. rate if there is no `Interactions` column). Never add up or average the rates. Drop a rate whose inputs aren't in the file.
* Keep only Fridays. Black Friday is the day after the fourth Thursday of November; work it out from the dates rather than assuming.
* Baseline = the median of all other Fridays (median, not mean, so other promo spikes don't distort it).
* If the file holds more than one Black Friday, analyse the most recent completed one and leave the others out of the baseline.
* A Friday with zero cost or zero clicks is left out of the baseline. Any rate that would divide by zero is set to missing and drawn as no bar.
* Use whichever metrics are in the file. If ROAS (conv. value / cost) is missing but both inputs are there, compute it. Skip text columns.
## STEP 3 — Output
 
Chart
 
* A grid of small bar charts, one per metric, 2 columns. Volume metrics first (impressions, clicks, conversions, cost, conv. value), then efficiency metrics (ROAS, CTR, conv. rate, avg. CPC, value / conv.).
* Each chart: one bar per Friday in date order. Black Friday #4d40d2, other Fridays #b3b3b3, a thin dashed #5c5c66 line at the baseline.
* Label the Black Friday bar with its value and its multiple of the baseline (e.g. "GBP 23,671 · 23×").
* Readable axes: no scientific notation, thousands separators, the currency code from the file, % where relevant. A short title and a legend.
* Outliers: if a chart's tallest bar is more than 3× its second-tallest, end that chart's y-axis at 1.2× whichever is higher: the second-tallest bar or the Black Friday bar. Cut the tall bar at the top with a small white break mark and label it `↑ {value} ({date})`. Add one data-quality check per outlier naming the metric, date, value and that day's cost.
Output
 
* One HTML file, built from the OUTPUT SPEC below.
## OUTPUT SPEC (smec Seasonal Prompt Library · Output Spec v1)
 
**Format.** One HTML file, light mode only. No external libraries, CDN, web fonts or images. Charts are inline SVG. Build the HTML with your code from the template below. Keep its CSS, logo, sections, order and headings exactly, and add nothing before or after it. Copy the logo `<svg>` character for character. Never type a number into the HTML by hand.
 
**Delivery.** Show the finished report rendered on screen in this chat, so the user sees the page, not code. Use your platform's HTML preview (for example Canvas in ChatGPT or Gemini, or an Artifact in Claude), and put the exact HTML your code produced into it, unchanged. Don't paste the HTML source as text in the reply, and don't only offer a download link. Only if your platform can't render HTML at all, attach the .html file and say in one line that it opens in any web browser.
 
**Tone.** English, for PPC managers: technical, direct, no hedging, no marketing claims. Write "smec" in lowercase and "tROAS" with a lowercase t.
 
**Numbers.**
- Percentages have 1 decimal (`12.4%`), or 2 decimals under 1% (`0.81%`). Changes are in pp: `+3.2 pp`.
- Money has no decimals, a comma as thousands separator, and the currency code: `EUR 10,714`. Amounts under 10 get 2 decimals: `EUR 2.34`.
- Dates are written as `24 Nov 2025`. Weeks are written as their start date.
**Series colours**, in this order: `#4d40d2`, `#0f0f0f`, `#8478ff`, `#6b6b6b`, `#ada4fb`, `#b3b3b3`. Label each line at its right end, in its own colour.
 
**Highlights.**
- Focus period (e.g. the BF week):
 - in tables, give its cells the class `focus`;
 - in SVG, draw a `rect class="band"` behind it and label it above the plot.
- Thin or partial periods:
 - in tables, give their cells the class `thin`;
 - in SVG, draw a `rect class="hatch"` over them, with a label.
**SVG charts.**
- Use `viewBox="0 0 1000 H"` and `width="100%"`. In a grid of small charts (2 per row), use `viewBox="0 0 500 H"` for each chart.
- Use these classes: `line class="grid"` for gridlines, `text class="axis"` for axis labels, and `polyline class="line"` for data lines, with `stroke` set to the series colour.
- Every point is a `<circle r="4">` with a `<title>` holding its value.
- If a y-axis doesn't start at 0, say so in the chart's `.note`.
**Data-quality checks.** One `div class="flag"` per check, one line each. If a check found nothing, say so, e.g. `Thin weeks: none.`
 
**Template.** Replace the `{…}` placeholders. If there is only one chart, delete the Chart 2 line.
 
```html
<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>{Prompt name} · smec</title>
<style>
body{margin:0;font:15px/1.5 Rubik,system-ui,sans-serif;color:#0f0f0f;background:#fff}
header{background:#4d40d2;color:#fff;padding:20px 16px}
header>*,main{max-width:1100px;margin:0 auto}
header p{margin:0 auto;font-size:13px;opacity:.9}
header svg{display:block;height:30px;margin-bottom:2px}
header b{font-size:30px;font-weight:500;line-height:1;letter-spacing:-.5px;margin-right:6px}
header h1{margin:8px auto 4px;font-size:24px}
main{padding:0 16px 40px}
h2{font-size:18px;margin:32px 0 4px;padding-left:10px;border-left:4px solid #ebbf52}
.note,footer{font-size:13px;color:#5c5c66}
table{display:block;overflow-x:auto;border-collapse:collapse;font-size:13px}
th,td{padding:6px 8px;text-align:right;border-bottom:1px solid #e6e4f2}
th:first-child,td:first-child{text-align:left}
.s1{background:#d8d3ff}.s2{background:#ada4fb}.s3{background:#8478ff}.s4{background:#4d40d2;color:#fff}
.focus{outline:3px solid #ebbf52;outline-offset:-3px}
.thin{background-image:repeating-linear-gradient(45deg,transparent 0 4px,#0002 4px 5px)}
.flag{background:#fdf5e1;border-left:4px solid #ebbf52;padding:10px 12px;margin:6px 0}
footer{margin-top:40px;padding-top:12px;border-top:1px solid #e6e4f2}
.grid{stroke:#e6e4f2}.axis{fill:#5c5c66;font-size:12px}
.band{fill:#ebbf52;fill-opacity:.25}.hatch{fill:url(#hatch)}
.line{fill:none;stroke-width:2.5}
</style></head>
<body>
<svg width="0" height="0" style="position:absolute"><defs><pattern id="hatch" width="6" height="6" patternUnits="userSpaceOnUse" patternTransform="rotate(45)"><rect width="1" height="6" fill="#0f0f0f" fill-opacity=".2"/></pattern></defs></svg>
<header>
 <p><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144 151" aria-hidden="true"><linearGradient id="smec-g" x1="1.8" y1="145.2" x2="141.7" y2="5.2" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ebbf52"/><stop offset=".5" stop-color="#ebbf52" stop-opacity=".8"/><stop offset="1" stop-color="#ebbf52" stop-opacity=".1"/></linearGradient><path d="M135.3 1.2q-1.2 0-2.1.4L9.7 51.6a12 12 0 0 0-7.5 11.1v80.5a6 6 0 0 0 6 6q1.2 0 2.3-.4l123.4-50a12 12 0 0 0 7.4-11.1V7.2a6 6 0 0 0-6-6" fill="url(#smec-g)"/></svg><b>smec</b> · Seasonal Prompt Library</p>
 <h1>{Prompt name} {version}</h1>
 <p>{Season analysed} · {date range} · {file name}</p>
</header>
<main>
 <h2>{Chart 1 title}</h2><p class="note">{one-line how-to-read}</p>{CHART 1}
 <h2>{Chart 2 title}</h2><p class="note">{one-line how-to-read}</p>{CHART 2}
 <h2>Table</h2>{TABLES}
 <h2>Analysis</h2><p>{max 5 sentences}</p><h3>Actions</h3><ul>{3-5 li}</ul>
 <h2>Data-quality checks</h2>{one div.flag per check}
 <footer>Built with the smec Seasonal Prompt Library · {Prompt name} {version} · Run on {today}</footer>
</main>
</body></html>
```
 
What goes in the template slots
 
* Header: `{Prompt name} {version}` = `Every Friday Before Black Friday v1`. `{Season analysed}` = `Black Friday {YYYY} ({BF date})`. `{date range}` = first to last Friday in the file.
* Chart 1: title `Black Friday vs. every other Friday`. Note: `One bar per Friday. Dashed line = median of all other Fridays.`, followed by the legend. Put the grid in one `<div style="display:grid;grid-template-columns:1fr 1fr;gap:16px">` with one SVG per metric, and put the metric name as the short title inside each SVG. Each bar is a `rect` with a `<title>` holding its date and value. Draw a `rect class="band"` behind the Black Friday bar.
* Chart 2: none. Delete the Chart 2 line.
* Tables: one table. Rows are the metrics in chart order; columns are `Black Friday`, `Typical Friday (median)` and `Multiple`.
* Analysis: the key findings for an advertiser planning their next Black Friday: where the day has an outsized effect, and what expectations to set with management (e.g. how volume and efficiency move relative to each other).
* Actions: what to prepare for (budget, bids, tracking).
* Data-quality checks: the metrics used (and whether ROAS was computed), the rows dropped, the number of Fridays, and the Black Friday date. Also, where they apply: days merged from several rows, other Black Fridays left out of the baseline, and Fridays left out for zero cost or clicks.
Your reply
Show the report on screen, as described under **Delivery** in the spec. The findings go in its Analysis and Actions sections, not in the reply. Every number must come from the data; express differences as multiples or % versus a typical Friday.
Write like an analyst briefing a colleague: plain words, concrete numbers, no hype, no filler.
 
## NEVER
* Never in your chat reply: no methodology explanation, no tables, no code pasted into the reply, no offers of follow-up work.
# Every Friday Before Black Friday v1 · smec Seasonal Prompt Library
**Attachment:** one Google Ads CSV with one row per day, covering at least last year's Black Friday.
 
## ROLE
You are a Google Ads performance analyst. Compare Black Friday with every other Friday in the data, to show advertisers what to expect on the day and how to prepare.
 
## HARD RULE: compute, never estimate
Do the calculations in code from the CSV rather than typing numbers by hand. If you have no code-execution tool, stop and say: *"ERROR: Code execution environment not detected. To guarantee mathematical accuracy, this task must be run on a platform that can natively execute code—such as ChatGPT (with Data Analysis enabled), Claude Desktop, or Google Antigravity."*
 
## STEP 1 — Read the input
Attached is a Google Ads export (CSV) with one row per day. The first rows may be a report title and date range; the real header row contains "Day" plus metric columns such as Impr., Clicks, Conversions, Cost, Conv. value, CTR, Conv. rate, Avg. CPC, Value / conv. and Conv. value / cost. Numbers may contain thousands separators and % signs; a "Currency code" column gives the currency.
 
**Stop and refuse** if any of these is true:
1. There is no `Day` column.
2. Black Friday is not in the date range.
3. `Currency code` has more than one value.
When you stop, print this recipe with the year of the most recent completed Black Friday filled in, then wait:
 
> Google Ads → **Reports → Report editor → + → Table**
> Rows: `Day`
> Columns: `Impr.`, `Clicks`, `Conversions`, `Cost`, `Conv. value`, `CTR`, `Conv. rate`, `Avg. CPC`, `Value / conv.`, `Conv. value / cost`
> No other rows or segments.
> Date range: **1 Jan {YYYY}** to **31 Dec {YYYY}**
> Download → **.csv**, attach it here.
 
## STEP 2 — Compute (all in code)
* If a day has more than one row (e.g. the export is split by campaign or campaign type), add up the counts per day (Impr., Clicks, Conversions, Cost, Conv. value) and recalculate the rates from those totals: CTR = Clicks ÷ Impr., Avg. CPC = Cost ÷ Clicks, Value / conv. = Conv. value ÷ Conversions, ROAS = Conv. value ÷ Cost, and Conv. rate = Conversions ÷ Interactions (Google divides by interactions, not clicks, so drop Conv. rate if there is no `Interactions` column). Never add up or average the rates. Drop a rate whose inputs aren't in the file.
* Keep only Fridays. Black Friday is the day after the fourth Thursday of November; work it out from the dates rather than assuming.
* Baseline = the median of all other Fridays (median, not mean, so other promo spikes don't distort it).
* If the file holds more than one Black Friday, analyse the most recent completed one and leave the others out of the baseline.
* A Friday with zero cost or zero clicks is left out of the baseline. Any rate that would divide by zero is set to missing and drawn as no bar.
* Use whichever metrics are in the file. If ROAS (conv. value / cost) is missing but both inputs are there, compute it. Skip text columns.
## STEP 3 — Output
 
Chart
 
* A grid of small bar charts, one per metric, 2 columns. Volume metrics first (impressions, clicks, conversions, cost, conv. value), then efficiency metrics (ROAS, CTR, conv. rate, avg. CPC, value / conv.).
* Each chart: one bar per Friday in date order. Black Friday #4d40d2, other Fridays #b3b3b3, a thin dashed #5c5c66 line at the baseline.
* Label the Black Friday bar with its value and its multiple of the baseline (e.g. "GBP 23,671 · 23×").
* Readable axes: no scientific notation, thousands separators, the currency code from the file, % where relevant. A short title and a legend.
* Outliers: if a chart's tallest bar is more than 3× its second-tallest, end that chart's y-axis at 1.2× whichever is higher: the second-tallest bar or the Black Friday bar. Cut the tall bar at the top with a small white break mark and label it `↑ {value} ({date})`. Add one data-quality check per outlier naming the metric, date, value and that day's cost.
Output
 
* One HTML file, built from the OUTPUT SPEC below.
## OUTPUT SPEC (smec Seasonal Prompt Library · Output Spec v1)
 
**Format.** One HTML file, light mode only. No external libraries, CDN, web fonts or images. Charts are inline SVG. Build the HTML with your code from the template below. Keep its CSS, logo, sections, order and headings exactly, and add nothing before or after it. Copy the logo `<svg>` character for character. Never type a number into the HTML by hand.
 
**Delivery.** Show the finished report rendered on screen in this chat, so the user sees the page, not code. Use your platform's HTML preview (for example Canvas in ChatGPT or Gemini, or an Artifact in Claude), and put the exact HTML your code produced into it, unchanged. Don't paste the HTML source as text in the reply, and don't only offer a download link. Only if your platform can't render HTML at all, attach the .html file and say in one line that it opens in any web browser.
 
**Tone.** English, for PPC managers: technical, direct, no hedging, no marketing claims. Write "smec" in lowercase and "tROAS" with a lowercase t.
 
**Numbers.**
- Percentages have 1 decimal (`12.4%`), or 2 decimals under 1% (`0.81%`). Changes are in pp: `+3.2 pp`.
- Money has no decimals, a comma as thousands separator, and the currency code: `EUR 10,714`. Amounts under 10 get 2 decimals: `EUR 2.34`.
- Dates are written as `24 Nov 2025`. Weeks are written as their start date.
**Series colours**, in this order: `#4d40d2`, `#0f0f0f`, `#8478ff`, `#6b6b6b`, `#ada4fb`, `#b3b3b3`. Label each line at its right end, in its own colour.
 
**Highlights.**
- Focus period (e.g. the BF week):
 - in tables, give its cells the class `focus`;
 - in SVG, draw a `rect class="band"` behind it and label it above the plot.
- Thin or partial periods:
 - in tables, give their cells the class `thin`;
 - in SVG, draw a `rect class="hatch"` over them, with a label.
**SVG charts.**
- Use `viewBox="0 0 1000 H"` and `width="100%"`. In a grid of small charts (2 per row), use `viewBox="0 0 500 H"` for each chart.
- Use these classes: `line class="grid"` for gridlines, `text class="axis"` for axis labels, and `polyline class="line"` for data lines, with `stroke` set to the series colour.
- Every point is a `<circle r="4">` with a `<title>` holding its value.
- If a y-axis doesn't start at 0, say so in the chart's `.note`.
**Data-quality checks.** One `div class="flag"` per check, one line each. If a check found nothing, say so, e.g. `Thin weeks: none.`
 
**Template.** Replace the `{…}` placeholders. If there is only one chart, delete the Chart 2 line.
 
```html
<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>{Prompt name} · smec</title>
<style>
body{margin:0;font:15px/1.5 Rubik,system-ui,sans-serif;color:#0f0f0f;background:#fff}
header{background:#4d40d2;color:#fff;padding:20px 16px}
header>*,main{max-width:1100px;margin:0 auto}
header p{margin:0 auto;font-size:13px;opacity:.9}
header svg{display:block;height:30px;margin-bottom:2px}
header b{font-size:30px;font-weight:500;line-height:1;letter-spacing:-.5px;margin-right:6px}
header h1{margin:8px auto 4px;font-size:24px}
main{padding:0 16px 40px}
h2{font-size:18px;margin:32px 0 4px;padding-left:10px;border-left:4px solid #ebbf52}
.note,footer{font-size:13px;color:#5c5c66}
table{display:block;overflow-x:auto;border-collapse:collapse;font-size:13px}
th,td{padding:6px 8px;text-align:right;border-bottom:1px solid #e6e4f2}
th:first-child,td:first-child{text-align:left}
.s1{background:#d8d3ff}.s2{background:#ada4fb}.s3{background:#8478ff}.s4{background:#4d40d2;color:#fff}
.focus{outline:3px solid #ebbf52;outline-offset:-3px}
.thin{background-image:repeating-linear-gradient(45deg,transparent 0 4px,#0002 4px 5px)}
.flag{background:#fdf5e1;border-left:4px solid #ebbf52;padding:10px 12px;margin:6px 0}
footer{margin-top:40px;padding-top:12px;border-top:1px solid #e6e4f2}
.grid{stroke:#e6e4f2}.axis{fill:#5c5c66;font-size:12px}
.band{fill:#ebbf52;fill-opacity:.25}.hatch{fill:url(#hatch)}
.line{fill:none;stroke-width:2.5}
</style></head>
<body>
<svg width="0" height="0" style="position:absolute"><defs><pattern id="hatch" width="6" height="6" patternUnits="userSpaceOnUse" patternTransform="rotate(45)"><rect width="1" height="6" fill="#0f0f0f" fill-opacity=".2"/></pattern></defs></svg>
<header>
 <p><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144 151" aria-hidden="true"><linearGradient id="smec-g" x1="1.8" y1="145.2" x2="141.7" y2="5.2" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ebbf52"/><stop offset=".5" stop-color="#ebbf52" stop-opacity=".8"/><stop offset="1" stop-color="#ebbf52" stop-opacity=".1"/></linearGradient><path d="M135.3 1.2q-1.2 0-2.1.4L9.7 51.6a12 12 0 0 0-7.5 11.1v80.5a6 6 0 0 0 6 6q1.2 0 2.3-.4l123.4-50a12 12 0 0 0 7.4-11.1V7.2a6 6 0 0 0-6-6" fill="url(#smec-g)"/></svg><b>smec</b> · Seasonal Prompt Library</p>
 <h1>{Prompt name} {version}</h1>
 <p>{Season analysed} · {date range} · {file name}</p>
</header>
<main>
 <h2>{Chart 1 title}</h2><p class="note">{one-line how-to-read}</p>{CHART 1}
 <h2>{Chart 2 title}</h2><p class="note">{one-line how-to-read}</p>{CHART 2}
 <h2>Table</h2>{TABLES}
 <h2>Analysis</h2><p>{max 5 sentences}</p><h3>Actions</h3><ul>{3-5 li}</ul>
 <h2>Data-quality checks</h2>{one div.flag per check}
 <footer>Built with the smec Seasonal Prompt Library · {Prompt name} {version} · Run on {today}</footer>
</main>
</body></html>
```
 
What goes in the template slots
 
* Header: `{Prompt name} {version}` = `Every Friday Before Black Friday v1`. `{Season analysed}` = `Black Friday {YYYY} ({BF date})`. `{date range}` = first to last Friday in the file.
* Chart 1: title `Black Friday vs. every other Friday`. Note: `One bar per Friday. Dashed line = median of all other Fridays.`, followed by the legend. Put the grid in one `<div style="display:grid;grid-template-columns:1fr 1fr;gap:16px">` with one SVG per metric, and put the metric name as the short title inside each SVG. Each bar is a `rect` with a `<title>` holding its date and value. Draw a `rect class="band"` behind the Black Friday bar.
* Chart 2: none. Delete the Chart 2 line.
* Tables: one table. Rows are the metrics in chart order; columns are `Black Friday`, `Typical Friday (median)` and `Multiple`.
* Analysis: the key findings for an advertiser planning their next Black Friday: where the day has an outsized effect, and what expectations to set with management (e.g. how volume and efficiency move relative to each other).
* Actions: what to prepare for (budget, bids, tracking).
* Data-quality checks: the metrics used (and whether ROAS was computed), the rows dropped, the number of Fridays, and the Black Friday date. Also, where they apply: days merged from several rows, other Black Fridays left out of the baseline, and Fridays left out for zero cost or clicks.
Your reply
Show the report on screen, as described under **Delivery** in the spec. The findings go in its Analysis and Actions sections, not in the reply. Every number must come from the data; express differences as multiples or % versus a typical Friday.
Write like an analyst briefing a colleague: plain words, concrete numbers, no hype, no filler.
 
## NEVER
* Never in your chat reply: no methodology explanation, no tables, no code pasted into the reply, no offers of follow-up work.

How do I run it?

01

Export your data

In Google Ads, go to Reports → Report editor → + → Table. Add the row Day and the columns Impr., Clicks, Conversions, Cost, Conv. value, CTR, Conv. rate, Avg. CPC, Value / conv. and Conv. value / cost. Adding a “Day of the week” row is optional and might help your AI tool to be quicker. Set the date range to 1 Jan – 31 Dec 2025: the full year, so Black Friday 2025 is compared with every other Friday. You can optionally filter for specific campaign type. Then download it as .csv.

02

Open an AI tool that can run code

For example: ChatGPT, Claude, Gemini or Google Antigravity. We recommend a paid plan so your chats aren’t used for training.

03

Paste the prompt and attach your CSV

Give it a moment. If your AI tool doesn’t have code execution you’ll be notified so you can try it in another tool.

04

Get your report

One chart per metric shows how far Black Friday stands out from a typical Friday, and what to prepare for on budget, bids and tracking.

How to build the export report
in Google Ads

How to use Black Friday vs. Every Friday

Reading your report

If you see...
Consider...
Volume multiplies, but ROAS barely
moves or drops
Set expectations early:
Black Friday buys reach and revenue, not necessarily efficiency. Agree with management which one you’re optimising for.
Conversion rate jumps far more than clicks
Your Black Friday traffic arrives ready to buy. Make sure budgets aren’t capped on the day: limited budget is lost revenue on Black Friday.
Order value shifts sharply on the day
Factor it into your targets and your forecast. A ROAS target built on a normal week’s basket size won’t fit.
Other Fridays beat Black Friday
Black Friday isn’t your biggest Friday. That’s an insight too: plan your biggest budget around the Fridays that peak for you, not the industry’s
If you see...
Volume multiplies, but ROAS barely
moves or drops
Consider...
Set expectations early:
Black Friday buys reach and revenue, not necessarily efficiency. Agree with management which one you’re optimising for.
If you see...
Conversion rate jumps far more than clicks
Consider...
Your Black Friday traffic arrives ready to buy. Make sure budgets aren’t capped on the day: limited budget is lost revenue on Black Friday.
If you see...
Order value shifts sharply on the day
Consider...
Factor it into your targets and your forecast. A ROAS target built on a normal week’s basket size won’t fit.
If you see...
Other Fridays beat Black Friday
Consider...
Black Friday isn’t your biggest Friday. That’s an insight too: plan your biggest budget around the Fridays that peak for you, not the industry’s

Before you run it

timeline icon

The prompt reads last year so you can plan this one.

timeline icon

A typical Friday is the median of all other Fridays, so other promo days don’t distort it.

timeline icon

Extreme one-off days are cut off in the chart and flagged in the report.

timeline icon

Your export holds daily totals, not customer-level data. Use a paid plan of your AI tool.

Got this
from a colleague?

Get all 5 Black Friday prompts,
one per weekday.

We take your privacy seriously.
Read our privacy policy
.