# Marketinginstellingen

**Marketing** → **Instellingen** (`/m/marketing/settings`) heeft vijf onderdelen in het linkermenu: **Verbindingen**, **AI-pijplijn**, **Kosten**, **Imports** en **Merken**. Elke instelling heeft een standaardwaarde, dus je hoeft ze nooit te openen om te starten. De sleutel, agenttokens en merken worden per actie opgeslagen; **AI-pijplijn** en de maandlimiet onder **Kosten** sla je op via de balk onderaan.

`/m/marketing/settings` opent op **Verbindingen**. Oude links blijven werken: `/m/marketing/settings/agent` en `?tab=agent` openen **Verbindingen** met **Je eigen agent** uitgeklapt.

## Verbindingen

**Verbindingen** (`/m/marketing/settings/integrations`) bevat de **OpenRouter**-sleutel, de koppelingen **Meta-advertenties** en **Meta Ad Library** van het merk en, onder **Meer**, **Je eigen agent**.

### OpenRouter

Het vak **OpenRouter** bevat de sleutel. De marketing-AI draait op je eigen sleutel, dus het gebruik wordt op je OpenRouter-account in rekening gebracht. Borkol verkoopt of factureert geen AI-tokens. Maak een sleutel aan op [openrouter.ai/keys](https://openrouter.ai/keys).

Plak hem onder **API-sleutel** en klik op **Sleutel opslaan**. De sleutel wordt versleuteld opgeslagen en daarna nooit meer getoond; alleen **Sleutel eindigt op** (de laatste vier tekens) is zichtbaar. Borkol controleert de sleutel bij OpenRouter als je hem opslaat en **Status** toont de uitkomst:

| Status | Betekenis |
| --- | --- |
| **Niet gekoppeld** | Er is geen sleutel opgeslagen |
| **Geverifieerd** | OpenRouter heeft de sleutel geaccepteerd |
| **Ongeldig** | OpenRouter heeft de sleutel geweigerd, of de opgeslagen sleutel is niet meer te lezen |
| **Niet gecontroleerd** | De sleutel is opgeslagen, maar OpenRouter was niet bereikbaar om hem te controleren: "De sleutel is opgeslagen, maar OpenRouter was niet bereikbaar om hem te controleren. Probeer het zo opnieuw." |

Bij een geverifieerde sleutel toont de pagina ook het **Sleutellabel**, de **Tegoedlimiet**, het **Verbruikt tegoed** en het **Resterend tegoed** zoals OpenRouter ze meldt, en **Laatst gecontroleerd**. Heeft de sleutel geen limiet, dan blijven de limiet en het resterende tegoed leeg.

- **Opnieuw controleren** controleert de opgeslagen sleutel opnieuw, bijvoorbeeld na **Niet gecontroleerd**.
- **Sleutel vervangen** slaat een andere sleutel op. Weigert OpenRouter de nieuwe sleutel terwijl de opgeslagen sleutel **Geverifieerd** is, dan blijft de opgeslagen sleutel staan en toont het veld "OpenRouter heeft deze sleutel geweigerd. Je opgeslagen sleutel is behouden." Een geweigerde sleutel zonder geverifieerde sleutel ervoor wordt opgeslagen als **Ongeldig**, en de pagina meldt "OpenRouter heeft deze sleutel geweigerd. Controleer hem en sla een nieuwe op."
- **Sleutel verwijderen** vraagt "De OpenRouter-sleutel verwijderen?" en verwijdert hem. Marketing-AI werkt niet meer totdat je opnieuw een sleutel toevoegt.

Alleen de accounteigenaar kan de sleutel toevoegen, opnieuw controleren, vervangen of verwijderen. Teamleden zien de status en de tegoedcijfers, met "Alleen de accounteigenaar kan de sleutel toevoegen, controleren of verwijderen." in plaats van het sleutelveld en de knoppen.

### Meta-advertenties

Het vak **Meta-advertenties** koppelt het merk waarop je zit aan zijn Meta-advertentieaccount. Borkol leest dan je eigen advertentieresultaten per advertentie en dag (besteding, impressies, weergaven van 3 seconden, ThruPlays, linkklikken, aankopen en omzet) en de lengte van elke videoadvertentie, zodat [Wat wint](/nl/docs/marketing/results) en de lengte van scènes op echte cijfers rusten. Elk merk heeft een eigen koppeling: wissel van merk om een ander advertentieaccount te koppelen.

1. Plak een systeemgebruikerstoken onder **Toegangstoken** (hieronder staat hoe je er een maakt) en klik op **Controleren**. Het token wordt versleuteld opgeslagen en daarna nooit meer getoond; alleen **Token eindigt op** is zichtbaar. **Status** toont **Geverifieerd**, **Ongeldig** (Meta heeft het token geweigerd, met de melding van Meta zelf in een bericht boven de status) of **Niet gecontroleerd** (Meta was niet bereikbaar: "Het token is opgeslagen, maar Meta was niet bereikbaar om het te controleren. Probeer zo opnieuw te controleren.").
2. Kies het **Advertentieaccount** waarvan de resultaten naar dit merk worden gesynchroniseerd. De lijst toont de accounts die het token kan lezen, met account-id en valuta; hij verschijnt na een **Geverifieerd**-controle. "Dit token kan geen enkel advertentieaccount lezen." betekent dat het advertentieaccount nog niet aan de systeemgebruiker is toegewezen.
3. Klik op **Nu synchroniseren** onder **Laatste synchronisatie**, of wacht: Borkol synchroniseert elk gekoppeld merk één keer per dag. De eerste synchronisatie leest de laatste 90 dagen, latere de laatste 3 dagen. Een melding toont **Advertentieresultaten lezen…**, daarna **Advertenties synchroniseren: 12 van 40** met een balk, opnieuw na herladen van **Verbindingen** en terwijl je door de app gaat, en eindigt met hoeveel advertenties zijn gesynchroniseerd of waarom het mislukte.

**Laatste synchronisatie** toont wanneer de laatste synchronisatie klaar was. Is die mislukt, dan staat erboven een bericht "De laatste synchronisatie is mislukt" met de melding van Meta; de volgende synchronisatie die lukt, haalt het weg. Al gesynchroniseerde resultaten blijven staan als een synchronisatie mislukt.

Gesynchroniseerde resultaten worden opgeslagen zoals een [import van advertentieresultaten](/nl/docs/marketing/imports) en koppelen aan een script via de Borkol-advertentiecode in de advertentienaam; advertenties zonder code tellen nog mee voor de lengte. Voor dezelfde advertentie en dag vervangt een gesynchroniseerd resultaat een geïmporteerd resultaat, en een latere import slaat rijen over die al gesynchroniseerd zijn, zodat niets dubbel telt.

- **Opnieuw controleren** controleert het opgeslagen token opnieuw. **Token vervangen** slaat een ander token op; weigert Meta dat terwijl het opgeslagen token **Geverifieerd** is, dan blijft het opgeslagen token behouden ("Meta heeft dit token geweigerd. Je opgeslagen token is behouden.").
- **Token verwijderen** vraagt "Het Meta-advertentietoken verwijderen?" en verwijdert het. Synchroniseren stopt voor dit merk; al gesynchroniseerde resultaten blijven staan.

Alleen de accounteigenaar kan het token toevoegen, controleren, vervangen of verwijderen en het advertentieaccount kiezen. Teamleden zien de status, het advertentieaccount en **Laatste synchronisatie**, en kunnen op **Nu synchroniseren** klikken.

#### Het toegangstoken aanmaken

Gebruik een systeemgebruikerstoken: het hoort bij je bedrijf, niet bij een persoon, en verloopt niet. Je hebt beheerdersrechten nodig op het Meta-bedrijfsportfolio dat het advertentieaccount bezit.

1. Open [business.facebook.com/settings](https://business.facebook.com/settings) en kies het **bedrijfsportfolio** dat het advertentieaccount bezit.
2. Maak een app aan op [developers.facebook.com/apps](https://developers.facebook.com/apps): app-type **Business**, gekoppeld aan dat bedrijfsportfolio. Voeg op het dashboard van de app het product **Marketing API** toe.
3. Ga in de bedrijfsinstellingen naar **Gebruikers** → **Systeemgebruikers**, klik op **Toevoegen** en maak een systeemgebruiker met de rol **Beheerder** (Admin).
4. Klik met de systeemgebruiker geselecteerd op **Assets toewijzen**: wijs het **advertentieaccount** toe (minstens prestaties bekijken) en de **app** die je hebt gemaakt.
5. Klik op **Token genereren**, kies de app, zet de vervaldatum op **Nooit** en vink de rechten `ads_read` aan. Kopieer het token: Meta toont het één keer.
6. Plak het in Borkol onder **Toegangstoken** en klik op **Controleren**. Je advertentieaccount-id is het getal na `act=` in het adres van Advertentiebeheer (bijvoorbeeld `act=1234567890`); kies het account met die id onder **Advertentieaccount**.

Het token heeft alleen `ads_read` nodig: Borkol leest resultaten en wijzigt nooit je advertenties.

### Meta Ad Library

Het vak **Meta Ad Library** koppelt het merk waar je op staat aan de Ad Library van Meta, het openbare archief van advertenties. Borkol leest dan de advertenties van de pagina's en zoektermen op de [volglijst](/nl/docs/marketing/brand-context#concurrenten-volgen) van het merk in de swipe file, met een winnaarscore. Elk merk heeft een eigen koppeling.

1. Plak een user token onder **Access token** (hoe je die krijgt staat hieronder) en klik op **Controleren**. De token wordt versleuteld opgeslagen en nooit meer getoond; alleen **Token eindigt op** is zichtbaar. **Status** toont **Geverifieerd**, **Ongeldig** (Meta weigerde de token, met Meta's melding boven de status) of **Niet gecontroleerd**.
2. Onder **Status** toont **Verloopt** wanneer de token stopt met werken. Vanaf 7 dagen ervoor staat boven de status "De token verloopt binnenkort" met de datum; daarna "De token is verlopen". Sla daarvoor een nieuwe token op onder **Token vervangen**.
3. Klik op **Nu synchroniseren** onder **Laatste synchronisatie**, of wacht: Borkol controleert de volglijst één keer per dag. Een melding toont **Ad Library controleren: 2 van 5** (volgitems) met een balk, opnieuw na herladen van **Verbindingen** of de **Swipe file** en terwijl je door de app gaat, en eindigt met hoeveel items zijn gecontroleerd, hoeveel Meta weigerde of waarom het mislukte. Zonder volgitem zegt **Nu synchroniseren** "Voeg eerst een pagina of zoekterm toe onder Swipe file, Volgen."

**Laatste synchronisatie** toont wanneer de laatste controle klaar was; mislukte die, dan staat erboven "De laatste synchronisatie is mislukt" met Meta's melding. Advertenties die al in de swipe file staan blijven als een synchronisatie mislukt of de token wordt verwijderd. **Opnieuw controleren**, **Token vervangen** en **Token verwijderen** werken zoals bij Meta-advertenties. Alleen de accounteigenaar kan de token toevoegen, controleren, vervangen of verwijderen; teamleden zien de status en kunnen op **Nu synchroniseren** klikken.

#### De access token krijgen

De Ad Library API werkt met een user token van een Meta-ontwikkelaarsapp waarvan de eigenaar zijn identiteit bij Meta heeft bevestigd.

1. Bevestig je identiteit bij Meta op [facebook.com/ID](https://www.facebook.com/ID) (dat kan een paar dagen duren).
2. Open [facebook.com/ads/library/api](https://www.facebook.com/ads/library/api), lees de voorwaarden en accepteer ze.
3. Maak een app op [developers.facebook.com/apps](https://developers.facebook.com/apps) (elk type; een Business-app werkt), of gebruik die van Meta-advertenties.
4. Open de [Graph API Explorer](https://developers.facebook.com/tools/explorer), kies je app onder **Meta App**, kies **User Token** en klik op **Generate Access Token**. Er is geen extra permissie nodig. Deze token werkt ongeveer een uur.
5. Plak hem in de [Access Token Debugger](https://developers.facebook.com/tools/debug/accesstoken), klik op **Debug** en onderaan op **Extend Access Token**. Kopieer de nieuwe token: die werkt ongeveer 60 dagen.
6. Plak hem in Borkol onder **Access token** en klik op **Controleren**. **Verloopt** toont de datum; herhaal stap 4 tot 6 voor die tijd.

### Je eigen agent

**Meer** · **Je eigen agent**, onder het vak OpenRouter, bevat de tokens waarmee een agent die je al draait, zoals Hermes of een andere MCP-client, verbindt met Borkol Marketing. **Token aanmaken** toont het token één keer, met de drie installatieblokken (**Agentconfiguratie (Hermes)**, **Skill**, **Planning**) al ingevuld; **Installatie-instructies** onder de lijst toont later dezelfde blokken met een plaatshouder. **Meer** in het aanmaakvenster beperkt een token tot sommige rechten of één merk. Het rijmenu heeft **Intrekken**. Het klapt vanzelf uit als het merk op je agent draait of er een token actief is. Alleen de accounteigenaar kan tokens aanmaken en intrekken; teamleden zien de lijst zonder **Token aanmaken**. Zie [Je eigen agent](/nl/docs/marketing/agent).

## AI-pijplijn

**AI-pijplijn** (`/m/marketing/settings/pipeline`) bepaalt hoe [runs](/nl/docs/marketing/runs) werken voor één merk ("Deze instellingen gelden voor {brand}."). Met meer dan één merk kies je het merk met de merkkiezer naast die regel; wissel je met niet-opgeslagen wijzigingen, dan wordt eerst gevraagd of je die wilt negeren. De andere instellingensecties houden het gekozen merk in de adresbalk (`?brand=`). Elk veld heeft een standaardwaarde, dus je hoeft deze pagina nooit te openen om te starten. Wijzig je een veld, dan toont de balk onderaan **Opslaan** en **Wijzigingen negeren**. Een run houdt de instellingen waarmee hij startte; wijzigingen gelden voor de volgende run.

Vooraan, onder **Scripts**, staan de twee velden die de meeste mensen wijzigen:

| Veld | Standaard | Wat het doet |
| --- | --- | --- |
| **Scripts per run** | 5 | Geldt als je een run start zonder een aantal te kiezen (1 tot 10) |
| **Kostenlimiet per run** | $1,00 | Een run pauzeert bij dit bedrag, betaald met je OpenRouter-sleutel ($0,05 tot $50). Je kunt hem vanuit de run voortzetten. Verhogen vraagt de goedkeurrechten ("Voor een hogere kostenlimiet heb je de goedkeuringsrechten nodig. Verlagen mag wel."); verlagen niet. |

Daaronder stelt het vak **Videotool** de AI-videotool in waarvoor [scènes](/nl/docs/marketing/scenes) worden geschreven: **Naam** (optioneel), **Cliplengte** (standaard 8 seconden, 2 tot 20; geen scène is langer), **Beeldverhouding** (standaard **9:16 staand**, **1:1 vierkant** of **16:9 liggend**) en **Promptstijl** (komt aan het eind van elke videoprompt, tot 300 tekens).

**Meer** opent de rest, standaard dicht (hij klapt vanzelf open als een verborgen veld een fout heeft). **Per run**:

| Veld | Standaard | Wat het doet |
| --- | --- | --- |
| **Hookvarianten per script** | 3 | Alternatieve openingen van elk script, om tegen elkaar te testen (3 tot 5) |
| **Runs tegelijk** | 1 | Runs van dit merk boven dit aantal wachten op hun beurt (1 tot 3). Verhogen start wachtende runs meteen. |

**Stappen**, ook onder **Meer**, bepaalt het model achter elke stap. De lijst bevat suggesties; je kunt elk OpenRouter-model-id typen, zoals `meta-llama/llama-3.3-70b-instruct`. Hetzelfde model kun je ook wisselen vanaf een stapkaart op de pagina van een run; zie [Het model van een stap wisselen](/nl/docs/marketing/runs#het-model-van-een-stap-wisselen-voor-de-volgende-run).

| Stap | Standaardmodel | Kan uit |
| --- | --- | --- |
| **Onderzoek** | `openai/gpt-4o-mini` | Ja (**Onderzoek uitvoeren**) |
| **Invalshoeken** | `openai/gpt-4o-mini` | Nee, altijd aan |
| **Scripts** | `openai/gpt-4o-mini` | Nee, altijd aan |
| **Controle** | `google/gemini-3.5-flash-lite` | Ja (**Controle uitvoeren**) |

Gebruikt **Controle** hetzelfde model als **Scripts**, dan staat er "Controle gebruikt hetzelfde model als Scripts. Een ander model vangt meestal meer." Dat houdt opslaan niet tegen.

Ook onder **Meer**: **Wie de stappen uitvoert** en **Instructies en privacy**.

**Wie de stappen uitvoert** heeft één veld, **Stappen draaien op**: **Borkol** (de standaard) voert elke stap uit op je OpenRouter-sleutel; **Je agent** geeft de stappen aan een agent die je zelf draait, via MCP ("Runs die al gestart zijn houden hun instelling."). Een merk op **Je agent** heeft geen OpenRouter-sleutel nodig en wordt nooit gepauzeerd op de kostenlimiet. Zie [Je eigen agent](/nl/docs/marketing/agent).

**Instructies en privacy** bevat:

- **Minimale uitgaven voor een inzicht** (standaard 50), in de valuta van je advertentieaccount: een tag heeft zoveel uitgaven over zijn advertenties nodig voordat Borkol er een conclusie uit trekt. Zie [Hoe inzichten ontstaan](/nl/docs/marketing/learning#hoe-inzichten-ontstaan).
- **Transcriptiemodel** (standaard `openai/whisper-large-v3-turbo`): schrijft het transcript van video- en audiobestanden die je aan swipe-advertenties toevoegt, op je OpenRouter-sleutel. De lijst bevat modellen met een provider zonder dataopslag; `openai/whisper-large-v3` en `mistralai/voxtral-mini-transcribe` zijn de alternatieven.
- **Doel-ROAS** (standaard leeg): een advertentie op of boven dit rendement op advertentie-uitgaven telt als winnaar. Leeg vergelijkt elke advertentie met de mediaan van het merk.

- **Extra instructies** per stap, tot 2.000 tekens, die voor dit merk aan die stap worden toegevoegd. Laat ze leeg voor het standaard playbook. De uitvoer van de stap wordt nog steeds getoetst aan zijn vaste vorm.
- **Geen dataopslag (ZDR)** (standaard aan): prompts gaan alleen naar providers die geen data bewaren. Alleen de accounteigenaar kan dit uitzetten, na het bevestigen van "Geen dataopslag (ZDR) uitzetten?": prompts, inclusief je merkcontext, kunnen dan naar providers gaan die ze bewaren. Teamleden zien "Alleen de accounteigenaar kan dit uitzetten." Elke run legt vast met welke instelling hij draaide, te zien als **Geen dataopslag (ZDR)** op de pagina van de run.
  Niet elk model heeft een aanbieder zonder dataopslag. Een stap op zo'n model faalt met "Dit model heeft op OpenRouter geen aanbieder met Geen dataopslag (ZDR)": kies dan een ander model voor die stap.

De AI-pijplijn wijzigen vraagt bewerktoegang tot marketing.

## Kosten

**Kosten** (`/m/marketing/settings/costs`) toont wat de runs van het merk kosten tegen kale OpenRouter-prijzen: de uitgaven van deze maand, kosten per script, runs (met hoeveel er met zero data retention uit draaiden), het resterende OpenRouter-tegoed, kosten per dag en elke run met zijn tokens en kosten. Er staat ook de **Maandlimiet** van het merk (standaard $25), die je opslaat via de balk onderaan; verhogen vraagt de goedkeurrechten. Zie [Kosten](/nl/docs/marketing/costs).

## Imports

**Imports** (`/m/marketing/settings/imports`) toont elk bestand dat in het gekozen merk is geïmporteerd, met wat het was, het aantal rijen, hoeveel er zijn toegevoegd, bijgewerkt en overgeslagen, de status, wie het importeerde en wanneer. **Opgeslagen kolomkoppelingen** daaronder bevat de kolomkeuzes die Borkol onthoudt voor bestanden met dezelfde kolomnamen; **Koppeling vergeten** verwijdert er een. Een import start je vanuit **Scripts** of **Merk**, niet hier. Zie [Imports](/nl/docs/marketing/imports).

## Merken

**Merken** toont je merken met hun score **Inrichting**. Elk merk heeft een eigen profiel, klanttypes, citaten, swipe file, documenten, kennis en projecten.

- **Merk toevoegen** vraagt om een **Naam** (maximaal 120 tekens) en opent daarna het **Overzicht** van het nieuwe merk, met het vak en de instelbalk klaar. Zie [Een merk instellen](/nl/docs/marketing/index#een-merk-instellen).
- Het rijmenu heeft **Merk hernoemen**, **Standaard maken** en **Merk verwijderen**.
- Precies één merk is de **Standaard**. Dat merk opent als je geen merk kiest. **Standaard maken** verplaatst het label naar een ander merk.
- **Het laatste merk kan niet worden verwijderd.**
- Het standaardmerk kan niet worden verwijderd zolang er andere merken zijn. Verwijderen toont dan **Maak eerst een ander merk de standaard.**

**Merk verwijderen** vraagt eerst "Dit merk verwijderen?". Het profiel, de klanttypes, stemfragmenten, swipe-advertenties, documenten, kennis en projecten worden meeverwijderd en dit kan niet ongedaan worden gemaakt.
