Adds apps/video, a standalone Remotion package (not part of the pnpm workspace, so it never reaches the web build or the Docker image). It renders six looping films, one per service, in German and English, as 4:5 for LinkedIn and 16:9 for YouTube and ads, together with the text to post and an overview page. Each film is one continuous shot: close on something abstract, the camera pulls back to show what it really is, the form changes, and the picture folds back into its opening. The slide deck code from the earlier attempts is still in the package and no longer used. Also adds the Google Ads concept, brings the relaunch concept in line with the site as built, and a project skill that describes how to make further films. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
159 lines
8.1 KiB
Markdown
159 lines
8.1 KiB
Markdown
# Google Ads concept: German clients at low cost
|
|
|
|
Status: draft for the owner's review. Nothing has been created in the Ads account, and no API call has been made.
|
|
Wording and prices come from the website's German texts (`apps/web/src/content/de.ts`). Search volumes and click prices are **not** in
|
|
this document: they have to come from the Keyword Planner once API access works (section 7).
|
|
|
|
## 1. Goal and principle
|
|
|
|
Goal: enquiries by email from German companies, for the two services a layperson searches for:
|
|
a website, and process automation. Small budget, so every euro goes to people who are already looking.
|
|
|
|
- **Search ads first.** Someone who types "Website erstellen lassen" has a need today. Video and display ads
|
|
reach people who do not, and cost more per enquiry.
|
|
- **Narrow, then widen.** Few exact search terms, one country, business hours. Widen only what produces enquiries.
|
|
- **Measure enquiries, not clicks.** Without counting email clicks per search term, nothing can be steered.
|
|
- The videos (`apps/video`) are for LinkedIn posts and, later, for showing to people who already visited the site.
|
|
|
|
## 2. Before the first euro is spent
|
|
|
|
| # | Prerequisite | Why | State |
|
|
| - | :----------- | :-- | :---- |
|
|
| 1 | German landing page | German ad, German page. | Done: German is the main language of the site since 2026-10-04. Ads lead to the homepage, to the section of the service. Own pages per campaign would convert better, but the site is one page by decision |
|
|
| 2 | Count email clicks | `EmailLink` does not record a click today. Umami is on the site and needs no cookie banner. | Open: add an event, e.g. `contact_email_click`, with the campaign from the URL |
|
|
| 3 | Campaign tagging | Every ad URL carries `utm_source=google&utm_medium=cpc&utm_campaign=<name>&utm_term={keyword}` so Umami shows which search term led to an email click. | With the ads |
|
|
| 4 | Developer token and customer number | The Ads API rejects every call without them. `gcloud` login with the Ads scope and the enabled API exist (project `mintelme-402610`). | Open: owner provides both |
|
|
| 5 | Payment method and billing country in the Ads account | Cannot be checked from here. | Open: owner |
|
|
|
|
On prerequisite 2: Google's own conversion tag would let Google optimise bids by itself, but it sets cookies and
|
|
needs a consent banner. Recommendation: start without it, judge by Umami, and decide about the tag after the
|
|
first month.
|
|
|
|
## 3. Account structure
|
|
|
|
Two search campaigns at the start, one ad group each, so that budget and results stay readable.
|
|
|
|
| Setting | Value | Reason |
|
|
| :------ | :---- | :----- |
|
|
| Networks | Google Search only; search partners and Display off | Partners and Display bring cheap clicks that rarely enquire |
|
|
| Location | Germany, "presence" only (people who are there, not people interested in it) | Default setting includes people abroad |
|
|
| Language | German | |
|
|
| Schedule | Monday to Friday, 7:00 to 19:00 | Business owners search during working hours; review after two weeks |
|
|
| Match types | Phrase and exact only, no broad match | Broad match spends a small budget on unrelated searches |
|
|
| Bidding | Maximise clicks with a click-price cap | There is no conversion data yet for automatic bidding |
|
|
| Budget | A fixed daily amount per campaign, set by the owner | See section 6 |
|
|
|
|
## 4. Campaign "Website"
|
|
|
|
Landing page: the German homepage, services section, case "website".
|
|
|
|
Search terms (phrase and exact):
|
|
|
|
- website erstellen lassen
|
|
- homepage erstellen lassen
|
|
- firmenwebsite erstellen lassen
|
|
- webseite erstellen lassen kosten
|
|
- website für unternehmen erstellen lassen
|
|
- webdesigner freelancer
|
|
- webentwickler freelancer
|
|
|
|
Excluded terms: kostenlos, gratis, selbst, selber, baukasten, wix, jimdo, squarespace, wordpress, shopify,
|
|
onlineshop, vorlage, template, kurs, lernen, ausbildung, studium, job, jobs, stellenangebot, gehalt, praktikum.
|
|
|
|
Responsive search ad. Headlines (at most 30 characters each):
|
|
|
|
- H: Website erstellen lassen
|
|
- H: Firmenwebsite vom Entwickler
|
|
- H: Ab 3.800 € netto
|
|
- H: 15 Jahre Web-Erfahrung
|
|
- H: Design, Bau und Hosting
|
|
- H: Änderungen per E-Mail
|
|
- H: Kein Baukasten nötig
|
|
- H: Erstgespräch: 20 Minuten
|
|
- H: Freelancer statt Agentur
|
|
- H: Passt auf Handy und Desktop
|
|
- H: Marc Mintel, Webentwickler
|
|
- H: Individuelles Design
|
|
|
|
Descriptions (at most 90 characters each):
|
|
|
|
- D: Sie sagen, was Ihr Unternehmen macht. Ich gestalte, baue und betreue Ihre Website.
|
|
- D: Ein Design für Ihr Unternehmen statt einer Vorlage. Auf Handy, Tablet und Desktop.
|
|
- D: Um das Hosting kümmere ich mich. Änderungen schicken Sie mir einfach per E-Mail.
|
|
- D: Schätzung nach dem ersten Gespräch. Eine typische Firmenwebsite ab 3.800 € netto.
|
|
|
|
Sitelinks: "So läuft es ab", "Was es kostet", "Meine Arbeiten", "Kontakt".
|
|
|
|
## 5. Campaign "Automatisierung"
|
|
|
|
Landing page: the German homepage, services section, case "automation".
|
|
|
|
Search terms (phrase and exact):
|
|
|
|
- prozesse automatisieren
|
|
- geschäftsprozesse automatisieren
|
|
- prozessautomatisierung unternehmen
|
|
- schnittstelle programmieren lassen
|
|
- api anbindung programmieren lassen
|
|
- rechnungen automatisch erfassen
|
|
- systeme verbinden schnittstelle
|
|
|
|
Excluded terms: definition, beispiele, bachelorarbeit, masterarbeit, studium, kurs, schulung, zertifizierung,
|
|
job, jobs, stellenangebot, gehalt, kostenlos, sap, uipath, power automate, zapier, make.
|
|
|
|
The last four are tool names. People searching for them want the tool, not a developer. Review after two weeks:
|
|
"zapier" or "make" plus "einrichten lassen" could be worth an own ad group.
|
|
|
|
Responsive search ad. Headlines:
|
|
|
|
- H: Prozesse automatisieren
|
|
- H: Systeme verbinden lassen
|
|
- H: Schluss mit Copy-and-paste
|
|
- H: Schnittstellen vom Entwickler
|
|
- H: Rechnungen automatisch lesen
|
|
- H: Von Bestellung bis Rechnung
|
|
- H: 100 € pro Stunde, netto
|
|
- H: Erst Schätzung, dann Budget
|
|
- H: Erstgespräch: 20 Minuten
|
|
- H: 15 Jahre Web-Erfahrung
|
|
- H: Ihre Tools, verbunden
|
|
- H: Keine Anfrage geht verloren
|
|
|
|
Descriptions:
|
|
|
|
- D: Ich verbinde die Tools, die Sie schon nutzen. Wiederkehrende Schritte laufen von selbst.
|
|
- D: Daten von Hand von einem Tool ins andere tippen? Das lässt sich meist automatisieren.
|
|
- D: Ich sehe mir den Ablauf an und schätze den Aufwand. Die Schätzung wird Ihr Budget.
|
|
- D: Menschen entscheiden die Ausnahmen, die Routine läuft von selbst. Erstgespräch: 20 Min.
|
|
|
|
Sitelinks: "Beispiele", "So läuft es ab", "Was es kostet", "Kontakt".
|
|
|
|
## 6. Budget and when to stop
|
|
|
|
The amounts are the owner's decision. A workable way to set them:
|
|
|
|
- Decide what one new client is worth, and how much of that may go into finding them.
|
|
- Run both campaigns for four weeks at a fixed daily amount. Do not change anything in the first week.
|
|
- Weekly, 15 minutes: read the search terms report, add wasted terms to the excluded list, pause search terms
|
|
that got clicks but no email click.
|
|
- After four weeks: a campaign that produced no enquiry is stopped or rebuilt, not given more budget.
|
|
- Automatic bidding on enquiries only once there are enough of them to learn from (Google's guidance is in the
|
|
order of 30 conversions a month; check the current figure before switching).
|
|
|
|
## 7. Later steps
|
|
|
|
1. **Numbers first.** With API access: pull monthly searches and click-price ranges for the terms above
|
|
(Keyword Planner), drop terms nobody searches, and set the click-price cap from real figures.
|
|
2. **Developer campaign.** Terms like "react entwickler freelancer", "next.js entwickler freelance",
|
|
"frontend entwickler freelancer". Fewer searches, and staffing platforms bid on them. Start only when the
|
|
first two campaigns are understood. Video: `ProductDeveloper-de`.
|
|
3. **"Make an app reliable".** Wait until the offer and its price are settled.
|
|
4. **Videos as ads.** Upload the 16:9 versions (`*-de-wide.mp4`) to YouTube and show them only to people who
|
|
visited the site in the last 30 days. This needs Google's tag and therefore the consent banner (section 2).
|
|
|
|
## 8. What Claude may do with the API
|
|
|
|
- Read: list the account, campaigns, search terms and Keyword Planner figures.
|
|
- Prepare: create campaigns, ad groups, ads and excluded terms **paused**, after the owner approved this document.
|
|
- Never: enable a campaign, set or raise a budget, or change billing. That stays with the owner.
|