update
This commit is contained in:
1
.obsidian/app.json
vendored
Normal file
1
.obsidian/app.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
1
.obsidian/appearance.json
vendored
Normal file
1
.obsidian/appearance.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
33
.obsidian/core-plugins.json
vendored
Normal file
33
.obsidian/core-plugins.json
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"file-explorer": true,
|
||||
"global-search": true,
|
||||
"switcher": true,
|
||||
"graph": true,
|
||||
"backlink": true,
|
||||
"canvas": true,
|
||||
"outgoing-link": true,
|
||||
"tag-pane": true,
|
||||
"footnotes": false,
|
||||
"properties": true,
|
||||
"page-preview": true,
|
||||
"daily-notes": true,
|
||||
"templates": true,
|
||||
"note-composer": true,
|
||||
"command-palette": true,
|
||||
"slash-command": false,
|
||||
"editor-status": true,
|
||||
"bookmarks": true,
|
||||
"markdown-importer": false,
|
||||
"zk-prefixer": false,
|
||||
"random-note": false,
|
||||
"outline": true,
|
||||
"word-count": true,
|
||||
"slides": false,
|
||||
"audio-recorder": false,
|
||||
"workspaces": false,
|
||||
"file-recovery": true,
|
||||
"publish": false,
|
||||
"sync": true,
|
||||
"bases": true,
|
||||
"webviewer": false
|
||||
}
|
||||
181
.obsidian/workspace.json
vendored
Normal file
181
.obsidian/workspace.json
vendored
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"main": {
|
||||
"id": "3f59f5e90e59eb16",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "2dc50d9d622925dd",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "50874c953e5f9bdd",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "empty",
|
||||
"state": {},
|
||||
"icon": "lucide-file",
|
||||
"title": "Nowa karta"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "vertical"
|
||||
},
|
||||
"left": {
|
||||
"id": "4ea9df900d7f5928",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "2612d8ccef263088",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "8da90c1bd15733b5",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "file-explorer",
|
||||
"state": {
|
||||
"sortOrder": "alphabetical",
|
||||
"autoReveal": false
|
||||
},
|
||||
"icon": "lucide-folder-closed",
|
||||
"title": "Przeglądarka plików"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "32d60256220fa10d",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "search",
|
||||
"state": {
|
||||
"query": "",
|
||||
"matchingCase": false,
|
||||
"explainSearch": false,
|
||||
"collapseAll": false,
|
||||
"extraContext": false,
|
||||
"sortOrder": "alphabetical"
|
||||
},
|
||||
"icon": "lucide-search",
|
||||
"title": "Wyszukiwarka"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "ba8eb9c149202945",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "bookmarks",
|
||||
"state": {},
|
||||
"icon": "lucide-bookmark",
|
||||
"title": "Ulubione"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 300
|
||||
},
|
||||
"right": {
|
||||
"id": "eba8ccc69c4fa26a",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "23e5acb3c0462964",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "a0c3faa7e6698dca",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "backlink",
|
||||
"state": {
|
||||
"collapseAll": false,
|
||||
"extraContext": false,
|
||||
"sortOrder": "alphabetical",
|
||||
"showSearch": false,
|
||||
"searchQuery": "",
|
||||
"backlinkCollapsed": false,
|
||||
"unlinkedCollapsed": true
|
||||
},
|
||||
"icon": "links-coming-in",
|
||||
"title": "Linki zwrotne"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "a15cf2efefb71448",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "outgoing-link",
|
||||
"state": {
|
||||
"linksCollapsed": false,
|
||||
"unlinkedCollapsed": true
|
||||
},
|
||||
"icon": "links-going-out",
|
||||
"title": "Łącza wychodzące"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b85e3764a86214ff",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "tag",
|
||||
"state": {
|
||||
"sortOrder": "frequency",
|
||||
"useHierarchy": true,
|
||||
"showSearch": false,
|
||||
"searchQuery": ""
|
||||
},
|
||||
"icon": "lucide-tags",
|
||||
"title": "Tagi"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "add518694a71d3d5",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "all-properties",
|
||||
"state": {
|
||||
"sortOrder": "frequency",
|
||||
"showSearch": false,
|
||||
"searchQuery": ""
|
||||
},
|
||||
"icon": "lucide-archive",
|
||||
"title": "Wszystkie atrybuty"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "159050c414a15880",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "outline",
|
||||
"state": {
|
||||
"followCursor": false,
|
||||
"showSearch": false,
|
||||
"searchQuery": ""
|
||||
},
|
||||
"icon": "lucide-list",
|
||||
"title": "Konspekt"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 300,
|
||||
"collapsed": true
|
||||
},
|
||||
"left-ribbon": {
|
||||
"hiddenItems": {
|
||||
"switcher:Otwórz okno szybkiego wyboru": false,
|
||||
"graph:Otwórz podgląd grafu": false,
|
||||
"canvas:Stwórz nową tablicę": false,
|
||||
"daily-notes:Otwórz dzisiejszy dziennik": false,
|
||||
"templates:Wstaw szablon": false,
|
||||
"command-palette:Otwórz listę poleceń": false,
|
||||
"bases:Stwórz nową bazę danych": false
|
||||
}
|
||||
},
|
||||
"active": "50874c953e5f9bdd",
|
||||
"lastOpenFiles": []
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
# Memory Index
|
||||
|
||||
- [Format listy klientów](feedback_client_list_format.md) — listy klientów prezentować jako numerowaną tabelę markdown
|
||||
@@ -6,4 +6,19 @@ GOOGLE_ADS_MANAGER_ACCOUNT_ID=8976093870
|
||||
|
||||
ADSPRO_API_URL=https://adspro.projectpro.pl/api.php
|
||||
ADSPRO_API_KEY=42bda4bafa556546990c817b7ec1feab8ca5ed3e134ac797
|
||||
ADSPRO_HOST=host700513.hostido.net.pl
|
||||
ADSPRO_USERNAME=www@adspro.projectpro.pl
|
||||
ADSPRO_PASSWORD=S75kmnqmD5heMZzJQf5n
|
||||
ADSPRO_REMOTE_PATH=/public_html
|
||||
|
||||
# Import wiedzy przez OpenAI API
|
||||
# Uzywane tylko przez: python gads.py wiedza dodaj ...
|
||||
OPENAI_API_KEY=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
|
||||
|
||||
# Opcjonalnie: model do ekstrakcji regul wiedzy.
|
||||
# Mozesz tez podac model jednorazowo przez --model.
|
||||
KNOWLEDGE_OPENAI_MODEL=gpt-4.1-mini
|
||||
|
||||
# Google Analytics 4 API
|
||||
GA4_REFRESH_TOKEN=1//09_hLDPStXz3QCgYIARAAGAkSNwF-L9IrKlofxXOfEYoI9jyiHebuffRwcLtBnUQB48jBU3De4MvTOLyZ5FYLRapCt5bcLjsvyxc
|
||||
GA4_PROPERTY_ID_ibra-makeup.pl=401893399
|
||||
|
||||
6
.sync/Archive/.gitignore
vendored
Normal file
6
.sync/Archive/.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
.env
|
||||
config/clients.toml
|
||||
clients/
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
||||
@@ -166,6 +166,80 @@ Popros uzytkownika tylko o numer. Po wyborze:
|
||||
- `2` pokaz liste klientow,
|
||||
- `3` zakoncz.
|
||||
|
||||
## Raport klienta
|
||||
|
||||
Gdy uzytkownik poprosi o raport klienta albo poda komende w stylu:
|
||||
|
||||
```text
|
||||
analiza-klienta aruba.rzeszow.pl 02-2026
|
||||
```
|
||||
|
||||
uruchom:
|
||||
|
||||
```powershell
|
||||
python gads.py analiza-klienta aruba.rzeszow.pl 02-2026
|
||||
```
|
||||
|
||||
To jest alias dla generowania miesiecznego raportu HTML klienta. Obslugiwane sa formaty miesiaca `MM-YYYY`, `MM.YYYY` i `YYYY-MM`.
|
||||
|
||||
Jesli uzytkownik napisze tylko:
|
||||
|
||||
```text
|
||||
raport-klienta
|
||||
```
|
||||
|
||||
uruchom:
|
||||
|
||||
```powershell
|
||||
python gads.py raport-klienta
|
||||
```
|
||||
|
||||
Pokaz uzytkownikowi liste klientow i popros o numer. Po wyborze klienta oraz miesiaca uruchom:
|
||||
|
||||
```powershell
|
||||
python gads.py raport-klienta --client-number <numer-klienta> --month <YYYY-MM>
|
||||
```
|
||||
|
||||
Komenda najpierw pobiera dane i zatrzymuje sie przed generowaniem HTML. Tworzy plik roboczy:
|
||||
|
||||
```text
|
||||
scripts/reports/output/<domena>_<YYYY-MM>_recommendations.json
|
||||
```
|
||||
|
||||
Wnioski i rekomendacje przygotowuje agent AI, nie skrypt. Agent ma przeczytac dane raportu i kontekst w pliku rekomendacji, uzupelnic `recommendations` konkretnymi wnioskami, pokazac je uzytkownikowi i zapytac o akceptacje.
|
||||
|
||||
Wnioski pisz z perspektywy osoby, ktora obsluguje konto Google Ads klienta. Nie pisz do klienta, ze `warto cos sprawdzic`, `trzeba zweryfikowac` albo `nalezy przeanalizowac`, jakby decyzja byla po jego stronie. Pisz decyzyjnie: co robimy, co zostawiamy, co ograniczamy, co kontrolujemy i jaki jest nastepny krok po naszej stronie. Unikaj bezosobowych, nijakich rekomendacji.
|
||||
|
||||
W tekstach raportu dla klienta uzywaj poprawnych polskich znakow. Dotyczy to szczegolnie tytulow, wnioskow i rekomendacji w pliku `recommendations`. Nie zapisuj tam wersji bez ogonkow typu `zwiekszamy`, `wartosc`, `srednia`, jezeli tekst trafi do HTML widocznego dla klienta.
|
||||
|
||||
Po akceptacji wnioskow uruchom:
|
||||
|
||||
```powershell
|
||||
python gads.py raport-klienta --client <domena> --month <YYYY-MM> --confirm-recommendations TAK
|
||||
```
|
||||
|
||||
Dopiero wtedy komenda generuje lokalny raport HTML w:
|
||||
|
||||
```text
|
||||
scripts/reports/output/<domena>/<YYYY-MM>/index.html
|
||||
```
|
||||
|
||||
Jeżeli klient ma w `config/clients.toml` ustawione `sales_history_sheet`, historia sprzedaży miesięcznej oraz trzy kafelki w sekcji `E-commerce — Sprzedaż` mają pochodzić z tego arkusza Google Sheet. Arkusz powinien zawierać kolumny: `Miesiąc`, `Transakcje`, `Przychody`, `Średnia wartość koszyka`. Nie zastępuj tych danych GA4, jeżeli arkusz jest skonfigurowany.
|
||||
|
||||
Po wygenerowaniu raportu pokaz uzytkownikowi sciezke do pliku i popros o akceptacje przed wysylka na serwer. Nie wysylaj raportu bez jasnej zgody uzytkownika.
|
||||
|
||||
Po akceptacji uruchom upload:
|
||||
|
||||
```powershell
|
||||
python gads.py raport-klienta --client <domena> --month <YYYY-MM> --confirm-upload TAK
|
||||
```
|
||||
|
||||
Po wysylce podaj URL:
|
||||
|
||||
```text
|
||||
https://adspro.projectpro.pl/raporty/<slug>/<YYYY-MM>/
|
||||
```
|
||||
|
||||
## Zasady komunikacji
|
||||
|
||||
- Pisz po polsku.
|
||||
@@ -245,6 +319,58 @@ Przed wdrozeniem tytulow agent musi uzupelnic docelowe wartosci tytulow w zapisa
|
||||
Przed wdrozeniem kategorii agent musi uzupelnic docelowe wartosci kategorii w zapisanym planie JSON i dopiero wtedy zapytac uzytkownika o zgode.
|
||||
Unit pricing moze byc proponowany przez skrypt, jezeli da sie go jednoznacznie odczytac z nazwy produktu.
|
||||
|
||||
## Reczne przypisywanie regul
|
||||
|
||||
Gdy uzytkownik napisze:
|
||||
|
||||
```text
|
||||
Przypisz regule:
|
||||
- tresc reguly do oceny
|
||||
```
|
||||
|
||||
agent ma potraktowac to jako prosbe o kuracje pojedynczej reguly wiedzy.
|
||||
|
||||
Kolejnosc pracy:
|
||||
|
||||
1. Sprawdz aktualne grupy i zadania w `config/tasks.toml`.
|
||||
2. Nie przywracaj usunietych zadan ani grup. Jesli lista zadan jest ograniczona, uznaj to za swiadoma decyzje uzytkownika.
|
||||
3. Ocen, czy regule warto dodac do narzedzia.
|
||||
4. Zaproponuj docelowe brzmienie reguly: `condition`, `recommendation`, `risk`, `rule_type`, `topic`, `confidence` i docelowe `task_ids`.
|
||||
5. Zaproponuj policzalny `machine_condition` i `machine_effect`, jezeli regule da sie bezpiecznie zastosowac w skrypcie na danych pobieranych przez dane zadanie.
|
||||
6. `machine_condition` ma uzywac tylko pol, ktore naprawde istnieja w planie danego zadania, np. `channel_type`, `conversions_30d`, `bidding_strategy_type`, `budget_context`, `search_budget_lost_impression_share`.
|
||||
7. Jesli nie da sie zbudowac bezpiecznego warunku maszynowego, napisz to wprost i zaproponuj zapis reguly bez automatycznego wplywu, jako kontekst dla agenta AI/czlowieka.
|
||||
8. Uzywaj tylko istniejacych identyfikatorow zadan z `config/tasks.toml`.
|
||||
9. Jesli nie ma dobrego zadania, powiedz, ze regule lepiej odlozyc albo dodac dopiero po utworzeniu nowego zadania.
|
||||
10. Nie zapisuj reguly do `knowledge/rules.jsonl`, dopoki uzytkownik jasno nie odpowie `Dodaj`.
|
||||
11. Po odpowiedzi `Dodaj` dopisz jedna kompletna linie JSONL do `knowledge/rules.jsonl`.
|
||||
|
||||
Przy zapisie do `knowledge/rules.jsonl` uzupelnij pola: `id`, `status`, `topic`, `task_ids`, `suggested_task_ids`, `rule_type`, `condition`, `recommendation`, `risk`, `source`, `source_file`, `confidence`, `duplicate_of`, `supersedes`, `text`, `created_at`, `updated_at`. Jezeli regula ma dzialac automatycznie, dodaj tez `machine_condition` i `machine_effect`.
|
||||
|
||||
Przyklad policzalnej czesci reguly:
|
||||
|
||||
```json
|
||||
{
|
||||
"machine_condition": {
|
||||
"all": [
|
||||
{"field": "channel_type", "op": "eq", "value": "SEARCH"},
|
||||
{"field": "conversions_30d", "op": "lt", "value": 15},
|
||||
{"field": "bidding_strategy_type", "op": "in", "value": ["MAXIMIZE_CONVERSIONS", "TARGET_CPA", "MAXIMIZE_CONVERSION_VALUE", "TARGET_ROAS"]}
|
||||
]
|
||||
},
|
||||
"machine_effect": {
|
||||
"level": "ostroznie",
|
||||
"action": "nie przechodz na automatyzacje konwersyjna",
|
||||
"reason_prefix": "Regula wiedzy"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Ten tryb jest reczna alternatywa dla komendy:
|
||||
|
||||
```powershell
|
||||
python gads.py wiedza przypisz
|
||||
```
|
||||
|
||||
## Reguly i wyjatki klientow
|
||||
|
||||
Ustawienia globalne i wyjatki per klient sa w:
|
||||
|
||||
@@ -1,218 +0,0 @@
|
||||
# Rozbudowa narzedzia
|
||||
|
||||
Ten plik opisuje, jak dodawac nowe grupy zadan, zadania i skrypty, zeby kolejny agent nie musial projektowac procesu od zera.
|
||||
|
||||
## Zasada architektury
|
||||
|
||||
Kazde zadanie powinno dzialac w tym samym modelu:
|
||||
|
||||
1. Pobierz aktualne dane.
|
||||
2. Zbuduj plan.
|
||||
3. Zapisz plan do `clients/<domena>/plans/` jako `.json` i `.md`.
|
||||
4. W trybie `--plan-only` nie wdrazaj zmian.
|
||||
5. Po akceptacji uzytkownika wdrazaj tylko plan zapisany w JSON.
|
||||
6. Zapisz historie do:
|
||||
- `clients/<domena>/history/YYYY-MM-DD.jsonl`
|
||||
- `clients/<domena>/changes/YYYY-MM-DD.md`
|
||||
|
||||
Agent AI prowadzi uzytkownika, ale logika pobierania danych, analizy i wdrozenia zmian ma byc w Pythonie.
|
||||
|
||||
## Dodanie nowej grupy zadan
|
||||
|
||||
Przed dodaniem wiekszego zakresu sprawdz:
|
||||
|
||||
```text
|
||||
OLD_COMMANDS_CHECKLIST.md
|
||||
```
|
||||
|
||||
To jest lista rzeczy sprawdzanych przez stary system z `D:\google ads\`.
|
||||
|
||||
Edytuj:
|
||||
|
||||
```text
|
||||
config/tasks.toml
|
||||
```
|
||||
|
||||
Dodaj nowa grupe:
|
||||
|
||||
```toml
|
||||
[[groups]]
|
||||
id = "search"
|
||||
name = "Kampanie Search"
|
||||
```
|
||||
|
||||
Zadania beda numerowane automatycznie jako `2.1`, `2.2`, itd. w zaleznosci od kolejnosci grup.
|
||||
|
||||
## Dodanie nowego zadania do grupy
|
||||
|
||||
W `config/tasks.toml` dodaj zadanie pod odpowiednia grupa:
|
||||
|
||||
```toml
|
||||
[[groups.tasks]]
|
||||
id = "check_search_settings"
|
||||
name = "Sprawdzenie ustawien"
|
||||
description = "Sprawdza ustawienia kampanii Search wedlug regul globalnych i wyjatkow klienta."
|
||||
```
|
||||
|
||||
`id` jest techniczne i musi byc stabilne. `name` i `description` sa dla uzytkownika.
|
||||
|
||||
## Plik zadania w Pythonie
|
||||
|
||||
Dodaj modul w:
|
||||
|
||||
```text
|
||||
src/gads_v2/tasks/
|
||||
```
|
||||
|
||||
Przyklad nazwy:
|
||||
|
||||
```text
|
||||
src/gads_v2/tasks/search_settings_check.py
|
||||
```
|
||||
|
||||
Minimalny wzorzec funkcji:
|
||||
|
||||
```python
|
||||
def run_check_search_settings(
|
||||
client_config: ClientConfig,
|
||||
global_rules: dict,
|
||||
plan_only: bool = False,
|
||||
apply_plan_path: str | None = None,
|
||||
confirm_apply: str | None = None,
|
||||
show_navigation: bool = True,
|
||||
) -> None:
|
||||
...
|
||||
```
|
||||
|
||||
Wymagania:
|
||||
|
||||
- `plan_only=True` zawsze tylko zapisuje plan.
|
||||
- `apply_plan_path` wdraza tylko wskazany plan JSON.
|
||||
- `confirm_apply` musi wymagac wartosci `TAK`.
|
||||
- `show_navigation=False` musi ukrywac pytanie `Co dalej`, bo uzywa tego tryb sekwencji.
|
||||
|
||||
## Struktura planu
|
||||
|
||||
Plan powinien miec klase lub slownik z metodami:
|
||||
|
||||
```python
|
||||
to_dict()
|
||||
from_dict()
|
||||
```
|
||||
|
||||
Plan JSON musi zawierac:
|
||||
|
||||
```json
|
||||
{
|
||||
"created_at": "...",
|
||||
"client": "example.pl",
|
||||
"task": "task_id",
|
||||
"changes": []
|
||||
}
|
||||
```
|
||||
|
||||
Plan Markdown powinien zawierac:
|
||||
|
||||
- krotkie podsumowanie,
|
||||
- tabele po kampaniach, jesli zadanie dotyczy kampanii,
|
||||
- tabele planowanych dzialan,
|
||||
- ostrzezenia lub pominiete reguly.
|
||||
|
||||
## Podpiecie zadania do CLI
|
||||
|
||||
Edytuj:
|
||||
|
||||
```text
|
||||
src/gads_v2/cli.py
|
||||
```
|
||||
|
||||
1. Zaimportuj funkcje zadania:
|
||||
|
||||
```python
|
||||
from .tasks.search_settings_check import run_check_search_settings
|
||||
```
|
||||
|
||||
2. Dodaj `id` do argumentu `--task`:
|
||||
|
||||
```python
|
||||
parser.add_argument("--task", choices=["sync_pla_cl1", "check_pla_settings", "check_search_settings"], ...)
|
||||
```
|
||||
|
||||
3. Dodaj obsluge w `run_task()`:
|
||||
|
||||
```python
|
||||
if task_id == "check_search_settings":
|
||||
run_check_search_settings(
|
||||
client,
|
||||
global_rules,
|
||||
plan_only=plan_only,
|
||||
apply_plan_path=apply_plan_path,
|
||||
confirm_apply=confirm_apply,
|
||||
show_navigation=show_navigation,
|
||||
)
|
||||
return
|
||||
```
|
||||
|
||||
## Reguly globalne i wyjatki klientow
|
||||
|
||||
Reguly trzymaj w:
|
||||
|
||||
```text
|
||||
config/clients.toml
|
||||
```
|
||||
|
||||
Przyklad globalny:
|
||||
|
||||
```toml
|
||||
[global_rules.search_settings]
|
||||
require_presence_only = true
|
||||
require_search_partners_off = true
|
||||
```
|
||||
|
||||
Wyjatek per klient:
|
||||
|
||||
```toml
|
||||
[clients."example.pl".search_settings]
|
||||
require_search_partners_off = false
|
||||
```
|
||||
|
||||
W kodzie uzywaj:
|
||||
|
||||
```python
|
||||
rules = client_config.effective_rules(global_rules, "search_settings")
|
||||
```
|
||||
|
||||
## Numeracja i wybory
|
||||
|
||||
Lista zadan uzywa formatu:
|
||||
|
||||
```text
|
||||
1.1 - pierwsze zadanie w pierwszej grupie
|
||||
1.2 - drugie zadanie w pierwszej grupie
|
||||
1.0 - wszystkie zadania z pierwszej grupy
|
||||
ALL - wszystkie zadania ze wszystkich grup
|
||||
```
|
||||
|
||||
Nie dodawaj recznej numeracji do `tasks.toml`. Numeracja wynika z kolejnosci grup i zadan.
|
||||
|
||||
## Test po dodaniu zadania
|
||||
|
||||
Uruchom:
|
||||
|
||||
```powershell
|
||||
python -m compileall -q gads.py src
|
||||
python gads.py analiza-klienta --client-number 1
|
||||
python gads.py analiza-klienta --client-number 1 --select <nr> --plan-only
|
||||
```
|
||||
|
||||
Jesli zadanie wdraza zmiany, przetestuj najpierw tylko `--plan-only`.
|
||||
|
||||
## Format komunikacji agentow
|
||||
|
||||
Instrukcja dla agentow jest w:
|
||||
|
||||
```text
|
||||
AGENTS.md
|
||||
```
|
||||
|
||||
Po dodaniu nowego typu zadania dopisz tam tylko specjalne zasady, jesli agent ma wiedziec cos ponad standardowy przeplyw.
|
||||
@@ -1,67 +0,0 @@
|
||||
# Google Ads ver 2
|
||||
|
||||
Terminalowe narzedzie do pracy na kontach Google Ads klientow.
|
||||
|
||||
Instrukcja pracy dla Claude Code, Codex, Gemini CLI i innych agentow AI jest w `AGENTS.md`.
|
||||
Instrukcja rozbudowy o nowe grupy i zadania jest w `DEVELOPMENT.md`.
|
||||
Backlog rzeczy sprawdzanych w starej wersji jest w `OLD_COMMANDS_CHECKLIST.md`.
|
||||
|
||||
## Start
|
||||
|
||||
1. Uzupelnij `.env` na podstawie `.env.example`.
|
||||
2. Uzupelnij `config/clients.toml` na podstawie `config/clients.example.toml`.
|
||||
3. Zainstaluj zaleznosci:
|
||||
|
||||
```powershell
|
||||
python -m pip install -r requirements.txt
|
||||
```
|
||||
|
||||
4. Uruchom menu:
|
||||
|
||||
```powershell
|
||||
python gads.py
|
||||
```
|
||||
|
||||
Albo uruchom konkretne zadanie bez menu:
|
||||
|
||||
```powershell
|
||||
python gads.py --client laitica.pl --task sync_pla_cl1
|
||||
```
|
||||
|
||||
Tryb dla Claude Code, Codex albo Gemini CLI:
|
||||
|
||||
```powershell
|
||||
python gads.py analiza-klienta
|
||||
python gads.py analiza-klienta --client-number 5
|
||||
python gads.py analiza-klienta --client-number 5 --task-number 1 --plan-only
|
||||
```
|
||||
|
||||
Po tej komendzie narzedzie zapisze plan w `clients/<domena>/plans/`.
|
||||
Agent czyta plik `.md` albo `.json`, analizuje go i pyta Cie o zgode.
|
||||
Po Twojej akceptacji agent uruchamia wdrozenie konkretnego planu:
|
||||
|
||||
```powershell
|
||||
python gads.py --client laitica.pl --task sync_pla_cl1 --apply-plan clients/laitica.pl/plans/PLAN.json --confirm-apply TAK
|
||||
```
|
||||
|
||||
## MVP
|
||||
|
||||
Pierwsze zadanie:
|
||||
|
||||
- pobiera kampanie `[PLA_CL1]` z Google Ads,
|
||||
- wyciaga segmenty CL1 z nazw kampanii,
|
||||
- pobiera produkty z adsPRO,
|
||||
- przygotowuje plan synchronizacji grup reklam,
|
||||
- czeka na akceptacje przed wdrozeniem zmian,
|
||||
- zapisuje historie w katalogu klienta.
|
||||
|
||||
## Dane i historia
|
||||
|
||||
- `config/clients.toml` - lista klientow i identyfikatory kont.
|
||||
- `config/clients.toml` - takze reguly globalne i wyjatki per klient, np. ustawienia kampanii PLA.
|
||||
- `.env` - dane dostepowe do Google Ads i adsPRO.
|
||||
- `clients/<domena>/data/` - pobrane dane robocze.
|
||||
- `clients/<domena>/history/YYYY-MM-DD.jsonl` - historia do filtrowania po kliencie, dacie i kampanii.
|
||||
- `clients/<domena>/changes/YYYY-MM-DD.md` - czytelny dziennik zmian.
|
||||
|
||||
Narzedzie nie uzywa API modeli AI. Claude Code, Codex albo Gemini CLI moga uruchamiac te same komendy terminalowe.
|
||||
52
.sync/Archive/config/clients.1.toml
Normal file
52
.sync/Archive/config/clients.1.toml
Normal file
@@ -0,0 +1,52 @@
|
||||
[clients."pomysloweprezenty.pl"]
|
||||
google_ads_customer_id = "941-605-1782"
|
||||
adspro_client_id = "2"
|
||||
|
||||
[clients."innsi.pl"]
|
||||
google_ads_customer_id = "133-343-6346"
|
||||
adspro_client_id = "5"
|
||||
|
||||
[clients."van-dam.pl"]
|
||||
google_ads_customer_id = "570-658-4790"
|
||||
|
||||
[clients."investagd.pl"]
|
||||
google_ads_customer_id = "229-855-5588"
|
||||
adspro_client_id = "8"
|
||||
|
||||
[clients."wyprzedaze.pl"]
|
||||
google_ads_customer_id = "775-249-3197"
|
||||
adspro_client_id = "10"
|
||||
|
||||
[clients."laitica.pl"]
|
||||
google_ads_customer_id = "262-567-7205"
|
||||
adspro_client_id = "9"
|
||||
|
||||
[clients."studio-zoe.pl"]
|
||||
google_ads_customer_id = "387-166-1050"
|
||||
|
||||
[clients."aruba.rzeszow.pl"]
|
||||
google_ads_customer_id = "374-470-8609"
|
||||
adspro_client_id = "3"
|
||||
sales_history_sheet = "https://docs.google.com/spreadsheets/d/1tkT1WgOi41uj7D0Q8ZTD0qINsd11VVsd7G9Q7M8kAN8/"
|
||||
seo_works_history_sheet = "https://docs.google.com/spreadsheets/d/1lle7nkl0ykkJMlo2eA8AuV7Sd705ia6bmh7RM38nsRg/"
|
||||
seo_links_history_sheet = "https://docs.google.com/spreadsheets/d/1b4uCBzNSFFxIv2X1fTsqZcdDr7NZZYOIsmc9kLJqkq0/"
|
||||
|
||||
[clients."ibra-makeup.pl"]
|
||||
google_ads_customer_id = "818-919-2566"
|
||||
adspro_client_id = "4"
|
||||
sales_history_sheet = "https://docs.google.com/spreadsheets/d/1OGqRluQgd2vCVxbmVLhPd00q8RWucSc0L4GdcGAl8vU"
|
||||
|
||||
[global_rules]
|
||||
max_create_groups_without_extra_confirm = 100
|
||||
max_pause_groups_without_extra_confirm = 100
|
||||
|
||||
[global_rules.pla_settings]
|
||||
require_presence_only = true
|
||||
require_high_priority = true
|
||||
|
||||
[global_rules.product_feed_optimization]
|
||||
limit = 10
|
||||
min_days_between_title_changes = 30
|
||||
|
||||
[global_rules.budget_usage]
|
||||
min_days_between_budget_changes = 7
|
||||
@@ -1,20 +0,0 @@
|
||||
[clients."example.pl"]
|
||||
google_ads_customer_id = "123-456-7890"
|
||||
adspro_client_id = "1"
|
||||
|
||||
[global_rules]
|
||||
max_create_groups_without_extra_confirm = 100
|
||||
max_pause_groups_without_extra_confirm = 100
|
||||
|
||||
[global_rules.pla_settings]
|
||||
require_presence_only = true
|
||||
require_high_priority = true
|
||||
|
||||
[global_rules.product_feed_optimization]
|
||||
limit = 10
|
||||
min_days_between_title_changes = 30
|
||||
|
||||
# Wyjatek per klient:
|
||||
# [clients."example.pl".pla_settings]
|
||||
# require_high_priority = false
|
||||
# require_presence_only = true
|
||||
@@ -9,10 +9,6 @@ adspro_client_id = "5"
|
||||
[clients."van-dam.pl"]
|
||||
google_ads_customer_id = "570-658-4790"
|
||||
|
||||
[clients."sklep.ele-comp.pl"]
|
||||
google_ads_customer_id = "489-092-9476"
|
||||
adspro_client_id = "7"
|
||||
|
||||
[clients."investagd.pl"]
|
||||
google_ads_customer_id = "229-855-5588"
|
||||
adspro_client_id = "8"
|
||||
@@ -35,6 +31,7 @@ adspro_client_id = "3"
|
||||
[clients."ibra-makeup.pl"]
|
||||
google_ads_customer_id = "818-919-2566"
|
||||
adspro_client_id = "4"
|
||||
sales_history_sheet = "https://docs.google.com/spreadsheets/d/1OGqRluQgd2vCVxbmVLhPd00q8RWucSc0L4GdcGAl8vU"
|
||||
|
||||
[global_rules]
|
||||
max_create_groups_without_extra_confirm = 100
|
||||
@@ -47,3 +44,6 @@ require_high_priority = true
|
||||
[global_rules.product_feed_optimization]
|
||||
limit = 10
|
||||
min_days_between_title_changes = 30
|
||||
|
||||
[global_rules.budget_usage]
|
||||
min_days_between_budget_changes = 7
|
||||
|
||||
78
.sync/Archive/config/tasks.1.toml
Normal file
78
.sync/Archive/config/tasks.1.toml
Normal file
@@ -0,0 +1,78 @@
|
||||
[[groups]]
|
||||
id = "campaigns_structure"
|
||||
name = "Ustawienia kampanii"
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_pla_settings"
|
||||
name = "Sprawdzenie ustawien PLA"
|
||||
description = "Sprawdza ustawienia lokalizacji i priorytetu kampanii PLA wedlug regul globalnych i wyjatkow klienta."
|
||||
|
||||
[[groups]]
|
||||
id = "search_campaigns"
|
||||
name = "Kampanie Search"
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_search_basic_settings"
|
||||
name = "Sprawdzenie podstawowych ustawien Search"
|
||||
description = "Sprawdza podstawowe ustawienia kampanii Search i przygotowuje korekty: lokalizacja Obecnosc, wylaczona siec reklamowa oraz wylaczeni partnerzy wyszukiwania."
|
||||
|
||||
[[groups]]
|
||||
id = "measurement_conversions"
|
||||
name = "Pomiar i konwersje"
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_conversion_tracking"
|
||||
name = "Sprawdzenie pomiaru konwersji"
|
||||
description = "Pobiera akcje konwersji z Google Ads, sprawdza dane i wartosci oraz proponuje wlaczenie roznych wartosci konwersji dla e-commerce."
|
||||
|
||||
[[groups]]
|
||||
id = "product_campaigns"
|
||||
name = "Kampanie produktowe"
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "sync_pla_cl1"
|
||||
name = "Synchronizacja kampanii PLA_CL1"
|
||||
description = "Porownuje kampanie [PLA_CL1] z produktami w adsPRO i przygotowuje plan zmian grup reklam."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "optimize_shopping_troas_ag"
|
||||
name = "Automatyzacja tROAS per grupa reklam PLA"
|
||||
description = "Analizuje Standard Shopping PLA z ostatnich 30 dni i przygotowuje plan stopniowej zmiany tROAS na poziomie grup reklam."
|
||||
|
||||
[[groups]]
|
||||
id = "products_feed_shopping"
|
||||
name = "Produkty, feed i Shopping"
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "optimize_product_titles"
|
||||
name = "Optymalizacja tytulow produktow"
|
||||
description = "Pobiera produkty z adsPRO i przygotowuje plan optymalizacji tytulow produktow."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "optimize_product_categories"
|
||||
name = "Optymalizacja kategorii Google"
|
||||
description = "Pobiera produkty z adsPRO bez kategorii Google i przygotowuje plan decyzji agenta AI."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "fill_product_unit_pricing"
|
||||
name = "Uzupelnienie unit pricing"
|
||||
description = "Pobiera produkty z adsPRO bez unit pricing i przygotowuje plan uzupelnienia miary oraz miary bazowej."
|
||||
|
||||
[[groups]]
|
||||
id = "budget_bidding_alerts"
|
||||
name = "Budzety, stawki i alerty"
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_budget_usage"
|
||||
name = "Sprawdzenie wykorzystania budzetu"
|
||||
description = "Sprawdza tygodniowe wykorzystanie budzetow, kampanie ograniczone budzetem i ryzyko zbyt szybkiego albo zbyt wolnego wydawania srodkow."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_bidding_strategies"
|
||||
name = "Sprawdzenie strategii stawek"
|
||||
description = "Sprawdza strategie ustalania stawek, cele Docelowy ROAS/Docelowy CPA, wolumen konwersji i ryzyko zbyt szybkich zmian."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_account_anomalies"
|
||||
name = "Sprawdzenie anomalii konta"
|
||||
description = "Sprawdza nagle spadki i wzrosty kosztu, klikniec, konwersji, wartosci konwersji, CTR, CPC i ROAS na poziomie kampanii."
|
||||
@@ -1,20 +1,25 @@
|
||||
[[groups]]
|
||||
id = "pla"
|
||||
name = "Kampanie PLA"
|
||||
id = "campaigns_structure"
|
||||
name = "Kampanie i struktura"
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "sync_pla_cl1"
|
||||
name = "Synchronizacja kampanii PLA_CL1"
|
||||
description = "Porownuje kampanie [PLA_CL1] z produktami w adsPRO i przygotowuje plan zmian grup reklam."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "optimize_shopping_troas_ag"
|
||||
name = "Automatyzacja tROAS per grupa reklam PLA"
|
||||
description = "Analizuje Standard Shopping PLA z ostatnich 30 dni i przygotowuje plan stopniowej zmiany tROAS na poziomie grup reklam."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_pla_settings"
|
||||
name = "Sprawdzenie ustawien"
|
||||
name = "Sprawdzenie ustawien PLA"
|
||||
description = "Sprawdza ustawienia lokalizacji i priorytetu kampanii PLA wedlug regul globalnych i wyjatkow klienta."
|
||||
|
||||
[[groups]]
|
||||
id = "products"
|
||||
name = "Produkty"
|
||||
id = "products_feed_shopping"
|
||||
name = "Produkty, feed i Shopping"
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "optimize_product_titles"
|
||||
@@ -30,3 +35,21 @@ description = "Pobiera produkty z adsPRO bez kategorii Google i przygotowuje pla
|
||||
id = "fill_product_unit_pricing"
|
||||
name = "Uzupelnienie unit pricing"
|
||||
description = "Pobiera produkty z adsPRO bez unit pricing i przygotowuje plan uzupelnienia miary oraz miary bazowej."
|
||||
[[groups]]
|
||||
id = "budget_bidding_alerts"
|
||||
name = "Budzety, stawki i alerty"
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_budget_usage"
|
||||
name = "Sprawdzenie wykorzystania budzetu"
|
||||
description = "Sprawdza tygodniowe wykorzystanie budzetow, kampanie ograniczone budzetem i ryzyko zbyt szybkiego albo zbyt wolnego wydawania srodkow."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_bidding_strategies"
|
||||
name = "Sprawdzenie strategii stawek"
|
||||
description = "Sprawdza strategie ustalania stawek, cele Docelowy ROAS/Docelowy CPA, wolumen konwersji i ryzyko zbyt szybkich zmian."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_account_anomalies"
|
||||
name = "Sprawdzenie anomalii konta"
|
||||
description = "Sprawdza nagle spadki i wzrosty kosztu, klikniec, konwersji, wartosci konwersji, CTR, CPC i ROAS na poziomie kampanii."
|
||||
|
||||
165
.sync/Archive/config/tasks_backup.toml
Normal file
165
.sync/Archive/config/tasks_backup.toml
Normal file
@@ -0,0 +1,165 @@
|
||||
[[groups]]
|
||||
id = "campaigns_structure"
|
||||
name = "Kampanie i struktura"
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "sync_pla_cl1"
|
||||
name = "Synchronizacja kampanii PLA_CL1"
|
||||
description = "Porownuje kampanie [PLA_CL1] z produktami w adsPRO i przygotowuje plan zmian grup reklam."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_pla_settings"
|
||||
name = "Sprawdzenie ustawien PLA"
|
||||
description = "Sprawdza ustawienia lokalizacji i priorytetu kampanii PLA wedlug regul globalnych i wyjatkow klienta."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_search_basic_settings"
|
||||
name = "Sprawdzenie podstawowych ustawien Search"
|
||||
description = "Sprawdza podstawowe ustawienia kampanii Search: lokalizacje, sieci, jezyki i inne proste ustawienia konfiguracyjne."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_pmax_structure"
|
||||
name = "Sprawdzenie struktury PMax"
|
||||
description = "Sprawdza kampanie Performance Max, asset groups, feed, brand/non-brand i ryzyka kanibalizacji."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_feed_merchant_quality"
|
||||
name = "Sprawdzenie feedu i Merchant Center"
|
||||
description = "Sprawdza jakosc feedu produktowego, potencjalne problemy Merchant Center, atrybuty produktow i ryzyka odrzucen."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_shopping_product_statuses"
|
||||
name = "Sprawdzenie statusow produktow Shopping"
|
||||
description = "Sprawdza produkty niedostepne, odrzucone, ograniczone albo bez emisji w Shopping i PMax."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_shopping_product_performance"
|
||||
name = "Sprawdzenie wynikow produktow Shopping"
|
||||
description = "Sprawdza wyniki produktow Shopping z ostatnich 30 dni: koszt, klikniecia, konwersje, wartosc, ROAS i CPA."
|
||||
|
||||
[[groups]]
|
||||
id = "measurement_audiences"
|
||||
name = "Pomiar, konwersje i odbiorcy"
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_conversion_tracking"
|
||||
name = "Sprawdzenie pomiaru konwersji"
|
||||
description = "Sprawdza, czy konto ma poprawnie ustawione konwersje, tagowanie, GA4/Google Ads i czy dane nadaja sie do optymalizacji kampanii."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_conversion_action_performance"
|
||||
name = "Sprawdzenie akcji konwersji"
|
||||
description = "Sprawdza, ktore akcje konwersji generuja wynik w kampaniach i czy rozklad konwersji wymaga recznej oceny pomiaru."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_remarketing_setup"
|
||||
name = "Sprawdzenie remarketingu"
|
||||
description = "Sprawdza podstawy remarketingu: listy odbiorcow, dynamiczny remarketing, tagowanie produktowe i ryzyka konfliktu z PMax."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_gender_performance"
|
||||
name = "Sprawdzenie plci odbiorcow"
|
||||
description = "Sprawdza wyniki kampanii wedlug plci odbiorcow, bez dodawania wykluczen demograficznych i bez korekt stawek."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_age_performance"
|
||||
name = "Sprawdzenie wieku odbiorcow"
|
||||
description = "Sprawdza wyniki kampanii wedlug przedzialow wieku odbiorcow, bez dodawania wykluczen demograficznych i bez korekt stawek."
|
||||
|
||||
|
||||
[[groups]]
|
||||
id = "traffic_keywords_landing"
|
||||
name = "Ruch, slowa i strony docelowe"
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_search_terms"
|
||||
name = "Analiza zapytan i wykluczen"
|
||||
description = "Sprawdza zapytania uzytkownikow, niepasujacy ruch, broad match, frazy brand/non-brand i kandydatow do wykluczen."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_ad_group_performance"
|
||||
name = "Sprawdzenie grup reklam"
|
||||
description = "Sprawdza koszt, klikniecia, konwersje, wartosc konwersji, ROAS, CPA i CTR na poziomie grup reklam."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_keyword_statuses"
|
||||
name = "Sprawdzenie statusow slow kluczowych"
|
||||
description = "Sprawdza odrzucone, ograniczone, wstrzymane albo technicznie problematyczne slowa kluczowe."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_keyword_quality_score"
|
||||
name = "Sprawdzenie Wyniku Jakosci slow kluczowych"
|
||||
description = "Sprawdza Wynik Jakosci slow kluczowych, jakosc reklamy, strone docelowa, przewidywany CTR i wyniki."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_landing_page_performance"
|
||||
name = "Sprawdzenie stron docelowych"
|
||||
description = "Sprawdza wyniki stron docelowych: koszt, klikniecia, konwersje, wartosc konwersji, ROAS, CPA, CTR i wspolczynnik konwersji."
|
||||
|
||||
[[groups]]
|
||||
id = "ads_assets_statuses"
|
||||
name = "Reklamy, zasoby i statusy"
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_rsa_assets"
|
||||
name = "Sprawdzenie reklam RSA i zasobow"
|
||||
description = "Sprawdza reklamy RSA, naglowki, teksty, assety, DKI i podstawowe ryzyka kreacji."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_ad_asset_statuses"
|
||||
name = "Sprawdzenie statusow reklam i zasobow"
|
||||
description = "Sprawdza odrzucone, ograniczone, wstrzymane albo oczekujace reklamy i zasoby."
|
||||
|
||||
[[groups]]
|
||||
id = "settings_segments_auctions"
|
||||
name = "Ustawienia, segmenty i aukcje"
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_campaign_locations"
|
||||
name = "Sprawdzenie lokalizacji kampanii"
|
||||
description = "Sprawdza lokalizacje, wykluczone lokalizacje i tryb kierowania lokalizacja w kampaniach."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_campaign_networks"
|
||||
name = "Sprawdzenie sieci kampanii"
|
||||
description = "Sprawdza ustawienia sieci kampanii: Google Search, partnerow wyszukiwania i siec reklamowa."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_campaign_languages"
|
||||
name = "Sprawdzenie jezykow kampanii"
|
||||
description = "Sprawdza ustawienia jezykow kampanii i oznacza kampanie wymagajace recznej oceny dopasowania jezyka do rynku klienta."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_ad_schedules"
|
||||
name = "Sprawdzenie harmonogramu reklam"
|
||||
description = "Sprawdza harmonogram emisji reklam, kampanie dzialajace 24/7 i nietypowe godziny emisji."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_device_performance"
|
||||
name = "Sprawdzenie urzadzen"
|
||||
description = "Sprawdza wyniki wedlug urzadzen: komputer, telefon i tablet, pokazujac koszt, konwersje, wartosc konwersji, ROAS, CPA i udzial kosztu."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_day_of_week_performance"
|
||||
name = "Sprawdzenie dni tygodnia"
|
||||
description = "Sprawdza wyniki wedlug dni tygodnia z ostatnich 30 dni: koszt, klikniecia, konwersje, wartosc konwersji, ROAS i CPA."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_hour_of_day_performance"
|
||||
name = "Sprawdzenie godzin dnia"
|
||||
description = "Sprawdza wyniki wedlug godzin dnia z ostatnich 30 dni, aby wskazac godziny wymagajace oceny."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_network_performance"
|
||||
name = "Sprawdzenie efektywnosci sieci"
|
||||
description = "Sprawdza realne wyniki wedlug sieci emisji, np. Search, partnerzy, Display i Shopping."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_impression_share"
|
||||
name = "Sprawdzenie udzialu w wyswietleniach"
|
||||
description = "Sprawdza udzial w wyswietleniach, utrate przez budzet i utrate przez ranking na poziomie kampanii."
|
||||
|
||||
[[groups.tasks]]
|
||||
id = "check_auction_insights"
|
||||
name = "Sprawdzenie Auction Insights"
|
||||
description = "Sprawdza konkurentow w aukcji, overlap rate, outranking share, position above rate oraz top i absolute top rate."
|
||||
@@ -1,3 +0,0 @@
|
||||
google-ads>=25.0.0
|
||||
requests>=2.31.0
|
||||
|
||||
803
.sync/Archive/scripts/reports/fetch_monthly_report_data.py
Normal file
803
.sync/Archive/scripts/reports/fetch_monthly_report_data.py
Normal file
@@ -0,0 +1,803 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Pobiera dane z Google Ads API + GA4 za wskazany miesiąc i zapisuje jako JSON.
|
||||
|
||||
Użycie:
|
||||
python scripts/reports/fetch_monthly_report_data.py --customer studio-zoe.pl --month 2026-02
|
||||
python scripts/reports/fetch_monthly_report_data.py --customer 3871661050 --month 2026-02 --output output/report.json
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import calendar
|
||||
import csv
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import io
|
||||
import tomllib
|
||||
from datetime import datetime, timedelta
|
||||
from pathlib import Path
|
||||
from urllib.parse import parse_qs, urlparse
|
||||
|
||||
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8", errors="replace")
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
from lib.gads_client import get_client, get_customer_id, run_query
|
||||
import requests
|
||||
|
||||
ROOT = Path(__file__).parent.parent.parent
|
||||
sys.path.insert(0, str(ROOT))
|
||||
from src.gads_v2.config import load_env
|
||||
|
||||
load_env(ROOT / ".env")
|
||||
|
||||
|
||||
def load_client_report_config(domain):
|
||||
"""Load scalar report settings for a client from config/clients.toml."""
|
||||
config_path = ROOT / "config" / "clients.toml"
|
||||
if not config_path.exists():
|
||||
return {}
|
||||
data = tomllib.loads(config_path.read_text(encoding="utf-8"))
|
||||
return data.get("clients", {}).get(domain, {})
|
||||
|
||||
|
||||
def parse_month(month_str):
|
||||
"""Parse YYYY-MM to (year, month) and calculate date range."""
|
||||
year, month = map(int, month_str.split("-"))
|
||||
last_day = calendar.monthrange(year, month)[1]
|
||||
start = f"{year}-{month:02d}-01"
|
||||
end = f"{year}-{month:02d}-{last_day:02d}"
|
||||
return year, month, start, end
|
||||
|
||||
|
||||
def prev_month(year, month):
|
||||
"""Calculate previous month's date range."""
|
||||
if month == 1:
|
||||
py, pm = year - 1, 12
|
||||
else:
|
||||
py, pm = year, month - 1
|
||||
last_day = calendar.monthrange(py, pm)[1]
|
||||
start = f"{py}-{pm:02d}-01"
|
||||
end = f"{py}-{pm:02d}-{last_day:02d}"
|
||||
return py, pm, start, end
|
||||
|
||||
|
||||
def pct_change(current, previous):
|
||||
"""Calculate percentage change, handling zero division."""
|
||||
if previous == 0:
|
||||
return 100.0 if current > 0 else 0.0
|
||||
return round(((current - previous) / previous) * 100, 1)
|
||||
|
||||
|
||||
def normalize_header(value):
|
||||
value = (value or "").strip().lower()
|
||||
replacements = {
|
||||
"ą": "a",
|
||||
"ć": "c",
|
||||
"ę": "e",
|
||||
"ł": "l",
|
||||
"ń": "n",
|
||||
"ó": "o",
|
||||
"ś": "s",
|
||||
"ź": "z",
|
||||
"ż": "z",
|
||||
}
|
||||
for src, dst in replacements.items():
|
||||
value = value.replace(src, dst)
|
||||
return re.sub(r"[^a-z0-9]+", "", value)
|
||||
|
||||
|
||||
def parse_money(value):
|
||||
text = str(value or "").strip()
|
||||
if not text:
|
||||
return 0.0
|
||||
text = text.replace("PLN", "").replace("zl", "").replace("zł", "")
|
||||
text = text.replace("\u00a0", " ").replace(" ", "")
|
||||
if "," in text and "." in text:
|
||||
text = text.replace(".", "").replace(",", ".")
|
||||
elif "," in text:
|
||||
text = text.replace(",", ".")
|
||||
text = re.sub(r"[^0-9.\-]", "", text)
|
||||
return round(float(text), 2) if text else 0.0
|
||||
|
||||
|
||||
def parse_int_value(value):
|
||||
return int(round(parse_money(value)))
|
||||
|
||||
|
||||
def parse_history_month(value):
|
||||
text = str(value or "").strip()
|
||||
if not text:
|
||||
return ""
|
||||
if re.fullmatch(r"\d{4}-\d{2}", text):
|
||||
return text
|
||||
if re.fullmatch(r"\d{2}[.-]\d{4}", text):
|
||||
month, year = re.split(r"[.-]", text)
|
||||
return f"{int(year):04d}-{int(month):02d}"
|
||||
if re.fullmatch(r"\d{4}[./-]\d{1,2}[./-]\d{1,2}", text):
|
||||
year, month, _day = re.split(r"[./-]", text)
|
||||
return f"{int(year):04d}-{int(month):02d}"
|
||||
if re.fullmatch(r"\d{1,2}[./-]\d{1,2}[./-]\d{4}", text):
|
||||
_day, month, year = re.split(r"[./-]", text)
|
||||
return f"{int(year):04d}-{int(month):02d}"
|
||||
return text
|
||||
|
||||
|
||||
def parse_sheet_config(sheet_config):
|
||||
value = str(sheet_config or "").strip()
|
||||
if not value:
|
||||
return "", "0"
|
||||
if value.startswith("http"):
|
||||
parsed = urlparse(value)
|
||||
match = re.search(r"/spreadsheets/d/([^/]+)", parsed.path)
|
||||
spreadsheet_id = match.group(1) if match else value
|
||||
query_gid = parse_qs(parsed.query).get("gid", [None])[0]
|
||||
fragment_gid = parse_qs(parsed.fragment).get("gid", [None])[0]
|
||||
return spreadsheet_id, query_gid or fragment_gid or ""
|
||||
if ":" in value:
|
||||
return value.split(":", 1)
|
||||
return value, ""
|
||||
|
||||
|
||||
def fetch_sales_history_from_sheet(domain, sheet_config):
|
||||
"""Fetch monthly sales history from a public Google Sheet CSV export."""
|
||||
spreadsheet_id, gid = parse_sheet_config(sheet_config)
|
||||
export_url = f"https://docs.google.com/spreadsheets/d/{spreadsheet_id}/gviz/tq?tqx=out:csv"
|
||||
if gid:
|
||||
export_url += f"&gid={gid}"
|
||||
response = requests.get(export_url, timeout=30)
|
||||
response.raise_for_status()
|
||||
response.encoding = "utf-8"
|
||||
|
||||
reader = csv.DictReader(io.StringIO(response.text))
|
||||
history = []
|
||||
for row in reader:
|
||||
normalized = {normalize_header(key): value for key, value in row.items()}
|
||||
month = parse_history_month(
|
||||
normalized.get("month")
|
||||
or normalized.get("miesiac")
|
||||
or normalized.get("data")
|
||||
or normalized.get("date")
|
||||
)
|
||||
revenue = parse_money(
|
||||
normalized.get("revenue")
|
||||
or normalized.get("przychod")
|
||||
or normalized.get("przychody")
|
||||
or normalized.get("sprzedaz")
|
||||
or normalized.get("wartosc")
|
||||
)
|
||||
transactions = parse_int_value(
|
||||
normalized.get("transactions")
|
||||
or normalized.get("transakcje")
|
||||
or normalized.get("zamowienia")
|
||||
or normalized.get("orders")
|
||||
)
|
||||
if not month or not revenue:
|
||||
continue
|
||||
aov = parse_money(
|
||||
normalized.get("aov")
|
||||
or normalized.get("sredniakoszyka")
|
||||
or normalized.get("sredniawartosckoszyka")
|
||||
or normalized.get("sredniawartosczamowienia")
|
||||
)
|
||||
if not aov and transactions:
|
||||
aov = round(revenue / transactions, 2)
|
||||
history.append({
|
||||
"month": month,
|
||||
"transactions": transactions,
|
||||
"revenue": revenue,
|
||||
"aov": aov,
|
||||
"source": "google_sheet",
|
||||
})
|
||||
return sorted(history, key=lambda item: item["month"])
|
||||
|
||||
|
||||
def apply_sheet_ecommerce(report, sales_history, month, previous_month):
|
||||
"""Use Google Sheet sales data for e-commerce KPI cards."""
|
||||
by_month = {row["month"]: row for row in sales_history}
|
||||
current = by_month.get(month)
|
||||
if not current:
|
||||
return False
|
||||
previous = by_month.get(previous_month, {"transactions": 0, "revenue": 0.0, "aov": 0.0})
|
||||
has_previous = previous_month in by_month
|
||||
ecommerce = (report.get("ga4") or {}).get("ecommerce") or {}
|
||||
ecommerce["current"] = {
|
||||
"transactions": current.get("transactions", 0),
|
||||
"revenue": current.get("revenue", 0.0),
|
||||
"aov": current.get("aov", 0.0),
|
||||
}
|
||||
ecommerce["previous"] = {
|
||||
"transactions": previous.get("transactions", 0),
|
||||
"revenue": previous.get("revenue", 0.0),
|
||||
"aov": previous.get("aov", 0.0),
|
||||
}
|
||||
ecommerce["mom_change"] = {
|
||||
"transactions_pct": pct_change(ecommerce["current"]["transactions"], ecommerce["previous"]["transactions"]) if has_previous else None,
|
||||
"revenue_pct": pct_change(ecommerce["current"]["revenue"], ecommerce["previous"]["revenue"]) if has_previous else None,
|
||||
"aov_pct": pct_change(ecommerce["current"]["aov"], ecommerce["previous"]["aov"]) if has_previous else None,
|
||||
}
|
||||
ecommerce["source"] = "google_sheet"
|
||||
if report.get("ga4") is None:
|
||||
report["ga4"] = {}
|
||||
report["ga4"]["ecommerce"] = ecommerce
|
||||
return True
|
||||
|
||||
|
||||
def fetch_google_ads_data(client, customer_id, start_date, end_date):
|
||||
"""Fetch campaign metrics for a date range."""
|
||||
query = f"""
|
||||
SELECT campaign.id, campaign.name, campaign.status,
|
||||
campaign.advertising_channel_type,
|
||||
metrics.impressions, metrics.clicks,
|
||||
metrics.cost_micros, metrics.conversions,
|
||||
metrics.conversions_value,
|
||||
metrics.ctr, metrics.average_cpc
|
||||
FROM campaign
|
||||
WHERE segments.date BETWEEN '{start_date}' AND '{end_date}'
|
||||
AND campaign.status != 'REMOVED'
|
||||
"""
|
||||
rows = run_query(client, customer_id, query)
|
||||
|
||||
campaigns = {}
|
||||
for r in rows:
|
||||
cid = str(r.campaign.id)
|
||||
if cid not in campaigns:
|
||||
campaigns[cid] = {
|
||||
"id": cid,
|
||||
"name": r.campaign.name,
|
||||
"status": r.campaign.status.name,
|
||||
"type": r.campaign.advertising_channel_type.name,
|
||||
"impressions": 0, "clicks": 0, "cost": 0.0,
|
||||
"conversions": 0.0, "conversion_value": 0.0,
|
||||
"ctr": 0.0, "cpc": 0.0,
|
||||
}
|
||||
c = campaigns[cid]
|
||||
c["impressions"] += r.metrics.impressions
|
||||
c["clicks"] += r.metrics.clicks
|
||||
c["cost"] += r.metrics.cost_micros / 1_000_000
|
||||
c["conversions"] += r.metrics.conversions
|
||||
c["conversion_value"] += r.metrics.conversions_value
|
||||
|
||||
# Calculate derived metrics
|
||||
for c in campaigns.values():
|
||||
c["cost"] = round(c["cost"], 2)
|
||||
c["conversions"] = round(c["conversions"], 1)
|
||||
c["conversion_value"] = round(c["conversion_value"], 2)
|
||||
c["ctr"] = round((c["clicks"] / c["impressions"] * 100) if c["impressions"] else 0, 2)
|
||||
c["cpc"] = round((c["cost"] / c["clicks"]) if c["clicks"] else 0, 2)
|
||||
c["cpa"] = round((c["cost"] / c["conversions"]) if c["conversions"] else 0, 2)
|
||||
c["roas"] = round((c["conversion_value"] / c["cost"]) if c["cost"] else 0, 2)
|
||||
|
||||
return list(campaigns.values())
|
||||
|
||||
|
||||
def calc_totals(campaigns):
|
||||
"""Sum up totals across campaigns."""
|
||||
t = {"impressions": 0, "clicks": 0, "cost": 0.0, "conversions": 0.0, "conversion_value": 0.0}
|
||||
for c in campaigns:
|
||||
t["impressions"] += c["impressions"]
|
||||
t["clicks"] += c["clicks"]
|
||||
t["cost"] += c["cost"]
|
||||
t["conversions"] += c["conversions"]
|
||||
t["conversion_value"] += c.get("conversion_value", 0.0)
|
||||
|
||||
t["cost"] = round(t["cost"], 2)
|
||||
t["conversions"] = round(t["conversions"], 1)
|
||||
t["conversion_value"] = round(t["conversion_value"], 2)
|
||||
t["ctr"] = round((t["clicks"] / t["impressions"] * 100) if t["impressions"] else 0, 2)
|
||||
t["cpc"] = round((t["cost"] / t["clicks"]) if t["clicks"] else 0, 2)
|
||||
t["cpa"] = round((t["cost"] / t["conversions"]) if t["conversions"] else 0, 2)
|
||||
t["roas"] = round((t["conversion_value"] / t["cost"]) if t["cost"] else 0, 2)
|
||||
return t
|
||||
|
||||
|
||||
def fetch_daily_data(client, customer_id, start_date, end_date):
|
||||
"""Fetch daily breakdown for charts."""
|
||||
query = f"""
|
||||
SELECT segments.date,
|
||||
metrics.impressions, metrics.clicks, metrics.cost_micros
|
||||
FROM campaign
|
||||
WHERE segments.date BETWEEN '{start_date}' AND '{end_date}'
|
||||
AND campaign.status != 'REMOVED'
|
||||
"""
|
||||
rows = run_query(client, customer_id, query)
|
||||
|
||||
daily = {}
|
||||
for r in rows:
|
||||
d = r.segments.date
|
||||
if d not in daily:
|
||||
daily[d] = {"date": d, "impressions": 0, "clicks": 0, "cost": 0.0}
|
||||
daily[d]["impressions"] += r.metrics.impressions
|
||||
daily[d]["clicks"] += r.metrics.clicks
|
||||
daily[d]["cost"] += r.metrics.cost_micros / 1_000_000
|
||||
|
||||
result = sorted(daily.values(), key=lambda x: x["date"])
|
||||
for d in result:
|
||||
d["cost"] = round(d["cost"], 2)
|
||||
return result
|
||||
|
||||
|
||||
def fetch_search_terms(client, customer_id, start_date, end_date, limit=15):
|
||||
"""Fetch top search terms by clicks."""
|
||||
query = f"""
|
||||
SELECT search_term_view.search_term,
|
||||
metrics.impressions, metrics.clicks,
|
||||
metrics.cost_micros, metrics.conversions
|
||||
FROM search_term_view
|
||||
WHERE segments.date BETWEEN '{start_date}' AND '{end_date}'
|
||||
ORDER BY metrics.clicks DESC
|
||||
LIMIT {limit}
|
||||
"""
|
||||
rows = run_query(client, customer_id, query)
|
||||
|
||||
terms = []
|
||||
for r in rows:
|
||||
clicks = r.metrics.clicks
|
||||
impressions = r.metrics.impressions
|
||||
terms.append({
|
||||
"term": r.search_term_view.search_term,
|
||||
"impressions": impressions,
|
||||
"clicks": clicks,
|
||||
"cost": round(r.metrics.cost_micros / 1_000_000, 2),
|
||||
"conversions": round(r.metrics.conversions, 1),
|
||||
"ctr": round((clicks / impressions * 100) if impressions else 0, 2),
|
||||
})
|
||||
return terms
|
||||
|
||||
|
||||
def fetch_ga4_data(property_id, start_date, end_date, prev_start, prev_end):
|
||||
"""Fetch GA4 data: sessions, users, traffic sources, devices."""
|
||||
from google.oauth2.credentials import Credentials
|
||||
from google.analytics.data_v1beta import BetaAnalyticsDataClient
|
||||
from google.analytics.data_v1beta.types import (
|
||||
RunReportRequest, DateRange, Metric, Dimension, OrderBy,
|
||||
)
|
||||
|
||||
credentials = Credentials(
|
||||
token=None,
|
||||
refresh_token=os.environ["GA4_REFRESH_TOKEN"],
|
||||
client_id=os.environ["GOOGLE_ADS_OAUTH2_CLIENT_ID"],
|
||||
client_secret=os.environ["GOOGLE_ADS_OAUTH2_CLIENT_SECRET"],
|
||||
token_uri="https://oauth2.googleapis.com/token",
|
||||
)
|
||||
client = BetaAnalyticsDataClient(credentials=credentials)
|
||||
prop = f"properties/{property_id}"
|
||||
|
||||
# 1. Sessions & Users (current + previous month)
|
||||
def get_totals(sd, ed):
|
||||
resp = client.run_report(RunReportRequest(
|
||||
property=prop,
|
||||
date_ranges=[DateRange(start_date=sd, end_date=ed)],
|
||||
metrics=[
|
||||
Metric(name="sessions"),
|
||||
Metric(name="totalUsers"),
|
||||
Metric(name="newUsers"),
|
||||
Metric(name="screenPageViews"),
|
||||
Metric(name="averageSessionDuration"),
|
||||
Metric(name="bounceRate"),
|
||||
],
|
||||
))
|
||||
row = resp.rows[0] if resp.rows else None
|
||||
if not row:
|
||||
return {"sessions": 0, "users": 0, "new_users": 0, "pageviews": 0, "avg_duration": 0, "bounce_rate": 0}
|
||||
return {
|
||||
"sessions": int(row.metric_values[0].value),
|
||||
"users": int(row.metric_values[1].value),
|
||||
"new_users": int(row.metric_values[2].value),
|
||||
"pageviews": int(row.metric_values[3].value),
|
||||
"avg_duration": round(float(row.metric_values[4].value), 1),
|
||||
"bounce_rate": round(float(row.metric_values[5].value) * 100, 1),
|
||||
}
|
||||
|
||||
current = get_totals(start_date, end_date)
|
||||
previous = get_totals(prev_start, prev_end)
|
||||
|
||||
# 2. Traffic sources
|
||||
resp = client.run_report(RunReportRequest(
|
||||
property=prop,
|
||||
date_ranges=[DateRange(start_date=start_date, end_date=end_date)],
|
||||
dimensions=[Dimension(name="sessionSourceMedium")],
|
||||
metrics=[Metric(name="sessions")],
|
||||
order_bys=[OrderBy(metric=OrderBy.MetricOrderBy(metric_name="sessions"), desc=True)],
|
||||
limit=10,
|
||||
))
|
||||
sources = []
|
||||
for row in resp.rows:
|
||||
sources.append({
|
||||
"source_medium": row.dimension_values[0].value,
|
||||
"sessions": int(row.metric_values[0].value),
|
||||
})
|
||||
|
||||
# 3. Devices
|
||||
resp = client.run_report(RunReportRequest(
|
||||
property=prop,
|
||||
date_ranges=[DateRange(start_date=start_date, end_date=end_date)],
|
||||
dimensions=[Dimension(name="deviceCategory")],
|
||||
metrics=[Metric(name="sessions")],
|
||||
order_bys=[OrderBy(metric=OrderBy.MetricOrderBy(metric_name="sessions"), desc=True)],
|
||||
))
|
||||
devices = []
|
||||
for row in resp.rows:
|
||||
devices.append({
|
||||
"device": row.dimension_values[0].value,
|
||||
"sessions": int(row.metric_values[0].value),
|
||||
})
|
||||
|
||||
# 4. Daily sessions (for chart)
|
||||
resp = client.run_report(RunReportRequest(
|
||||
property=prop,
|
||||
date_ranges=[DateRange(start_date=start_date, end_date=end_date)],
|
||||
dimensions=[Dimension(name="date")],
|
||||
metrics=[Metric(name="sessions"), Metric(name="totalUsers")],
|
||||
order_bys=[OrderBy(dimension=OrderBy.DimensionOrderBy(dimension_name="date"))],
|
||||
))
|
||||
daily_sessions = []
|
||||
for row in resp.rows:
|
||||
raw = row.dimension_values[0].value
|
||||
formatted = f"{raw[:4]}-{raw[4:6]}-{raw[6:]}"
|
||||
daily_sessions.append({
|
||||
"date": formatted,
|
||||
"sessions": int(row.metric_values[0].value),
|
||||
"users": int(row.metric_values[1].value),
|
||||
})
|
||||
|
||||
return {
|
||||
"current": current,
|
||||
"previous": previous,
|
||||
"mom_change": {
|
||||
"sessions_pct": pct_change(current["sessions"], previous["sessions"]),
|
||||
"users_pct": pct_change(current["users"], previous["users"]),
|
||||
"new_users_pct": pct_change(current["new_users"], previous["new_users"]),
|
||||
"pageviews_pct": pct_change(current["pageviews"], previous["pageviews"]),
|
||||
"avg_duration_pct": pct_change(current["avg_duration"], previous["avg_duration"]),
|
||||
"bounce_rate_pct": pct_change(current["bounce_rate"], previous["bounce_rate"]),
|
||||
},
|
||||
"sources": sources,
|
||||
"devices": devices,
|
||||
"daily": daily_sessions,
|
||||
}
|
||||
|
||||
|
||||
def fetch_ga4_ecommerce(property_id, start_date, end_date, prev_start, prev_end):
|
||||
"""Fetch GA4 e-commerce data: transactions, revenue, AOV."""
|
||||
from google.oauth2.credentials import Credentials
|
||||
from google.analytics.data_v1beta import BetaAnalyticsDataClient
|
||||
from google.analytics.data_v1beta.types import (
|
||||
RunReportRequest, DateRange, Metric, Dimension, OrderBy,
|
||||
)
|
||||
|
||||
credentials = Credentials(
|
||||
token=None,
|
||||
refresh_token=os.environ["GA4_REFRESH_TOKEN"],
|
||||
client_id=os.environ["GOOGLE_ADS_OAUTH2_CLIENT_ID"],
|
||||
client_secret=os.environ["GOOGLE_ADS_OAUTH2_CLIENT_SECRET"],
|
||||
token_uri="https://oauth2.googleapis.com/token",
|
||||
)
|
||||
client = BetaAnalyticsDataClient(credentials=credentials)
|
||||
prop = f"properties/{property_id}"
|
||||
|
||||
def get_ecom(sd, ed):
|
||||
resp = client.run_report(RunReportRequest(
|
||||
property=prop,
|
||||
date_ranges=[DateRange(start_date=sd, end_date=ed)],
|
||||
metrics=[
|
||||
Metric(name="transactions"),
|
||||
Metric(name="purchaseRevenue"),
|
||||
Metric(name="averagePurchaseRevenue"),
|
||||
],
|
||||
))
|
||||
row = resp.rows[0] if resp.rows else None
|
||||
if not row:
|
||||
return {"transactions": 0, "revenue": 0.0, "aov": 0.0}
|
||||
return {
|
||||
"transactions": int(row.metric_values[0].value),
|
||||
"revenue": round(float(row.metric_values[1].value), 2),
|
||||
"aov": round(float(row.metric_values[2].value), 2),
|
||||
}
|
||||
|
||||
current = get_ecom(start_date, end_date)
|
||||
previous = get_ecom(prev_start, prev_end)
|
||||
|
||||
# Daily revenue chart
|
||||
resp = client.run_report(RunReportRequest(
|
||||
property=prop,
|
||||
date_ranges=[DateRange(start_date=start_date, end_date=end_date)],
|
||||
dimensions=[Dimension(name="date")],
|
||||
metrics=[Metric(name="purchaseRevenue"), Metric(name="transactions")],
|
||||
order_bys=[OrderBy(dimension=OrderBy.DimensionOrderBy(dimension_name="date"))],
|
||||
))
|
||||
daily_revenue = []
|
||||
for row in resp.rows:
|
||||
raw = row.dimension_values[0].value
|
||||
formatted = f"{raw[:4]}-{raw[4:6]}-{raw[6:]}"
|
||||
daily_revenue.append({
|
||||
"date": formatted,
|
||||
"revenue": round(float(row.metric_values[0].value), 2),
|
||||
"transactions": int(row.metric_values[1].value),
|
||||
})
|
||||
|
||||
# Revenue by source
|
||||
resp = client.run_report(RunReportRequest(
|
||||
property=prop,
|
||||
date_ranges=[DateRange(start_date=start_date, end_date=end_date)],
|
||||
dimensions=[Dimension(name="sessionSourceMedium")],
|
||||
metrics=[Metric(name="purchaseRevenue"), Metric(name="transactions")],
|
||||
order_bys=[OrderBy(metric=OrderBy.MetricOrderBy(metric_name="purchaseRevenue"), desc=True)],
|
||||
limit=10,
|
||||
))
|
||||
revenue_by_source = []
|
||||
for row in resp.rows:
|
||||
revenue_by_source.append({
|
||||
"source_medium": row.dimension_values[0].value,
|
||||
"revenue": round(float(row.metric_values[0].value), 2),
|
||||
"transactions": int(row.metric_values[1].value),
|
||||
})
|
||||
|
||||
# Top products by revenue
|
||||
resp = client.run_report(RunReportRequest(
|
||||
property=prop,
|
||||
date_ranges=[DateRange(start_date=start_date, end_date=end_date)],
|
||||
dimensions=[Dimension(name="itemName")],
|
||||
metrics=[
|
||||
Metric(name="itemRevenue"),
|
||||
Metric(name="itemsPurchased"),
|
||||
],
|
||||
order_bys=[OrderBy(metric=OrderBy.MetricOrderBy(metric_name="itemRevenue"), desc=True)],
|
||||
limit=10,
|
||||
))
|
||||
top_products = []
|
||||
for row in resp.rows:
|
||||
top_products.append({
|
||||
"name": row.dimension_values[0].value,
|
||||
"revenue": round(float(row.metric_values[0].value), 2),
|
||||
"quantity": int(row.metric_values[1].value),
|
||||
})
|
||||
|
||||
return {
|
||||
"current": current,
|
||||
"previous": previous,
|
||||
"mom_change": {
|
||||
"transactions_pct": pct_change(current["transactions"], previous["transactions"]),
|
||||
"revenue_pct": pct_change(current["revenue"], previous["revenue"]),
|
||||
"aov_pct": pct_change(current["aov"], previous["aov"]),
|
||||
},
|
||||
"daily": daily_revenue,
|
||||
"revenue_by_source": revenue_by_source,
|
||||
"top_products": top_products,
|
||||
}
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Pobierz dane do raportu miesięcznego")
|
||||
parser.add_argument("--customer", required=True, help="Domena lub Google Ads customer ID")
|
||||
parser.add_argument("--month", required=True, help="Miesiąc raportu (YYYY-MM)")
|
||||
parser.add_argument("--output", help="Ścieżka do pliku JSON")
|
||||
parser.add_argument("--ga4-property", help="GA4 Property ID (domyślnie z .env)")
|
||||
parser.add_argument("--skip-ga4", action="store_true", help="Pomiń dane GA4")
|
||||
args = parser.parse_args()
|
||||
|
||||
customer_id = get_customer_id(args.customer)
|
||||
client = get_client(use_proto_plus=True)
|
||||
|
||||
year, month, start_date, end_date = parse_month(args.month)
|
||||
py, pm, prev_start, prev_end = prev_month(year, month)
|
||||
month_names_pl = {
|
||||
1: "Styczeń", 2: "Luty", 3: "Marzec", 4: "Kwiecień",
|
||||
5: "Maj", 6: "Czerwiec", 7: "Lipiec", 8: "Sierpień",
|
||||
9: "Wrzesień", 10: "Październik", 11: "Listopad", 12: "Grudzień",
|
||||
}
|
||||
|
||||
# Resolve domain name for output
|
||||
domain = args.customer if not args.customer.replace("-", "").isdigit() else args.customer
|
||||
|
||||
print(f"Pobieram dane Google Ads: {domain} za {args.month}...")
|
||||
|
||||
# Google Ads data
|
||||
campaigns = fetch_google_ads_data(client, customer_id, start_date, end_date)
|
||||
prev_campaigns = fetch_google_ads_data(client, customer_id, prev_start, prev_end)
|
||||
totals = calc_totals(campaigns)
|
||||
prev_totals = calc_totals(prev_campaigns)
|
||||
daily = fetch_daily_data(client, customer_id, start_date, end_date)
|
||||
search_terms = fetch_search_terms(client, customer_id, start_date, end_date)
|
||||
|
||||
mom_change = {
|
||||
"impressions_pct": pct_change(totals["impressions"], prev_totals["impressions"]),
|
||||
"clicks_pct": pct_change(totals["clicks"], prev_totals["clicks"]),
|
||||
"cost_pct": pct_change(totals["cost"], prev_totals["cost"]),
|
||||
"conversions_pct": pct_change(totals["conversions"], prev_totals["conversions"]),
|
||||
"conversion_value_pct": pct_change(totals["conversion_value"], prev_totals["conversion_value"]),
|
||||
"ctr_pct": pct_change(totals["ctr"], prev_totals["ctr"]),
|
||||
"cpc_pct": pct_change(totals["cpc"], prev_totals["cpc"]),
|
||||
"cpa_pct": pct_change(totals["cpa"], prev_totals["cpa"]),
|
||||
"roas_pct": pct_change(totals["roas"], prev_totals["roas"]),
|
||||
}
|
||||
|
||||
report = {
|
||||
"client": domain,
|
||||
"month": args.month,
|
||||
"month_name": month_names_pl[month],
|
||||
"year": year,
|
||||
"prev_month": f"{py}-{pm:02d}",
|
||||
"prev_month_name": month_names_pl[pm],
|
||||
"generated_at": datetime.now().isoformat(),
|
||||
"google_ads": {
|
||||
"campaigns": campaigns,
|
||||
"totals": totals,
|
||||
"prev_totals": prev_totals,
|
||||
"mom_change": mom_change,
|
||||
"daily": daily,
|
||||
"search_terms": search_terms,
|
||||
},
|
||||
}
|
||||
|
||||
# GA4 data
|
||||
if not args.skip_ga4:
|
||||
ga4_property = args.ga4_property
|
||||
if not ga4_property:
|
||||
# Try to find GA4 property in .env
|
||||
env_key = f"GA4_PROPERTY_ID_{domain}"
|
||||
ga4_property = os.environ.get(env_key)
|
||||
|
||||
if ga4_property:
|
||||
print(f"Pobieram dane GA4 (property: {ga4_property})...")
|
||||
try:
|
||||
ga4 = fetch_ga4_data(ga4_property, start_date, end_date, prev_start, prev_end)
|
||||
report["ga4"] = ga4
|
||||
print(f" GA4: {ga4['current']['sessions']} sesji, {ga4['current']['users']} uzytkownikow")
|
||||
except Exception as e:
|
||||
print(f" UWAGA: Blad GA4: {e}")
|
||||
report["ga4"] = None
|
||||
else:
|
||||
print(f" Brak GA4 Property ID w .env ({env_key}) - pomijam GA4")
|
||||
report["ga4"] = None
|
||||
else:
|
||||
report["ga4"] = None
|
||||
|
||||
# Semstorm SEO data
|
||||
semstorm_login = os.environ.get("SEMSTORM_LOGIN", "")
|
||||
if semstorm_login:
|
||||
print(f"Pobieram dane Semstorm...")
|
||||
try:
|
||||
sys.path.insert(0, str(Path(__file__).parent))
|
||||
from fetch_semstorm_data import fetch_domain_stats
|
||||
semstorm = fetch_domain_stats(domain, args.month)
|
||||
report["semstorm"] = semstorm
|
||||
if semstorm and semstorm.get("current"):
|
||||
cur = semstorm["current"]
|
||||
print(f" Semstorm: TOP3={cur['top3']}, TOP10={cur['top10']}, TOP50={cur['top50']}, traffic={cur['traffic']}")
|
||||
except Exception as e:
|
||||
print(f" UWAGA: Blad Semstorm: {e}")
|
||||
report["semstorm"] = None
|
||||
else:
|
||||
report["semstorm"] = None
|
||||
|
||||
# E-commerce data: Shoper (primary) or GA4 (fallback)
|
||||
shoper_key = f"SHOPER_API_URL_{domain}"
|
||||
if os.environ.get(shoper_key):
|
||||
print(f"Pobieram dane e-commerce ze Shoper...")
|
||||
try:
|
||||
from fetch_shoper_data import fetch_shoper_ecommerce
|
||||
shoper_ecom = fetch_shoper_ecommerce(domain, args.month, f"{py}-{pm:02d}")
|
||||
if shoper_ecom and shoper_ecom["current"]["transactions"] > 0:
|
||||
# Get revenue_by_source and top_products from GA4
|
||||
if report.get("ga4") and ga4_property:
|
||||
try:
|
||||
ga4_ecom = fetch_ga4_ecommerce(ga4_property, start_date, end_date, prev_start, prev_end)
|
||||
if ga4_ecom:
|
||||
shoper_ecom["revenue_by_source"] = ga4_ecom.get("revenue_by_source", [])
|
||||
shoper_ecom["top_products"] = ga4_ecom.get("top_products", [])
|
||||
except Exception as e:
|
||||
print(f" UWAGA: GA4 revenue_by_source/top_products: {e}")
|
||||
shoper_ecom["revenue_by_source"] = []
|
||||
shoper_ecom["top_products"] = []
|
||||
if report.get("ga4") is None:
|
||||
report["ga4"] = {}
|
||||
report["ga4"]["ecommerce"] = shoper_ecom
|
||||
cur = shoper_ecom["current"]
|
||||
print(f" Shoper: {cur['transactions']} zamówień, {cur['revenue']:.2f} PLN, AOV {cur['aov']:.2f} PLN")
|
||||
else:
|
||||
if report.get("ga4"):
|
||||
report["ga4"]["ecommerce"] = None
|
||||
except Exception as e:
|
||||
print(f" UWAGA: Blad Shoper: {e}")
|
||||
if report.get("ga4"):
|
||||
report["ga4"]["ecommerce"] = None
|
||||
elif report.get("ga4") and ga4_property:
|
||||
print(f"Pobieram dane GA4 e-commerce...")
|
||||
try:
|
||||
ecom = fetch_ga4_ecommerce(ga4_property, start_date, end_date, prev_start, prev_end)
|
||||
if ecom and ecom["current"]["transactions"] > 0:
|
||||
report["ga4"]["ecommerce"] = ecom
|
||||
cur = ecom["current"]
|
||||
print(f" E-commerce (GA4): {cur['transactions']} transakcji, {cur['revenue']:.2f} PLN przychodu")
|
||||
else:
|
||||
report["ga4"]["ecommerce"] = None
|
||||
except Exception as e:
|
||||
print(f" UWAGA: Blad GA4 e-commerce: {e}")
|
||||
if report.get("ga4"):
|
||||
report["ga4"]["ecommerce"] = None
|
||||
|
||||
# Monthly sales history for chart. Prefer client Google Sheet when configured.
|
||||
client_report_config = load_client_report_config(domain)
|
||||
sales_history_sheet = client_report_config.get("sales_history_sheet") or os.environ.get(f"GSHEET_SALES_HISTORY_{domain}")
|
||||
report_start = os.environ.get(f"REPORT_START_DATE_{domain}")
|
||||
if sales_history_sheet:
|
||||
try:
|
||||
sales_history = fetch_sales_history_from_sheet(domain, sales_history_sheet)
|
||||
if apply_sheet_ecommerce(report, sales_history, args.month, f"{py}-{pm:02d}"):
|
||||
current_sheet = report["ga4"]["ecommerce"]["current"]
|
||||
print(
|
||||
f" E-commerce (Google Sheet): {current_sheet['transactions']} transakcji, "
|
||||
f"{current_sheet['revenue']:.2f} PLN przychodu"
|
||||
)
|
||||
filtered = [e for e in sales_history if not report_start or e["month"] >= report_start]
|
||||
report["sales_history"] = filtered
|
||||
print(f" Historia sprzedaży z Google Sheet: {len(filtered)} miesięcy")
|
||||
except Exception as e:
|
||||
report["sales_history"] = []
|
||||
print(f" UWAGA: Nie udalo sie pobrac historii sprzedazy z Google Sheet: {e}")
|
||||
else:
|
||||
ecom_data = report.get("ga4", {}).get("ecommerce") if report.get("ga4") else None
|
||||
if ecom_data and ecom_data.get("current", {}).get("transactions", 0) > 0:
|
||||
history_path = ROOT / "clients" / domain / "sales_history.json"
|
||||
history_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
sales_history = []
|
||||
if history_path.exists():
|
||||
with open(history_path, "r", encoding="utf-8") as f:
|
||||
sales_history = json.load(f)
|
||||
cur_entry = {
|
||||
"month": args.month,
|
||||
"transactions": ecom_data["current"]["transactions"],
|
||||
"revenue": ecom_data["current"]["revenue"],
|
||||
"aov": ecom_data["current"]["aov"],
|
||||
"source": ecom_data.get("source", "ga4"),
|
||||
}
|
||||
by_month = {e["month"]: e for e in sales_history}
|
||||
by_month[args.month] = cur_entry
|
||||
sales_history = sorted(by_month.values(), key=lambda x: x["month"])
|
||||
with open(history_path, "w", encoding="utf-8") as f:
|
||||
json.dump(sales_history, f, indent=2, ensure_ascii=False)
|
||||
filtered = [e for e in sales_history if not report_start or e["month"] >= report_start]
|
||||
report["sales_history"] = filtered
|
||||
print(f" Historia sprzedaży: {len(filtered)} miesięcy zapisanych")
|
||||
else:
|
||||
report["sales_history"] = []
|
||||
|
||||
# SEO links from Google Sheets
|
||||
seo_links_key = f"GSHEET_SEO_LINKS_{domain}"
|
||||
if os.environ.get(seo_links_key):
|
||||
print(f"Pobieram linki SEO...")
|
||||
try:
|
||||
from fetch_seo_links import fetch_seo_links, fetch_seo_activities
|
||||
seo_links = fetch_seo_links(domain, args.month)
|
||||
report["seo_links"] = seo_links or []
|
||||
print(f" Linki SEO: {len(report['seo_links'])} w {args.month}")
|
||||
# SEO activities (text box)
|
||||
seo_act_key = f"GSHEET_SEO_ACTIVITIES_{domain}"
|
||||
if os.environ.get(seo_act_key):
|
||||
seo_activities = fetch_seo_activities(domain, args.month)
|
||||
report["seo_activities"] = seo_activities
|
||||
if seo_activities:
|
||||
print(f" Działania SEO: {len(seo_activities)} znaków")
|
||||
except Exception as e:
|
||||
print(f" UWAGA: Blad SEO links: {e}")
|
||||
report["seo_links"] = []
|
||||
else:
|
||||
report["seo_links"] = []
|
||||
|
||||
# Output
|
||||
if args.output:
|
||||
output_path = Path(args.output)
|
||||
else:
|
||||
output_path = ROOT / "scripts" / "reports" / "output" / f"{domain}_{args.month}.json"
|
||||
|
||||
output_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
with open(output_path, "w", encoding="utf-8") as f:
|
||||
json.dump(report, f, ensure_ascii=False, indent=2)
|
||||
|
||||
print(f"\nZapisano: {output_path}")
|
||||
print(f"Google Ads: {totals['clicks']} klikniec, {totals['conversions']} konwersji, {totals['cost']:.2f} PLN")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,716 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Raport Kwiecień 2026 — Aruba Rzeszow</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
|
||||
<style>
|
||||
:root {
|
||||
--primary: #0d8b8b;
|
||||
--primary-dark: #065a5a;
|
||||
--primary-light: #e8f5f5;
|
||||
--green: #27ae60;
|
||||
--red: #e74c3c;
|
||||
--gray: #6c757d;
|
||||
--light-gray: #f8f9fa;
|
||||
--border: #e9ecef;
|
||||
}
|
||||
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
|
||||
body {
|
||||
font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
|
||||
color: #333;
|
||||
background: #f5f5f5;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.hero {
|
||||
background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 60%, #10a5a5 100%);
|
||||
color: white;
|
||||
padding: 60px 40px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.hero::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0; right: 0;
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
background: url("data:image/svg+xml,%3Csvg width='400' height='400' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3Cpattern id='grid' width='40' height='40' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='20' cy='20' r='1.5' fill='rgba(255,255,255,0.15)'/%3E%3C/pattern%3E%3C/defs%3E%3Crect width='400' height='400' fill='url(%23grid)'/%3E%3Cline x1='20' y1='60' x2='100' y2='20' stroke='rgba(255,255,255,0.08)' stroke-width='1'/%3E%3Cline x1='100' y1='20' x2='180' y2='80' stroke='rgba(255,255,255,0.08)' stroke-width='1'/%3E%3Cline x1='180' y1='80' x2='260' y2='40' stroke='rgba(255,255,255,0.08)' stroke-width='1'/%3E%3Cline x1='260' y1='40' x2='340' y2='100' stroke='rgba(255,255,255,0.08)' stroke-width='1'/%3E%3Cline x1='60' y1='140' x2='140' y2='120' stroke='rgba(255,255,255,0.06)' stroke-width='1'/%3E%3Cline x1='140' y1='120' x2='220' y2='180' stroke='rgba(255,255,255,0.06)' stroke-width='1'/%3E%3Cline x1='220' y1='180' x2='300' y2='140' stroke='rgba(255,255,255,0.06)' stroke-width='1'/%3E%3Cline x1='300' y1='140' x2='380' y2='200' stroke='rgba(255,255,255,0.06)' stroke-width='1'/%3E%3C/svg%3E") repeat;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.hero-content {
|
||||
max-width: 1400px;
|
||||
margin: 0 auto;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.logo {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
.logo svg {
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.logo-text {
|
||||
font-size: 22px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 3px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.logo-subtitle {
|
||||
font-size: 11px;
|
||||
letter-spacing: 2px;
|
||||
opacity: 0.85;
|
||||
text-transform: lowercase;
|
||||
}
|
||||
|
||||
.hero h1 {
|
||||
font-size: 42px;
|
||||
font-weight: 700;
|
||||
line-height: 1.2;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.hero .meta {
|
||||
font-size: 18px;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1400px;
|
||||
margin: 0 auto;
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
.report-section {
|
||||
background: white;
|
||||
border-radius: 12px;
|
||||
padding: 32px;
|
||||
margin: 24px auto;
|
||||
max-width: 1400px;
|
||||
box-shadow: 0 1px 3px rgba(0,0,0,0.08);
|
||||
}
|
||||
|
||||
.section-title {
|
||||
color: var(--primary-dark);
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
margin-bottom: 24px;
|
||||
padding-bottom: 12px;
|
||||
border-bottom: 3px solid var(--primary);
|
||||
}
|
||||
|
||||
.kpi-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
|
||||
gap: 16px;
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.kpi-card {
|
||||
background: var(--light-gray);
|
||||
border-radius: 10px;
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
border: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.kpi-label {
|
||||
font-size: 12px;
|
||||
color: var(--primary);
|
||||
text-transform: uppercase;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.5px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.kpi-value {
|
||||
font-size: 28px;
|
||||
font-weight: 700;
|
||||
color: #2c3e50;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.kpi-unit {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: var(--gray);
|
||||
}
|
||||
|
||||
.kpi-change {
|
||||
font-size: 13px;
|
||||
margin-top: 6px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.chart-container {
|
||||
margin: 24px 0;
|
||||
}
|
||||
|
||||
.chart-container h3 {
|
||||
color: var(--primary-dark);
|
||||
margin-bottom: 12px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.chart-container canvas {
|
||||
max-height: 300px;
|
||||
}
|
||||
|
||||
.data-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.data-table thead {
|
||||
background: var(--primary);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.data-table th {
|
||||
padding: 10px 12px;
|
||||
text-align: left;
|
||||
font-weight: 600;
|
||||
font-size: 12px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
.data-table td {
|
||||
padding: 10px 12px;
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.data-table tbody tr:hover {
|
||||
background: var(--primary-light);
|
||||
}
|
||||
|
||||
.data-table .num {
|
||||
text-align: right;
|
||||
font-variant-numeric: tabular-nums;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.badge {
|
||||
display: inline-block;
|
||||
padding: 2px 8px;
|
||||
border-radius: 4px;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.badge-search { background: #dbeafe; color: #1e40af; }
|
||||
.badge-performance_max { background: #fef3c7; color: #92400e; }
|
||||
.badge-shopping { background: #d1fae5; color: #065f46; }
|
||||
.badge-display { background: #ede9fe; color: #5b21b6; }
|
||||
.badge-demand_gen { background: #fce7f3; color: #9d174d; }
|
||||
|
||||
.summary-box {
|
||||
background: var(--primary-light);
|
||||
border-left: 4px solid var(--primary);
|
||||
padding: 24px;
|
||||
border-radius: 0 10px 10px 0;
|
||||
font-size: 15px;
|
||||
line-height: 1.8;
|
||||
}
|
||||
|
||||
.two-col {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 24px;
|
||||
margin-top: 24px;
|
||||
}
|
||||
|
||||
.bar {
|
||||
height: 8px;
|
||||
background: var(--primary);
|
||||
border-radius: 4px;
|
||||
min-width: 4px;
|
||||
}
|
||||
|
||||
.recommendations-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.rec-item {
|
||||
display: flex;
|
||||
gap: 16px;
|
||||
padding: 16px;
|
||||
background: var(--light-gray);
|
||||
border-radius: 8px;
|
||||
border-left: 4px solid var(--primary);
|
||||
}
|
||||
|
||||
.rec-icon {
|
||||
font-size: 20px;
|
||||
flex-shrink: 0;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.rec-item p {
|
||||
margin-top: 4px;
|
||||
color: var(--gray);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.questions-box {
|
||||
background: linear-gradient(135deg, #fff8e1 0%, #fff3cd 100%);
|
||||
border-left: 4px solid #f59e0b;
|
||||
border-radius: 10px;
|
||||
padding: 24px 28px;
|
||||
margin-top: 16px;
|
||||
}
|
||||
.questions-box h3 {
|
||||
margin: 0 0 8px 0;
|
||||
color: #92400e;
|
||||
font-size: 18px;
|
||||
}
|
||||
.questions-box .intro {
|
||||
color: #78350f;
|
||||
font-size: 14px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.questions-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 14px;
|
||||
}
|
||||
.q-item {
|
||||
display: flex;
|
||||
gap: 14px;
|
||||
padding: 14px 16px;
|
||||
background: rgba(255,255,255,0.7);
|
||||
border-radius: 8px;
|
||||
}
|
||||
.q-num {
|
||||
flex-shrink: 0;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border-radius: 50%;
|
||||
background: #f59e0b;
|
||||
color: white;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-weight: 700;
|
||||
font-size: 14px;
|
||||
}
|
||||
.q-item strong { color: #92400e; display: block; margin-bottom: 4px; }
|
||||
.q-item p { margin: 0; color: #57534e; font-size: 14px; line-height: 1.6; }
|
||||
|
||||
.footer {
|
||||
text-align: center;
|
||||
padding: 32px;
|
||||
color: var(--gray);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.footer a {
|
||||
color: var(--primary);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.hero { padding: 40px 20px; }
|
||||
.hero h1 { font-size: 28px; }
|
||||
.kpi-grid { grid-template-columns: repeat(2, 1fr); }
|
||||
.two-col { grid-template-columns: 1fr; }
|
||||
.report-section { padding: 20px; margin: 12px; }
|
||||
}
|
||||
|
||||
@media print {
|
||||
body { background: white; }
|
||||
.report-section { box-shadow: none; page-break-inside: avoid; }
|
||||
.hero { padding: 30px; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- HERO / TITLE -->
|
||||
<header class="hero">
|
||||
<div class="hero-content">
|
||||
<div class="logo">
|
||||
<img src="https://www.project-pro.pl/upload/filemanager/Project-Design/logos/project-pro/logo-white.svg" alt="Project-Pro" style="height: 40px;">
|
||||
</div>
|
||||
<h1>Raport z działań marketingowych</h1>
|
||||
<div class="meta">Aruba Rzeszow — Kwiecień 2026</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- RECOMMENDATIONS -->
|
||||
|
||||
<section class="report-section" id="recommendations">
|
||||
<h2 class="section-title">Wnioski i rekomendacje</h2>
|
||||
<div class="recommendations-list">
|
||||
<div class="rec-item"><span class="rec-icon">⚠</span><div><strong>Spadek konwersji do obserwacji</strong><p>Liczba konwersji spadla o 8.2% miesiac do miesiaca. Rekomendujemy sprawdzenie kampanii o najwiekszym spadku wolumenu.</p></div></div><div class="rec-item"><span class="rec-icon">📈</span><div><strong>ROAS liczony z Google Ads</strong><p>ROAS z Google Ads wyniosl 8.47. Ten wskaznik liczymy z wartosci konwersji Google Ads, nie z przychodow sklepu.</p></div></div><div class="rec-item"><span class="rec-icon">🔍</span><div><strong>Kontrola wzrostu kosztu</strong><p>Koszt reklam wzrosl o 12.2% miesiac do miesiaca. Warto porownac wzrost kosztu ze wzrostem konwersji i wartosci konwersji.</p></div></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- GA4 SECTION -->
|
||||
|
||||
|
||||
<!-- E-COMMERCE -->
|
||||
|
||||
|
||||
<!-- PRODUCT OPTIMIZATIONS -->
|
||||
|
||||
|
||||
<!-- TOP ADS PRODUCTS -->
|
||||
|
||||
|
||||
<!-- YEAR OVER YEAR -->
|
||||
|
||||
|
||||
<!-- GOOGLE ADS KPIs -->
|
||||
<section class="report-section" id="ads-kpi">
|
||||
<h2 class="section-title">Google Ads — Podsumowanie</h2>
|
||||
<div class="kpi-grid">
|
||||
<div class="kpi-card">
|
||||
<div class="kpi-label">Wyświetlenia</div>
|
||||
<div class="kpi-value">172 277<span class="kpi-unit"></span></div>
|
||||
<div class="kpi-change" style="color: #e74c3c">
|
||||
▼ -0.6% vs Marzec
|
||||
</div>
|
||||
</div>
|
||||
<div class="kpi-card">
|
||||
<div class="kpi-label">Kliknięcia</div>
|
||||
<div class="kpi-value">3 826<span class="kpi-unit"></span></div>
|
||||
<div class="kpi-change" style="color: #27ae60">
|
||||
▲ +2.5% vs Marzec
|
||||
</div>
|
||||
</div>
|
||||
<div class="kpi-card">
|
||||
<div class="kpi-label">CTR</div>
|
||||
<div class="kpi-value">2.2<span class="kpi-unit">%</span></div>
|
||||
<div class="kpi-change" style="color: #27ae60">
|
||||
▲ +3.3% vs Marzec
|
||||
</div>
|
||||
</div>
|
||||
<div class="kpi-card">
|
||||
<div class="kpi-label">Konwersje</div>
|
||||
<div class="kpi-value">199<span class="kpi-unit"></span></div>
|
||||
<div class="kpi-change" style="color: #e74c3c">
|
||||
▼ -8.2% vs Marzec
|
||||
</div>
|
||||
</div>
|
||||
<div class="kpi-card">
|
||||
<div class="kpi-label">Koszt</div>
|
||||
<div class="kpi-value">4880.74<span class="kpi-unit"> PLN</span></div>
|
||||
<div class="kpi-change" style="color: #e74c3c">
|
||||
▲ +12.2% vs Marzec
|
||||
</div>
|
||||
</div>
|
||||
<div class="kpi-card">
|
||||
<div class="kpi-label">CPA</div>
|
||||
<div class="kpi-value">24.46<span class="kpi-unit"> PLN</span></div>
|
||||
<div class="kpi-change" style="color: #e74c3c">
|
||||
▲ +22.2% vs Marzec
|
||||
</div>
|
||||
</div>
|
||||
<div class="kpi-card">
|
||||
<div class="kpi-label">ROAS</div>
|
||||
<div class="kpi-value">8.47<span class="kpi-unit">x</span></div>
|
||||
<div class="kpi-change" style="color: #e74c3c">
|
||||
▼ -1.5% vs Marzec
|
||||
</div>
|
||||
</div></div>
|
||||
</section>
|
||||
|
||||
<!-- DAILY CHART -->
|
||||
<section class="report-section" id="ads-chart">
|
||||
<h2 class="section-title">Google Ads — Aktywność dzienna</h2>
|
||||
<div class="chart-container">
|
||||
<canvas id="dailyClicksChart"></canvas>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- CAMPAIGNS TABLE -->
|
||||
<section class="report-section" id="campaigns">
|
||||
<h2 class="section-title">Kampanie</h2>
|
||||
<table class="data-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Kampania</th>
|
||||
<th>Typ</th>
|
||||
<th>Wyświetlenia</th>
|
||||
<th>Kliknięcia</th>
|
||||
<th>CTR</th>
|
||||
<th>Konwersje</th>
|
||||
<th>Koszt</th>
|
||||
<th>CPA</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>[Search] brand</td>
|
||||
<td><span class="badge badge-search">SEARCH</span></td>
|
||||
<td class="num">1 614</td>
|
||||
<td class="num">483</td>
|
||||
<td class="num">29.9%</td>
|
||||
<td class="num">27</td>
|
||||
<td class="num">337.96 PLN</td>
|
||||
<td class="num">12.52 PLN</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>[DSA] produkty</td>
|
||||
<td><span class="badge badge-search">SEARCH</span></td>
|
||||
<td class="num">9 984</td>
|
||||
<td class="num">694</td>
|
||||
<td class="num">7.0%</td>
|
||||
<td class="num">23</td>
|
||||
<td class="num">1098.15 PLN</td>
|
||||
<td class="num">47.75 PLN</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>[PMax] products (catch-all)</td>
|
||||
<td><span class="badge badge-performance_max">PERFORMANCE_MAX</span></td>
|
||||
<td class="num">138 921</td>
|
||||
<td class="num">2 164</td>
|
||||
<td class="num">1.6%</td>
|
||||
<td class="num">106</td>
|
||||
<td class="num">2762.99 PLN</td>
|
||||
<td class="num">25.94 PLN</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>[PLA] produkty (bestsellers)</td>
|
||||
<td><span class="badge badge-shopping">SHOPPING</span></td>
|
||||
<td class="num">21 758</td>
|
||||
<td class="num">485</td>
|
||||
<td class="num">2.2%</td>
|
||||
<td class="num">43</td>
|
||||
<td class="num">681.64 PLN</td>
|
||||
<td class="num">15.85 PLN</td>
|
||||
</tr></tbody>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<!-- SEARCH TERMS -->
|
||||
<section class="report-section" id="search-terms">
|
||||
<h2 class="section-title">Najpopularniejsze frazy wyszukiwania</h2>
|
||||
<table class="data-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Fraza</th>
|
||||
<th>Wyświetlenia</th>
|
||||
<th>Kliknięcia</th>
|
||||
<th>CTR</th>
|
||||
<th>Konwersje</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="num">1</td>
|
||||
<td>aruba rzeszów</td>
|
||||
<td class="num">836</td>
|
||||
<td class="num">246</td>
|
||||
<td class="num">29.4%</td>
|
||||
<td class="num">16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="num">2</td>
|
||||
<td>gen factor</td>
|
||||
<td class="num">858</td>
|
||||
<td class="num">59</td>
|
||||
<td class="num">6.9%</td>
|
||||
<td class="num">1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="num">3</td>
|
||||
<td>aruba hurtownia</td>
|
||||
<td class="num">122</td>
|
||||
<td class="num">48</td>
|
||||
<td class="num">39.3%</td>
|
||||
<td class="num">4</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="num">4</td>
|
||||
<td>aruba rzeszow</td>
|
||||
<td class="num">127</td>
|
||||
<td class="num">39</td>
|
||||
<td class="num">30.7%</td>
|
||||
<td class="num">0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="num">5</td>
|
||||
<td>gen factor green</td>
|
||||
<td class="num">207</td>
|
||||
<td class="num">21</td>
|
||||
<td class="num">10.1%</td>
|
||||
<td class="num">2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="num">6</td>
|
||||
<td>gen factor</td>
|
||||
<td class="num">604</td>
|
||||
<td class="num">21</td>
|
||||
<td class="num">3.5%</td>
|
||||
<td class="num">1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="num">7</td>
|
||||
<td>verru immuno</td>
|
||||
<td class="num">495</td>
|
||||
<td class="num">19</td>
|
||||
<td class="num">3.8%</td>
|
||||
<td class="num">2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="num">8</td>
|
||||
<td>aruba sklep</td>
|
||||
<td class="num">48</td>
|
||||
<td class="num">17</td>
|
||||
<td class="num">35.4%</td>
|
||||
<td class="num">1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="num">9</td>
|
||||
<td>aurumaris</td>
|
||||
<td class="num">113</td>
|
||||
<td class="num">13</td>
|
||||
<td class="num">11.5%</td>
|
||||
<td class="num">0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="num">10</td>
|
||||
<td>aruba hurtownia kosmetyczna</td>
|
||||
<td class="num">25</td>
|
||||
<td class="num">12</td>
|
||||
<td class="num">48.0%</td>
|
||||
<td class="num">1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="num">11</td>
|
||||
<td>aruba kosmetyki</td>
|
||||
<td class="num">33</td>
|
||||
<td class="num">12</td>
|
||||
<td class="num">36.4%</td>
|
||||
<td class="num">1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="num">12</td>
|
||||
<td>gen factor 09</td>
|
||||
<td class="num">47</td>
|
||||
<td class="num">11</td>
|
||||
<td class="num">23.4%</td>
|
||||
<td class="num">0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="num">13</td>
|
||||
<td>genfactor</td>
|
||||
<td class="num">111</td>
|
||||
<td class="num">11</td>
|
||||
<td class="num">9.9%</td>
|
||||
<td class="num">2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="num">14</td>
|
||||
<td>podopharm verru immuno</td>
|
||||
<td class="num">230</td>
|
||||
<td class="num">11</td>
|
||||
<td class="num">4.8%</td>
|
||||
<td class="num">2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="num">15</td>
|
||||
<td>hurtownia aruba</td>
|
||||
<td class="num">32</td>
|
||||
<td class="num">10</td>
|
||||
<td class="num">31.2%</td>
|
||||
<td class="num">0</td>
|
||||
</tr></tbody>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<!-- NEGATIVE KEYWORDS ADDED -->
|
||||
|
||||
|
||||
<!-- SEMSTORM SEO -->
|
||||
|
||||
|
||||
<!-- SEO ACTIVITIES -->
|
||||
|
||||
|
||||
<!-- SEO LINKS -->
|
||||
|
||||
|
||||
<!-- SUMMARY -->
|
||||
<section class="report-section" id="summary">
|
||||
<h2 class="section-title">Podsumowanie miesiąca</h2>
|
||||
<div class="summary-box">
|
||||
Odnotowano 199 konwersji w tym miesiącu. Ruch z reklam wzrósł o 2.5% (3826 kliknięć).
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- RECOMMENDATIONS moved to top -->
|
||||
|
||||
<!-- FOOTER -->
|
||||
<div class="footer">
|
||||
Raport wygenerowany przez <a href="https://www.project-pro.pl">Project-Pro</a> — marketing w wersji PRO
|
||||
</div>
|
||||
|
||||
<script>
|
||||
// Daily clicks chart
|
||||
var ctx1 = document.getElementById('dailyClicksChart').getContext('2d');
|
||||
new Chart(ctx1, {
|
||||
type: 'line',
|
||||
data: {
|
||||
labels: ["04-01", "04-02", "04-03", "04-04", "04-05", "04-06", "04-07", "04-08", "04-09", "04-10", "04-11", "04-12", "04-13", "04-14", "04-15", "04-16", "04-17", "04-18", "04-19", "04-20", "04-21", "04-22", "04-23", "04-24", "04-25", "04-26", "04-27", "04-28", "04-29", "04-30"],
|
||||
datasets: [{
|
||||
label: 'Kliknięcia',
|
||||
data: [102, 108, 72, 54, 39, 96, 130, 166, 137, 112, 95, 114, 185, 176, 164, 149, 107, 101, 114, 196, 163, 210, 170, 116, 112, 131, 144, 132, 135, 96],
|
||||
borderColor: '#0d8b8b',
|
||||
backgroundColor: 'rgba(13,139,139,0.1)',
|
||||
fill: true,
|
||||
tension: 0.3,
|
||||
pointRadius: 3,
|
||||
pointBackgroundColor: '#0d8b8b',
|
||||
}, {
|
||||
label: 'Wyświetlenia',
|
||||
data: [6909, 5632, 4210, 3045, 2088, 3976, 5853, 7519, 6605, 4340, 3177, 4104, 7332, 7941, 7296, 6191, 4557, 3621, 5409, 7762, 7615, 9246, 9234, 5931, 5078, 5786, 6014, 6078, 5629, 4099],
|
||||
borderColor: '#95a5a6',
|
||||
backgroundColor: 'transparent',
|
||||
borderDash: [5, 5],
|
||||
tension: 0.3,
|
||||
pointRadius: 0,
|
||||
yAxisID: 'y1',
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
responsive: true,
|
||||
interaction: { mode: 'index', intersect: false },
|
||||
scales: {
|
||||
y: { beginAtZero: true, position: 'left', grid: { color: '#f0f0f0' } },
|
||||
y1: { beginAtZero: true, position: 'right', grid: { display: false } },
|
||||
x: { grid: { display: false }, ticks: { maxTicksLimit: 10 } }
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,429 @@
|
||||
{
|
||||
"client": "aruba.rzeszow.pl",
|
||||
"month": "2026-04",
|
||||
"month_name": "Kwiecień",
|
||||
"year": 2026,
|
||||
"prev_month": "2026-03",
|
||||
"prev_month_name": "Marzec",
|
||||
"generated_at": "2026-05-14T23:23:53.496703",
|
||||
"google_ads": {
|
||||
"campaigns": [
|
||||
{
|
||||
"id": "19591441631",
|
||||
"name": "[Search] brand",
|
||||
"status": "ENABLED",
|
||||
"type": "SEARCH",
|
||||
"impressions": 1614,
|
||||
"clicks": 483,
|
||||
"cost": 337.96,
|
||||
"conversions": 27.0,
|
||||
"conversion_value": 7967.63,
|
||||
"ctr": 29.93,
|
||||
"cpc": 0.7,
|
||||
"cpa": 12.52,
|
||||
"roas": 23.58
|
||||
},
|
||||
{
|
||||
"id": "20561423980",
|
||||
"name": "[DSA] produkty",
|
||||
"status": "ENABLED",
|
||||
"type": "SEARCH",
|
||||
"impressions": 9984,
|
||||
"clicks": 694,
|
||||
"cost": 1098.15,
|
||||
"conversions": 23.0,
|
||||
"conversion_value": 6600.7,
|
||||
"ctr": 6.95,
|
||||
"cpc": 1.58,
|
||||
"cpa": 47.75,
|
||||
"roas": 6.01
|
||||
},
|
||||
{
|
||||
"id": "21260050298",
|
||||
"name": "[PMax] products (catch-all)",
|
||||
"status": "ENABLED",
|
||||
"type": "PERFORMANCE_MAX",
|
||||
"impressions": 138921,
|
||||
"clicks": 2164,
|
||||
"cost": 2762.99,
|
||||
"conversions": 106.5,
|
||||
"conversion_value": 19390.88,
|
||||
"ctr": 1.56,
|
||||
"cpc": 1.28,
|
||||
"cpa": 25.94,
|
||||
"roas": 7.02
|
||||
},
|
||||
{
|
||||
"id": "22926581178",
|
||||
"name": "[PLA] produkty (bestsellers)",
|
||||
"status": "ENABLED",
|
||||
"type": "SHOPPING",
|
||||
"impressions": 21758,
|
||||
"clicks": 485,
|
||||
"cost": 681.64,
|
||||
"conversions": 43.0,
|
||||
"conversion_value": 7367.07,
|
||||
"ctr": 2.23,
|
||||
"cpc": 1.41,
|
||||
"cpa": 15.85,
|
||||
"roas": 10.81
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"impressions": 172277,
|
||||
"clicks": 3826,
|
||||
"cost": 4880.74,
|
||||
"conversions": 199.5,
|
||||
"conversion_value": 41326.28,
|
||||
"ctr": 2.22,
|
||||
"cpc": 1.28,
|
||||
"cpa": 24.46,
|
||||
"roas": 8.47
|
||||
},
|
||||
"prev_totals": {
|
||||
"impressions": 173273,
|
||||
"clicks": 3733,
|
||||
"cost": 4351.39,
|
||||
"conversions": 217.4,
|
||||
"conversion_value": 37429.84,
|
||||
"ctr": 2.15,
|
||||
"cpc": 1.17,
|
||||
"cpa": 20.02,
|
||||
"roas": 8.6
|
||||
},
|
||||
"mom_change": {
|
||||
"impressions_pct": -0.6,
|
||||
"clicks_pct": 2.5,
|
||||
"cost_pct": 12.2,
|
||||
"conversions_pct": -8.2,
|
||||
"ctr_pct": 3.3,
|
||||
"cpc_pct": 9.4,
|
||||
"cpa_pct": 22.2
|
||||
},
|
||||
"daily": [
|
||||
{
|
||||
"date": "2026-04-01",
|
||||
"impressions": 6909,
|
||||
"clicks": 102,
|
||||
"cost": 120.77
|
||||
},
|
||||
{
|
||||
"date": "2026-04-02",
|
||||
"impressions": 5632,
|
||||
"clicks": 108,
|
||||
"cost": 167.66
|
||||
},
|
||||
{
|
||||
"date": "2026-04-03",
|
||||
"impressions": 4210,
|
||||
"clicks": 72,
|
||||
"cost": 95.19
|
||||
},
|
||||
{
|
||||
"date": "2026-04-04",
|
||||
"impressions": 3045,
|
||||
"clicks": 54,
|
||||
"cost": 101.11
|
||||
},
|
||||
{
|
||||
"date": "2026-04-05",
|
||||
"impressions": 2088,
|
||||
"clicks": 39,
|
||||
"cost": 49.2
|
||||
},
|
||||
{
|
||||
"date": "2026-04-06",
|
||||
"impressions": 3976,
|
||||
"clicks": 96,
|
||||
"cost": 112.82
|
||||
},
|
||||
{
|
||||
"date": "2026-04-07",
|
||||
"impressions": 5853,
|
||||
"clicks": 130,
|
||||
"cost": 138.02
|
||||
},
|
||||
{
|
||||
"date": "2026-04-08",
|
||||
"impressions": 7519,
|
||||
"clicks": 166,
|
||||
"cost": 225.05
|
||||
},
|
||||
{
|
||||
"date": "2026-04-09",
|
||||
"impressions": 6605,
|
||||
"clicks": 137,
|
||||
"cost": 165.58
|
||||
},
|
||||
{
|
||||
"date": "2026-04-10",
|
||||
"impressions": 4340,
|
||||
"clicks": 112,
|
||||
"cost": 130.39
|
||||
},
|
||||
{
|
||||
"date": "2026-04-11",
|
||||
"impressions": 3177,
|
||||
"clicks": 95,
|
||||
"cost": 92.74
|
||||
},
|
||||
{
|
||||
"date": "2026-04-12",
|
||||
"impressions": 4104,
|
||||
"clicks": 114,
|
||||
"cost": 116.26
|
||||
},
|
||||
{
|
||||
"date": "2026-04-13",
|
||||
"impressions": 7332,
|
||||
"clicks": 185,
|
||||
"cost": 201.76
|
||||
},
|
||||
{
|
||||
"date": "2026-04-14",
|
||||
"impressions": 7941,
|
||||
"clicks": 176,
|
||||
"cost": 232.59
|
||||
},
|
||||
{
|
||||
"date": "2026-04-15",
|
||||
"impressions": 7296,
|
||||
"clicks": 164,
|
||||
"cost": 186.57
|
||||
},
|
||||
{
|
||||
"date": "2026-04-16",
|
||||
"impressions": 6191,
|
||||
"clicks": 149,
|
||||
"cost": 165.26
|
||||
},
|
||||
{
|
||||
"date": "2026-04-17",
|
||||
"impressions": 4557,
|
||||
"clicks": 107,
|
||||
"cost": 95.56
|
||||
},
|
||||
{
|
||||
"date": "2026-04-18",
|
||||
"impressions": 3621,
|
||||
"clicks": 101,
|
||||
"cost": 118.02
|
||||
},
|
||||
{
|
||||
"date": "2026-04-19",
|
||||
"impressions": 5409,
|
||||
"clicks": 114,
|
||||
"cost": 175.25
|
||||
},
|
||||
{
|
||||
"date": "2026-04-20",
|
||||
"impressions": 7762,
|
||||
"clicks": 196,
|
||||
"cost": 239.2
|
||||
},
|
||||
{
|
||||
"date": "2026-04-21",
|
||||
"impressions": 7615,
|
||||
"clicks": 163,
|
||||
"cost": 262.91
|
||||
},
|
||||
{
|
||||
"date": "2026-04-22",
|
||||
"impressions": 9246,
|
||||
"clicks": 210,
|
||||
"cost": 265.25
|
||||
},
|
||||
{
|
||||
"date": "2026-04-23",
|
||||
"impressions": 9234,
|
||||
"clicks": 170,
|
||||
"cost": 222.45
|
||||
},
|
||||
{
|
||||
"date": "2026-04-24",
|
||||
"impressions": 5931,
|
||||
"clicks": 116,
|
||||
"cost": 202.37
|
||||
},
|
||||
{
|
||||
"date": "2026-04-25",
|
||||
"impressions": 5078,
|
||||
"clicks": 112,
|
||||
"cost": 174.69
|
||||
},
|
||||
{
|
||||
"date": "2026-04-26",
|
||||
"impressions": 5786,
|
||||
"clicks": 131,
|
||||
"cost": 162.94
|
||||
},
|
||||
{
|
||||
"date": "2026-04-27",
|
||||
"impressions": 6014,
|
||||
"clicks": 144,
|
||||
"cost": 191.42
|
||||
},
|
||||
{
|
||||
"date": "2026-04-28",
|
||||
"impressions": 6078,
|
||||
"clicks": 132,
|
||||
"cost": 181.99
|
||||
},
|
||||
{
|
||||
"date": "2026-04-29",
|
||||
"impressions": 5629,
|
||||
"clicks": 135,
|
||||
"cost": 166.02
|
||||
},
|
||||
{
|
||||
"date": "2026-04-30",
|
||||
"impressions": 4099,
|
||||
"clicks": 96,
|
||||
"cost": 121.72
|
||||
}
|
||||
],
|
||||
"search_terms": [
|
||||
{
|
||||
"term": "aruba rzeszów",
|
||||
"impressions": 836,
|
||||
"clicks": 246,
|
||||
"cost": 131.67,
|
||||
"conversions": 16.0,
|
||||
"ctr": 29.43
|
||||
},
|
||||
{
|
||||
"term": "gen factor",
|
||||
"impressions": 858,
|
||||
"clicks": 59,
|
||||
"cost": 134.33,
|
||||
"conversions": 1.0,
|
||||
"ctr": 6.88
|
||||
},
|
||||
{
|
||||
"term": "aruba hurtownia",
|
||||
"impressions": 122,
|
||||
"clicks": 48,
|
||||
"cost": 26.45,
|
||||
"conversions": 4.0,
|
||||
"ctr": 39.34
|
||||
},
|
||||
{
|
||||
"term": "aruba rzeszow",
|
||||
"impressions": 127,
|
||||
"clicks": 39,
|
||||
"cost": 24.46,
|
||||
"conversions": 0.0,
|
||||
"ctr": 30.71
|
||||
},
|
||||
{
|
||||
"term": "gen factor green",
|
||||
"impressions": 207,
|
||||
"clicks": 21,
|
||||
"cost": 46.65,
|
||||
"conversions": 2.0,
|
||||
"ctr": 10.14
|
||||
},
|
||||
{
|
||||
"term": "gen factor",
|
||||
"impressions": 604,
|
||||
"clicks": 21,
|
||||
"cost": 25.05,
|
||||
"conversions": 1.0,
|
||||
"ctr": 3.48
|
||||
},
|
||||
{
|
||||
"term": "verru immuno",
|
||||
"impressions": 495,
|
||||
"clicks": 19,
|
||||
"cost": 27.24,
|
||||
"conversions": 2.0,
|
||||
"ctr": 3.84
|
||||
},
|
||||
{
|
||||
"term": "aruba sklep",
|
||||
"impressions": 48,
|
||||
"clicks": 17,
|
||||
"cost": 3.4,
|
||||
"conversions": 1.0,
|
||||
"ctr": 35.42
|
||||
},
|
||||
{
|
||||
"term": "aurumaris",
|
||||
"impressions": 113,
|
||||
"clicks": 13,
|
||||
"cost": 14.52,
|
||||
"conversions": 0.0,
|
||||
"ctr": 11.5
|
||||
},
|
||||
{
|
||||
"term": "aruba hurtownia kosmetyczna",
|
||||
"impressions": 25,
|
||||
"clicks": 12,
|
||||
"cost": 7.85,
|
||||
"conversions": 1.0,
|
||||
"ctr": 48.0
|
||||
},
|
||||
{
|
||||
"term": "aruba kosmetyki",
|
||||
"impressions": 33,
|
||||
"clicks": 12,
|
||||
"cost": 3.27,
|
||||
"conversions": 1.0,
|
||||
"ctr": 36.36
|
||||
},
|
||||
{
|
||||
"term": "gen factor 09",
|
||||
"impressions": 47,
|
||||
"clicks": 11,
|
||||
"cost": 15.43,
|
||||
"conversions": 0.0,
|
||||
"ctr": 23.4
|
||||
},
|
||||
{
|
||||
"term": "genfactor",
|
||||
"impressions": 111,
|
||||
"clicks": 11,
|
||||
"cost": 27.84,
|
||||
"conversions": 2.0,
|
||||
"ctr": 9.91
|
||||
},
|
||||
{
|
||||
"term": "podopharm verru immuno",
|
||||
"impressions": 230,
|
||||
"clicks": 11,
|
||||
"cost": 15.75,
|
||||
"conversions": 2.0,
|
||||
"ctr": 4.78
|
||||
},
|
||||
{
|
||||
"term": "hurtownia aruba",
|
||||
"impressions": 32,
|
||||
"clicks": 10,
|
||||
"cost": 7.31,
|
||||
"conversions": 0.0,
|
||||
"ctr": 31.25
|
||||
}
|
||||
]
|
||||
},
|
||||
"ga4": null,
|
||||
"semstorm": null,
|
||||
"sales_history": [],
|
||||
"seo_links": [],
|
||||
"recommendations": [
|
||||
{
|
||||
"icon": "⚠",
|
||||
"title": "Spadek konwersji do obserwacji",
|
||||
"text": "Liczba konwersji spadla o 8.2% miesiac do miesiaca. Rekomendujemy sprawdzenie kampanii o najwiekszym spadku wolumenu."
|
||||
},
|
||||
{
|
||||
"icon": "📈",
|
||||
"title": "ROAS liczony z Google Ads",
|
||||
"text": "ROAS z Google Ads wyniosl 8.47. Ten wskaznik liczymy z wartosci konwersji Google Ads, nie z przychodow sklepu."
|
||||
},
|
||||
{
|
||||
"icon": "🔍",
|
||||
"title": "Kontrola wzrostu kosztu",
|
||||
"text": "Koszt reklam wzrosl o 12.2% miesiac do miesiaca. Warto porownac wzrost kosztu ze wzrostem konwersji i wartosci konwersji."
|
||||
}
|
||||
]
|
||||
}
|
||||
1821
.sync/Archive/src/gads_v2/cli.1.py
Normal file
1821
.sync/Archive/src/gads_v2/cli.1.py
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
126
.sync/Archive/src/gads_v2/task_catalog.py
Normal file
126
.sync/Archive/src/gads_v2/task_catalog.py
Normal file
@@ -0,0 +1,126 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import tomllib
|
||||
from dataclasses import dataclass
|
||||
|
||||
from .config import ROOT
|
||||
from .table import print_table
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class Task:
|
||||
id: str
|
||||
name: str
|
||||
description: str
|
||||
group_id: str
|
||||
group_name: str
|
||||
number: int
|
||||
group_number: int
|
||||
index_in_group: int
|
||||
|
||||
@property
|
||||
def selection(self) -> str:
|
||||
return f"{self.group_number}.{self.index_in_group}"
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class TaskGroup:
|
||||
id: str
|
||||
name: str
|
||||
number: int
|
||||
|
||||
|
||||
def load_task_config() -> dict:
|
||||
path = ROOT / "config" / "tasks.toml"
|
||||
return tomllib.loads(path.read_text(encoding="utf-8"))
|
||||
|
||||
|
||||
def load_groups() -> list[TaskGroup]:
|
||||
data = load_task_config()
|
||||
groups = []
|
||||
for index, group in enumerate(data.get("groups", []), 1):
|
||||
groups.append(TaskGroup(id=group["id"], name=group["name"], number=index))
|
||||
return groups
|
||||
|
||||
|
||||
def load_tasks() -> list[Task]:
|
||||
data = load_task_config()
|
||||
tasks: list[Task] = []
|
||||
number = 1
|
||||
for group_number, group in enumerate(data.get("groups", []), 1):
|
||||
for index_in_group, row in enumerate(group.get("tasks", []), 1):
|
||||
tasks.append(
|
||||
Task(
|
||||
id=row["id"],
|
||||
name=row["name"],
|
||||
description=row.get("description", ""),
|
||||
group_id=group["id"],
|
||||
group_name=group["name"],
|
||||
number=number,
|
||||
group_number=group_number,
|
||||
index_in_group=index_in_group,
|
||||
)
|
||||
)
|
||||
number += 1
|
||||
return tasks
|
||||
|
||||
|
||||
def task_by_number(tasks: list[Task], number: int) -> Task | None:
|
||||
for task in tasks:
|
||||
if task.number == number:
|
||||
return task
|
||||
return None
|
||||
|
||||
|
||||
def task_by_selection(tasks: list[Task], selection: str) -> Task | None:
|
||||
normalized = selection.strip().lower()
|
||||
for task in tasks:
|
||||
if task.selection.lower() == normalized:
|
||||
return task
|
||||
return None
|
||||
|
||||
|
||||
def tasks_by_selection_group(tasks: list[Task], groups: list[TaskGroup], selection: str) -> list[Task]:
|
||||
normalized = selection.strip().lower()
|
||||
if not normalized.endswith(".0"):
|
||||
return []
|
||||
try:
|
||||
group_number = int(normalized.split(".", 1)[0])
|
||||
except ValueError:
|
||||
return []
|
||||
return tasks_by_group_number(tasks, groups, group_number)
|
||||
|
||||
|
||||
def tasks_by_group_number(tasks: list[Task], groups: list[TaskGroup], number: int) -> list[Task]:
|
||||
group = next((item for item in groups if item.number == number), None)
|
||||
if not group:
|
||||
return []
|
||||
return [task for task in tasks if task.group_id == group.id]
|
||||
|
||||
|
||||
def print_task_list(tasks: list[Task]) -> None:
|
||||
groups = load_groups()
|
||||
for group in groups:
|
||||
group_tasks = [task for task in tasks if task.group_id == group.id]
|
||||
if not group_tasks:
|
||||
continue
|
||||
print()
|
||||
print("=" * 72)
|
||||
print(f"GRUPA {group.number}: {group.name.upper()}")
|
||||
print("=" * 72)
|
||||
print_table(
|
||||
["Nr", "Zadanie", "Opis"],
|
||||
[[item.selection, item.name, item.description] for item in group_tasks],
|
||||
)
|
||||
|
||||
print()
|
||||
print("Opcje zbiorcze")
|
||||
group_rows = [
|
||||
[f"{group.number}.0", f"Wszystkie zadania z grupy: {group.name}"]
|
||||
for group in groups
|
||||
if any(task.group_id == group.id for task in tasks)
|
||||
]
|
||||
print_table(
|
||||
["Nr", "Zakres"],
|
||||
group_rows + [["ALL", "Wszystkie zadania ze wszystkich grup"]],
|
||||
)
|
||||
268
.sync/Archive/src/gads_v2/tasks/conversion_tracking_check.py
Normal file
268
.sync/Archive/src/gads_v2/tasks/conversion_tracking_check.py
Normal file
@@ -0,0 +1,268 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
|
||||
from ..config import ClientConfig, client_dir
|
||||
from ..history import append_change_markdown, append_history, now_local
|
||||
from ..knowledge.store import rules_for_task
|
||||
from ..table import print_table
|
||||
|
||||
|
||||
TASK_ID = "check_conversion_tracking"
|
||||
TASK_NAME = "Sprawdzenie pomiaru konwersji"
|
||||
|
||||
|
||||
DEFAULT_SCOPE = [
|
||||
{
|
||||
"area": "Konwersje Google Ads",
|
||||
"check": "Sprawdz, czy glowne konwersje sa aktywne i oznaczone jako cele uzywane do optymalizacji.",
|
||||
},
|
||||
{
|
||||
"area": "Duplikacja konwersji",
|
||||
"check": "Sprawdz, czy konto nie liczy tych samych zdarzen jednoczesnie z Google Ads, GA4 i importow.",
|
||||
},
|
||||
{
|
||||
"area": "E-commerce",
|
||||
"check": "Sprawdz, czy konwersje zakupowe przekazuja wartosc i walute.",
|
||||
},
|
||||
{
|
||||
"area": "Remarketing dynamiczny",
|
||||
"check": "Sprawdz, czy tagowanie e-commerce przekazuje identyfikatory produktow.",
|
||||
},
|
||||
{
|
||||
"area": "Enhanced Conversions",
|
||||
"check": "Sprawdz, czy rozszerzone konwersje sa skonfigurowane tam, gdzie ma to sens.",
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
@dataclass
|
||||
class ConversionTrackingPlan:
|
||||
scope: list[dict]
|
||||
knowledge_rules: list[dict]
|
||||
warnings: list[str]
|
||||
|
||||
def to_dict(self) -> dict:
|
||||
return {
|
||||
"task": TASK_ID,
|
||||
"task_name": TASK_NAME,
|
||||
"scope": self.scope,
|
||||
"knowledge_rules": self.knowledge_rules,
|
||||
"warnings": self.warnings,
|
||||
"changes": [],
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, data: dict) -> "ConversionTrackingPlan":
|
||||
return cls(
|
||||
scope=data.get("scope", []),
|
||||
knowledge_rules=data.get("knowledge_rules", []),
|
||||
warnings=data.get("warnings", []),
|
||||
)
|
||||
|
||||
|
||||
def build_conversion_tracking_plan(client_config: ClientConfig) -> ConversionTrackingPlan:
|
||||
rules = rules_for_task(TASK_ID)
|
||||
knowledge_rules = [
|
||||
{
|
||||
"id": rule.id,
|
||||
"topic": rule.topic,
|
||||
"rule_type": rule.rule_type,
|
||||
"condition": rule.condition,
|
||||
"recommendation": rule.recommendation,
|
||||
"risk": rule.risk,
|
||||
"source": rule.source,
|
||||
}
|
||||
for rule in rules
|
||||
]
|
||||
warnings = []
|
||||
if not knowledge_rules:
|
||||
warnings.append(
|
||||
"Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. "
|
||||
"Uruchom `python gads.py wiedza przypisz --restart` i przypisz pasujace reguly do check_conversion_tracking."
|
||||
)
|
||||
if not client_config.google_ads_customer_id:
|
||||
warnings.append("Klient nie ma google_ads_customer_id w config/clients.toml.")
|
||||
return ConversionTrackingPlan(scope=DEFAULT_SCOPE, knowledge_rules=knowledge_rules, warnings=warnings)
|
||||
|
||||
|
||||
def save_conversion_tracking_plan(domain: str, plan: ConversionTrackingPlan) -> tuple[Path, Path]:
|
||||
ts = now_local()
|
||||
base = client_dir(domain) / "plans"
|
||||
base.mkdir(parents=True, exist_ok=True)
|
||||
stem = f"{ts.strftime('%Y-%m-%d_%H-%M-%S')}_{TASK_ID}"
|
||||
json_path = base / f"{stem}.json"
|
||||
md_path = base / f"{stem}.md"
|
||||
payload = {
|
||||
"created_at": ts.isoformat(timespec="seconds"),
|
||||
"client": domain,
|
||||
**plan.to_dict(),
|
||||
}
|
||||
json_path.write_text(json.dumps(payload, ensure_ascii=False, indent=2), encoding="utf-8")
|
||||
|
||||
lines = [
|
||||
"# Plan: Sprawdzenie pomiaru konwersji",
|
||||
"",
|
||||
f"Klient: {domain}",
|
||||
f"Utworzono: {ts.isoformat(timespec='seconds')}",
|
||||
"",
|
||||
"## Podsumowanie",
|
||||
"",
|
||||
f"- Obszary audytu: {len(plan.scope)}",
|
||||
f"- Reguly wiedzy przypisane do zadania: {len(plan.knowledge_rules)}",
|
||||
"- Zmiany do wdrozenia: 0",
|
||||
"",
|
||||
]
|
||||
if plan.warnings:
|
||||
lines.extend(["## Uwagi", ""])
|
||||
lines.extend(f"- {item}" for item in plan.warnings)
|
||||
lines.append("")
|
||||
lines.extend(["## Zakres audytu", "", "| Obszar | Co sprawdzic |", "| --- | --- |"])
|
||||
for row in plan.scope:
|
||||
lines.append(f"| {row.get('area', '')} | {row.get('check', '')} |")
|
||||
lines.append("")
|
||||
if plan.knowledge_rules:
|
||||
lines.extend(
|
||||
[
|
||||
"## Reguly z bazy wiedzy",
|
||||
"",
|
||||
"| ID | Temat | Rekomendacja | Ryzyko |",
|
||||
"| --- | --- | --- | --- |",
|
||||
]
|
||||
)
|
||||
for rule in plan.knowledge_rules:
|
||||
lines.append(
|
||||
f"| {rule.get('id', '')} | {rule.get('topic', '')} | "
|
||||
f"{rule.get('recommendation', '')} | {rule.get('risk', '')} |"
|
||||
)
|
||||
lines.append("")
|
||||
md_path.write_text("\n".join(lines), encoding="utf-8")
|
||||
return json_path, md_path
|
||||
|
||||
|
||||
def print_conversion_tracking_plan(plan: ConversionTrackingPlan) -> None:
|
||||
print("\nPlan sprawdzenia pomiaru konwersji")
|
||||
print_table(
|
||||
["Metryka", "Liczba"],
|
||||
[
|
||||
["Obszary audytu", str(len(plan.scope))],
|
||||
["Reguly wiedzy", str(len(plan.knowledge_rules))],
|
||||
["Zmiany do wdrozenia", "0"],
|
||||
],
|
||||
)
|
||||
if plan.warnings:
|
||||
print("\nUwagi")
|
||||
print_table(["Nr", "Uwaga"], [[str(index), item] for index, item in enumerate(plan.warnings, 1)])
|
||||
print("\nZakres audytu")
|
||||
print_table(
|
||||
["Nr", "Obszar", "Co sprawdzic"],
|
||||
[[str(index), row["area"], row["check"]] for index, row in enumerate(plan.scope, 1)],
|
||||
)
|
||||
if plan.knowledge_rules:
|
||||
print("\nReguly z bazy wiedzy")
|
||||
print_table(
|
||||
["Nr", "ID", "Temat", "Rekomendacja"],
|
||||
[
|
||||
[str(index), rule["id"], rule["topic"], rule["recommendation"]]
|
||||
for index, rule in enumerate(plan.knowledge_rules[:10], 1)
|
||||
],
|
||||
)
|
||||
if len(plan.knowledge_rules) > 10:
|
||||
print(f"... oraz {len(plan.knowledge_rules) - 10} kolejnych regul")
|
||||
|
||||
|
||||
def print_next_navigation(domain: str) -> None:
|
||||
print("\nCo dalej:")
|
||||
print(f"1. Lista zadan klienta {domain}")
|
||||
print("2. Lista klientow")
|
||||
print("3. Zakoncz")
|
||||
print("\nKomendy:")
|
||||
print(f"1 -> python gads.py analiza-klienta --client {domain}")
|
||||
print("2 -> python gads.py analiza-klienta")
|
||||
|
||||
|
||||
def apply_conversion_tracking_plan(
|
||||
client_config: ClientConfig,
|
||||
plan: ConversionTrackingPlan,
|
||||
show_navigation: bool = True,
|
||||
) -> None:
|
||||
print("\nTo zadanie jest audytem i nie wdraza zmian na koncie Google Ads.")
|
||||
changes_path = append_change_markdown(client_config.domain, TASK_NAME, [])
|
||||
history_path = append_history(
|
||||
client_config.domain,
|
||||
{
|
||||
"task": TASK_NAME,
|
||||
"status": "audyt oznaczony jako wykonany",
|
||||
"campaign": "",
|
||||
"summary": {
|
||||
"scope_items": len(plan.scope),
|
||||
"knowledge_rules": len(plan.knowledge_rules),
|
||||
"changes": 0,
|
||||
},
|
||||
},
|
||||
)
|
||||
print(f"Historia JSONL: {history_path}")
|
||||
print(f"Historia Markdown: {changes_path}")
|
||||
if show_navigation:
|
||||
print_next_navigation(client_config.domain)
|
||||
|
||||
|
||||
def run_check_conversion_tracking(
|
||||
client_config: ClientConfig,
|
||||
global_rules: dict,
|
||||
plan_only: bool = False,
|
||||
apply_plan_path: str | None = None,
|
||||
confirm_apply: str | None = None,
|
||||
show_navigation: bool = True,
|
||||
) -> None:
|
||||
_ = global_rules
|
||||
if apply_plan_path:
|
||||
if confirm_apply != "TAK":
|
||||
print("Do oznaczenia audytu jako wykonanego wymagane jest --confirm-apply TAK.")
|
||||
if show_navigation:
|
||||
print_next_navigation(client_config.domain)
|
||||
return
|
||||
plan_data = json.loads(Path(apply_plan_path).read_text(encoding="utf-8"))
|
||||
if plan_data.get("client") != client_config.domain:
|
||||
print(f"Plan jest dla klienta {plan_data.get('client')}, a wybrano {client_config.domain}.")
|
||||
if show_navigation:
|
||||
print_next_navigation(client_config.domain)
|
||||
return
|
||||
plan = ConversionTrackingPlan.from_dict(plan_data)
|
||||
print_conversion_tracking_plan(plan)
|
||||
apply_conversion_tracking_plan(client_config, plan, show_navigation=show_navigation)
|
||||
return
|
||||
|
||||
print(f"\nKlient: {client_config.domain}")
|
||||
print("Przygotowuje plan sprawdzenia pomiaru konwersji...")
|
||||
plan = build_conversion_tracking_plan(client_config)
|
||||
print_conversion_tracking_plan(plan)
|
||||
json_path, md_path = save_conversion_tracking_plan(client_config.domain, plan)
|
||||
print(f"\nPlan JSON: {json_path}")
|
||||
print(f"Plan Markdown: {md_path}")
|
||||
|
||||
append_history(
|
||||
client_config.domain,
|
||||
{
|
||||
"task": TASK_NAME,
|
||||
"status": "plan przygotowany",
|
||||
"campaign": "",
|
||||
"summary": {
|
||||
"scope_items": len(plan.scope),
|
||||
"knowledge_rules": len(plan.knowledge_rules),
|
||||
"changes": 0,
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
if plan_only:
|
||||
print("\nTryb plan-only: zmiany nie zostaly wdrozone.")
|
||||
if show_navigation:
|
||||
print_next_navigation(client_config.domain)
|
||||
return
|
||||
|
||||
print("\nBrak zmian do wdrozenia. To zadanie tworzy plan audytu.")
|
||||
if show_navigation:
|
||||
print_next_navigation(client_config.domain)
|
||||
@@ -1,912 +0,0 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import csv
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
from collections import defaultdict
|
||||
from collections import Counter
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
|
||||
import requests
|
||||
from google.protobuf import field_mask_pb2
|
||||
|
||||
from ..config import ClientConfig, client_dir
|
||||
from ..google_ads import get_google_ads_client, run_query
|
||||
from ..history import append_change_markdown, append_history, now_local
|
||||
|
||||
|
||||
CSV_COLS = [
|
||||
"id", "offer_id", "title", "availability", "channel", "content_language",
|
||||
"target_country", "feed_label", "brand", "google_product_category",
|
||||
"custom_label_0", "custom_label_1", "custom_label_2", "custom_label_3",
|
||||
"custom_label_4", "link",
|
||||
]
|
||||
|
||||
|
||||
@dataclass
|
||||
class SyncPlan:
|
||||
campaigns: list[dict]
|
||||
groups_total: int
|
||||
groups_with_product_id: int
|
||||
create_plan: list[dict]
|
||||
enable_plan: list[dict]
|
||||
pause_plan: list[dict]
|
||||
rename_plan: list[dict]
|
||||
warnings: list[str]
|
||||
unmatched_groups: list[dict] | None = None
|
||||
|
||||
def to_dict(self) -> dict:
|
||||
def serialize_rows(rows: list[dict]) -> list[dict]:
|
||||
serialized = []
|
||||
for item in rows:
|
||||
row = {}
|
||||
for key, value in item.items():
|
||||
if isinstance(value, set):
|
||||
row[key] = sorted(value)
|
||||
else:
|
||||
row[key] = value
|
||||
serialized.append(row)
|
||||
return serialized
|
||||
|
||||
return {
|
||||
"task": "sync_pla_cl1",
|
||||
"campaigns": serialize_rows(self.campaigns),
|
||||
"groups_total": self.groups_total,
|
||||
"groups_with_product_id": self.groups_with_product_id,
|
||||
"create_plan": serialize_rows(self.create_plan),
|
||||
"enable_plan": serialize_rows(self.enable_plan),
|
||||
"pause_plan": serialize_rows(self.pause_plan),
|
||||
"rename_plan": serialize_rows(self.rename_plan),
|
||||
"warnings": self.warnings,
|
||||
"unmatched_groups": serialize_rows(self.unmatched_groups or []),
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, data: dict) -> "SyncPlan":
|
||||
return cls(
|
||||
campaigns=data.get("campaigns", []),
|
||||
groups_total=int(data.get("groups_total", 0)),
|
||||
groups_with_product_id=int(data.get("groups_with_product_id", 0)),
|
||||
create_plan=data.get("create_plan", []),
|
||||
enable_plan=data.get("enable_plan", []),
|
||||
pause_plan=data.get("pause_plan", []),
|
||||
rename_plan=data.get("rename_plan", []),
|
||||
warnings=data.get("warnings", []),
|
||||
unmatched_groups=data.get("unmatched_groups", []),
|
||||
)
|
||||
|
||||
|
||||
def campaign_action_summary(plan: SyncPlan) -> list[dict]:
|
||||
campaign_names = set()
|
||||
for action_name in ("create_plan", "enable_plan", "pause_plan", "rename_plan"):
|
||||
for row in getattr(plan, action_name):
|
||||
if row.get("campaign_name"):
|
||||
campaign_names.add(row["campaign_name"])
|
||||
|
||||
create_counts = Counter(row["campaign_name"] for row in plan.create_plan)
|
||||
enable_counts = Counter(row["campaign_name"] for row in plan.enable_plan)
|
||||
pause_counts = Counter(row["campaign_name"] for row in plan.pause_plan)
|
||||
rename_counts = Counter(row["campaign_name"] for row in plan.rename_plan)
|
||||
|
||||
return [
|
||||
{
|
||||
"campaign_name": name,
|
||||
"create": create_counts.get(name, 0),
|
||||
"enable": enable_counts.get(name, 0),
|
||||
"pause": pause_counts.get(name, 0),
|
||||
"rename": rename_counts.get(name, 0),
|
||||
}
|
||||
for name in sorted(campaign_names)
|
||||
]
|
||||
|
||||
|
||||
def normalize_text(value: str) -> str:
|
||||
return " ".join(
|
||||
(value or "")
|
||||
.lower()
|
||||
.replace("–", "-")
|
||||
.replace("—", "-")
|
||||
.replace("|", "-")
|
||||
.replace("„", "")
|
||||
.replace("”", "")
|
||||
.replace('"', "")
|
||||
.split()
|
||||
)
|
||||
|
||||
|
||||
def parse_allowed_labels(campaign_name: str) -> set[str]:
|
||||
match = re.search(r"\]\s*(.+)$", campaign_name)
|
||||
raw = match.group(1).strip() if match else campaign_name
|
||||
if "|" in raw:
|
||||
raw = raw.split("|", 1)[0].strip()
|
||||
return {part.strip() for part in raw.split(",") if part.strip()}
|
||||
|
||||
|
||||
def fetch_adspro_products(client: ClientConfig, segments: list[str]) -> list[dict]:
|
||||
api_url = os.environ.get("ADSPRO_API_URL")
|
||||
api_key = os.environ.get("ADSPRO_API_KEY")
|
||||
if not api_url or not api_key:
|
||||
raise RuntimeError("Brak ADSPRO_API_URL lub ADSPRO_API_KEY w .env.")
|
||||
if not client.adspro_client_id:
|
||||
raise RuntimeError(f"Brak adspro_client_id dla {client.domain} w config/clients.toml.")
|
||||
|
||||
by_offer_id = {}
|
||||
for segment in segments:
|
||||
response = requests.post(
|
||||
api_url,
|
||||
data={
|
||||
"action": "products_get_by_cl1",
|
||||
"api_key": api_key,
|
||||
"client_id": client.adspro_client_id,
|
||||
"custom_label_1": segment,
|
||||
},
|
||||
timeout=60,
|
||||
)
|
||||
data = response.json()
|
||||
if data.get("result") == "error":
|
||||
raise RuntimeError(f"adsPRO zwrocil blad dla CL1={segment}: {data.get('message')}")
|
||||
for product in data.get("products", []):
|
||||
offer_id = product.get("offer_id") or ""
|
||||
if offer_id:
|
||||
by_offer_id[offer_id] = {
|
||||
"id": "",
|
||||
"offer_id": offer_id,
|
||||
"title": product.get("title", "") or "",
|
||||
"availability": "",
|
||||
"channel": "",
|
||||
"content_language": "",
|
||||
"target_country": "",
|
||||
"feed_label": "",
|
||||
"brand": "",
|
||||
"google_product_category": product.get("google_product_category", "") or "",
|
||||
"custom_label_0": "",
|
||||
"custom_label_1": product.get("custom_label_1", "") or "",
|
||||
"custom_label_2": "",
|
||||
"custom_label_3": product.get("custom_label_3", "") or "",
|
||||
"custom_label_4": product.get("custom_label_4", "") or "",
|
||||
"link": "",
|
||||
}
|
||||
return list(by_offer_id.values())
|
||||
|
||||
|
||||
def save_products_csv(domain: str, products: list[dict]) -> Path:
|
||||
out = client_dir(domain) / "data"
|
||||
out.mkdir(parents=True, exist_ok=True)
|
||||
path = out / "merchant_produkty_adspro.csv"
|
||||
with path.open("w", newline="", encoding="utf-8-sig") as f:
|
||||
writer = csv.DictWriter(f, fieldnames=CSV_COLS)
|
||||
writer.writeheader()
|
||||
writer.writerows(products)
|
||||
return path
|
||||
|
||||
|
||||
def save_plan_files(domain: str, plan: SyncPlan, products_count: int) -> tuple[Path, Path]:
|
||||
ts = now_local()
|
||||
base = client_dir(domain) / "plans"
|
||||
base.mkdir(parents=True, exist_ok=True)
|
||||
stem = f"{ts.strftime('%Y-%m-%d_%H-%M-%S')}_sync_pla_cl1"
|
||||
json_path = base / f"{stem}.json"
|
||||
md_path = base / f"{stem}.md"
|
||||
|
||||
payload = {
|
||||
"created_at": ts.isoformat(timespec="seconds"),
|
||||
"client": domain,
|
||||
"products_count": products_count,
|
||||
**plan.to_dict(),
|
||||
}
|
||||
json_path.write_text(json.dumps(payload, ensure_ascii=False, indent=2), encoding="utf-8")
|
||||
|
||||
lines = [
|
||||
"# Plan: Synchronizacja kampanii PLA_CL1",
|
||||
"",
|
||||
f"Klient: {domain}",
|
||||
f"Utworzono: {ts.isoformat(timespec='seconds')}",
|
||||
"",
|
||||
"## Podsumowanie",
|
||||
"",
|
||||
f"- Kampanie PLA_CL1: {len(plan.campaigns)}",
|
||||
f"- Produkty z adsPRO: {products_count}",
|
||||
f"- Grupy reklam obecnie: {plan.groups_total}",
|
||||
f"- Grupy reklam z identyfikatorem produktu: {plan.groups_with_product_id}",
|
||||
f"- Do utworzenia: {len(plan.create_plan)}",
|
||||
f"- Do włączenia: {len(plan.enable_plan)}",
|
||||
f"- Do wstrzymania: {len(plan.pause_plan)}",
|
||||
f"- Do zmiany nazwy: {len(plan.rename_plan)}",
|
||||
"",
|
||||
]
|
||||
if plan.warnings:
|
||||
lines.extend(["## Uwagi", ""])
|
||||
lines.extend(f"- {warning}" for warning in plan.warnings)
|
||||
lines.append("")
|
||||
summary = campaign_action_summary(plan)
|
||||
if summary:
|
||||
lines.extend(["## Podsumowanie po kampaniach", "", "| Kampania | Utworz | Wlacz | Wstrzymaj | Zmien nazwe |", "| --- | ---: | ---: | ---: | ---: |"])
|
||||
for row in summary:
|
||||
lines.append(
|
||||
f"| {row['campaign_name']} | {row['create']} | {row['enable']} | {row['pause']} | {row['rename']} |"
|
||||
)
|
||||
lines.append("")
|
||||
if plan.unmatched_groups:
|
||||
lines.extend(["## Grupy reklam bez dopasowania w adsPRO", "", "| Kampania | Grupa reklam | Status | Identyfikator produktu |", "| --- | --- | --- | --- |"])
|
||||
for row in plan.unmatched_groups:
|
||||
lines.append(
|
||||
f"| {row['campaign_name']} | {row['ad_group_name']} | {row['ad_group_status']} | {row.get('offer_id', '')} |"
|
||||
)
|
||||
lines.append("")
|
||||
if plan.create_plan:
|
||||
lines.extend(["## Grupy reklam do utworzenia", "", "| Kampania | Grupa reklam | Produkt | Powod |", "| --- | --- | --- | --- |"])
|
||||
for row in plan.create_plan:
|
||||
lines.append(
|
||||
f"| {row['campaign_name']} | {row['ad_group_name']} | {row['product_id']} | {row['reason']} |"
|
||||
)
|
||||
lines.append("")
|
||||
if plan.enable_plan:
|
||||
lines.extend(["## Grupy reklam do wlaczenia", "", "| Kampania | Grupa reklam | Produkt | Powod |", "| --- | --- | --- | --- |"])
|
||||
for row in plan.enable_plan:
|
||||
lines.append(
|
||||
f"| {row['campaign_name']} | {row['ad_group_name']} | {row['product_id']} | {row['reason']} |"
|
||||
)
|
||||
lines.append("")
|
||||
if plan.pause_plan:
|
||||
lines.extend(["## Grupy reklam do wstrzymania", "", "| Kampania | Grupa reklam | Powod |", "| --- | --- | --- |"])
|
||||
for row in plan.pause_plan:
|
||||
lines.append(f"| {row['campaign_name']} | {row['ad_group_name']} | {row['reason']} |")
|
||||
lines.append("")
|
||||
if plan.rename_plan:
|
||||
lines.extend(["## Nazwy grup reklam do zmiany", "", "| Kampania | Obecna nazwa | Nowa nazwa |", "| --- | --- | --- |"])
|
||||
for row in plan.rename_plan:
|
||||
lines.append(f"| {row['campaign_name']} | {row['old_name']} | {row['new_name']} |")
|
||||
lines.append("")
|
||||
md_path.write_text("\n".join(lines), encoding="utf-8")
|
||||
return json_path, md_path
|
||||
|
||||
|
||||
def build_plan(client, customer_id: str, products: list[dict]) -> SyncPlan:
|
||||
campaign_rows = run_query(
|
||||
client,
|
||||
customer_id,
|
||||
"""
|
||||
SELECT campaign.id, campaign.name, campaign.status
|
||||
FROM campaign
|
||||
WHERE campaign.name LIKE '%PLA_CL1%'
|
||||
AND campaign.status = 'ENABLED'
|
||||
""",
|
||||
)
|
||||
campaigns = [
|
||||
{
|
||||
"id": str(row.campaign.id),
|
||||
"name": row.campaign.name,
|
||||
"status": row.campaign.status.name,
|
||||
"allowed": parse_allowed_labels(row.campaign.name),
|
||||
}
|
||||
for row in campaign_rows
|
||||
]
|
||||
if not campaigns:
|
||||
return SyncPlan([], 0, 0, [], [], [], [], ["Nie znaleziono kampanii [PLA_CL1]."], [])
|
||||
|
||||
label_to_campaign = {}
|
||||
for campaign in campaigns:
|
||||
for label in campaign["allowed"]:
|
||||
label_to_campaign[label] = campaign
|
||||
|
||||
by_offer_id = {}
|
||||
by_title_norm = defaultdict(list)
|
||||
by_label = defaultdict(list)
|
||||
for product in products:
|
||||
offer_id = (product.get("offer_id") or "").strip()
|
||||
title = (product.get("title") or "").strip()
|
||||
label = (product.get("custom_label_1") or "").strip()
|
||||
if offer_id:
|
||||
by_offer_id[offer_id] = product
|
||||
if title:
|
||||
by_title_norm[normalize_text(title)].append(product)
|
||||
if label and title:
|
||||
by_label[label].append(product)
|
||||
|
||||
campaign_ids = ", ".join(c["id"] for c in campaigns)
|
||||
group_rows = run_query(
|
||||
client,
|
||||
customer_id,
|
||||
f"""
|
||||
SELECT ad_group.id, ad_group.name, ad_group.status, campaign.id, campaign.name
|
||||
FROM ad_group
|
||||
WHERE campaign.id IN ({campaign_ids})
|
||||
AND ad_group.status != 'REMOVED'
|
||||
""",
|
||||
)
|
||||
criterion_rows = run_query(
|
||||
client,
|
||||
customer_id,
|
||||
f"""
|
||||
SELECT ad_group.id,
|
||||
ad_group_criterion.listing_group.case_value.product_item_id.value,
|
||||
ad_group_criterion.listing_group.type,
|
||||
ad_group_criterion.negative
|
||||
FROM ad_group_criterion
|
||||
WHERE campaign.id IN ({campaign_ids})
|
||||
AND ad_group_criterion.type = 'LISTING_GROUP'
|
||||
AND ad_group_criterion.status != 'REMOVED'
|
||||
""",
|
||||
)
|
||||
|
||||
group_to_offer = {}
|
||||
for row in criterion_rows:
|
||||
if row.ad_group_criterion.negative:
|
||||
continue
|
||||
if row.ad_group_criterion.listing_group.type.name != "UNIT":
|
||||
continue
|
||||
offer_id = row.ad_group_criterion.listing_group.case_value.product_item_id.value
|
||||
if offer_id:
|
||||
group_to_offer.setdefault(str(row.ad_group.id), offer_id)
|
||||
|
||||
enabled_offers_by_campaign = defaultdict(set)
|
||||
existing_groups_by_campaign_offer = defaultdict(list)
|
||||
existing_groups_by_campaign_name = defaultdict(list)
|
||||
all_groups = []
|
||||
for row in group_rows:
|
||||
group_id = str(row.ad_group.id)
|
||||
record = {
|
||||
"ad_group_id": group_id,
|
||||
"ad_group_name": row.ad_group.name,
|
||||
"ad_group_status": row.ad_group.status.name,
|
||||
"campaign_id": str(row.campaign.id),
|
||||
"campaign_name": row.campaign.name,
|
||||
"allowed": parse_allowed_labels(row.campaign.name),
|
||||
"offer_id": group_to_offer.get(group_id, ""),
|
||||
}
|
||||
all_groups.append(record)
|
||||
existing_groups_by_campaign_name[(record["campaign_id"], normalize_text(record["ad_group_name"]))].append(record)
|
||||
if record["offer_id"]:
|
||||
existing_groups_by_campaign_offer[(record["campaign_id"], record["offer_id"])].append(record)
|
||||
if record["ad_group_status"] == "ENABLED":
|
||||
enabled_offers_by_campaign[record["campaign_id"]].add(record["offer_id"])
|
||||
|
||||
wrong_groups = []
|
||||
groups_without_match = []
|
||||
active_groups_without_match = []
|
||||
rename_plan = []
|
||||
for group in all_groups:
|
||||
product = by_offer_id.get(group["offer_id"]) if group["offer_id"] else None
|
||||
match_via = "offer_id" if product else None
|
||||
if not product:
|
||||
candidates = by_title_norm.get(normalize_text(group["ad_group_name"])) or []
|
||||
if candidates:
|
||||
product = candidates[0]
|
||||
match_via = "title"
|
||||
if not product:
|
||||
groups_without_match.append(group)
|
||||
if group["ad_group_status"] == "ENABLED":
|
||||
active_groups_without_match.append(group)
|
||||
continue
|
||||
label = (product.get("custom_label_1") or "").strip()
|
||||
if not label:
|
||||
if group["ad_group_status"] == "ENABLED":
|
||||
active_groups_without_match.append(group)
|
||||
continue
|
||||
if label not in group["allowed"]:
|
||||
wrong_groups.append((group, product))
|
||||
continue
|
||||
adspro_title = (product.get("title") or "").strip()
|
||||
if (
|
||||
group["ad_group_status"] == "ENABLED"
|
||||
and match_via == "offer_id"
|
||||
and adspro_title
|
||||
and group["ad_group_name"] != adspro_title
|
||||
):
|
||||
rename_plan.append(
|
||||
{
|
||||
"ad_group_id": group["ad_group_id"],
|
||||
"campaign_id": group["campaign_id"],
|
||||
"campaign_name": group["campaign_name"],
|
||||
"old_name": group["ad_group_name"],
|
||||
"new_name": adspro_title,
|
||||
}
|
||||
)
|
||||
|
||||
create_plan = []
|
||||
enable_by_id = {}
|
||||
pause_by_id = {}
|
||||
|
||||
def plan_enable_or_create(campaign: dict, product: dict, fallback_name: str, reason: str) -> None:
|
||||
offer_id = (product.get("offer_id") or "").strip()
|
||||
title = (product.get("title") or "").strip() or fallback_name
|
||||
if not offer_id or not title:
|
||||
return
|
||||
if offer_id in enabled_offers_by_campaign[campaign["id"]]:
|
||||
return
|
||||
|
||||
existing_candidates = existing_groups_by_campaign_offer.get((campaign["id"], offer_id), [])
|
||||
if not existing_candidates:
|
||||
existing_candidates = existing_groups_by_campaign_name.get((campaign["id"], normalize_text(title)), [])
|
||||
|
||||
paused_candidate = next((group for group in existing_candidates if group["ad_group_status"] == "PAUSED"), None)
|
||||
if paused_candidate:
|
||||
enable_by_id[paused_candidate["ad_group_id"]] = {
|
||||
"ad_group_id": paused_candidate["ad_group_id"],
|
||||
"ad_group_name": paused_candidate["ad_group_name"],
|
||||
"campaign_id": paused_candidate["campaign_id"],
|
||||
"campaign_name": paused_candidate["campaign_name"],
|
||||
"product_id": offer_id,
|
||||
"reason": reason,
|
||||
}
|
||||
enabled_offers_by_campaign[campaign["id"]].add(offer_id)
|
||||
return
|
||||
|
||||
existing_active = next(
|
||||
(group for group in existing_candidates if group["ad_group_status"] == "ENABLED"),
|
||||
None,
|
||||
)
|
||||
if existing_active:
|
||||
enabled_offers_by_campaign[campaign["id"]].add(offer_id)
|
||||
return
|
||||
|
||||
create_plan.append(
|
||||
{
|
||||
"campaign_id": campaign["id"],
|
||||
"campaign_name": campaign["name"],
|
||||
"ad_group_name": title,
|
||||
"product_id": offer_id,
|
||||
"reason": reason,
|
||||
}
|
||||
)
|
||||
enabled_offers_by_campaign[campaign["id"]].add(offer_id)
|
||||
|
||||
for group, product in wrong_groups:
|
||||
offer_id = (product.get("offer_id") or "").strip()
|
||||
label = (product.get("custom_label_1") or "").strip()
|
||||
target = label_to_campaign.get(label)
|
||||
if target and offer_id:
|
||||
plan_enable_or_create(target, product, group["ad_group_name"], "produkt jest w zlej kampanii")
|
||||
if group["ad_group_status"] == "ENABLED":
|
||||
pause_by_id[group["ad_group_id"]] = {
|
||||
"ad_group_id": group["ad_group_id"],
|
||||
"ad_group_name": group["ad_group_name"],
|
||||
"campaign_id": group["campaign_id"],
|
||||
"campaign_name": group["campaign_name"],
|
||||
"reason": "produkt jest w zlej kampanii",
|
||||
}
|
||||
|
||||
for campaign in campaigns:
|
||||
for label in campaign["allowed"]:
|
||||
for product in by_label.get(label, []):
|
||||
offer_id = (product.get("offer_id") or "").strip()
|
||||
title = (product.get("title") or "").strip()
|
||||
if not offer_id or not title:
|
||||
continue
|
||||
if offer_id in enabled_offers_by_campaign[campaign["id"]]:
|
||||
continue
|
||||
plan_enable_or_create(campaign, product, title, "brakuje aktywnej grupy reklam")
|
||||
|
||||
for group in active_groups_without_match:
|
||||
pause_by_id[group["ad_group_id"]] = {
|
||||
"ad_group_id": group["ad_group_id"],
|
||||
"ad_group_name": group["ad_group_name"],
|
||||
"campaign_id": group["campaign_id"],
|
||||
"campaign_name": group["campaign_name"],
|
||||
"reason": "brak dopasowania w adsPRO",
|
||||
}
|
||||
|
||||
grouped = defaultdict(list)
|
||||
for group in all_groups:
|
||||
if group["ad_group_status"] != "ENABLED" or group["ad_group_id"] in pause_by_id or not group["offer_id"]:
|
||||
continue
|
||||
grouped[(group["campaign_id"], group["offer_id"])].append(group)
|
||||
for group_list in grouped.values():
|
||||
if len(group_list) <= 1:
|
||||
continue
|
||||
for group in sorted(group_list, key=lambda item: int(item["ad_group_id"]))[:-1]:
|
||||
pause_by_id[group["ad_group_id"]] = {
|
||||
"ad_group_id": group["ad_group_id"],
|
||||
"ad_group_name": group["ad_group_name"],
|
||||
"campaign_id": group["campaign_id"],
|
||||
"campaign_name": group["campaign_name"],
|
||||
"reason": "duplikat produktu w kampanii",
|
||||
}
|
||||
|
||||
pause_plan = [pause_by_id[key] for key in sorted(pause_by_id, key=int)]
|
||||
enable_plan = [enable_by_id[key] for key in sorted(enable_by_id, key=int)]
|
||||
pause_ids = set(pause_by_id)
|
||||
rename_plan = [row for row in rename_plan if row["ad_group_id"] not in pause_ids]
|
||||
|
||||
warnings = []
|
||||
if groups_without_match:
|
||||
warnings.append(f"Grupy reklam bez dopasowania w adsPRO: {len(groups_without_match)}.")
|
||||
|
||||
return SyncPlan(
|
||||
campaigns=campaigns,
|
||||
groups_total=len(all_groups),
|
||||
groups_with_product_id=sum(1 for g in all_groups if g["offer_id"]),
|
||||
create_plan=create_plan,
|
||||
enable_plan=enable_plan,
|
||||
pause_plan=pause_plan,
|
||||
rename_plan=rename_plan,
|
||||
warnings=warnings,
|
||||
unmatched_groups=groups_without_match,
|
||||
)
|
||||
|
||||
|
||||
def create_ad_group_with_listing(client, customer_id: str, campaign_id: str, product_id: str, ad_group_name: str):
|
||||
service = client.get_service("GoogleAdsService")
|
||||
ad_group_service = client.get_service("AdGroupService")
|
||||
campaign_resource = ad_group_service.campaign_path(customer_id, campaign_id)
|
||||
|
||||
ad_group_temp = f"customers/{customer_id}/adGroups/-1"
|
||||
root_temp = f"customers/{customer_id}/adGroupCriteria/-1~-2"
|
||||
operations = []
|
||||
|
||||
group_op = client.get_type("MutateOperation")
|
||||
group = group_op.ad_group_operation.create
|
||||
group.resource_name = ad_group_temp
|
||||
group.name = ad_group_name
|
||||
group.campaign = campaign_resource
|
||||
group.status = client.enums.AdGroupStatusEnum.ENABLED
|
||||
group.type_ = client.enums.AdGroupTypeEnum.SHOPPING_PRODUCT_ADS
|
||||
operations.append(group_op)
|
||||
|
||||
root_op = client.get_type("MutateOperation")
|
||||
root = root_op.ad_group_criterion_operation.create
|
||||
root.resource_name = root_temp
|
||||
root.ad_group = ad_group_temp
|
||||
root.status = client.enums.AdGroupCriterionStatusEnum.ENABLED
|
||||
root.listing_group.type_ = client.enums.ListingGroupTypeEnum.SUBDIVISION
|
||||
operations.append(root_op)
|
||||
|
||||
product_op = client.get_type("MutateOperation")
|
||||
product = product_op.ad_group_criterion_operation.create
|
||||
product.ad_group = ad_group_temp
|
||||
product.status = client.enums.AdGroupCriterionStatusEnum.ENABLED
|
||||
product.listing_group.type_ = client.enums.ListingGroupTypeEnum.UNIT
|
||||
product.listing_group.parent_ad_group_criterion = root_temp
|
||||
product.listing_group.case_value.product_item_id.value = product_id
|
||||
product.cpc_bid_micros = 1_000_000
|
||||
operations.append(product_op)
|
||||
|
||||
other_op = client.get_type("MutateOperation")
|
||||
other = other_op.ad_group_criterion_operation.create
|
||||
other.ad_group = ad_group_temp
|
||||
other.negative = True
|
||||
other.status = client.enums.AdGroupCriterionStatusEnum.ENABLED
|
||||
other.listing_group.type_ = client.enums.ListingGroupTypeEnum.UNIT
|
||||
other.listing_group.parent_ad_group_criterion = root_temp
|
||||
client.copy_from(other.listing_group.case_value.product_item_id, client.get_type("ProductItemIdInfo"))
|
||||
operations.append(other_op)
|
||||
|
||||
ad_op = client.get_type("MutateOperation")
|
||||
ad = ad_op.ad_group_ad_operation.create
|
||||
ad.ad_group = ad_group_temp
|
||||
ad.status = client.enums.AdGroupAdStatusEnum.ENABLED
|
||||
ad.ad.shopping_product_ad._pb.SetInParent()
|
||||
operations.append(ad_op)
|
||||
|
||||
service.mutate(customer_id=customer_id, mutate_operations=operations)
|
||||
|
||||
|
||||
def pause_ad_groups(client, customer_id: str, ad_group_ids: list[str]) -> int:
|
||||
service = client.get_service("AdGroupService")
|
||||
changed = 0
|
||||
for index in range(0, len(ad_group_ids), 500):
|
||||
operations = []
|
||||
for ad_group_id in ad_group_ids[index:index + 500]:
|
||||
op = client.get_type("AdGroupOperation")
|
||||
group = op.update
|
||||
group.resource_name = service.ad_group_path(customer_id, ad_group_id)
|
||||
group.status = client.enums.AdGroupStatusEnum.PAUSED
|
||||
op.update_mask = field_mask_pb2.FieldMask(paths=["status"])
|
||||
operations.append(op)
|
||||
if operations:
|
||||
response = service.mutate_ad_groups(customer_id=customer_id, operations=operations)
|
||||
changed += len(response.results)
|
||||
return changed
|
||||
|
||||
|
||||
def enable_ad_groups(client, customer_id: str, ad_group_ids: list[str]) -> int:
|
||||
if not ad_group_ids:
|
||||
return 0
|
||||
service = client.get_service("AdGroupService")
|
||||
changed = 0
|
||||
for index in range(0, len(ad_group_ids), 500):
|
||||
operations = []
|
||||
for ad_group_id in ad_group_ids[index:index + 500]:
|
||||
op = client.get_type("AdGroupOperation")
|
||||
group = op.update
|
||||
group.resource_name = service.ad_group_path(customer_id, ad_group_id)
|
||||
group.status = client.enums.AdGroupStatusEnum.ENABLED
|
||||
op.update_mask = field_mask_pb2.FieldMask(paths=["status"])
|
||||
operations.append(op)
|
||||
if operations:
|
||||
response = service.mutate_ad_groups(customer_id=customer_id, operations=operations)
|
||||
changed += len(response.results)
|
||||
return changed
|
||||
|
||||
|
||||
def rename_ad_groups(client, customer_id: str, renames: list[dict]) -> int:
|
||||
service = client.get_service("AdGroupService")
|
||||
changed = 0
|
||||
for index in range(0, len(renames), 500):
|
||||
operations = []
|
||||
for row in renames[index:index + 500]:
|
||||
op = client.get_type("AdGroupOperation")
|
||||
group = op.update
|
||||
group.resource_name = service.ad_group_path(customer_id, row["ad_group_id"])
|
||||
group.name = row["new_name"]
|
||||
op.update_mask = field_mask_pb2.FieldMask(paths=["name"])
|
||||
operations.append(op)
|
||||
if operations:
|
||||
response = service.mutate_ad_groups(customer_id=customer_id, operations=operations)
|
||||
changed += len(response.results)
|
||||
return changed
|
||||
|
||||
|
||||
def print_plan(plan: SyncPlan) -> None:
|
||||
print("\nPlan synchronizacji PLA_CL1")
|
||||
print(f"Kampanie PLA_CL1: {len(plan.campaigns)}")
|
||||
print(f"Grupy reklam obecnie: {plan.groups_total}")
|
||||
print(f"Grupy reklam z identyfikatorem produktu: {plan.groups_with_product_id}")
|
||||
print(f"Do utworzenia: {len(plan.create_plan)}")
|
||||
print(f"Do włączenia: {len(plan.enable_plan)}")
|
||||
print(f"Do wstrzymania: {len(plan.pause_plan)}")
|
||||
print(f"Do zmiany nazwy: {len(plan.rename_plan)}")
|
||||
for warning in plan.warnings:
|
||||
print(f"Uwaga: {warning}")
|
||||
|
||||
summary = campaign_action_summary(plan)
|
||||
if summary:
|
||||
print("\nPodsumowanie po kampaniach:")
|
||||
for row in summary:
|
||||
print(
|
||||
f" {row['campaign_name']} | "
|
||||
f"utwórz={row['create']} | włącz={row['enable']} | "
|
||||
f"wstrzymaj={row['pause']} | zmień nazwę={row['rename']}"
|
||||
)
|
||||
|
||||
for row in plan.create_plan[:20]:
|
||||
print(f" Utworz: {row['campaign_name']} | {row['ad_group_name']} | {row['product_id']}")
|
||||
if len(plan.create_plan) > 20:
|
||||
print(f" ... oraz {len(plan.create_plan) - 20} kolejnych grup reklam do utworzenia")
|
||||
for row in plan.enable_plan[:20]:
|
||||
print(f" Włącz: {row['campaign_name']} | {row['ad_group_name']} | {row['product_id']}")
|
||||
if len(plan.enable_plan) > 20:
|
||||
print(f" ... oraz {len(plan.enable_plan) - 20} kolejnych grup reklam do włączenia")
|
||||
for row in plan.pause_plan[:20]:
|
||||
print(f" Wstrzymaj: {row['campaign_name']} | {row['ad_group_name']} | {row['reason']}")
|
||||
if len(plan.pause_plan) > 20:
|
||||
print(f" ... oraz {len(plan.pause_plan) - 20} kolejnych grup reklam do wstrzymania")
|
||||
for row in plan.rename_plan[:20]:
|
||||
print(f" Zmien nazwe: {row['ad_group_id']} | {row['old_name'][:50]} -> {row['new_name'][:50]}")
|
||||
if len(plan.rename_plan) > 20:
|
||||
print(f" ... oraz {len(plan.rename_plan) - 20} kolejnych nazw do zmiany")
|
||||
|
||||
|
||||
def print_next_navigation(domain: str) -> None:
|
||||
print("\nCo dalej:")
|
||||
print(f"1. Lista zadan klienta {domain}")
|
||||
print("2. Lista klientow")
|
||||
print("3. Zakoncz")
|
||||
print("\nKomendy:")
|
||||
print(f"1 -> python gads.py analiza-klienta --client {domain}")
|
||||
print("2 -> python gads.py analiza-klienta")
|
||||
|
||||
|
||||
def apply_sync_plan(client_config: ClientConfig, plan: SyncPlan, show_navigation: bool = True) -> None:
|
||||
google_client = get_google_ads_client(use_proto_plus=True)
|
||||
customer_id = client_config.safe_customer_id
|
||||
|
||||
created = 0
|
||||
create_errors = 0
|
||||
for row in plan.create_plan:
|
||||
try:
|
||||
create_ad_group_with_listing(
|
||||
google_client,
|
||||
customer_id,
|
||||
row["campaign_id"],
|
||||
row["product_id"],
|
||||
row["ad_group_name"],
|
||||
)
|
||||
created += 1
|
||||
except Exception as exc:
|
||||
create_errors += 1
|
||||
print(f"Blad tworzenia grupy reklam {row['ad_group_name']}: {exc}")
|
||||
|
||||
pause_ids = [row["ad_group_id"] for row in plan.pause_plan]
|
||||
enable_ids = [row["ad_group_id"] for row in plan.enable_plan]
|
||||
enabled = enable_ad_groups(google_client, customer_id, enable_ids) if enable_ids else 0
|
||||
paused = pause_ad_groups(google_client, customer_id, pause_ids) if pause_ids else 0
|
||||
renamed = rename_ad_groups(google_client, customer_id, plan.rename_plan) if plan.rename_plan else 0
|
||||
|
||||
print("\nWynik wdrozenia zmian")
|
||||
print(f"Utworzono grup reklam: {created}")
|
||||
print(f"Włączono grup reklam: {enabled}")
|
||||
print(f"Bledy tworzenia: {create_errors}")
|
||||
print(f"Wstrzymano grup reklam: {paused}")
|
||||
print(f"Zmieniono nazwy grup reklam: {renamed}")
|
||||
|
||||
rows = []
|
||||
rows.extend(
|
||||
{
|
||||
"klient": client_config.domain,
|
||||
"kampania": row["campaign_name"],
|
||||
"czynnosc": "włączono grupę reklam",
|
||||
"grupa reklam": row["ad_group_name"],
|
||||
"produkt": row["product_id"],
|
||||
}
|
||||
for row in plan.enable_plan
|
||||
)
|
||||
rows.extend(
|
||||
{
|
||||
"klient": client_config.domain,
|
||||
"kampania": row["campaign_name"],
|
||||
"czynnosc": "utworzono grupe reklam",
|
||||
"grupa reklam": row["ad_group_name"],
|
||||
"produkt": row["product_id"],
|
||||
}
|
||||
for row in plan.create_plan
|
||||
)
|
||||
rows.extend(
|
||||
{
|
||||
"klient": client_config.domain,
|
||||
"kampania": row["campaign_name"],
|
||||
"czynnosc": "wstrzymano grupe reklam",
|
||||
"grupa reklam": row["ad_group_name"],
|
||||
"produkt": row["reason"],
|
||||
}
|
||||
for row in plan.pause_plan
|
||||
)
|
||||
rows.extend(
|
||||
{
|
||||
"klient": client_config.domain,
|
||||
"kampania": row["campaign_name"],
|
||||
"czynnosc": "zmieniono nazwe grupy reklam",
|
||||
"grupa reklam": row["old_name"],
|
||||
"produkt": row["new_name"],
|
||||
}
|
||||
for row in plan.rename_plan
|
||||
)
|
||||
changes_path = append_change_markdown(client_config.domain, "Synchronizacja kampanii PLA_CL1", rows)
|
||||
history_path = append_history(
|
||||
client_config.domain,
|
||||
{
|
||||
"task": "Synchronizacja kampanii PLA_CL1",
|
||||
"status": "wdrozono zmiany",
|
||||
"campaign": ", ".join(c["name"] for c in plan.campaigns[:10]),
|
||||
"summary": {
|
||||
"created": created,
|
||||
"enabled": enabled,
|
||||
"create_errors": create_errors,
|
||||
"paused": paused,
|
||||
"renamed": renamed,
|
||||
},
|
||||
},
|
||||
)
|
||||
print(f"Historia JSONL: {history_path}")
|
||||
print(f"Historia Markdown: {changes_path}")
|
||||
if show_navigation:
|
||||
print_next_navigation(client_config.domain)
|
||||
|
||||
|
||||
def run_sync_pla_cl1(
|
||||
client_config: ClientConfig,
|
||||
global_rules: dict,
|
||||
plan_only: bool = False,
|
||||
apply_plan_path: str | None = None,
|
||||
confirm_apply: str | None = None,
|
||||
show_navigation: bool = True,
|
||||
) -> None:
|
||||
if apply_plan_path:
|
||||
if confirm_apply != "TAK":
|
||||
print("Do wdrozenia planu wymagane jest --confirm-apply TAK.")
|
||||
if show_navigation:
|
||||
print_next_navigation(client_config.domain)
|
||||
return
|
||||
plan_data = json.loads(Path(apply_plan_path).read_text(encoding="utf-8"))
|
||||
if plan_data.get("client") != client_config.domain:
|
||||
print(
|
||||
f"Plan jest dla klienta {plan_data.get('client')}, "
|
||||
f"a wybrano {client_config.domain}."
|
||||
)
|
||||
if show_navigation:
|
||||
print_next_navigation(client_config.domain)
|
||||
return
|
||||
plan = SyncPlan.from_dict(plan_data)
|
||||
print_plan(plan)
|
||||
apply_sync_plan(client_config, plan, show_navigation=show_navigation)
|
||||
return
|
||||
|
||||
started = now_local()
|
||||
print(f"\nKlient: {client_config.domain}")
|
||||
print("Pobieram kampanie PLA_CL1 i produkty z adsPRO...")
|
||||
|
||||
google_client = get_google_ads_client(use_proto_plus=True)
|
||||
customer_id = client_config.safe_customer_id
|
||||
|
||||
campaign_rows = run_query(
|
||||
google_client,
|
||||
customer_id,
|
||||
"""
|
||||
SELECT campaign.id, campaign.name, campaign.status
|
||||
FROM campaign
|
||||
WHERE campaign.name LIKE '%PLA_CL1%'
|
||||
AND campaign.status = 'ENABLED'
|
||||
""",
|
||||
)
|
||||
segments = sorted(
|
||||
{
|
||||
label
|
||||
for row in campaign_rows
|
||||
for label in parse_allowed_labels(row.campaign.name)
|
||||
}
|
||||
)
|
||||
if not segments:
|
||||
print("Nie znaleziono segmentow CL1 w kampaniach [PLA_CL1].")
|
||||
append_history(
|
||||
client_config.domain,
|
||||
{
|
||||
"task": "Synchronizacja kampanii PLA_CL1",
|
||||
"status": "brak kampanii",
|
||||
"campaign": "",
|
||||
},
|
||||
)
|
||||
if show_navigation:
|
||||
print_next_navigation(client_config.domain)
|
||||
return
|
||||
|
||||
print("Segmenty CL1: " + ", ".join(segments))
|
||||
products = fetch_adspro_products(client_config, segments)
|
||||
products_path = save_products_csv(client_config.domain, products)
|
||||
print(f"Pobrano produkty z adsPRO: {len(products)}")
|
||||
print(f"Zapisano dane: {products_path}")
|
||||
|
||||
plan = build_plan(google_client, customer_id, products)
|
||||
print_plan(plan)
|
||||
json_path, md_path = save_plan_files(client_config.domain, plan, len(products))
|
||||
print(f"\nPlan JSON: {json_path}")
|
||||
print(f"Plan Markdown: {md_path}")
|
||||
|
||||
append_history(
|
||||
client_config.domain,
|
||||
{
|
||||
"task": "Synchronizacja kampanii PLA_CL1",
|
||||
"status": "plan przygotowany",
|
||||
"campaign": ", ".join(c["name"] for c in plan.campaigns[:10]),
|
||||
"created_at": started.isoformat(timespec="seconds"),
|
||||
"summary": {
|
||||
"campaigns": len(plan.campaigns),
|
||||
"products": len(products),
|
||||
"create": len(plan.create_plan),
|
||||
"enable": len(plan.enable_plan),
|
||||
"pause": len(plan.pause_plan),
|
||||
"rename": len(plan.rename_plan),
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
if plan_only:
|
||||
print("\nTryb plan-only: zmiany nie zostaly wdrozone.")
|
||||
if show_navigation:
|
||||
print_next_navigation(client_config.domain)
|
||||
return
|
||||
|
||||
if not plan.create_plan and not plan.enable_plan and not plan.pause_plan and not plan.rename_plan:
|
||||
print("\nBrak zmian do wdrozenia.")
|
||||
append_change_markdown(client_config.domain, "Synchronizacja kampanii PLA_CL1", [])
|
||||
if show_navigation:
|
||||
print_next_navigation(client_config.domain)
|
||||
return
|
||||
|
||||
answer = input("\nWpisz TAK, aby wdrozyc powyzsze zmiany: ").strip()
|
||||
if answer != "TAK":
|
||||
print("Przerwano. Zmiany nie zostaly wdrozone.")
|
||||
append_history(
|
||||
client_config.domain,
|
||||
{
|
||||
"task": "Synchronizacja kampanii PLA_CL1",
|
||||
"status": "odrzucono wdrozenie",
|
||||
"campaign": ", ".join(c["name"] for c in plan.campaigns[:10]),
|
||||
},
|
||||
)
|
||||
if show_navigation:
|
||||
print_next_navigation(client_config.domain)
|
||||
return
|
||||
|
||||
apply_sync_plan(client_config, plan, show_navigation=show_navigation)
|
||||
394
.sync/Archive/src/gads_v2/tasks/search_basic_settings_check.py
Normal file
394
.sync/Archive/src/gads_v2/tasks/search_basic_settings_check.py
Normal file
@@ -0,0 +1,394 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
|
||||
from ..config import ClientConfig, client_dir
|
||||
from ..google_ads import get_google_ads_client, run_query
|
||||
from ..history import append_change_markdown, append_history, now_local
|
||||
from ..knowledge.store import rules_for_task
|
||||
from ..table import print_table
|
||||
|
||||
|
||||
TASK_ID = "check_search_basic_settings"
|
||||
TASK_NAME = "Sprawdzenie podstawowych ustawien Search"
|
||||
|
||||
|
||||
SCOPE = [
|
||||
{
|
||||
"area": "Lokalizacje",
|
||||
"check": "Sprawdz typ kierowania lokalizacji, zwlaszcza Obecnosc vs Obecnosc lub zainteresowanie.",
|
||||
},
|
||||
{
|
||||
"area": "Sieci",
|
||||
"check": "Sprawdz, czy kampanie Search nie maja niechcaco wlaczonej sieci reklamowej albo partnerow wyszukiwania.",
|
||||
},
|
||||
{
|
||||
"area": "Jezyki",
|
||||
"check": "Sprawdz, czy ustawienia jezykowe sa zgodne z rynkiem klienta.",
|
||||
},
|
||||
{
|
||||
"area": "Harmonogram reklam",
|
||||
"check": "Sprawdz, czy harmonogram jest swiadomie ustawiony albo czy kampania dziala caly czas.",
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
OUT_OF_SCOPE = [
|
||||
"budzety i wykorzystanie budzetu",
|
||||
"strategie stawek i uczenie strategii",
|
||||
"zapytania uzytkownikow oraz wykluczenia",
|
||||
"reklamy RSA i zasoby reklam",
|
||||
"wyniki kampanii oraz rentownosc",
|
||||
]
|
||||
|
||||
|
||||
@dataclass
|
||||
class SearchBasicSettingsPlan:
|
||||
campaigns: list[dict]
|
||||
scope: list[dict]
|
||||
out_of_scope: list[str]
|
||||
knowledge_rules: list[dict]
|
||||
warnings: list[str]
|
||||
|
||||
def to_dict(self) -> dict:
|
||||
return {
|
||||
"task": TASK_ID,
|
||||
"task_name": TASK_NAME,
|
||||
"campaigns": self.campaigns,
|
||||
"scope": self.scope,
|
||||
"out_of_scope": self.out_of_scope,
|
||||
"knowledge_rules": self.knowledge_rules,
|
||||
"warnings": self.warnings,
|
||||
"changes": [],
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, data: dict) -> "SearchBasicSettingsPlan":
|
||||
return cls(
|
||||
campaigns=data.get("campaigns", []),
|
||||
scope=data.get("scope", []),
|
||||
out_of_scope=data.get("out_of_scope", []),
|
||||
knowledge_rules=data.get("knowledge_rules", []),
|
||||
warnings=data.get("warnings", []),
|
||||
)
|
||||
|
||||
|
||||
def enum_name(value) -> str:
|
||||
name = getattr(value, "name", None)
|
||||
if name:
|
||||
return name
|
||||
return str(value)
|
||||
|
||||
|
||||
def human_geo(value: str) -> str:
|
||||
return {
|
||||
"PRESENCE": "Obecnosc",
|
||||
"PRESENCE_OR_INTEREST": "Obecnosc lub zainteresowanie",
|
||||
"SEARCH_INTEREST": "Zainteresowanie wyszukiwaniem",
|
||||
}.get(value, value)
|
||||
|
||||
|
||||
def yes_no(value: bool) -> str:
|
||||
return "TAK" if value else "NIE"
|
||||
|
||||
|
||||
def fetch_search_campaigns(client_config: ClientConfig) -> list[dict]:
|
||||
google_client = get_google_ads_client(use_proto_plus=True)
|
||||
rows = run_query(
|
||||
google_client,
|
||||
client_config.safe_customer_id,
|
||||
"""
|
||||
SELECT
|
||||
campaign.id,
|
||||
campaign.name,
|
||||
campaign.status,
|
||||
campaign.advertising_channel_type,
|
||||
campaign.geo_target_type_setting.positive_geo_target_type,
|
||||
campaign.network_settings.target_google_search,
|
||||
campaign.network_settings.target_search_network,
|
||||
campaign.network_settings.target_partner_search_network,
|
||||
campaign.network_settings.target_content_network
|
||||
FROM campaign
|
||||
WHERE campaign.advertising_channel_type = 'SEARCH'
|
||||
AND campaign.status != 'REMOVED'
|
||||
""",
|
||||
)
|
||||
campaigns = []
|
||||
for row in rows:
|
||||
campaign = row.campaign
|
||||
positive_geo = enum_name(campaign.geo_target_type_setting.positive_geo_target_type)
|
||||
campaigns.append(
|
||||
{
|
||||
"campaign_id": str(campaign.id),
|
||||
"campaign_name": campaign.name,
|
||||
"status": enum_name(campaign.status),
|
||||
"positive_geo_target_type": positive_geo,
|
||||
"positive_geo_target_type_label": human_geo(positive_geo),
|
||||
"target_google_search": bool(campaign.network_settings.target_google_search),
|
||||
"target_search_network": bool(campaign.network_settings.target_search_network),
|
||||
"target_partner_search_network": bool(campaign.network_settings.target_partner_search_network),
|
||||
"target_content_network": bool(campaign.network_settings.target_content_network),
|
||||
}
|
||||
)
|
||||
return campaigns
|
||||
|
||||
|
||||
def build_search_basic_settings_plan(client_config: ClientConfig) -> SearchBasicSettingsPlan:
|
||||
warnings = []
|
||||
try:
|
||||
campaigns = fetch_search_campaigns(client_config)
|
||||
except Exception as exc:
|
||||
campaigns = []
|
||||
warnings.append(f"Nie udalo sie pobrac kampanii Search z Google Ads API: {exc}")
|
||||
|
||||
if not campaigns:
|
||||
warnings.append("Nie znaleziono kampanii Search albo nie udalo sie ich pobrac.")
|
||||
|
||||
rules = rules_for_task(TASK_ID)
|
||||
knowledge_rules = [
|
||||
{
|
||||
"id": rule.id,
|
||||
"topic": rule.topic,
|
||||
"rule_type": rule.rule_type,
|
||||
"condition": rule.condition,
|
||||
"recommendation": rule.recommendation,
|
||||
"risk": rule.risk,
|
||||
"source": rule.source,
|
||||
}
|
||||
for rule in rules
|
||||
]
|
||||
if not knowledge_rules:
|
||||
warnings.append(
|
||||
"Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. "
|
||||
"Uzyj `python gads.py wiedza przypisz --restart`, gdy bedziemy wybierac reguly dla Search."
|
||||
)
|
||||
|
||||
return SearchBasicSettingsPlan(
|
||||
campaigns=campaigns,
|
||||
scope=SCOPE,
|
||||
out_of_scope=OUT_OF_SCOPE,
|
||||
knowledge_rules=knowledge_rules,
|
||||
warnings=warnings,
|
||||
)
|
||||
|
||||
|
||||
def save_search_basic_settings_plan(domain: str, plan: SearchBasicSettingsPlan) -> tuple[Path, Path]:
|
||||
ts = now_local()
|
||||
base = client_dir(domain) / "plans"
|
||||
base.mkdir(parents=True, exist_ok=True)
|
||||
stem = f"{ts.strftime('%Y-%m-%d_%H-%M-%S')}_{TASK_ID}"
|
||||
json_path = base / f"{stem}.json"
|
||||
md_path = base / f"{stem}.md"
|
||||
payload = {
|
||||
"created_at": ts.isoformat(timespec="seconds"),
|
||||
"client": domain,
|
||||
**plan.to_dict(),
|
||||
}
|
||||
json_path.write_text(json.dumps(payload, ensure_ascii=False, indent=2), encoding="utf-8")
|
||||
|
||||
lines = [
|
||||
"# Plan: Sprawdzenie podstawowych ustawien Search",
|
||||
"",
|
||||
f"Klient: {domain}",
|
||||
f"Utworzono: {ts.isoformat(timespec='seconds')}",
|
||||
"",
|
||||
"## Podsumowanie",
|
||||
"",
|
||||
f"- Kampanie Search: {len(plan.campaigns)}",
|
||||
f"- Reguly wiedzy przypisane do zadania: {len(plan.knowledge_rules)}",
|
||||
"- Zmiany do wdrozenia: 0",
|
||||
"",
|
||||
]
|
||||
if plan.warnings:
|
||||
lines.extend(["## Uwagi", ""])
|
||||
lines.extend(f"- {item}" for item in plan.warnings)
|
||||
lines.append("")
|
||||
lines.extend(["## Zakres zadania", "", "| Obszar | Co sprawdzic |", "| --- | --- |"])
|
||||
for row in plan.scope:
|
||||
lines.append(f"| {row.get('area', '')} | {row.get('check', '')} |")
|
||||
lines.append("")
|
||||
lines.extend(["## Poza zakresem tego zadania", ""])
|
||||
lines.extend(f"- {item}" for item in plan.out_of_scope)
|
||||
lines.append("")
|
||||
if plan.campaigns:
|
||||
lines.extend(
|
||||
[
|
||||
"## Kampanie Search",
|
||||
"",
|
||||
"| Kampania | Status | Lokalizacje | Google Search | Search Network | Partnerzy | Siec reklamowa |",
|
||||
"| --- | --- | --- | --- | --- | --- | --- |",
|
||||
]
|
||||
)
|
||||
for campaign in plan.campaigns:
|
||||
lines.append(
|
||||
f"| {campaign['campaign_name']} | {campaign['status']} | "
|
||||
f"{campaign.get('positive_geo_target_type_label', campaign['positive_geo_target_type'])} | "
|
||||
f"{yes_no(campaign['target_google_search'])} | "
|
||||
f"{yes_no(campaign['target_search_network'])} | "
|
||||
f"{yes_no(campaign['target_partner_search_network'])} | "
|
||||
f"{yes_no(campaign['target_content_network'])} |"
|
||||
)
|
||||
lines.append("")
|
||||
if plan.knowledge_rules:
|
||||
lines.extend(
|
||||
[
|
||||
"## Reguly z bazy wiedzy",
|
||||
"",
|
||||
"| ID | Temat | Rekomendacja | Ryzyko |",
|
||||
"| --- | --- | --- | --- |",
|
||||
]
|
||||
)
|
||||
for rule in plan.knowledge_rules:
|
||||
lines.append(
|
||||
f"| {rule.get('id', '')} | {rule.get('topic', '')} | "
|
||||
f"{rule.get('recommendation', '')} | {rule.get('risk', '')} |"
|
||||
)
|
||||
lines.append("")
|
||||
md_path.write_text("\n".join(lines), encoding="utf-8")
|
||||
return json_path, md_path
|
||||
|
||||
|
||||
def print_search_basic_settings_plan(plan: SearchBasicSettingsPlan) -> None:
|
||||
print("\nPlan sprawdzenia podstawowych ustawien Search")
|
||||
print_table(
|
||||
["Metryka", "Liczba"],
|
||||
[
|
||||
["Kampanie Search", str(len(plan.campaigns))],
|
||||
["Reguly wiedzy", str(len(plan.knowledge_rules))],
|
||||
["Zmiany do wdrozenia", "0"],
|
||||
],
|
||||
)
|
||||
if plan.warnings:
|
||||
print("\nUwagi")
|
||||
print_table(["Nr", "Uwaga"], [[str(index), item] for index, item in enumerate(plan.warnings, 1)])
|
||||
print("\nZakres zadania")
|
||||
print_table(
|
||||
["Nr", "Obszar", "Co sprawdzic"],
|
||||
[[str(index), row["area"], row["check"]] for index, row in enumerate(plan.scope, 1)],
|
||||
)
|
||||
print("\nPoza zakresem")
|
||||
print_table(["Nr", "Nie analizujemy tutaj"], [[str(index), item] for index, item in enumerate(plan.out_of_scope, 1)])
|
||||
if plan.campaigns:
|
||||
print("\nKampanie Search")
|
||||
print_table(
|
||||
["Nr", "Kampania", "Status", "Lokalizacje", "Partnerzy", "Siec reklamowa"],
|
||||
[
|
||||
[
|
||||
str(index),
|
||||
campaign["campaign_name"],
|
||||
campaign["status"],
|
||||
campaign.get("positive_geo_target_type_label", campaign["positive_geo_target_type"]),
|
||||
yes_no(campaign["target_partner_search_network"]),
|
||||
yes_no(campaign["target_content_network"]),
|
||||
]
|
||||
for index, campaign in enumerate(plan.campaigns, 1)
|
||||
],
|
||||
)
|
||||
if plan.knowledge_rules:
|
||||
print("\nReguly z bazy wiedzy")
|
||||
print_table(
|
||||
["Nr", "ID", "Temat", "Rekomendacja"],
|
||||
[
|
||||
[str(index), rule["id"], rule["topic"], rule["recommendation"]]
|
||||
for index, rule in enumerate(plan.knowledge_rules[:10], 1)
|
||||
],
|
||||
)
|
||||
if len(plan.knowledge_rules) > 10:
|
||||
print(f"... oraz {len(plan.knowledge_rules) - 10} kolejnych regul")
|
||||
|
||||
|
||||
def print_next_navigation(domain: str) -> None:
|
||||
print("\nCo dalej:")
|
||||
print(f"1. Lista zadan klienta {domain}")
|
||||
print("2. Lista klientow")
|
||||
print("3. Zakoncz")
|
||||
print("\nKomendy:")
|
||||
print(f"1 -> python gads.py analiza-klienta --client {domain}")
|
||||
print("2 -> python gads.py analiza-klienta")
|
||||
|
||||
|
||||
def apply_search_basic_settings_plan(
|
||||
client_config: ClientConfig,
|
||||
plan: SearchBasicSettingsPlan,
|
||||
show_navigation: bool = True,
|
||||
) -> None:
|
||||
print("\nTo zadanie jest audytem ustawien i nie wdraza zmian na koncie Google Ads.")
|
||||
changes_path = append_change_markdown(client_config.domain, TASK_NAME, [])
|
||||
history_path = append_history(
|
||||
client_config.domain,
|
||||
{
|
||||
"task": TASK_NAME,
|
||||
"status": "audyt oznaczony jako wykonany",
|
||||
"campaign": ", ".join(campaign["campaign_name"] for campaign in plan.campaigns[:10]),
|
||||
"summary": {
|
||||
"campaigns": len(plan.campaigns),
|
||||
"knowledge_rules": len(plan.knowledge_rules),
|
||||
"changes": 0,
|
||||
},
|
||||
},
|
||||
)
|
||||
print(f"Historia JSONL: {history_path}")
|
||||
print(f"Historia Markdown: {changes_path}")
|
||||
if show_navigation:
|
||||
print_next_navigation(client_config.domain)
|
||||
|
||||
|
||||
def run_check_search_basic_settings(
|
||||
client_config: ClientConfig,
|
||||
global_rules: dict,
|
||||
plan_only: bool = False,
|
||||
apply_plan_path: str | None = None,
|
||||
confirm_apply: str | None = None,
|
||||
show_navigation: bool = True,
|
||||
) -> None:
|
||||
_ = global_rules
|
||||
if apply_plan_path:
|
||||
if confirm_apply != "TAK":
|
||||
print("Do oznaczenia audytu jako wykonanego wymagane jest --confirm-apply TAK.")
|
||||
if show_navigation:
|
||||
print_next_navigation(client_config.domain)
|
||||
return
|
||||
plan_data = json.loads(Path(apply_plan_path).read_text(encoding="utf-8"))
|
||||
if plan_data.get("client") != client_config.domain:
|
||||
print(f"Plan jest dla klienta {plan_data.get('client')}, a wybrano {client_config.domain}.")
|
||||
if show_navigation:
|
||||
print_next_navigation(client_config.domain)
|
||||
return
|
||||
plan = SearchBasicSettingsPlan.from_dict(plan_data)
|
||||
print_search_basic_settings_plan(plan)
|
||||
apply_search_basic_settings_plan(client_config, plan, show_navigation=show_navigation)
|
||||
return
|
||||
|
||||
print(f"\nKlient: {client_config.domain}")
|
||||
print("Przygotowuje plan sprawdzenia podstawowych ustawien Search...")
|
||||
plan = build_search_basic_settings_plan(client_config)
|
||||
print_search_basic_settings_plan(plan)
|
||||
json_path, md_path = save_search_basic_settings_plan(client_config.domain, plan)
|
||||
print(f"\nPlan JSON: {json_path}")
|
||||
print(f"Plan Markdown: {md_path}")
|
||||
|
||||
append_history(
|
||||
client_config.domain,
|
||||
{
|
||||
"task": TASK_NAME,
|
||||
"status": "plan przygotowany",
|
||||
"campaign": ", ".join(campaign["campaign_name"] for campaign in plan.campaigns[:10]),
|
||||
"summary": {
|
||||
"campaigns": len(plan.campaigns),
|
||||
"knowledge_rules": len(plan.knowledge_rules),
|
||||
"changes": 0,
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
if plan_only:
|
||||
print("\nTryb plan-only: zmiany nie zostaly wdrozone.")
|
||||
if show_navigation:
|
||||
print_next_navigation(client_config.domain)
|
||||
return
|
||||
|
||||
print("\nBrak zmian do wdrozenia. To zadanie tworzy plan audytu podstawowych ustawien.")
|
||||
if show_navigation:
|
||||
print_next_navigation(client_config.domain)
|
||||
71
clients/innsi.pl/changes/2026-05-15.md
Normal file
71
clients/innsi.pl/changes/2026-05-15.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# Zmiany 2026-05-15
|
||||
|
||||
## 23:00 - Synchronizacja kampanii PLA_CL1
|
||||
|
||||
| klient | kampania | czynnosc | grupa reklam | produkt |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| innsi.pl | [PLA_CL1] aurumaris | utworzono grupe reklam | Kojący tonik do twarzy Neuropeptide Tonic 200 ml Aurumaris Professional | 3576 |
|
||||
| innsi.pl | [PLA_CL1] aurumaris | utworzono grupe reklam | Delikatna pianka do twarzy Neuropeptide Cleansing Foam 200ml Aurumaris Professional | 3577 |
|
||||
| innsi.pl | [PLA_CL1] aurumaris | utworzono grupe reklam | Kremowa maska do twarzy 5D Skin Filler Mask 200ml Aurumaris Professional | 3578 |
|
||||
| innsi.pl | [PLA_CL1] aurumaris | utworzono grupe reklam | Peeling do twarzy Stem Cell Skin Peeling 200ml Aurumaris Professional | 3580 |
|
||||
| innsi.pl | [PLA_CL1] aurumaris | utworzono grupe reklam | Rozświetlająca maska do twarzy Super Brightening Mask 100ml Aurumaris Professional | 3581 |
|
||||
| innsi.pl | [PLA_CL1] aurumaris | utworzono grupe reklam | Aurumaris Professional Total Remake Smart Serum z mikroigłami — regenerujące serum do twarzy 30 ml | 3582 |
|
||||
| innsi.pl | [PLA_CL1] aurumaris | utworzono grupe reklam | Krem przeciwzmarszczkowy Tripeptide Skin DNA Rejuvenation 50ml Aurumaris Professional | 3584 |
|
||||
| innsi.pl | [PLA_CL1] aurumaris | utworzono grupe reklam | Krem do pielęgnacji cery twarzy Ultra Hydration Structurizing Cream 50ml Aurumaris Professional | 3586 |
|
||||
| innsi.pl | [PLA_CL1] mina_ibrow | utworzono grupe reklam | Hybrydowa farbka do brwi i rzęs Black 14ml MINA IBROW | 3377 |
|
||||
| innsi.pl | [PLA_CL1] mina_ibrow | utworzono grupe reklam | Hybrydowa farba do brwi i rzęs Dark Brown 14ml MINA IBROW farbka henna | 3378 |
|
||||
| innsi.pl | [PLA_CL1] mina_ibrow | utworzono grupe reklam | Hybrydowa farbka do brwi i rzęs Medium Brown 14ml MINA IBROW | 3379 |
|
||||
| innsi.pl | [PLA_CL1] mina_ibrow | utworzono grupe reklam | Hybrydowa farbka do brwi i rzęs Light Brown 14ml MINA IBROW | 3380 |
|
||||
| innsi.pl | [PLA_CL1] mina_ibrow | utworzono grupe reklam | Hybrydowa farbka do brwi i rzęs Light Blonde 14ml MINA IBROW | 3381 |
|
||||
| innsi.pl | [PLA_CL1] mina_ibrow | utworzono grupe reklam | Hybrydowa farbka do brwi i rzęs Graphite 14ml MINA IBROW | 3382 |
|
||||
|
||||
## 23:07 - Optymalizacja tytulow produktow
|
||||
|
||||
| klient | produkt | pole | obecnie | docelowo |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| innsi.pl | 2720 | title | Maść z naturalnymi olejkami Regeneracja suchej skóry 70g Arkada | Arkada maść z naturalnymi olejkami do regeneracji suchej skóry 70 g |
|
||||
| innsi.pl | 1814 | title | Zestaw płynów HydraPure Oczyszczanie Wodorowe | HydraPure zestaw płynów do oczyszczania wodorowego |
|
||||
| innsi.pl | 2016 | title | Olejek do paznokci Mykobooster 10ml Podopharm | Podopharm Mykobooster olejek do paznokci 10 ml |
|
||||
| innsi.pl | 1413 | title | Henna żelowa Brown 15ml Refectocil | Refectocil henna żelowa Brown do brwi i rzęs 15 ml |
|
||||
| innsi.pl | 3133 | title | Nożyczki ES-03 NGHIA EXPORT Activ | NGHIA Export Activ ES-03 nożyczki kosmetyczne |
|
||||
| innsi.pl | 93 | title | Wonder Sculpt Paletka cieni Karaja nr 01 | Karaja Wonder Sculpt paletka cieni do powiek nr 01 |
|
||||
| innsi.pl | 2524 | title | Taśmy modelująco liftingujące beige Secret Lift IBRA Makeup | IBRA Makeup Secret Lift taśmy modelująco-liftingujące beige |
|
||||
| innsi.pl | 1554 | title | Henna Anna brązowa proszkowa Hornung 20 g | Hornung Anna henna proszkowa brązowa 20 g |
|
||||
| innsi.pl | 2026 | title | Krem do stóp w piance z mikrosrebrem i jaskółczym zielem 125ml Podopharm | Podopharm krem do stóp w piance z mikrosrebrem i jaskółczym zielem 125 ml |
|
||||
| innsi.pl | 3560 | title | Pre-Depilatory Gel żel przed depilacją 200ml Starpil | Starpil Pre-Depilatory Gel żel przed depilacją 200 ml |
|
||||
|
||||
## 23:10 - Optymalizacja kategorii Google
|
||||
|
||||
| klient | produkt | pole | obecnie | docelowo |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| innsi.pl | 2720 | google_product_category | | Health & Beauty > Personal Care > Cosmetics > Skin Care > Lotion & Moisturizer |
|
||||
| innsi.pl | 1814 | google_product_category | | Health & Beauty > Personal Care > Cosmetics > Skin Care |
|
||||
| innsi.pl | 2016 | google_product_category | | Health & Beauty > Personal Care > Cosmetics > Nail Care |
|
||||
| innsi.pl | 1413 | google_product_category | | Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup |
|
||||
| innsi.pl | 3133 | google_product_category | | Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools |
|
||||
| innsi.pl | 93 | google_product_category | | Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup |
|
||||
| innsi.pl | 2524 | google_product_category | | Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools |
|
||||
| innsi.pl | 1554 | google_product_category | | Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup |
|
||||
| innsi.pl | 2026 | google_product_category | | Health & Beauty > Personal Care > Cosmetics > Skin Care > Lotion & Moisturizer |
|
||||
| innsi.pl | 3560 | google_product_category | | Health & Beauty > Personal Care > Cosmetics > Skin Care |
|
||||
|
||||
## 23:12 - Uzupelnienie unit pricing
|
||||
|
||||
| klient | produkt | pole | obecnie | docelowo |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| innsi.pl | 3582 | unit_pricing | | 30 ml / 100 ml |
|
||||
| innsi.pl | 3622 | unit_pricing | | 8 ml / 100 ml |
|
||||
| innsi.pl | 2721 | unit_pricing | | 11 ml / 100 ml |
|
||||
| innsi.pl | 2018 | unit_pricing | | 20 ml / 100 ml |
|
||||
| innsi.pl | 3378 | unit_pricing | | 14 ml / 100 ml |
|
||||
| innsi.pl | 3623 | unit_pricing | | 15 ml / 100 ml |
|
||||
| innsi.pl | 1883 | unit_pricing | | 500 ml / 100 ml |
|
||||
| innsi.pl | 2720 | unit_pricing | | 70 g / 100 g |
|
||||
|
||||
## 23:15 - Sprawdzenie wykorzystania budzetu
|
||||
|
||||
| klient | kampania | czynnosc | grupa reklam | produkt |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| innsi.pl | [PLA_CL1] gen_factor | Zmien budzet dzienny | | 30.00 PLN -> 39.00 PLN |
|
||||
| innsi.pl | [PLA_CL1] podopharm | Zmien budzet dzienny | | 30.00 PLN -> 39.00 PLN |
|
||||
|
||||
51
clients/innsi.pl/data/merchant_produkty_adspro.csv
Normal file
51
clients/innsi.pl/data/merchant_produkty_adspro.csv
Normal file
@@ -0,0 +1,51 @@
|
||||
id,offer_id,title,availability,channel,content_language,target_country,feed_label,brand,google_product_category,custom_label_0,custom_label_1,custom_label_2,custom_label_3,custom_label_4,link
|
||||
,3576,Kojący tonik do twarzy Neuropeptide Tonic 200 ml Aurumaris Professional,,,,,,,,,aurumaris,,,,
|
||||
,3577,Delikatna pianka do twarzy Neuropeptide Cleansing Foam 200ml Aurumaris Professional,,,,,,,,,aurumaris,,,,
|
||||
,3578,Kremowa maska do twarzy 5D Skin Filler Mask 200ml Aurumaris Professional,,,,,,,,,aurumaris,,,,
|
||||
,3580,Peeling do twarzy Stem Cell Skin Peeling 200ml Aurumaris Professional,,,,,,,,,aurumaris,,,,
|
||||
,3581,Rozświetlająca maska do twarzy Super Brightening Mask 100ml Aurumaris Professional,,,,,,,,,aurumaris,,,,
|
||||
,3582,Aurumaris Professional Total Remake Smart Serum z mikroigłami — regenerujące serum do twarzy 30 ml,,,,,,,2958,,aurumaris,,,,
|
||||
,3584,Krem przeciwzmarszczkowy Tripeptide Skin DNA Rejuvenation 50ml Aurumaris Professional,,,,,,,,,aurumaris,,,,
|
||||
,3586,Krem do pielęgnacji cery twarzy Ultra Hydration Structurizing Cream 50ml Aurumaris Professional,,,,,,,,,aurumaris,,,,
|
||||
,2660,Gen Factor Green krem regenerujący do twarzy z colostrum 75ml,,,,,,,2592,,gen_factor,,,,
|
||||
,2950,Gen Factor Red krem regenerujący do twarzy z colostrum i kawiorem 75ml,,,,,,,2592,,gen_factor,,,,
|
||||
,3008,Gen Factor Blue — przeciwzapalny krem do skóry problematycznej z colostrum | Personal Care,,,,,,,481,,gen_factor,,,,
|
||||
,3120,Gen Factor Cinnamic krem do twarzy na przebarwienia i zaczerwienienia z kwasem cynamonowym,,,,,,,2958,,gen_factor,,,,
|
||||
,3260,Gen Factor Violet krem przeciwzmarszczkowy do twarzy z fitoestrogenami 75ml,,,,,,,2592,,gen_factor,,,,
|
||||
,3261,Neutralizator do kwasów pH Stoperr Gen Factor,,,,,,,,,gen_factor,,,,
|
||||
,3262,Odtłuszczacz do skóry pH Starter Gen Factor,,,,,,,,,gen_factor,,,,
|
||||
,3393,Gen Factor Orange krem przeciwzmarszczkowy do twarzy z bakuchiolem 75ml,,,,,,,2592,,gen_factor,,,,
|
||||
,3514,Gen Factor Yellow — krem na przebarwienia i nierówny koloryt skóry | Personal Care z HGF,,,,,,,2958,,gen_factor,,,,
|
||||
,3377,Hybrydowa farbka do brwi i rzęs Black 14ml MINA IBROW,,,,,,,,,mina_ibrow,,,,
|
||||
,3378,Hybrydowa farba do brwi i rzęs Dark Brown 14ml MINA IBROW farbka henna,,,,,,,Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup > Eyebrow Enhancers,,mina_ibrow,,,,
|
||||
,3379,Hybrydowa farbka do brwi i rzęs Medium Brown 14ml MINA IBROW,,,,,,,,,mina_ibrow,,,,
|
||||
,3380,Hybrydowa farbka do brwi i rzęs Light Brown 14ml MINA IBROW,,,,,,,,,mina_ibrow,,,,
|
||||
,3381,Hybrydowa farbka do brwi i rzęs Light Blonde 14ml MINA IBROW,,,,,,,,,mina_ibrow,,,,
|
||||
,3382,Hybrydowa farbka do brwi i rzęs Graphite 14ml MINA IBROW,,,,,,,,,mina_ibrow,,,,
|
||||
,2014,Zmiękczające perełki do kąpieli dłoni i stóp z mocznikiem i witaminą E 400g Podopharm,,,,,,,,,podopharm,,,,
|
||||
,2015,Podopharm krem-maska do dłoni z adaptogenami i colostrum regenerująca 75ml,,,,,,,2592,,podopharm,,,,
|
||||
,2016,Olejek do paznokci Mykobooster 10ml Podopharm,,,,,,,,,podopharm,,,,
|
||||
,2017,Fluid na wrastające paznokcie 10ml Podopharm,,,,,,,,,podopharm,,,,
|
||||
,2018,Onygen Podopharm krem na onycholizę do paznokci z colostrum bovinum 20ml,,,,,,,478,,podopharm,,,,
|
||||
,2019,Mykostatyczna tinktura do paznokci 10ml Podopharm,,,,,,,,,podopharm,,,,
|
||||
,2020,Podopharm krem do stóp z lipidami nawilżający do suchej skóry 100ml,,,,,,,2592,,podopharm,,,,
|
||||
,2021,Intensywnie wzmacniające serum do paznokci 10ml Podopharm,,,,,,,,,podopharm,,,,
|
||||
,2022,Podopharm maść z colostrum regenerująca kojąca 60ml do stóp łokci kolan,,,,,,,Health & Beauty > Personal Care > Cosmetics > Bath & Body > Foot Care,,podopharm,,,,
|
||||
,2023,Podopharm maść na popękane pięty z mocznikiem 25% do zrogowaciałej skóry stóp 100ml,,,,,,,2592,,podopharm,,,,
|
||||
,2024,Krem do stóp z colostrum 150ml Podopharm,,,,,,,,,podopharm,,,,
|
||||
,2025,Krem do stóp z colostrum 75ml Podopharm,,,,,,,,,podopharm,,,,
|
||||
,2026,Krem do stóp w piance z mikrosrebrem i jaskółczym zielem 125ml Podopharm,,,,,,,,,podopharm,,,,
|
||||
,2027,Podopharm krem pianka do stóp z mocznikiem 15% na zrogowacenia pięty 125ml,,,,,,,Health & Beauty > Personal Care > Cosmetics > Bath & Body > Foot Care,,podopharm,,,,
|
||||
,2029,Maść do stóp z mocznikiem 10% 75ml Podopharm,,,,,,,,,podopharm,,,,
|
||||
,2031,Podopharm maska do dłoni i stóp z mikrosrebrem antybakteryjna 75ml,,,,,,,2592,,podopharm,,,,
|
||||
,2032,Podopharm specjalistyczny krem do suchej skóry nawilżający z lipidami 150ml,,,,,,,2592,,podopharm,,,,
|
||||
,2033,Regenerujące serum do ciała 200ml Podopharm,,,,,,,,,podopharm,,,,
|
||||
,2034,Podopharm serum do rąk i paznokci w piance wzmacniające 125ml,,,,,,,478,,podopharm,,,,
|
||||
,2035,Podopharm krem barierowy do twarzy z colostrum 50ml skóra sucha atopowa,,,,,,,Health & Beauty > Personal Care > Cosmetics > Skin Care > Face Moisturizers,,podopharm,,,,
|
||||
,2192,Intensywnie wzmacniający lakier do paznokci 9ml Podopharm,,,,,,,,,podopharm,,,,
|
||||
,2194,"Odżywcze serum do ust z colostrum 4,9g Podopharm",,,,,,,,,podopharm,,,,
|
||||
,2521,Podopharm VERRU IMMUNO pasta do pielęgnacji skóry z colostrum i tują 12ml,,,,,,,567,,podopharm,,,,
|
||||
,2681,Peeling solno-cukrowy Luxury SPA do dłoni i stóp z masłem shea i goji 300g Podopharm,,,,,,,,,podopharm,,,,
|
||||
,2749,Spray do stóp i dłoni Mykobooster 100ml Podopharm,,,,,,,,,podopharm,,,,
|
||||
,3544,Podopharm OLEUM HERBAL olejek podologiczny aktywny do pielęgnacji stóp 10ml,,,,,,,478,,podopharm,,,,
|
||||
,3545,Emolientowy balsam w sztyfcie SOS SKINFLEX 50ml Podopharm,,,,,,,,,podopharm,,,,
|
||||
|
@@ -4,3 +4,19 @@
|
||||
{"timestamp": "2026-05-15T10:10:19+02:00", "task": "Sprawdzenie pomiaru konwersji", "status": "plan przygotowany", "campaign": "", "summary": {"conversion_actions": 8, "findings": 10, "knowledge_rules": 0, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T10:22:08+02:00", "task": "Sprawdzenie pomiaru konwersji", "status": "plan przygotowany", "campaign": "", "summary": {"conversion_actions": 8, "findings": 10, "knowledge_rules": 0, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T10:34:58+02:00", "task": "Sprawdzenie pomiaru konwersji", "status": "plan przygotowany", "campaign": "", "summary": {"conversion_actions": 8, "findings": 10, "knowledge_rules": 0, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T22:56:24+02:00", "task": "Sprawdzenie ustawien", "status": "plan przygotowany", "campaign": "[PLA_CL1] gen_factor, [PLA_CL1] podopharm, [PLA_CL1] aurumaris, [PLA_CL1] mina_ibrow", "summary": {"campaigns": 4, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T22:57:01+02:00", "task": "Sprawdzenie podstawowych ustawien Search", "status": "plan przygotowany", "campaign": "[Search] brand, [DSA] produkty", "summary": {"campaigns": 2, "knowledge_rules": 0, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T22:57:44+02:00", "task": "Sprawdzenie pomiaru konwersji", "status": "plan przygotowany", "campaign": "", "summary": {"conversion_actions": 8, "findings": 10, "knowledge_rules": 0, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T22:58:58+02:00", "task": "Synchronizacja kampanii PLA_CL1", "status": "plan przygotowany", "campaign": "[PLA_CL1] gen_factor, [PLA_CL1] podopharm, [PLA_CL1] aurumaris, [PLA_CL1] mina_ibrow", "created_at": "2026-05-15T22:58:52+02:00", "summary": {"campaigns": 4, "products": 50, "create": 14, "enable": 0, "pause": 0, "rename": 0}}
|
||||
{"timestamp": "2026-05-15T23:00:11+02:00", "task": "Synchronizacja kampanii PLA_CL1", "status": "wdrozono zmiany", "campaign": "[PLA_CL1] gen_factor, [PLA_CL1] podopharm, [PLA_CL1] aurumaris, [PLA_CL1] mina_ibrow", "summary": {"created": 14, "enabled": 0, "create_errors": 0, "paused": 0, "renamed": 0}}
|
||||
{"timestamp": "2026-05-15T23:03:03+02:00", "task": "Automatyzacja tROAS per grupa reklam PLA", "status": "plan przygotowany", "campaign": "", "summary": {"ad_groups": 50, "target_changes": 0, "rollback_changes": 0, "watchlist": 49, "knowledge_rules": 1}}
|
||||
{"timestamp": "2026-05-15T23:04:01+02:00", "task": "Optymalizacja tytulow produktow", "status": "plan przygotowany", "product": "2720, 1814, 2016, 1413, 3133, 93, 2524, 1554, 2026, 3560", "summary": {"products": 10, "title_changes": 10, "category_changes": 0, "unit_pricing_changes": 0}}
|
||||
{"timestamp": "2026-05-15T23:07:03+02:00", "task": "Optymalizacja tytulow produktow", "status": "wdrozono zmiany", "product": "2720, 1814, 2016, 1413, 3133, 93, 2524, 1554, 2026, 3560", "summary": {"applied": 10, "skipped": 0}}
|
||||
{"timestamp": "2026-05-15T23:07:26+02:00", "task": "Optymalizacja kategorii Google", "status": "plan przygotowany", "product": "2720, 1814, 2016, 1413, 3133, 93, 2524, 1554, 2026, 3560", "summary": {"products": 10, "title_changes": 0, "category_changes": 10, "unit_pricing_changes": 0}}
|
||||
{"timestamp": "2026-05-15T23:10:21+02:00", "task": "Optymalizacja kategorii Google", "status": "wdrozono zmiany", "product": "2720, 1814, 2016, 1413, 3133, 93, 2524, 1554, 2026, 3560", "summary": {"applied": 10, "skipped": 0}}
|
||||
{"timestamp": "2026-05-15T23:11:34+02:00", "task": "Uzupelnienie unit pricing", "status": "plan przygotowany", "product": "3582, 3622, 2721, 2018, 3378, 3623, 3393, 3594, 1883, 2720", "summary": {"products": 10, "title_changes": 0, "category_changes": 0, "unit_pricing_changes": 8}}
|
||||
{"timestamp": "2026-05-15T23:12:19+02:00", "task": "Uzupelnienie unit pricing", "status": "wdrozono zmiany", "product": "3582, 3622, 2721, 2018, 3378, 3623, 1883, 2720", "summary": {"applied": 8, "skipped": 0}}
|
||||
{"timestamp": "2026-05-15T23:13:26+02:00", "task": "Sprawdzenie wykorzystania budzetu", "status": "plan przygotowany", "campaign": "[PLA_CL1] gen_factor, [PLA_CL1] podopharm, [PMax] products (catch-all), [Search] brand, [PLA_CL1] aurumaris, [PLA_CL1] mina_ibrow", "summary": {"campaigns": 6, "knowledge_rules": 1, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T23:15:37+02:00", "task": "Sprawdzenie wykorzystania budzetu", "status": "wdrozono zmiany budzetu", "campaign": "[PLA_CL1] gen_factor, [PLA_CL1] podopharm", "budget_changes": [{"campaign_id": "23796378384", "campaign_name": "[PLA_CL1] gen_factor", "budget_id": "15547616548", "target_daily_budget_micros": 39000000}, {"campaign_id": "23796424236", "campaign_name": "[PLA_CL1] podopharm", "budget_id": "15547649923", "target_daily_budget_micros": 39000000}], "summary": {"campaigns": 6, "knowledge_rules": 1, "budget_changes": 2, "changed": 2, "errors": 0}}
|
||||
{"timestamp": "2026-05-15T23:16:10+02:00", "task": "Sprawdzenie strategii stawek", "status": "plan przygotowany", "campaign": "[PLA_CL1] gen_factor, [PLA_CL1] podopharm, [PLA_CL1] aurumaris, [PLA_CL1] mina_ibrow, [Search] brand, [PMax] products (catch-all)", "summary": {"campaigns": 6, "knowledge_rules": 3, "target_changes": 0}}
|
||||
{"timestamp": "2026-05-15T23:16:49+02:00", "task": "Sprawdzenie anomalii konta", "status": "plan przygotowany", "campaign": "[Search] brand, [PLA_CL1] gen_factor, [PLA_CL1] gen_factor, [PLA_CL1] gen_factor, [PLA_CL1] podopharm", "summary": {"campaigns": 4, "anomalies": 5, "knowledge_rules": 0, "changes": 0}}
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"created_at": "2026-05-15T22:56:24+02:00",
|
||||
"client": "innsi.pl",
|
||||
"task": "check_pla_settings",
|
||||
"campaigns": [
|
||||
{
|
||||
"campaign_id": "23796378384",
|
||||
"campaign_name": "[PLA_CL1] gen_factor",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796424236",
|
||||
"campaign_name": "[PLA_CL1] podopharm",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796468366",
|
||||
"campaign_name": "[PLA_CL1] aurumaris",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23847226734",
|
||||
"campaign_name": "[PLA_CL1] mina_ibrow",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
}
|
||||
],
|
||||
"changes": [],
|
||||
"skipped_rules": [],
|
||||
"warnings": []
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
# Plan: Sprawdzenie ustawien kampanii PLA
|
||||
|
||||
Klient: innsi.pl
|
||||
Utworzono: 2026-05-15T22:56:24+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Kampanie PLA: 4
|
||||
- Korekty do wdrozenia: 0
|
||||
|
||||
## Kampanie PLA
|
||||
|
||||
| Kampania | Status | Lokalizacje | Priorytet |
|
||||
| --- | --- | --- | --- |
|
||||
| [PLA_CL1] gen_factor | ENABLED | Obecność | Wysoki |
|
||||
| [PLA_CL1] podopharm | ENABLED | Obecność | Wysoki |
|
||||
| [PLA_CL1] aurumaris | ENABLED | Obecność | Wysoki |
|
||||
| [PLA_CL1] mina_ibrow | ENABLED | Obecność | Wysoki |
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"created_at": "2026-05-15T22:57:01+02:00",
|
||||
"client": "innsi.pl",
|
||||
"task": "check_search_basic_settings",
|
||||
"task_name": "Sprawdzenie podstawowych ustawien Search",
|
||||
"campaigns": [
|
||||
{
|
||||
"campaign_id": "9941029102",
|
||||
"campaign_name": "[Search] brand",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecnosc",
|
||||
"target_google_search": true,
|
||||
"target_search_network": false,
|
||||
"target_partner_search_network": false,
|
||||
"target_content_network": false
|
||||
},
|
||||
{
|
||||
"campaign_id": "21805796156",
|
||||
"campaign_name": "[DSA] produkty",
|
||||
"status": "PAUSED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecnosc",
|
||||
"target_google_search": true,
|
||||
"target_search_network": false,
|
||||
"target_partner_search_network": false,
|
||||
"target_content_network": false
|
||||
}
|
||||
],
|
||||
"changes": [],
|
||||
"scope": [
|
||||
{
|
||||
"area": "Lokalizacje",
|
||||
"check": "Wymagaj kierowania lokalizacji na Obecnosc; inne tryby przygotuj jako korekte do wdrozenia."
|
||||
},
|
||||
{
|
||||
"area": "Sieci",
|
||||
"check": "Wymagaj wylaczonej sieci reklamowej i wylaczonych partnerow wyszukiwania w kampaniach Search."
|
||||
},
|
||||
{
|
||||
"area": "Jezyki",
|
||||
"check": "Sprawdz, czy ustawienia jezykowe sa zgodne z rynkiem klienta."
|
||||
},
|
||||
{
|
||||
"area": "Harmonogram reklam",
|
||||
"check": "Sprawdz, czy harmonogram jest swiadomie ustawiony albo czy kampania dziala caly czas."
|
||||
}
|
||||
],
|
||||
"out_of_scope": [
|
||||
"budzety i wykorzystanie budzetu",
|
||||
"strategie stawek i uczenie strategii",
|
||||
"zapytania uzytkownikow oraz wykluczenia",
|
||||
"reklamy RSA i zasoby reklam",
|
||||
"wyniki kampanii oraz rentownosc"
|
||||
],
|
||||
"knowledge_rules": [],
|
||||
"warnings": [
|
||||
"Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. Uzyj `python gads.py wiedza przypisz --restart`, gdy bedziemy wybierac reguly dla Search."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
# Plan: Sprawdzenie podstawowych ustawien Search
|
||||
|
||||
Klient: innsi.pl
|
||||
Utworzono: 2026-05-15T22:57:01+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Kampanie Search: 2
|
||||
- Reguly wiedzy przypisane do zadania: 0
|
||||
- Zmiany do wdrozenia: 0
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. Uzyj `python gads.py wiedza przypisz --restart`, gdy bedziemy wybierac reguly dla Search.
|
||||
|
||||
## Zakres zadania
|
||||
|
||||
| Obszar | Co sprawdzic |
|
||||
| --- | --- |
|
||||
| Lokalizacje | Wymagaj kierowania lokalizacji na Obecnosc; inne tryby przygotuj jako korekte do wdrozenia. |
|
||||
| Sieci | Wymagaj wylaczonej sieci reklamowej i wylaczonych partnerow wyszukiwania w kampaniach Search. |
|
||||
| Jezyki | Sprawdz, czy ustawienia jezykowe sa zgodne z rynkiem klienta. |
|
||||
| Harmonogram reklam | Sprawdz, czy harmonogram jest swiadomie ustawiony albo czy kampania dziala caly czas. |
|
||||
|
||||
## Poza zakresem tego zadania
|
||||
|
||||
- budzety i wykorzystanie budzetu
|
||||
- strategie stawek i uczenie strategii
|
||||
- zapytania uzytkownikow oraz wykluczenia
|
||||
- reklamy RSA i zasoby reklam
|
||||
- wyniki kampanii oraz rentownosc
|
||||
|
||||
## Kampanie Search
|
||||
|
||||
| Kampania | Status | Lokalizacje | Google Search | Search Network | Partnerzy | Siec reklamowa |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| [Search] brand | ENABLED | Obecnosc | TAK | NIE | NIE | NIE |
|
||||
| [DSA] produkty | PAUSED | Obecnosc | TAK | NIE | NIE | NIE |
|
||||
@@ -0,0 +1,346 @@
|
||||
{
|
||||
"created_at": "2026-05-15T22:57:44+02:00",
|
||||
"client": "innsi.pl",
|
||||
"task": "check_conversion_tracking",
|
||||
"task_name": "Sprawdzenie pomiaru konwersji",
|
||||
"currency_code": "PLN",
|
||||
"conversion_actions": [
|
||||
{
|
||||
"conversion_action_id": "6589806390",
|
||||
"resource_name": "customers/1333436346/conversionActions/6589806390",
|
||||
"name": "G4 - INNSI (web) realizacja_transakcji",
|
||||
"status": "ENABLED",
|
||||
"type": "GOOGLE_ANALYTICS_4_CUSTOM",
|
||||
"category": "BEGIN_CHECKOUT",
|
||||
"primary_for_goal": false,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": false,
|
||||
"click_window_days": 90,
|
||||
"view_window_days": 1,
|
||||
"attribution_model": "UNKNOWN",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 0.0,
|
||||
"all_conversion_value_30d": 0.0,
|
||||
"is_collecting_data": false,
|
||||
"problem_flags": [
|
||||
"brak danych 30 dni"
|
||||
],
|
||||
"recommendation": "Sprawdz, czy akcja nadal powinna byc aktywna i czy tag uruchamia sie na wlasciwym zdarzeniu."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "6702700055",
|
||||
"resource_name": "customers/1333436346/conversionActions/6702700055",
|
||||
"name": "Clicks to call",
|
||||
"status": "ENABLED",
|
||||
"type": "GOOGLE_HOSTED",
|
||||
"category": "CONTACT",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 7,
|
||||
"attribution_model": "GOOGLE_ADS_LAST_CLICK",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 0.0,
|
||||
"all_conversion_value_30d": 0.0,
|
||||
"is_collecting_data": false,
|
||||
"problem_flags": [
|
||||
"brak danych 30 dni",
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "6721285127",
|
||||
"resource_name": "customers/1333436346/conversionActions/6721285127",
|
||||
"name": "Local actions - Other engagements",
|
||||
"status": "ENABLED",
|
||||
"type": "GOOGLE_HOSTED",
|
||||
"category": "ENGAGEMENT",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 7,
|
||||
"attribution_model": "GOOGLE_ADS_LAST_CLICK",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 0.0,
|
||||
"all_conversion_value_30d": 0.0,
|
||||
"is_collecting_data": false,
|
||||
"problem_flags": [
|
||||
"brak danych 30 dni",
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "6699486379",
|
||||
"resource_name": "customers/1333436346/conversionActions/6699486379",
|
||||
"name": "Local actions - Directions",
|
||||
"status": "ENABLED",
|
||||
"type": "GOOGLE_HOSTED",
|
||||
"category": "GET_DIRECTIONS",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 7,
|
||||
"attribution_model": "GOOGLE_ADS_LAST_CLICK",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 0.0,
|
||||
"all_conversion_value_30d": 0.0,
|
||||
"is_collecting_data": false,
|
||||
"problem_flags": [
|
||||
"brak danych 30 dni",
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "6713429278",
|
||||
"resource_name": "customers/1333436346/conversionActions/6713429278",
|
||||
"name": "Local actions - Website visits",
|
||||
"status": "ENABLED",
|
||||
"type": "GOOGLE_HOSTED",
|
||||
"category": "PAGE_VIEW",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 7,
|
||||
"attribution_model": "GOOGLE_ADS_LAST_CLICK",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 0.0,
|
||||
"all_conversion_value_30d": 0.0,
|
||||
"is_collecting_data": false,
|
||||
"problem_flags": [
|
||||
"brak danych 30 dni",
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "477116571",
|
||||
"resource_name": "customers/1333436346/conversionActions/477116571",
|
||||
"name": "GA4 - purchase",
|
||||
"status": "ENABLED",
|
||||
"type": "GOOGLE_ANALYTICS_4_PURCHASE",
|
||||
"category": "PURCHASE",
|
||||
"primary_for_goal": false,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": false,
|
||||
"click_window_days": 90,
|
||||
"view_window_days": 1,
|
||||
"attribution_model": "UNKNOWN",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 272.28,
|
||||
"all_conversion_value_30d": 16217.25,
|
||||
"is_collecting_data": true,
|
||||
"problem_flags": [
|
||||
"ok"
|
||||
],
|
||||
"recommendation": "Bez pilnej zmiany; zostaw jako kontekst albo konwersje dodatkowa."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "6645666216",
|
||||
"resource_name": "customers/1333436346/conversionActions/6645666216",
|
||||
"name": "GADS - Purchase",
|
||||
"status": "ENABLED",
|
||||
"type": "WEBPAGE",
|
||||
"category": "PURCHASE",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": true,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": false,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 1,
|
||||
"attribution_model": "GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN",
|
||||
"conversions_30d": 107.2,
|
||||
"conversion_value_30d": 19444.92,
|
||||
"all_conversions_30d": 107.2,
|
||||
"all_conversion_value_30d": 19444.92,
|
||||
"is_collecting_data": true,
|
||||
"problem_flags": [
|
||||
"ok"
|
||||
],
|
||||
"recommendation": "Dane zakupowe wygladaja na podstawowy sygnal optymalizacji; kontroluj wartosc i duplikacje."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "6589806387",
|
||||
"resource_name": "customers/1333436346/conversionActions/6589806387",
|
||||
"name": "innsi.pl - GA4 (web) dodanie_do_koszyka",
|
||||
"status": "HIDDEN",
|
||||
"type": "GOOGLE_ANALYTICS_4_CUSTOM",
|
||||
"category": "DEFAULT",
|
||||
"primary_for_goal": false,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": false,
|
||||
"click_window_days": 90,
|
||||
"view_window_days": 1,
|
||||
"attribution_model": "UNKNOWN",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 0.0,
|
||||
"all_conversion_value_30d": 0.0,
|
||||
"is_collecting_data": false,
|
||||
"problem_flags": [
|
||||
"akcja nieaktywna"
|
||||
],
|
||||
"recommendation": "Zostaw nieaktywna, jesli jest historyczna; w przeciwnym razie uporzadkuj konfiguracje konwersji."
|
||||
}
|
||||
],
|
||||
"action_summary": [
|
||||
{
|
||||
"metric": "akcje konwersji",
|
||||
"count": 8
|
||||
},
|
||||
{
|
||||
"metric": "aktywne",
|
||||
"count": 7
|
||||
},
|
||||
{
|
||||
"metric": "podstawowe",
|
||||
"count": 5
|
||||
},
|
||||
{
|
||||
"metric": "zbieraja dane 30 dni",
|
||||
"count": 2
|
||||
},
|
||||
{
|
||||
"metric": "z problemami",
|
||||
"count": 6
|
||||
},
|
||||
{
|
||||
"metric": "podstawowe z danymi",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"findings": [
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "CONTACT",
|
||||
"item": "Clicks to call",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "ENGAGEMENT",
|
||||
"item": "Local actions - Other engagements",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "GET_DIRECTIONS",
|
||||
"item": "Local actions - Directions",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "PAGE_VIEW",
|
||||
"item": "Local actions - Website visits",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "srednie",
|
||||
"area": "BEGIN_CHECKOUT",
|
||||
"item": "G4 - INNSI (web) realizacja_transakcji",
|
||||
"problem": "brak danych 30 dni",
|
||||
"recommendation": "Sprawdz, czy akcja nadal powinna byc aktywna i czy tag uruchamia sie na wlasciwym zdarzeniu."
|
||||
},
|
||||
{
|
||||
"severity": "srednie",
|
||||
"area": "CONTACT",
|
||||
"item": "Clicks to call",
|
||||
"problem": "brak danych 30 dni",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "srednie",
|
||||
"area": "DEFAULT",
|
||||
"item": "innsi.pl - GA4 (web) dodanie_do_koszyka",
|
||||
"problem": "akcja nieaktywna",
|
||||
"recommendation": "Zostaw nieaktywna, jesli jest historyczna; w przeciwnym razie uporzadkuj konfiguracje konwersji."
|
||||
},
|
||||
{
|
||||
"severity": "srednie",
|
||||
"area": "ENGAGEMENT",
|
||||
"item": "Local actions - Other engagements",
|
||||
"problem": "brak danych 30 dni",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "srednie",
|
||||
"area": "GET_DIRECTIONS",
|
||||
"item": "Local actions - Directions",
|
||||
"problem": "brak danych 30 dni",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "srednie",
|
||||
"area": "PAGE_VIEW",
|
||||
"item": "Local actions - Website visits",
|
||||
"problem": "brak danych 30 dni",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
}
|
||||
],
|
||||
"changes": [],
|
||||
"scope": [
|
||||
{
|
||||
"area": "Akcje konwersji",
|
||||
"check": "Pobierz akcje konwersji z Google Ads, ich status, typ, kategorie i ustawienie podstawowa/dodatkowa."
|
||||
},
|
||||
{
|
||||
"area": "Dane 30 dni",
|
||||
"check": "Sprawdz, czy akcje konwersji zbieraja konwersje, wartosc konwersji i wszystkie konwersje z ostatnich 30 dni."
|
||||
},
|
||||
{
|
||||
"area": "Wartosc konwersji",
|
||||
"check": "Oznacz konwersje zakupowe i e-commerce bez wartosci albo bez waluty jako problem do poprawy pomiaru."
|
||||
},
|
||||
{
|
||||
"area": "Jakosc optymalizacji",
|
||||
"check": "Oznacz brak aktywnych konwersji podstawowych, brak danych 30 dni oraz podejrzana duplikacje podobnych akcji."
|
||||
},
|
||||
{
|
||||
"area": "Rekomendacje",
|
||||
"check": "Przygotuj rekomendacje decyzyjne do konfiguracji pomiaru; skrypt nie wdraza zmian automatycznie."
|
||||
}
|
||||
],
|
||||
"knowledge_rules": [],
|
||||
"warnings": [
|
||||
"Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. Reguly dotyczace pomiaru konwersji warto dopisac po pierwszych audytach."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
# Plan: Sprawdzenie pomiaru konwersji
|
||||
|
||||
Klient: innsi.pl
|
||||
Utworzono: 2026-05-15T22:57:44+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Akcje konwersji: 8
|
||||
- Problemy / rekomendacje: 10
|
||||
- Reguly wiedzy przypisane do zadania: 0
|
||||
- Zmiany do wdrozenia: 0
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. Reguly dotyczace pomiaru konwersji warto dopisac po pierwszych audytach.
|
||||
|
||||
## Zakres audytu
|
||||
|
||||
| Obszar | Co sprawdzic |
|
||||
| --- | --- |
|
||||
| Akcje konwersji | Pobierz akcje konwersji z Google Ads, ich status, typ, kategorie i ustawienie podstawowa/dodatkowa. |
|
||||
| Dane 30 dni | Sprawdz, czy akcje konwersji zbieraja konwersje, wartosc konwersji i wszystkie konwersje z ostatnich 30 dni. |
|
||||
| Wartosc konwersji | Oznacz konwersje zakupowe i e-commerce bez wartosci albo bez waluty jako problem do poprawy pomiaru. |
|
||||
| Jakosc optymalizacji | Oznacz brak aktywnych konwersji podstawowych, brak danych 30 dni oraz podejrzana duplikacje podobnych akcji. |
|
||||
| Rekomendacje | Przygotuj rekomendacje decyzyjne do konfiguracji pomiaru; skrypt nie wdraza zmian automatycznie. |
|
||||
|
||||
## Podsumowanie akcji
|
||||
|
||||
| Metryka | Liczba |
|
||||
| --- | --- |
|
||||
| akcje konwersji | 8 |
|
||||
| aktywne | 7 |
|
||||
| podstawowe | 5 |
|
||||
| zbieraja dane 30 dni | 2 |
|
||||
| z problemami | 6 |
|
||||
| podstawowe z danymi | 1 |
|
||||
|
||||
## Problemy i rekomendacje
|
||||
|
||||
| Waznosc | Obszar | Element | Problem | Rekomendacja |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| wysokie | CONTACT | Clicks to call | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| wysokie | ENGAGEMENT | Local actions - Other engagements | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| wysokie | GET_DIRECTIONS | Local actions - Directions | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| wysokie | PAGE_VIEW | Local actions - Website visits | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| srednie | BEGIN_CHECKOUT | G4 - INNSI (web) realizacja_transakcji | brak danych 30 dni | Sprawdz, czy akcja nadal powinna byc aktywna i czy tag uruchamia sie na wlasciwym zdarzeniu. |
|
||||
| srednie | CONTACT | Clicks to call | brak danych 30 dni | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| srednie | DEFAULT | innsi.pl - GA4 (web) dodanie_do_koszyka | akcja nieaktywna | Zostaw nieaktywna, jesli jest historyczna; w przeciwnym razie uporzadkuj konfiguracje konwersji. |
|
||||
| srednie | ENGAGEMENT | Local actions - Other engagements | brak danych 30 dni | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| srednie | GET_DIRECTIONS | Local actions - Directions | brak danych 30 dni | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| srednie | PAGE_VIEW | Local actions - Website visits | brak danych 30 dni | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
|
||||
## Akcje konwersji
|
||||
|
||||
| Nazwa | Status | Typ | Kategoria | Podstawowa | W konwersjach | Konw. 30d | Wartosc 30d | Wszystkie konw. 30d | Wartosc wszystkich 30d | Okno klik. | Okno view | Problemy |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| G4 - INNSI (web) realizacja_transakcji | ENABLED | GOOGLE_ANALYTICS_4_CUSTOM | BEGIN_CHECKOUT | NIE | NIE | 0.00 | 0.00 PLN | 0.00 | 0.00 PLN | 90 | 1 | brak danych 30 dni |
|
||||
| Clicks to call | ENABLED | GOOGLE_HOSTED | CONTACT | TAK | NIE | 0.00 | 0.00 PLN | 0.00 | 0.00 PLN | 30 | 7 | brak danych 30 dni, podstawowa bez konwersji |
|
||||
| Local actions - Other engagements | ENABLED | GOOGLE_HOSTED | ENGAGEMENT | TAK | NIE | 0.00 | 0.00 PLN | 0.00 | 0.00 PLN | 30 | 7 | brak danych 30 dni, podstawowa bez konwersji |
|
||||
| Local actions - Directions | ENABLED | GOOGLE_HOSTED | GET_DIRECTIONS | TAK | NIE | 0.00 | 0.00 PLN | 0.00 | 0.00 PLN | 30 | 7 | brak danych 30 dni, podstawowa bez konwersji |
|
||||
| Local actions - Website visits | ENABLED | GOOGLE_HOSTED | PAGE_VIEW | TAK | NIE | 0.00 | 0.00 PLN | 0.00 | 0.00 PLN | 30 | 7 | brak danych 30 dni, podstawowa bez konwersji |
|
||||
| GA4 - purchase | ENABLED | GOOGLE_ANALYTICS_4_PURCHASE | PURCHASE | NIE | NIE | 0.00 | 0.00 PLN | 272.28 | 16217.25 PLN | 90 | 1 | ok |
|
||||
| GADS - Purchase | ENABLED | WEBPAGE | PURCHASE | TAK | TAK | 107.20 | 19444.92 PLN | 107.20 | 19444.92 PLN | 30 | 1 | ok |
|
||||
| innsi.pl - GA4 (web) dodanie_do_koszyka | HIDDEN | GOOGLE_ANALYTICS_4_CUSTOM | DEFAULT | NIE | NIE | 0.00 | 0.00 PLN | 0.00 | 0.00 PLN | 90 | 1 | akcja nieaktywna |
|
||||
203
clients/innsi.pl/plans/2026-05-15_22-58-58_sync_pla_cl1.json
Normal file
203
clients/innsi.pl/plans/2026-05-15_22-58-58_sync_pla_cl1.json
Normal file
@@ -0,0 +1,203 @@
|
||||
{
|
||||
"created_at": "2026-05-15T22:58:58+02:00",
|
||||
"client": "innsi.pl",
|
||||
"products_count": 50,
|
||||
"task": "sync_pla_cl1",
|
||||
"campaigns": [
|
||||
{
|
||||
"id": "23796378384",
|
||||
"name": "[PLA_CL1] gen_factor",
|
||||
"status": "ENABLED",
|
||||
"allowed": [
|
||||
"gen_factor"
|
||||
],
|
||||
"variant": ""
|
||||
},
|
||||
{
|
||||
"id": "23796424236",
|
||||
"name": "[PLA_CL1] podopharm",
|
||||
"status": "ENABLED",
|
||||
"allowed": [
|
||||
"podopharm"
|
||||
],
|
||||
"variant": ""
|
||||
},
|
||||
{
|
||||
"id": "23796468366",
|
||||
"name": "[PLA_CL1] aurumaris",
|
||||
"status": "ENABLED",
|
||||
"allowed": [
|
||||
"aurumaris"
|
||||
],
|
||||
"variant": ""
|
||||
},
|
||||
{
|
||||
"id": "23847226734",
|
||||
"name": "[PLA_CL1] mina_ibrow",
|
||||
"status": "ENABLED",
|
||||
"allowed": [
|
||||
"mina_ibrow"
|
||||
],
|
||||
"variant": ""
|
||||
}
|
||||
],
|
||||
"groups_total": 58,
|
||||
"groups_with_product_id": 54,
|
||||
"create_plan": [
|
||||
{
|
||||
"campaign_id": "23796468366",
|
||||
"campaign_name": "[PLA_CL1] aurumaris",
|
||||
"ad_group_name": "Kojący tonik do twarzy Neuropeptide Tonic 200 ml Aurumaris Professional",
|
||||
"product_id": "3576",
|
||||
"reason": "brakuje aktywnej grupy reklam"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796468366",
|
||||
"campaign_name": "[PLA_CL1] aurumaris",
|
||||
"ad_group_name": "Delikatna pianka do twarzy Neuropeptide Cleansing Foam 200ml Aurumaris Professional",
|
||||
"product_id": "3577",
|
||||
"reason": "brakuje aktywnej grupy reklam"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796468366",
|
||||
"campaign_name": "[PLA_CL1] aurumaris",
|
||||
"ad_group_name": "Kremowa maska do twarzy 5D Skin Filler Mask 200ml Aurumaris Professional",
|
||||
"product_id": "3578",
|
||||
"reason": "brakuje aktywnej grupy reklam"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796468366",
|
||||
"campaign_name": "[PLA_CL1] aurumaris",
|
||||
"ad_group_name": "Peeling do twarzy Stem Cell Skin Peeling 200ml Aurumaris Professional",
|
||||
"product_id": "3580",
|
||||
"reason": "brakuje aktywnej grupy reklam"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796468366",
|
||||
"campaign_name": "[PLA_CL1] aurumaris",
|
||||
"ad_group_name": "Rozświetlająca maska do twarzy Super Brightening Mask 100ml Aurumaris Professional",
|
||||
"product_id": "3581",
|
||||
"reason": "brakuje aktywnej grupy reklam"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796468366",
|
||||
"campaign_name": "[PLA_CL1] aurumaris",
|
||||
"ad_group_name": "Aurumaris Professional Total Remake Smart Serum z mikroigłami — regenerujące serum do twarzy 30 ml",
|
||||
"product_id": "3582",
|
||||
"reason": "brakuje aktywnej grupy reklam"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796468366",
|
||||
"campaign_name": "[PLA_CL1] aurumaris",
|
||||
"ad_group_name": "Krem przeciwzmarszczkowy Tripeptide Skin DNA Rejuvenation 50ml Aurumaris Professional",
|
||||
"product_id": "3584",
|
||||
"reason": "brakuje aktywnej grupy reklam"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796468366",
|
||||
"campaign_name": "[PLA_CL1] aurumaris",
|
||||
"ad_group_name": "Krem do pielęgnacji cery twarzy Ultra Hydration Structurizing Cream 50ml Aurumaris Professional",
|
||||
"product_id": "3586",
|
||||
"reason": "brakuje aktywnej grupy reklam"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23847226734",
|
||||
"campaign_name": "[PLA_CL1] mina_ibrow",
|
||||
"ad_group_name": "Hybrydowa farbka do brwi i rzęs Black 14ml MINA IBROW",
|
||||
"product_id": "3377",
|
||||
"reason": "brakuje aktywnej grupy reklam"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23847226734",
|
||||
"campaign_name": "[PLA_CL1] mina_ibrow",
|
||||
"ad_group_name": "Hybrydowa farba do brwi i rzęs Dark Brown 14ml MINA IBROW farbka henna",
|
||||
"product_id": "3378",
|
||||
"reason": "brakuje aktywnej grupy reklam"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23847226734",
|
||||
"campaign_name": "[PLA_CL1] mina_ibrow",
|
||||
"ad_group_name": "Hybrydowa farbka do brwi i rzęs Medium Brown 14ml MINA IBROW",
|
||||
"product_id": "3379",
|
||||
"reason": "brakuje aktywnej grupy reklam"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23847226734",
|
||||
"campaign_name": "[PLA_CL1] mina_ibrow",
|
||||
"ad_group_name": "Hybrydowa farbka do brwi i rzęs Light Brown 14ml MINA IBROW",
|
||||
"product_id": "3380",
|
||||
"reason": "brakuje aktywnej grupy reklam"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23847226734",
|
||||
"campaign_name": "[PLA_CL1] mina_ibrow",
|
||||
"ad_group_name": "Hybrydowa farbka do brwi i rzęs Light Blonde 14ml MINA IBROW",
|
||||
"product_id": "3381",
|
||||
"reason": "brakuje aktywnej grupy reklam"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23847226734",
|
||||
"campaign_name": "[PLA_CL1] mina_ibrow",
|
||||
"ad_group_name": "Hybrydowa farbka do brwi i rzęs Graphite 14ml MINA IBROW",
|
||||
"product_id": "3382",
|
||||
"reason": "brakuje aktywnej grupy reklam"
|
||||
}
|
||||
],
|
||||
"enable_plan": [],
|
||||
"pause_plan": [],
|
||||
"rename_plan": [],
|
||||
"warnings": [
|
||||
"Grupy reklam bez dopasowania w adsPRO: 4.",
|
||||
"Grupy reklam w zlej kampanii (CL1 nie pasuje): 18."
|
||||
],
|
||||
"unmatched_groups": [
|
||||
{
|
||||
"ad_group_id": "195935652893",
|
||||
"ad_group_name": "Grupa reklam 1",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23796468366",
|
||||
"campaign_name": "[PLA_CL1] aurumaris",
|
||||
"allowed": [
|
||||
"aurumaris"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": ""
|
||||
},
|
||||
{
|
||||
"ad_group_id": "197134082072",
|
||||
"ad_group_name": "Grupa reklam 1",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23847226734",
|
||||
"campaign_name": "[PLA_CL1] mina_ibrow",
|
||||
"allowed": [
|
||||
"mina_ibrow"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": ""
|
||||
},
|
||||
{
|
||||
"ad_group_id": "199865422030",
|
||||
"ad_group_name": "Grupa reklam 1",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23796378384",
|
||||
"campaign_name": "[PLA_CL1] gen_factor",
|
||||
"allowed": [
|
||||
"gen_factor"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": ""
|
||||
},
|
||||
{
|
||||
"ad_group_id": "204485812988",
|
||||
"ad_group_name": "Grupa reklam 1",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23796424236",
|
||||
"campaign_name": "[PLA_CL1] podopharm",
|
||||
"allowed": [
|
||||
"podopharm"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
55
clients/innsi.pl/plans/2026-05-15_22-58-58_sync_pla_cl1.md
Normal file
55
clients/innsi.pl/plans/2026-05-15_22-58-58_sync_pla_cl1.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# Plan: Synchronizacja kampanii PLA_CL1
|
||||
|
||||
Klient: innsi.pl
|
||||
Utworzono: 2026-05-15T22:58:58+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Kampanie PLA_CL1: 4
|
||||
- Produkty z adsPRO: 50
|
||||
- Grupy reklam obecnie: 58
|
||||
- Grupy reklam z identyfikatorem produktu: 54
|
||||
- Do utworzenia: 14
|
||||
- Do włączenia: 0
|
||||
- Do wstrzymania: 0
|
||||
- Do zmiany nazwy: 0
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Grupy reklam bez dopasowania w adsPRO: 4.
|
||||
- Grupy reklam w zlej kampanii (CL1 nie pasuje): 18.
|
||||
|
||||
## Podsumowanie po kampaniach
|
||||
|
||||
| Kampania | Utworz | Wlacz | Wstrzymaj | Zmien nazwe |
|
||||
| --- | ---: | ---: | ---: | ---: |
|
||||
| [PLA_CL1] aurumaris | 8 | 0 | 0 | 0 |
|
||||
| [PLA_CL1] mina_ibrow | 6 | 0 | 0 | 0 |
|
||||
|
||||
## Grupy reklam bez dopasowania w adsPRO
|
||||
|
||||
| Kampania | Grupa reklam | Status | Identyfikator produktu |
|
||||
| --- | --- | --- | --- |
|
||||
| [PLA_CL1] aurumaris | Grupa reklam 1 | PAUSED | |
|
||||
| [PLA_CL1] mina_ibrow | Grupa reklam 1 | PAUSED | |
|
||||
| [PLA_CL1] gen_factor | Grupa reklam 1 | PAUSED | |
|
||||
| [PLA_CL1] podopharm | Grupa reklam 1 | PAUSED | |
|
||||
|
||||
## Grupy reklam do utworzenia
|
||||
|
||||
| Kampania | Grupa reklam | Produkt | Powod |
|
||||
| --- | --- | --- | --- |
|
||||
| [PLA_CL1] aurumaris | Kojący tonik do twarzy Neuropeptide Tonic 200 ml Aurumaris Professional | 3576 | brakuje aktywnej grupy reklam |
|
||||
| [PLA_CL1] aurumaris | Delikatna pianka do twarzy Neuropeptide Cleansing Foam 200ml Aurumaris Professional | 3577 | brakuje aktywnej grupy reklam |
|
||||
| [PLA_CL1] aurumaris | Kremowa maska do twarzy 5D Skin Filler Mask 200ml Aurumaris Professional | 3578 | brakuje aktywnej grupy reklam |
|
||||
| [PLA_CL1] aurumaris | Peeling do twarzy Stem Cell Skin Peeling 200ml Aurumaris Professional | 3580 | brakuje aktywnej grupy reklam |
|
||||
| [PLA_CL1] aurumaris | Rozświetlająca maska do twarzy Super Brightening Mask 100ml Aurumaris Professional | 3581 | brakuje aktywnej grupy reklam |
|
||||
| [PLA_CL1] aurumaris | Aurumaris Professional Total Remake Smart Serum z mikroigłami — regenerujące serum do twarzy 30 ml | 3582 | brakuje aktywnej grupy reklam |
|
||||
| [PLA_CL1] aurumaris | Krem przeciwzmarszczkowy Tripeptide Skin DNA Rejuvenation 50ml Aurumaris Professional | 3584 | brakuje aktywnej grupy reklam |
|
||||
| [PLA_CL1] aurumaris | Krem do pielęgnacji cery twarzy Ultra Hydration Structurizing Cream 50ml Aurumaris Professional | 3586 | brakuje aktywnej grupy reklam |
|
||||
| [PLA_CL1] mina_ibrow | Hybrydowa farbka do brwi i rzęs Black 14ml MINA IBROW | 3377 | brakuje aktywnej grupy reklam |
|
||||
| [PLA_CL1] mina_ibrow | Hybrydowa farba do brwi i rzęs Dark Brown 14ml MINA IBROW farbka henna | 3378 | brakuje aktywnej grupy reklam |
|
||||
| [PLA_CL1] mina_ibrow | Hybrydowa farbka do brwi i rzęs Medium Brown 14ml MINA IBROW | 3379 | brakuje aktywnej grupy reklam |
|
||||
| [PLA_CL1] mina_ibrow | Hybrydowa farbka do brwi i rzęs Light Brown 14ml MINA IBROW | 3380 | brakuje aktywnej grupy reklam |
|
||||
| [PLA_CL1] mina_ibrow | Hybrydowa farbka do brwi i rzęs Light Blonde 14ml MINA IBROW | 3381 | brakuje aktywnej grupy reklam |
|
||||
| [PLA_CL1] mina_ibrow | Hybrydowa farbka do brwi i rzęs Graphite 14ml MINA IBROW | 3382 | brakuje aktywnej grupy reklam |
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,91 @@
|
||||
# Plan: Automatyzacja tROAS per grupa reklam PLA
|
||||
|
||||
Klient: innsi.pl
|
||||
Utworzono: 2026-05-15T23:03:03+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Grupy reklam Shopping z danymi 30 dni: 50
|
||||
- Kandydaci do podniesienia tROAS: 0
|
||||
- Kandydaci do rollbacku: 0
|
||||
- Watchlista bez akcji: 49
|
||||
- Reguly wiedzy przypisane do zadania: 1
|
||||
|
||||
## Zakres zadania
|
||||
|
||||
| Obszar | Co sprawdzic |
|
||||
| --- | --- |
|
||||
| Zakres | Analizuje tylko aktywne grupy reklam w aktywnych kampaniach Standard Shopping. |
|
||||
| Dane 30 dni | Liczy realny ROAS grupy reklam z kosztu i wartosci konwersji z ostatnich 30 dni. |
|
||||
| 100 klikow | Grupy reklam z mniej niz 100 klikami od poczatku trafiaja tylko na watchliste. |
|
||||
| Trigger 10 konwersji | Podbicie tROAS wymaga co najmniej 10 nowych konwersji wzgledem lokalnego baseline. |
|
||||
| Stopniowanie | Jedna analiza moze podniesc tROAS grupy reklam maksymalnie o 0.5. |
|
||||
| Rollback | Jesli po zmianie realny ROAS z 30 dni spada ponizej ustawionego tROAS, plan proponuje przywrocenie poprzedniej wartosci. |
|
||||
|
||||
## Watchlista bez akcji
|
||||
|
||||
| Kampania | Grupa reklam | Klikniecia all-time | Konwersje 30 dni | Real ROAS | Powod |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| [PLA_CL1] gen_factor | Gen Factor Red krem regenerujący do twarzy z colostrum i kawiorem 75ml | 32 | 2.00 | 4.40 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Podopharm maść z colostrum regenerująca kojąca 60ml do stóp łokci kolan | 31 | 1.00 | 3.29 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] gen_factor | Gen Factor Green krem regenerujący do twarzy z colostrum 75ml | 29 | 2.00 | 5.34 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Podopharm VERRU IMMUNO pasta do pielęgnacji skóry z colostrum i tują 12ml | 24 | 1.00 | 0.89 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Podopharm maść na popękane pięty z mocznikiem 25% do zrogowaciałej skóry stóp 100ml | 23 | 1.00 | 1.16 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] gen_factor | Gen Factor Yellow — krem na przebarwienia i nierówny koloryt skóry | Personal Care z HGF | 20 | 1.25 | 5.64 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] gen_factor | Gen Factor Violet krem przeciwzmarszczkowy do twarzy z fitoestrogenami 75ml | 19 | 2.25 | 11.66 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Podopharm OLEUM HERBAL olejek podologiczny aktywny do pielęgnacji stóp 10ml | 16 | 1.00 | 2.66 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] gen_factor | Gen Factor Blue — przeciwzapalny krem do skóry problematycznej z colostrum | Personal Care | 15 | 0.25 | 4.05 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Podopharm krem do stóp z lipidami nawilżający do suchej skóry 100ml | 14 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Podopharm specjalistyczny krem do suchej skóry nawilżający z lipidami 150ml | 14 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] gen_factor | Gen Factor Orange krem przeciwzmarszczkowy do twarzy z bakuchiolem 75ml | 13 | 1.25 | 10.17 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Olejek do paznokci Mykobooster 10ml Podopharm | 10 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Fluid na wrastające paznokcie 10ml Podopharm | 9 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Krem do stóp w piance z mikrosrebrem i jaskółczym zielem 125ml Podopharm | 8 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Spray do stóp i dłoni Mykobooster 100ml Podopharm | 6 | 1.00 | 3.17 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Podopharm krem-maska do dłoni z adaptogenami i colostrum regenerująca 75ml | 6 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Podopharm krem pianka do stóp z mocznikiem 15% na zrogowacenia pięty 125ml | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Podopharm maska do dłoni i stóp z mikrosrebrem antybakteryjna 75ml | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Krem do stóp z colostrum 150ml Podopharm | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Podopharm krem barierowy do twarzy z colostrum 50ml skóra sucha atopowa | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Peeling solno-cukrowy Luxury SPA do dłoni i stóp z masłem shea i goji 300g Podopharm | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Regenerujące serum do ciała 200ml Podopharm | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] aurumaris | Aurumaris Professional Total Remake Smart Serum z mikroigłami — regenerujące serum do twarzy 30 ml | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] aurumaris | Delikatna pianka do twarzy Neuropeptide Cleansing Foam 200ml Aurumaris Professional | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] aurumaris | Kojący tonik do twarzy Neuropeptide Tonic 200 ml Aurumaris Professional | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] aurumaris | Krem do pielęgnacji cery twarzy Ultra Hydration Structurizing Cream 50ml Aurumaris Professional | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] aurumaris | Krem przeciwzmarszczkowy Tripeptide Skin DNA Rejuvenation 50ml Aurumaris Professional | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] aurumaris | Kremowa maska do twarzy 5D Skin Filler Mask 200ml Aurumaris Professional | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] aurumaris | Peeling do twarzy Stem Cell Skin Peeling 200ml Aurumaris Professional | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] aurumaris | Rozświetlająca maska do twarzy Super Brightening Mask 100ml Aurumaris Professional | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] gen_factor | Gen Factor Cinnamic krem do twarzy na przebarwienia i zaczerwienienia z kwasem cynamonowym | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] gen_factor | Neutralizator do kwasów pH Stoperr Gen Factor | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] gen_factor | Odtłuszczacz do skóry pH Starter Gen Factor | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] mina_ibrow | Hybrydowa farba do brwi i rzęs Dark Brown 14ml MINA IBROW farbka henna | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] mina_ibrow | Hybrydowa farbka do brwi i rzęs Black 14ml MINA IBROW | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] mina_ibrow | Hybrydowa farbka do brwi i rzęs Graphite 14ml MINA IBROW | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] mina_ibrow | Hybrydowa farbka do brwi i rzęs Light Blonde 14ml MINA IBROW | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] mina_ibrow | Hybrydowa farbka do brwi i rzęs Light Brown 14ml MINA IBROW | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] mina_ibrow | Hybrydowa farbka do brwi i rzęs Medium Brown 14ml MINA IBROW | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Emolientowy balsam w sztyfcie SOS SKINFLEX 50ml Podopharm | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Intensywnie wzmacniające serum do paznokci 10ml Podopharm | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Intensywnie wzmacniający lakier do paznokci 9ml Podopharm | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Krem do stóp z colostrum 75ml Podopharm | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Maść do stóp z mocznikiem 10% 75ml Podopharm | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Mykostatyczna tinktura do paznokci 10ml Podopharm | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Odżywcze serum do ust z colostrum 4,9g Podopharm | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Podopharm serum do rąk i paznokci w piance wzmacniające 125ml | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] podopharm | Zmiękczające perełki do kąpieli dłoni i stóp z mocznikiem i witaminą E 400g Podopharm | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
|
||||
## Reguly z bazy wiedzy
|
||||
|
||||
| ID | Temat | Rekomendacja | Ryzyko |
|
||||
| --- | --- | --- | --- |
|
||||
| smart_bidding_sequential_budget_and_target_changes | strategie_stawek | Zmiany budzetow i celow Smart Bidding wprowadzaj sekwencyjnie. Nie zmieniaj jednoczesnie budzetu i Docelowego ROAS albo Docelowego CPA, jesli nie jest to swiadoma decyzja. Duze zmiany oznaczaj jako wyzsze ryzyko uczenia algorytmu i rekomenduj obserwacje wynikow przed kolejna zmiana. | Jednoczesne albo zbyt duze zmiany moga uruchomic niestabilny okres uczenia, utrudnic ocene przyczyny zmian wynikow i doprowadzic do nadmiernego wydawania budzetu albo utraty wolumenu konwersji. |
|
||||
|
||||
## Poza zakresem tego zadania
|
||||
|
||||
- Performance Max
|
||||
- Search
|
||||
- kampanie Shopping bez grup reklam
|
||||
- automatyczne wdrozenie bez akceptacji uzytkownika
|
||||
- pauzowanie grup reklam z niskim albo zerowym ROAS
|
||||
@@ -0,0 +1,216 @@
|
||||
{
|
||||
"created_at": "2026-05-15T23:04:01+02:00",
|
||||
"client": "innsi.pl",
|
||||
"task": "optimize_product_titles",
|
||||
"task_name": "Optymalizacja tytulow produktow",
|
||||
"products": [
|
||||
{
|
||||
"offer_id": "2720",
|
||||
"default_name": "Maść z naturalnymi olejkami Regeneracja suchej skóry 70g Arkada",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 76,
|
||||
"impressions": 10999,
|
||||
"cost": 92.98
|
||||
},
|
||||
{
|
||||
"offer_id": "1814",
|
||||
"default_name": "Zestaw płynów HydraPure Oczyszczanie Wodorowe",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 27,
|
||||
"impressions": 1139,
|
||||
"cost": 38.76
|
||||
},
|
||||
{
|
||||
"offer_id": "2016",
|
||||
"default_name": "Olejek do paznokci Mykobooster 10ml Podopharm",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 24,
|
||||
"impressions": 3396,
|
||||
"cost": 29.8
|
||||
},
|
||||
{
|
||||
"offer_id": "1413",
|
||||
"default_name": "Henna żelowa Brown 15ml Refectocil",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 24,
|
||||
"impressions": 2970,
|
||||
"cost": 51.94
|
||||
},
|
||||
{
|
||||
"offer_id": "3133",
|
||||
"default_name": "Nożyczki ES-03 NGHIA EXPORT Activ",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 22,
|
||||
"impressions": 441,
|
||||
"cost": 31.97
|
||||
},
|
||||
{
|
||||
"offer_id": "93",
|
||||
"default_name": "Wonder Sculpt Paletka cieni Karaja nr 01",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 19,
|
||||
"impressions": 2500,
|
||||
"cost": 11.91
|
||||
},
|
||||
{
|
||||
"offer_id": "2524",
|
||||
"default_name": "Taśmy modelująco liftingujące beige Secret Lift IBRA Makeup",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 19,
|
||||
"impressions": 1881,
|
||||
"cost": 32.92
|
||||
},
|
||||
{
|
||||
"offer_id": "1554",
|
||||
"default_name": "Henna Anna brązowa proszkowa Hornung 20 g",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 18,
|
||||
"impressions": 1831,
|
||||
"cost": 39.04
|
||||
},
|
||||
{
|
||||
"offer_id": "2026",
|
||||
"default_name": "Krem do stóp w piance z mikrosrebrem i jaskółczym zielem 125ml Podopharm",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 18,
|
||||
"impressions": 1483,
|
||||
"cost": 27.65
|
||||
},
|
||||
{
|
||||
"offer_id": "3560",
|
||||
"default_name": "Pre-Depilatory Gel żel przed depilacją 200ml Starpil",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 18,
|
||||
"impressions": 840,
|
||||
"cost": 9.46
|
||||
}
|
||||
],
|
||||
"title_changes": [
|
||||
{
|
||||
"offer_id": "2720",
|
||||
"field": "title",
|
||||
"current_value": "Maść z naturalnymi olejkami Regeneracja suchej skóry 70g Arkada",
|
||||
"target_value": "Arkada maść z naturalnymi olejkami do regeneracji suchej skóry 70 g",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "1814",
|
||||
"field": "title",
|
||||
"current_value": "Zestaw płynów HydraPure Oczyszczanie Wodorowe",
|
||||
"target_value": "HydraPure zestaw płynów do oczyszczania wodorowego",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "2016",
|
||||
"field": "title",
|
||||
"current_value": "Olejek do paznokci Mykobooster 10ml Podopharm",
|
||||
"target_value": "Podopharm Mykobooster olejek do paznokci 10 ml",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "1413",
|
||||
"field": "title",
|
||||
"current_value": "Henna żelowa Brown 15ml Refectocil",
|
||||
"target_value": "Refectocil henna żelowa Brown do brwi i rzęs 15 ml",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "3133",
|
||||
"field": "title",
|
||||
"current_value": "Nożyczki ES-03 NGHIA EXPORT Activ",
|
||||
"target_value": "NGHIA Export Activ ES-03 nożyczki kosmetyczne",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "93",
|
||||
"field": "title",
|
||||
"current_value": "Wonder Sculpt Paletka cieni Karaja nr 01",
|
||||
"target_value": "Karaja Wonder Sculpt paletka cieni do powiek nr 01",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "2524",
|
||||
"field": "title",
|
||||
"current_value": "Taśmy modelująco liftingujące beige Secret Lift IBRA Makeup",
|
||||
"target_value": "IBRA Makeup Secret Lift taśmy modelująco-liftingujące beige",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "1554",
|
||||
"field": "title",
|
||||
"current_value": "Henna Anna brązowa proszkowa Hornung 20 g",
|
||||
"target_value": "Hornung Anna henna proszkowa brązowa 20 g",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "2026",
|
||||
"field": "title",
|
||||
"current_value": "Krem do stóp w piance z mikrosrebrem i jaskółczym zielem 125ml Podopharm",
|
||||
"target_value": "Podopharm krem do stóp w piance z mikrosrebrem i jaskółczym zielem 125 ml",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "3560",
|
||||
"field": "title",
|
||||
"current_value": "Pre-Depilatory Gel żel przed depilacją 200ml Starpil",
|
||||
"target_value": "Starpil Pre-Depilatory Gel żel przed depilacją 200 ml",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
}
|
||||
],
|
||||
"category_changes": [],
|
||||
"unit_pricing_changes": [],
|
||||
"skipped": [],
|
||||
"warnings": [
|
||||
"Czesc tytulow wymaga decyzji agenta AI; skrypt nie przepisuje tytulu bazowego jako optymalizacji."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
# Plan: Optymalizacja tytulow produktow
|
||||
|
||||
Klient: innsi.pl
|
||||
Utworzono: 2026-05-15T23:04:01+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Produkty z adsPRO: 10
|
||||
- Tytuly do zmiany: 10
|
||||
- Kategorie do uzupelnienia: 0
|
||||
- Unit pricing do zmiany: 0
|
||||
- Pominiete: 0
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Czesc tytulow wymaga decyzji agenta AI; skrypt nie przepisuje tytulu bazowego jako optymalizacji.
|
||||
|
||||
## Tytuly do decyzji lub zmiany
|
||||
|
||||
| Produkt | Obecnie | Docelowo | Powod |
|
||||
| --- | --- | --- | --- |
|
||||
| 2720 | Maść z naturalnymi olejkami Regeneracja suchej skóry 70g Arkada | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 1814 | Zestaw płynów HydraPure Oczyszczanie Wodorowe | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 2016 | Olejek do paznokci Mykobooster 10ml Podopharm | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 1413 | Henna żelowa Brown 15ml Refectocil | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 3133 | Nożyczki ES-03 NGHIA EXPORT Activ | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 93 | Wonder Sculpt Paletka cieni Karaja nr 01 | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 2524 | Taśmy modelująco liftingujące beige Secret Lift IBRA Makeup | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 1554 | Henna Anna brązowa proszkowa Hornung 20 g | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 2026 | Krem do stóp w piance z mikrosrebrem i jaskółczym zielem 125ml Podopharm | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 3560 | Pre-Depilatory Gel żel przed depilacją 200ml Starpil | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
@@ -0,0 +1,216 @@
|
||||
{
|
||||
"created_at": "2026-05-15T23:07:26+02:00",
|
||||
"client": "innsi.pl",
|
||||
"task": "optimize_product_categories",
|
||||
"task_name": "Optymalizacja kategorii Google",
|
||||
"products": [
|
||||
{
|
||||
"offer_id": "2720",
|
||||
"default_name": "Maść z naturalnymi olejkami Regeneracja suchej skóry 70g Arkada",
|
||||
"custom_title": "Arkada maść z naturalnymi olejkami do regeneracji suchej skóry 70 g",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 76,
|
||||
"impressions": 10999,
|
||||
"cost": 92.98
|
||||
},
|
||||
{
|
||||
"offer_id": "1814",
|
||||
"default_name": "Zestaw płynów HydraPure Oczyszczanie Wodorowe",
|
||||
"custom_title": "HydraPure zestaw płynów do oczyszczania wodorowego",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 27,
|
||||
"impressions": 1139,
|
||||
"cost": 38.76
|
||||
},
|
||||
{
|
||||
"offer_id": "2016",
|
||||
"default_name": "Olejek do paznokci Mykobooster 10ml Podopharm",
|
||||
"custom_title": "Podopharm Mykobooster olejek do paznokci 10 ml",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 24,
|
||||
"impressions": 3396,
|
||||
"cost": 29.8
|
||||
},
|
||||
{
|
||||
"offer_id": "1413",
|
||||
"default_name": "Henna żelowa Brown 15ml Refectocil",
|
||||
"custom_title": "Refectocil henna żelowa Brown do brwi i rzęs 15 ml",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 24,
|
||||
"impressions": 2970,
|
||||
"cost": 51.94
|
||||
},
|
||||
{
|
||||
"offer_id": "3133",
|
||||
"default_name": "Nożyczki ES-03 NGHIA EXPORT Activ",
|
||||
"custom_title": "NGHIA Export Activ ES-03 nożyczki kosmetyczne",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 22,
|
||||
"impressions": 441,
|
||||
"cost": 31.97
|
||||
},
|
||||
{
|
||||
"offer_id": "93",
|
||||
"default_name": "Wonder Sculpt Paletka cieni Karaja nr 01",
|
||||
"custom_title": "Karaja Wonder Sculpt paletka cieni do powiek nr 01",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 19,
|
||||
"impressions": 2500,
|
||||
"cost": 11.91
|
||||
},
|
||||
{
|
||||
"offer_id": "2524",
|
||||
"default_name": "Taśmy modelująco liftingujące beige Secret Lift IBRA Makeup",
|
||||
"custom_title": "IBRA Makeup Secret Lift taśmy modelująco-liftingujące beige",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 19,
|
||||
"impressions": 1881,
|
||||
"cost": 32.92
|
||||
},
|
||||
{
|
||||
"offer_id": "1554",
|
||||
"default_name": "Henna Anna brązowa proszkowa Hornung 20 g",
|
||||
"custom_title": "Hornung Anna henna proszkowa brązowa 20 g",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 18,
|
||||
"impressions": 1831,
|
||||
"cost": 39.04
|
||||
},
|
||||
{
|
||||
"offer_id": "2026",
|
||||
"default_name": "Krem do stóp w piance z mikrosrebrem i jaskółczym zielem 125ml Podopharm",
|
||||
"custom_title": "Podopharm krem do stóp w piance z mikrosrebrem i jaskółczym zielem 125 ml",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 18,
|
||||
"impressions": 1483,
|
||||
"cost": 27.65
|
||||
},
|
||||
{
|
||||
"offer_id": "3560",
|
||||
"default_name": "Pre-Depilatory Gel żel przed depilacją 200ml Starpil",
|
||||
"custom_title": "Starpil Pre-Depilatory Gel żel przed depilacją 200 ml",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 18,
|
||||
"impressions": 840,
|
||||
"cost": 9.46
|
||||
}
|
||||
],
|
||||
"title_changes": [],
|
||||
"category_changes": [
|
||||
{
|
||||
"offer_id": "2720",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Health & Beauty > Personal Care > Cosmetics > Skin Care > Lotion & Moisturizer",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "1814",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Health & Beauty > Personal Care > Cosmetics > Skin Care",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "2016",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Health & Beauty > Personal Care > Cosmetics > Nail Care",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "1413",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "3133",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "93",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "2524",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "1554",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "2026",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Health & Beauty > Personal Care > Cosmetics > Skin Care > Lotion & Moisturizer",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "3560",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Health & Beauty > Personal Care > Cosmetics > Skin Care",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
}
|
||||
],
|
||||
"unit_pricing_changes": [],
|
||||
"skipped": [],
|
||||
"warnings": [
|
||||
"Kategorie Google wybiera agent AI; skrypt nie zgaduje ich automatycznie."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
# Plan: Optymalizacja kategorii Google
|
||||
|
||||
Klient: innsi.pl
|
||||
Utworzono: 2026-05-15T23:07:26+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Produkty z adsPRO: 10
|
||||
- Tytuly do zmiany: 0
|
||||
- Kategorie do uzupelnienia: 10
|
||||
- Unit pricing do zmiany: 0
|
||||
- Pominiete: 0
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Kategorie Google wybiera agent AI; skrypt nie zgaduje ich automatycznie.
|
||||
|
||||
## Kategorie Google do decyzji agenta AI
|
||||
|
||||
| Produkt | Obecnie | Decyzja agenta AI | Powod |
|
||||
| --- | --- | --- | --- |
|
||||
| 2720 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 1814 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 2016 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 1413 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 3133 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 93 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 2524 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 1554 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 2026 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 3560 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
@@ -0,0 +1,215 @@
|
||||
{
|
||||
"created_at": "2026-05-15T23:11:34+02:00",
|
||||
"client": "innsi.pl",
|
||||
"task": "fill_product_unit_pricing",
|
||||
"task_name": "Uzupelnienie unit pricing",
|
||||
"products": [
|
||||
{
|
||||
"product_id": 19282,
|
||||
"offer_id": "3582",
|
||||
"default_name": "Intensywnie regenerujące serum z mikroigłami Total Remake Smart Serum Nano-Needles 30ml Aurumaris Professional",
|
||||
"custom_title": "Aurumaris Professional Total Remake Smart Serum z mikroigłami — regenerujące serum do twarzy 30 ml",
|
||||
"google_product_category": "2958",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 130,
|
||||
"clicks_all_time": 586
|
||||
},
|
||||
{
|
||||
"product_id": 19149,
|
||||
"offer_id": "3622",
|
||||
"default_name": "Olejek regenerujący dla paznokci z onycholizą 8 ml ONISTOP",
|
||||
"custom_title": "ONISTOP Olejek na onycholizę paznokci, regenerujący 8 ml",
|
||||
"google_product_category": "Health & Beauty > Personal Care > Cosmetics > Nail Care",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 267,
|
||||
"clicks_all_time": 274
|
||||
},
|
||||
{
|
||||
"product_id": 19262,
|
||||
"offer_id": "2721",
|
||||
"default_name": "Serum kolagenowe TC 16 Regeneracja skóry i paznokci 11ml Arkada",
|
||||
"custom_title": "Arkada Serum TC16 kolagenowe do regeneracji skóry i paznokci 11ml",
|
||||
"google_product_category": "478",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 198,
|
||||
"clicks_all_time": 226
|
||||
},
|
||||
{
|
||||
"product_id": 25841,
|
||||
"offer_id": "2018",
|
||||
"default_name": "Podopharm Onygen krem do paznokci dłoni i stóp z colostrum 20 ml",
|
||||
"custom_title": "Onygen Podopharm krem na onycholizę do paznokci z colostrum bovinum 20ml",
|
||||
"google_product_category": "478",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 101,
|
||||
"clicks_all_time": 157
|
||||
},
|
||||
{
|
||||
"product_id": 19136,
|
||||
"offer_id": "3378",
|
||||
"default_name": "Hybrydowa farbka do brwi i rzęs Dark Brown 14ml MINA IBROW",
|
||||
"custom_title": "Hybrydowa farba do brwi i rzęs Dark Brown 14ml MINA IBROW farbka henna",
|
||||
"google_product_category": "Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup > Eyebrow Enhancers",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 118,
|
||||
"clicks_all_time": 140
|
||||
},
|
||||
{
|
||||
"product_id": 19339,
|
||||
"offer_id": "3623",
|
||||
"default_name": "Olejek regenerujący dla paznokci z onycholizą 15 ml ONISTOP",
|
||||
"custom_title": "ONISTOP Olejek na onycholizę paznokci, regenerujący 15 ml",
|
||||
"google_product_category": "Health & Beauty > Personal Care > Cosmetics > Nail Care",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 116,
|
||||
"clicks_all_time": 124
|
||||
},
|
||||
{
|
||||
"product_id": 25842,
|
||||
"offer_id": "3393",
|
||||
"default_name": "Gen Factor Personal Care Orange krem do twarzy z retinolem",
|
||||
"custom_title": "Gen Factor Orange krem przeciwzmarszczkowy do twarzy z bakuchiolem 75ml",
|
||||
"google_product_category": "2592",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 18,
|
||||
"clicks_all_time": 121
|
||||
},
|
||||
{
|
||||
"product_id": 19269,
|
||||
"offer_id": "3594",
|
||||
"default_name": "Zestaw Manicure Japoński P.Shine",
|
||||
"custom_title": "Zestaw do manicure japońskiego P.Shine profesjonalny japoński manicure",
|
||||
"google_product_category": "Health & Beauty > Personal Care > Cosmetics > Nail Care",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 90,
|
||||
"clicks_all_time": 107
|
||||
},
|
||||
{
|
||||
"product_id": 19337,
|
||||
"offer_id": "1883",
|
||||
"default_name": "Aceton kosmetyczny 500ml La Lill",
|
||||
"custom_title": "La Lill aceton kosmetyczny do usuwania lakieru hybrydowego 500ml",
|
||||
"google_product_category": "478",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 55,
|
||||
"clicks_all_time": 99
|
||||
},
|
||||
{
|
||||
"product_id": 19142,
|
||||
"offer_id": "2720",
|
||||
"default_name": "Maść z naturalnymi olejkami Regeneracja suchej skóry 70g Arkada",
|
||||
"custom_title": "Arkada maść z naturalnymi olejkami do regeneracji suchej skóry 70 g",
|
||||
"google_product_category": "Health & Beauty > Personal Care > Cosmetics > Skin Care > Lotion & Moisturizer",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 68,
|
||||
"clicks_all_time": 76
|
||||
}
|
||||
],
|
||||
"title_changes": [],
|
||||
"category_changes": [],
|
||||
"unit_pricing_changes": [
|
||||
{
|
||||
"offer_id": "3582",
|
||||
"field": "unit_pricing",
|
||||
"title": "Intensywnie regenerujące serum z mikroigłami Total Remake Smart Serum Nano-Needles 30ml Aurumaris Professional",
|
||||
"current_unit_pricing_measure": "",
|
||||
"current_unit_pricing_base_measure": "",
|
||||
"unit_pricing_measure": "30 ml",
|
||||
"unit_pricing_base_measure": "100 ml",
|
||||
"reason": "brak unit pricing; wartosc wyliczona z nazwy produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "3622",
|
||||
"field": "unit_pricing",
|
||||
"title": "Olejek regenerujący dla paznokci z onycholizą 8 ml ONISTOP",
|
||||
"current_unit_pricing_measure": "",
|
||||
"current_unit_pricing_base_measure": "",
|
||||
"unit_pricing_measure": "8 ml",
|
||||
"unit_pricing_base_measure": "100 ml",
|
||||
"reason": "brak unit pricing; wartosc wyliczona z nazwy produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "2721",
|
||||
"field": "unit_pricing",
|
||||
"title": "Serum kolagenowe TC 16 Regeneracja skóry i paznokci 11ml Arkada",
|
||||
"current_unit_pricing_measure": "",
|
||||
"current_unit_pricing_base_measure": "",
|
||||
"unit_pricing_measure": "11 ml",
|
||||
"unit_pricing_base_measure": "100 ml",
|
||||
"reason": "brak unit pricing; wartosc wyliczona z nazwy produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "2018",
|
||||
"field": "unit_pricing",
|
||||
"title": "Podopharm Onygen krem do paznokci dłoni i stóp z colostrum 20 ml",
|
||||
"current_unit_pricing_measure": "",
|
||||
"current_unit_pricing_base_measure": "",
|
||||
"unit_pricing_measure": "20 ml",
|
||||
"unit_pricing_base_measure": "100 ml",
|
||||
"reason": "brak unit pricing; wartosc wyliczona z nazwy produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "3378",
|
||||
"field": "unit_pricing",
|
||||
"title": "Hybrydowa farbka do brwi i rzęs Dark Brown 14ml MINA IBROW",
|
||||
"current_unit_pricing_measure": "",
|
||||
"current_unit_pricing_base_measure": "",
|
||||
"unit_pricing_measure": "14 ml",
|
||||
"unit_pricing_base_measure": "100 ml",
|
||||
"reason": "brak unit pricing; wartosc wyliczona z nazwy produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "3623",
|
||||
"field": "unit_pricing",
|
||||
"title": "Olejek regenerujący dla paznokci z onycholizą 15 ml ONISTOP",
|
||||
"current_unit_pricing_measure": "",
|
||||
"current_unit_pricing_base_measure": "",
|
||||
"unit_pricing_measure": "15 ml",
|
||||
"unit_pricing_base_measure": "100 ml",
|
||||
"reason": "brak unit pricing; wartosc wyliczona z nazwy produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "1883",
|
||||
"field": "unit_pricing",
|
||||
"title": "Aceton kosmetyczny 500ml La Lill",
|
||||
"current_unit_pricing_measure": "",
|
||||
"current_unit_pricing_base_measure": "",
|
||||
"unit_pricing_measure": "500 ml",
|
||||
"unit_pricing_base_measure": "100 ml",
|
||||
"reason": "brak unit pricing; wartosc wyliczona z nazwy produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "2720",
|
||||
"field": "unit_pricing",
|
||||
"title": "Maść z naturalnymi olejkami Regeneracja suchej skóry 70g Arkada",
|
||||
"current_unit_pricing_measure": "",
|
||||
"current_unit_pricing_base_measure": "",
|
||||
"unit_pricing_measure": "70 g",
|
||||
"unit_pricing_base_measure": "100 g",
|
||||
"reason": "brak unit pricing; wartosc wyliczona z nazwy produktu"
|
||||
}
|
||||
],
|
||||
"skipped": [
|
||||
{
|
||||
"offer_id": "3393",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "3594",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
}
|
||||
],
|
||||
"warnings": [
|
||||
"Unit pricing zostanie zapisany w adsPRO dopiero po akceptacji planu."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
# Plan: Uzupelnienie unit pricing
|
||||
|
||||
Klient: innsi.pl
|
||||
Utworzono: 2026-05-15T23:11:34+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Produkty z adsPRO: 10
|
||||
- Tytuly do zmiany: 0
|
||||
- Kategorie do uzupelnienia: 0
|
||||
- Unit pricing do zmiany: 8
|
||||
- Pominiete: 2
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Unit pricing zostanie zapisany w adsPRO dopiero po akceptacji planu.
|
||||
|
||||
## Unit pricing do zmiany
|
||||
|
||||
| Produkt | Measure | Base measure | Powod |
|
||||
| --- | --- | --- | --- |
|
||||
| 3582 | 30 ml | 100 ml | brak unit pricing; wartosc wyliczona z nazwy produktu |
|
||||
| 3622 | 8 ml | 100 ml | brak unit pricing; wartosc wyliczona z nazwy produktu |
|
||||
| 2721 | 11 ml | 100 ml | brak unit pricing; wartosc wyliczona z nazwy produktu |
|
||||
| 2018 | 20 ml | 100 ml | brak unit pricing; wartosc wyliczona z nazwy produktu |
|
||||
| 3378 | 14 ml | 100 ml | brak unit pricing; wartosc wyliczona z nazwy produktu |
|
||||
| 3623 | 15 ml | 100 ml | brak unit pricing; wartosc wyliczona z nazwy produktu |
|
||||
| 1883 | 500 ml | 100 ml | brak unit pricing; wartosc wyliczona z nazwy produktu |
|
||||
| 2720 | 70 g | 100 g | brak unit pricing; wartosc wyliczona z nazwy produktu |
|
||||
|
||||
## Pominiete
|
||||
|
||||
| Produkt | Powod |
|
||||
| --- | --- |
|
||||
| 3393 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
| 3594 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
@@ -0,0 +1,291 @@
|
||||
{
|
||||
"created_at": "2026-05-15T23:13:26+02:00",
|
||||
"client": "innsi.pl",
|
||||
"task": "check_budget_usage",
|
||||
"task_name": "Sprawdzenie wykorzystania budzetu",
|
||||
"currency_code": "PLN",
|
||||
"campaigns": [
|
||||
{
|
||||
"campaign_id": "23796378384",
|
||||
"campaign_name": "[PLA_CL1] gen_factor",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15547616548",
|
||||
"budget_name": "[PLA_CL1] gen_factor",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 30000000,
|
||||
"expected_7d_micros": 210000000,
|
||||
"cost_7d_micros": 268620000,
|
||||
"avg_daily_cost_micros": 38374285,
|
||||
"usage_percent": 127.9,
|
||||
"pacing_label": "blisko limitu",
|
||||
"conversions": 6.0,
|
||||
"conversions_value": 1969.0,
|
||||
"roas": 7.33,
|
||||
"search_impression_share": 0.13164708225453098,
|
||||
"search_budget_lost_impression_share": 0.8683529177454691,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "wysokie",
|
||||
"action": "rozważ podniesienie budżetu",
|
||||
"reason": "kampania prawie wykorzystuje budzet, traci duzo wyswietlen przez budzet i ma dodatnia rentownosc",
|
||||
"suggested_budget_change_percent": 30,
|
||||
"current_daily_budget_micros": 30000000,
|
||||
"recommended_daily_budget_micros": 39000000,
|
||||
"budget_delta_micros": 9000000,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796424236",
|
||||
"campaign_name": "[PLA_CL1] podopharm",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15547649923",
|
||||
"budget_name": "[PLA_CL1] podopharm",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 30000000,
|
||||
"expected_7d_micros": 210000000,
|
||||
"cost_7d_micros": 262520000,
|
||||
"avg_daily_cost_micros": 37502857,
|
||||
"usage_percent": 125.0,
|
||||
"pacing_label": "blisko limitu",
|
||||
"conversions": 5.0,
|
||||
"conversions_value": 420.0,
|
||||
"roas": 1.6,
|
||||
"search_impression_share": 0.4300975995779478,
|
||||
"search_budget_lost_impression_share": 0.5699024004220522,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "srednie",
|
||||
"action": "sprawdz mozliwosc podniesienia budżetu",
|
||||
"reason": "kampania wykorzystuje budzet i traci czesc wyswietlen przez budzet",
|
||||
"suggested_budget_change_percent": 30,
|
||||
"current_daily_budget_micros": 30000000,
|
||||
"recommended_daily_budget_micros": 39000000,
|
||||
"budget_delta_micros": 9000000,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "21249422107",
|
||||
"campaign_name": "[PMax] products (catch-all)",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "PERFORMANCE_MAX",
|
||||
"budget_id": "13551431002",
|
||||
"budget_name": "[PMax] products (catch-all)",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 110000000,
|
||||
"expected_7d_micros": 770000000,
|
||||
"cost_7d_micros": 775322958,
|
||||
"avg_daily_cost_micros": 110760422,
|
||||
"usage_percent": 100.7,
|
||||
"pacing_label": "blisko limitu",
|
||||
"conversions": 14.0,
|
||||
"conversions_value": 1818.89,
|
||||
"roas": 2.35,
|
||||
"search_impression_share": 0.4568911876798631,
|
||||
"search_budget_lost_impression_share": 0.0,
|
||||
"search_rank_lost_impression_share": 0.5431088123201369,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "ok",
|
||||
"action": "bez zmiany budzetu",
|
||||
"reason": "brak jednoczesnego sygnalu wysokiego wykorzystania i utraty przez budzet",
|
||||
"suggested_budget_change_percent": 0,
|
||||
"current_daily_budget_micros": 110000000,
|
||||
"recommended_daily_budget_micros": 110000000,
|
||||
"budget_delta_micros": 0,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "9941029102",
|
||||
"campaign_name": "[Search] brand",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SEARCH",
|
||||
"budget_id": "6957234908",
|
||||
"budget_name": "[Search] brand",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 10000000,
|
||||
"expected_7d_micros": 70000000,
|
||||
"cost_7d_micros": 7653700,
|
||||
"avg_daily_cost_micros": 1093385,
|
||||
"usage_percent": 10.9,
|
||||
"pacing_label": "niskie wykorzystanie",
|
||||
"conversions": 0.0,
|
||||
"conversions_value": 0.0,
|
||||
"roas": 0.0,
|
||||
"search_impression_share": 0.9459459459459459,
|
||||
"search_budget_lost_impression_share": 0.0,
|
||||
"search_rank_lost_impression_share": 0.05405405405405406,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "ok",
|
||||
"action": "bez zmiany budzetu",
|
||||
"reason": "brak jednoczesnego sygnalu wysokiego wykorzystania i utraty przez budzet",
|
||||
"suggested_budget_change_percent": 0,
|
||||
"current_daily_budget_micros": 10000000,
|
||||
"recommended_daily_budget_micros": 10000000,
|
||||
"budget_delta_micros": 0,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796468366",
|
||||
"campaign_name": "[PLA_CL1] aurumaris",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15537855989",
|
||||
"budget_name": "[PLA_CL1] aurumaris",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 30000000,
|
||||
"expected_7d_micros": 210000000,
|
||||
"cost_7d_micros": 0,
|
||||
"avg_daily_cost_micros": 0,
|
||||
"usage_percent": 0.0,
|
||||
"pacing_label": "brak wydatkow",
|
||||
"conversions": 0.0,
|
||||
"conversions_value": 0.0,
|
||||
"roas": 0,
|
||||
"search_impression_share": 0.0,
|
||||
"search_budget_lost_impression_share": 0.0,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "do sprawdzenia",
|
||||
"action": "sprawdz brak wydatkow",
|
||||
"reason": "aktywna kampania nie wydala srodkow w ostatnich 7 dniach",
|
||||
"suggested_budget_change_percent": 0,
|
||||
"current_daily_budget_micros": 30000000,
|
||||
"recommended_daily_budget_micros": 30000000,
|
||||
"budget_delta_micros": 0,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23847226734",
|
||||
"campaign_name": "[PLA_CL1] mina_ibrow",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15586048495",
|
||||
"budget_name": "[PLA_CL1] mina_ibrow",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 30000000,
|
||||
"expected_7d_micros": 210000000,
|
||||
"cost_7d_micros": 0,
|
||||
"avg_daily_cost_micros": 0,
|
||||
"usage_percent": 0.0,
|
||||
"pacing_label": "brak wydatkow",
|
||||
"conversions": 0.0,
|
||||
"conversions_value": 0.0,
|
||||
"roas": 0,
|
||||
"search_impression_share": 0.0,
|
||||
"search_budget_lost_impression_share": 0.0,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "do sprawdzenia",
|
||||
"action": "sprawdz brak wydatkow",
|
||||
"reason": "aktywna kampania nie wydala srodkow w ostatnich 7 dniach",
|
||||
"suggested_budget_change_percent": 0,
|
||||
"current_daily_budget_micros": 30000000,
|
||||
"recommended_daily_budget_micros": 30000000,
|
||||
"budget_delta_micros": 0,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
}
|
||||
],
|
||||
"scope": [
|
||||
{
|
||||
"area": "Wydatki 7 dni",
|
||||
"check": "Porownaj koszt z ostatnich 7 dni z oczekiwanym wydatkiem wynikajacym z budzetu dziennego."
|
||||
},
|
||||
{
|
||||
"area": "Pacing",
|
||||
"check": "Oznacz kampanie, ktore wydaja bardzo malo albo prawie caly tygodniowy limit budzetu."
|
||||
},
|
||||
{
|
||||
"area": "Utrata wyswietlania przez budzet",
|
||||
"check": "Polacz wykorzystanie budzetu z utrata udzialu w wyswietleniach przez budzet i rentownoscia kampanii."
|
||||
},
|
||||
{
|
||||
"area": "Brak wydatkow",
|
||||
"check": "Wskaz aktywne kampanie z budzetem, ktore nie wydaly srodkow w ostatnich 7 dniach."
|
||||
},
|
||||
{
|
||||
"area": "Budzet wspoldzielony",
|
||||
"check": "Pokaz nazwe budzetu, zeby latwiej wychwycic kampanie korzystajace z tego samego budzetu."
|
||||
}
|
||||
],
|
||||
"out_of_scope": [
|
||||
"zmiany stawek i strategii ustalania stawek",
|
||||
"ocena Docelowego ROAS albo Docelowego CPA",
|
||||
"analiza zapytan, wykluczen i jakosci ruchu",
|
||||
"wdrazanie zmian budzetowych na koncie"
|
||||
],
|
||||
"knowledge_rules": [
|
||||
{
|
||||
"id": "smart_bidding_sequential_budget_and_target_changes",
|
||||
"topic": "strategie_stawek",
|
||||
"rule_type": "warning",
|
||||
"condition": "Plan zaklada zmiane budzetu albo celu Smart Bidding, szczegolnie gdy zmiana jest duza albo nastepuje krotko po innej zmianie budzetu, strategii lub celu.",
|
||||
"recommendation": "Zmiany budzetow i celow Smart Bidding wprowadzaj sekwencyjnie. Nie zmieniaj jednoczesnie budzetu i Docelowego ROAS albo Docelowego CPA, jesli nie jest to swiadoma decyzja. Duze zmiany oznaczaj jako wyzsze ryzyko uczenia algorytmu i rekomenduj obserwacje wynikow przed kolejna zmiana.",
|
||||
"risk": "Jednoczesne albo zbyt duze zmiany moga uruchomic niestabilny okres uczenia, utrudnic ocene przyczyny zmian wynikow i doprowadzic do nadmiernego wydawania budzetu albo utraty wolumenu konwersji.",
|
||||
"source": "manual"
|
||||
}
|
||||
],
|
||||
"warnings": [],
|
||||
"budget_changes": [
|
||||
{
|
||||
"campaign_id": "23796378384",
|
||||
"campaign_name": "[PLA_CL1] gen_factor",
|
||||
"budget_id": "15547616548",
|
||||
"budget_name": "[PLA_CL1] gen_factor",
|
||||
"current_daily_budget_micros": 30000000,
|
||||
"target_daily_budget_micros": 39000000,
|
||||
"delta_micros": 9000000,
|
||||
"reason": "kampania prawie wykorzystuje budzet, traci duzo wyswietlen przez budzet i ma dodatnia rentownosc"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796424236",
|
||||
"campaign_name": "[PLA_CL1] podopharm",
|
||||
"budget_id": "15547649923",
|
||||
"budget_name": "[PLA_CL1] podopharm",
|
||||
"current_daily_budget_micros": 30000000,
|
||||
"target_daily_budget_micros": 39000000,
|
||||
"delta_micros": 9000000,
|
||||
"reason": "kampania wykorzystuje budzet i traci czesc wyswietlen przez budzet"
|
||||
}
|
||||
],
|
||||
"changes": [
|
||||
{
|
||||
"campaign_id": "23796378384",
|
||||
"campaign_name": "[PLA_CL1] gen_factor",
|
||||
"budget_id": "15547616548",
|
||||
"budget_name": "[PLA_CL1] gen_factor",
|
||||
"current_daily_budget_micros": 30000000,
|
||||
"target_daily_budget_micros": 39000000,
|
||||
"delta_micros": 9000000,
|
||||
"reason": "kampania prawie wykorzystuje budzet, traci duzo wyswietlen przez budzet i ma dodatnia rentownosc"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796424236",
|
||||
"campaign_name": "[PLA_CL1] podopharm",
|
||||
"budget_id": "15547649923",
|
||||
"budget_name": "[PLA_CL1] podopharm",
|
||||
"current_daily_budget_micros": 30000000,
|
||||
"target_daily_budget_micros": 39000000,
|
||||
"delta_micros": 9000000,
|
||||
"reason": "kampania wykorzystuje budzet i traci czesc wyswietlen przez budzet"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
# Plan: Sprawdzenie wykorzystania budzetu
|
||||
|
||||
Klient: innsi.pl
|
||||
Utworzono: 2026-05-15T23:13:26+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Kampanie aktywne z danymi 7 dni: 6
|
||||
- Reguly wiedzy przypisane do zadania: 1
|
||||
- Rekomendacje budzetowe do decyzji: 4
|
||||
- Zmiany budzetu do wdrozenia: 0
|
||||
|
||||
## Zakres zadania
|
||||
|
||||
| Obszar | Co sprawdzic |
|
||||
| --- | --- |
|
||||
| Wydatki 7 dni | Porownaj koszt z ostatnich 7 dni z oczekiwanym wydatkiem wynikajacym z budzetu dziennego. |
|
||||
| Pacing | Oznacz kampanie, ktore wydaja bardzo malo albo prawie caly tygodniowy limit budzetu. |
|
||||
| Utrata wyswietlania przez budzet | Polacz wykorzystanie budzetu z utrata udzialu w wyswietleniach przez budzet i rentownoscia kampanii. |
|
||||
| Brak wydatkow | Wskaz aktywne kampanie z budzetem, ktore nie wydaly srodkow w ostatnich 7 dniach. |
|
||||
| Budzet wspoldzielony | Pokaz nazwe budzetu, zeby latwiej wychwycic kampanie korzystajace z tego samego budzetu. |
|
||||
|
||||
## Poza zakresem tego zadania
|
||||
|
||||
- zmiany stawek i strategii ustalania stawek
|
||||
- ocena Docelowego ROAS albo Docelowego CPA
|
||||
- analiza zapytan, wykluczen i jakosci ruchu
|
||||
- wdrazanie zmian budzetowych na koncie
|
||||
|
||||
## Wykorzystanie budzetu z ostatnich 7 dni
|
||||
|
||||
| Kampania | Typ | Budzet dzienny | Koszt 7 dni | Uzycie 7 dni | Utrata przez budzet | ROAS | Status | Ost. zmiana budzetu | Budzet |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| [PLA_CL1] gen_factor | SHOPPING | 30.00 PLN | 268.62 PLN | 127.9% | 86.84% | 7.33 | blisko limitu | brak danych | [PLA_CL1] gen_factor |
|
||||
| [PLA_CL1] podopharm | SHOPPING | 30.00 PLN | 262.52 PLN | 125.0% | 56.99% | 1.60 | blisko limitu | brak danych | [PLA_CL1] podopharm |
|
||||
| [PMax] products (catch-all) | PERFORMANCE_MAX | 110.00 PLN | 775.32 PLN | 100.7% | 0.00% | 2.35 | blisko limitu | brak danych | [PMax] products (catch-all) |
|
||||
| [Search] brand | SEARCH | 10.00 PLN | 7.65 PLN | 10.9% | 0.00% | - | niskie wykorzystanie | brak danych | [Search] brand |
|
||||
| [PLA_CL1] aurumaris | SHOPPING | 30.00 PLN | 0.00 PLN | 0.0% | 0.00% | - | brak wydatkow | brak danych | [PLA_CL1] aurumaris |
|
||||
| [PLA_CL1] mina_ibrow | SHOPPING | 30.00 PLN | 0.00 PLN | 0.0% | 0.00% | - | brak wydatkow | brak danych | [PLA_CL1] mina_ibrow |
|
||||
|
||||
## Rekomendacje budzetowe do decyzji
|
||||
|
||||
| Kampania | Waznosc | Obecnie | Propozycja | Zmiana | Powod |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| [PLA_CL1] gen_factor | wysokie | 30.00 PLN | 39.00 PLN | +30% (9.00 PLN) | kampania prawie wykorzystuje budzet, traci duzo wyswietlen przez budzet i ma dodatnia rentownosc |
|
||||
| [PLA_CL1] podopharm | srednie | 30.00 PLN | 39.00 PLN | +30% (9.00 PLN) | kampania wykorzystuje budzet i traci czesc wyswietlen przez budzet |
|
||||
| [PLA_CL1] aurumaris | do sprawdzenia | 30.00 PLN | 30.00 PLN | +0% (0.00 PLN) | aktywna kampania nie wydala srodkow w ostatnich 7 dniach |
|
||||
| [PLA_CL1] mina_ibrow | do sprawdzenia | 30.00 PLN | 30.00 PLN | +0% (0.00 PLN) | aktywna kampania nie wydala srodkow w ostatnich 7 dniach |
|
||||
|
||||
## Reguly z bazy wiedzy
|
||||
|
||||
| ID | Temat | Rekomendacja | Ryzyko |
|
||||
| --- | --- | --- | --- |
|
||||
| smart_bidding_sequential_budget_and_target_changes | strategie_stawek | Zmiany budzetow i celow Smart Bidding wprowadzaj sekwencyjnie. Nie zmieniaj jednoczesnie budzetu i Docelowego ROAS albo Docelowego CPA, jesli nie jest to swiadoma decyzja. Duze zmiany oznaczaj jako wyzsze ryzyko uczenia algorytmu i rekomenduj obserwacje wynikow przed kolejna zmiana. | Jednoczesne albo zbyt duze zmiany moga uruchomic niestabilny okres uczenia, utrudnic ocene przyczyny zmian wynikow i doprowadzic do nadmiernego wydawania budzetu albo utraty wolumenu konwersji. |
|
||||
@@ -0,0 +1,290 @@
|
||||
{
|
||||
"created_at": "2026-05-15T23:16:10+02:00",
|
||||
"client": "innsi.pl",
|
||||
"task": "check_bidding_strategies",
|
||||
"task_name": "Sprawdzenie strategii stawek",
|
||||
"currency_code": "PLN",
|
||||
"campaigns": [
|
||||
{
|
||||
"campaign_id": "23796378384",
|
||||
"campaign_name": "[PLA_CL1] gen_factor",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"bidding_strategy_type": "TARGET_ROAS",
|
||||
"bidding_strategy_resource": "",
|
||||
"budget_id": "15547616548",
|
||||
"budget_name": "[PLA_CL1] gen_factor",
|
||||
"daily_budget_micros": 39000000,
|
||||
"cost_30d_micros": 451010000,
|
||||
"conversions_30d": 9.0,
|
||||
"conversion_value_30d": 2901.0,
|
||||
"search_impression_share": 0.17227370826456773,
|
||||
"search_budget_lost_impression_share": 0.7625999746096229,
|
||||
"search_rank_lost_impression_share": 0.06512631712580932,
|
||||
"budget_usage_percent": 38.5,
|
||||
"actual_roas": 6.43,
|
||||
"target_cpa_micros": 0,
|
||||
"target_roas": 1.0,
|
||||
"maximize_conversions_target_cpa_micros": 0,
|
||||
"maximize_conversion_value_target_roas": 0.0,
|
||||
"target_label": "Docelowy ROAS 100%",
|
||||
"risk_label": "malo konwersji dla automatyzacji",
|
||||
"target_assessment": "za malo danych do oceny celu ROAS",
|
||||
"stability_label": "niestabilne: malo konwersji",
|
||||
"budget_context": "budzet zmieniony w ostatnich 7 dniach",
|
||||
"strategy_fit": "ryzykowne: za malo konwersji dla strategii wartosci",
|
||||
"bidding_recommendation": {
|
||||
"level": "czekaj",
|
||||
"action": "odczekaj przed zmiana strategii",
|
||||
"reason": "budzet byl niedawno zmieniony; najpierw zbierz nowe dane po zmianie"
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796424236",
|
||||
"campaign_name": "[PLA_CL1] podopharm",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"bidding_strategy_type": "TARGET_ROAS",
|
||||
"bidding_strategy_resource": "",
|
||||
"budget_id": "15547649923",
|
||||
"budget_name": "[PLA_CL1] podopharm",
|
||||
"daily_budget_micros": 39000000,
|
||||
"cost_30d_micros": 444330000,
|
||||
"conversions_30d": 8.0,
|
||||
"conversion_value_30d": 709.0,
|
||||
"search_impression_share": 0.45832987120897384,
|
||||
"search_budget_lost_impression_share": 0.4927295388450353,
|
||||
"search_rank_lost_impression_share": 0.04894058994599086,
|
||||
"budget_usage_percent": 38.0,
|
||||
"actual_roas": 1.6,
|
||||
"target_cpa_micros": 0,
|
||||
"target_roas": 1.0,
|
||||
"maximize_conversions_target_cpa_micros": 0,
|
||||
"maximize_conversion_value_target_roas": 0.0,
|
||||
"target_label": "Docelowy ROAS 100%",
|
||||
"risk_label": "malo konwersji dla automatyzacji",
|
||||
"target_assessment": "za malo danych do oceny celu ROAS",
|
||||
"stability_label": "niestabilne: malo konwersji",
|
||||
"budget_context": "budzet zmieniony w ostatnich 7 dniach",
|
||||
"strategy_fit": "ryzykowne: za malo konwersji dla strategii wartosci",
|
||||
"bidding_recommendation": {
|
||||
"level": "czekaj",
|
||||
"action": "odczekaj przed zmiana strategii",
|
||||
"reason": "budzet byl niedawno zmieniony; najpierw zbierz nowe dane po zmianie"
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796468366",
|
||||
"campaign_name": "[PLA_CL1] aurumaris",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"bidding_strategy_type": "TARGET_ROAS",
|
||||
"bidding_strategy_resource": "",
|
||||
"budget_id": "15537855989",
|
||||
"budget_name": "[PLA_CL1] aurumaris",
|
||||
"daily_budget_micros": 30000000,
|
||||
"cost_30d_micros": 0,
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"search_impression_share": 0.0,
|
||||
"search_budget_lost_impression_share": 0.0,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"budget_usage_percent": 0.0,
|
||||
"actual_roas": 0.0,
|
||||
"target_cpa_micros": 0,
|
||||
"target_roas": 2.0,
|
||||
"maximize_conversions_target_cpa_micros": 0,
|
||||
"maximize_conversion_value_target_roas": 0.0,
|
||||
"target_label": "Docelowy ROAS 200%",
|
||||
"risk_label": "brak konwersji w 30 dni",
|
||||
"target_assessment": "brak jawnego celu do oceny",
|
||||
"stability_label": "niestabilne: brak konwersji",
|
||||
"budget_context": "brak silnego sygnalu budzetowego",
|
||||
"strategy_fit": "ryzykowne: za malo konwersji dla strategii wartosci",
|
||||
"bidding_recommendation": {
|
||||
"level": "ostroznie",
|
||||
"action": "nie zmieniaj strategii",
|
||||
"reason": "niestabilne: brak konwersji"
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23847226734",
|
||||
"campaign_name": "[PLA_CL1] mina_ibrow",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"bidding_strategy_type": "TARGET_ROAS",
|
||||
"bidding_strategy_resource": "",
|
||||
"budget_id": "15586048495",
|
||||
"budget_name": "[PLA_CL1] mina_ibrow",
|
||||
"daily_budget_micros": 30000000,
|
||||
"cost_30d_micros": 0,
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"search_impression_share": 0.0,
|
||||
"search_budget_lost_impression_share": 0.0,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"budget_usage_percent": 0.0,
|
||||
"actual_roas": 0.0,
|
||||
"target_cpa_micros": 0,
|
||||
"target_roas": 2.0,
|
||||
"maximize_conversions_target_cpa_micros": 0,
|
||||
"maximize_conversion_value_target_roas": 0.0,
|
||||
"target_label": "Docelowy ROAS 200%",
|
||||
"risk_label": "brak konwersji w 30 dni",
|
||||
"target_assessment": "brak jawnego celu do oceny",
|
||||
"stability_label": "niestabilne: brak konwersji",
|
||||
"budget_context": "brak silnego sygnalu budzetowego",
|
||||
"strategy_fit": "ryzykowne: za malo konwersji dla strategii wartosci",
|
||||
"bidding_recommendation": {
|
||||
"level": "ostroznie",
|
||||
"action": "nie zmieniaj strategii",
|
||||
"reason": "niestabilne: brak konwersji"
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "9941029102",
|
||||
"campaign_name": "[Search] brand",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SEARCH",
|
||||
"bidding_strategy_type": "TARGET_IMPRESSION_SHARE",
|
||||
"bidding_strategy_resource": "",
|
||||
"budget_id": "6957234908",
|
||||
"budget_name": "[Search] brand",
|
||||
"daily_budget_micros": 10000000,
|
||||
"cost_30d_micros": 29965339,
|
||||
"conversions_30d": 5.0,
|
||||
"conversion_value_30d": 2028.5,
|
||||
"search_impression_share": 0.8723404255319149,
|
||||
"search_budget_lost_impression_share": 0.07446808510638298,
|
||||
"search_rank_lost_impression_share": 0.05319148936170213,
|
||||
"budget_usage_percent": 10.0,
|
||||
"actual_roas": 67.68,
|
||||
"target_cpa_micros": 0,
|
||||
"target_roas": 0.0,
|
||||
"maximize_conversions_target_cpa_micros": 0,
|
||||
"maximize_conversion_value_target_roas": 0.0,
|
||||
"target_label": "brak jawnego celu",
|
||||
"risk_label": "dane do oceny",
|
||||
"target_assessment": "brak jawnego celu do oceny",
|
||||
"stability_label": "niestabilne: malo konwersji",
|
||||
"budget_context": "niskie wykorzystanie budzetu",
|
||||
"strategy_fit": "pasuje do kampanii brand/search, nie optymalizuje bezposrednio wartosci konwersji",
|
||||
"bidding_recommendation": {
|
||||
"level": "ostroznie",
|
||||
"action": "nie zmieniaj strategii",
|
||||
"reason": "niestabilne: malo konwersji"
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "21249422107",
|
||||
"campaign_name": "[PMax] products (catch-all)",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "PERFORMANCE_MAX",
|
||||
"bidding_strategy_type": "MAXIMIZE_CONVERSIONS",
|
||||
"bidding_strategy_resource": "",
|
||||
"budget_id": "13551431002",
|
||||
"budget_name": "[PMax] products (catch-all)",
|
||||
"daily_budget_micros": 110000000,
|
||||
"cost_30d_micros": 3542159032,
|
||||
"conversions_30d": 74.207715,
|
||||
"conversion_value_30d": 11235.863462248,
|
||||
"search_impression_share": 0.4485326950899316,
|
||||
"search_budget_lost_impression_share": 0.0,
|
||||
"search_rank_lost_impression_share": 0.5514673049100685,
|
||||
"budget_usage_percent": 107.3,
|
||||
"actual_roas": 3.17,
|
||||
"target_cpa_micros": 0,
|
||||
"target_roas": 0.0,
|
||||
"maximize_conversions_target_cpa_micros": 0,
|
||||
"maximize_conversion_value_target_roas": 0.0,
|
||||
"target_label": "brak jawnego celu",
|
||||
"risk_label": "dane do oceny",
|
||||
"target_assessment": "brak jawnego celu do oceny",
|
||||
"stability_label": "stabilne",
|
||||
"budget_context": "budzet blisko limitu",
|
||||
"strategy_fit": "pasuje do celu pozyskiwania konwersji",
|
||||
"bidding_recommendation": {
|
||||
"level": "ok",
|
||||
"action": "bez zmiany strategii",
|
||||
"reason": "brak mocnego sygnalu do zmiany celu albo strategii"
|
||||
}
|
||||
}
|
||||
],
|
||||
"scope": [
|
||||
{
|
||||
"area": "Typ strategii",
|
||||
"check": "Pokaz typ strategii ustalania stawek dla aktywnych kampanii."
|
||||
},
|
||||
{
|
||||
"area": "Cele strategii",
|
||||
"check": "Pokaz aktualny Docelowy ROAS albo Docelowy CPA, jezeli kampania go uzywa."
|
||||
},
|
||||
{
|
||||
"area": "Wolumen konwersji",
|
||||
"check": "Sprawdz liczbe konwersji z ostatnich 30 dni jako kontekst dla automatycznych strategii."
|
||||
},
|
||||
{
|
||||
"area": "Stabilnosc decyzji",
|
||||
"check": "Oznacz kampanie, gdzie malo danych zwieksza ryzyko pochopnej zmiany strategii albo celu."
|
||||
},
|
||||
{
|
||||
"area": "Ocena celu",
|
||||
"check": "Porownaj rzeczywisty ROAS/CPA z aktualnym celem i oznacz cele zbyt niskie albo zbyt wysokie."
|
||||
},
|
||||
{
|
||||
"area": "Kontekst budzetu",
|
||||
"check": "Uwzglednij wykorzystanie budzetu i utrate wyswietlania przez budzet przed rekomendacja zmiany strategii."
|
||||
},
|
||||
{
|
||||
"area": "Zmiany po budzecie",
|
||||
"check": "Jesli budzet byl niedawno zmieniany, rekomenduj odczekanie przed zmiana strategii albo celu."
|
||||
},
|
||||
{
|
||||
"area": "Dopasowanie strategii",
|
||||
"check": "Sprawdz, czy strategia pasuje do typu kampanii i dostepnego wolumenu danych."
|
||||
},
|
||||
{
|
||||
"area": "Rekomendacja",
|
||||
"check": "Pokaz konkretna rekomendacje decyzyjna bez automatycznego wdrazania zmian strategii."
|
||||
}
|
||||
],
|
||||
"out_of_scope": [
|
||||
"budzety i pacing budzetu",
|
||||
"podstawowe ustawienia kampanii, np. lokalizacje i sieci",
|
||||
"zapytania uzytkownikow oraz wykluczenia",
|
||||
"reklamy, zasoby i kreacje",
|
||||
"automatyczne wdrazanie zmian strategii stawek"
|
||||
],
|
||||
"knowledge_rules": [
|
||||
{
|
||||
"id": "search_new_campaign_no_weak_conversion_automation",
|
||||
"topic": "strategie_stawek",
|
||||
"rule_type": "warning",
|
||||
"condition": "Nowa kampania Search bez historii danych używa automatycznej strategii opartej o konwersje albo opiera się na słabych, zbyt ogólnych lub niewiarygodnych konwersjach.",
|
||||
"recommendation": "Nie startuj kampanii Search od automatyzacji opartej o konwersje, jeśli konto nie ma jakościowych danych. Najpierw ustaw konkretne cele konwersji, sprawdź pomiar i zbuduj sensowną strukturę słów kluczowych.",
|
||||
"risk": "Algorytm może uczyć się na zbyt małej albo błędnej liczbie sygnałów, przez co kampania będzie źle wydawać budżet i zbierze dane niskiej jakości.",
|
||||
"source": "manual"
|
||||
},
|
||||
{
|
||||
"id": "target_roas_too_high_can_limit_spend",
|
||||
"topic": "strategie_stawek",
|
||||
"rule_type": "warning",
|
||||
"condition": "Kampania używa strategii opartej o Docelowy ROAS, ma wystarczająco danych do oceny, a rzeczywisty ROAS jest wyraźnie niższy od ustawionego celu.",
|
||||
"recommendation": "W planie oznacz, że Docelowy ROAS może być zbyt restrykcyjny. Przed zmianą celu wskaż, czy problem wynika z jakości kampanii, oferty lub feedu, czy z samego celu ustawionego zbyt wysoko względem aktualnej efektywności.",
|
||||
"risk": "Zbyt wysoki Docelowy ROAS może ograniczać wydatki, zmniejszać liczbę wyświetleń i blokować skalowanie kampanii, mimo że kampania mogłaby generować wartościowy ruch przy mniej restrykcyjnym celu.",
|
||||
"source": "manual"
|
||||
},
|
||||
{
|
||||
"id": "smart_bidding_sequential_budget_and_target_changes",
|
||||
"topic": "strategie_stawek",
|
||||
"rule_type": "warning",
|
||||
"condition": "Plan zaklada zmiane budzetu albo celu Smart Bidding, szczegolnie gdy zmiana jest duza albo nastepuje krotko po innej zmianie budzetu, strategii lub celu.",
|
||||
"recommendation": "Zmiany budzetow i celow Smart Bidding wprowadzaj sekwencyjnie. Nie zmieniaj jednoczesnie budzetu i Docelowego ROAS albo Docelowego CPA, jesli nie jest to swiadoma decyzja. Duze zmiany oznaczaj jako wyzsze ryzyko uczenia algorytmu i rekomenduj obserwacje wynikow przed kolejna zmiana.",
|
||||
"risk": "Jednoczesne albo zbyt duze zmiany moga uruchomic niestabilny okres uczenia, utrudnic ocene przyczyny zmian wynikow i doprowadzic do nadmiernego wydawania budzetu albo utraty wolumenu konwersji.",
|
||||
"source": "manual"
|
||||
}
|
||||
],
|
||||
"warnings": [],
|
||||
"target_changes": [],
|
||||
"changes": []
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
# Plan: Sprawdzenie strategii stawek
|
||||
|
||||
Klient: innsi.pl
|
||||
Utworzono: 2026-05-15T23:16:10+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Kampanie aktywne z danymi 30 dni: 6
|
||||
- Reguly wiedzy przypisane do zadania: 3
|
||||
- Rekomendacje strategii do decyzji: 5
|
||||
- Zmiany celu do wdrozenia po akceptacji: 0
|
||||
|
||||
## Zakres zadania
|
||||
|
||||
| Obszar | Co sprawdzic |
|
||||
| --- | --- |
|
||||
| Typ strategii | Pokaz typ strategii ustalania stawek dla aktywnych kampanii. |
|
||||
| Cele strategii | Pokaz aktualny Docelowy ROAS albo Docelowy CPA, jezeli kampania go uzywa. |
|
||||
| Wolumen konwersji | Sprawdz liczbe konwersji z ostatnich 30 dni jako kontekst dla automatycznych strategii. |
|
||||
| Stabilnosc decyzji | Oznacz kampanie, gdzie malo danych zwieksza ryzyko pochopnej zmiany strategii albo celu. |
|
||||
| Ocena celu | Porownaj rzeczywisty ROAS/CPA z aktualnym celem i oznacz cele zbyt niskie albo zbyt wysokie. |
|
||||
| Kontekst budzetu | Uwzglednij wykorzystanie budzetu i utrate wyswietlania przez budzet przed rekomendacja zmiany strategii. |
|
||||
| Zmiany po budzecie | Jesli budzet byl niedawno zmieniany, rekomenduj odczekanie przed zmiana strategii albo celu. |
|
||||
| Dopasowanie strategii | Sprawdz, czy strategia pasuje do typu kampanii i dostepnego wolumenu danych. |
|
||||
| Rekomendacja | Pokaz konkretna rekomendacje decyzyjna bez automatycznego wdrazania zmian strategii. |
|
||||
|
||||
## Poza zakresem tego zadania
|
||||
|
||||
- budzety i pacing budzetu
|
||||
- podstawowe ustawienia kampanii, np. lokalizacje i sieci
|
||||
- zapytania uzytkownikow oraz wykluczenia
|
||||
- reklamy, zasoby i kreacje
|
||||
- automatyczne wdrazanie zmian strategii stawek
|
||||
|
||||
## Strategie stawek z ostatnich 30 dni
|
||||
|
||||
| Kampania | Typ | Strategia | Cel | Koszt | Konwersje | Wartosc konwersji | ROAS | Utrata budzet | Ocena celu | Stabilnosc | Budzet |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| [PLA_CL1] gen_factor | SHOPPING | TARGET_ROAS | Docelowy ROAS 100% | 451.01 PLN | 9.00 | 2901.00 | 6.43 | 76.26% | za malo danych do oceny celu ROAS | niestabilne: malo konwersji | budzet zmieniony w ostatnich 7 dniach |
|
||||
| [PLA_CL1] podopharm | SHOPPING | TARGET_ROAS | Docelowy ROAS 100% | 444.33 PLN | 8.00 | 709.00 | 1.60 | 49.27% | za malo danych do oceny celu ROAS | niestabilne: malo konwersji | budzet zmieniony w ostatnich 7 dniach |
|
||||
| [PLA_CL1] aurumaris | SHOPPING | TARGET_ROAS | Docelowy ROAS 200% | 0.00 PLN | 0.00 | 0.00 | 0.00 | 0.00% | brak jawnego celu do oceny | niestabilne: brak konwersji | brak silnego sygnalu budzetowego |
|
||||
| [PLA_CL1] mina_ibrow | SHOPPING | TARGET_ROAS | Docelowy ROAS 200% | 0.00 PLN | 0.00 | 0.00 | 0.00 | 0.00% | brak jawnego celu do oceny | niestabilne: brak konwersji | brak silnego sygnalu budzetowego |
|
||||
| [Search] brand | SEARCH | TARGET_IMPRESSION_SHARE | brak jawnego celu | 29.97 PLN | 5.00 | 2028.50 | 67.68 | 7.45% | brak jawnego celu do oceny | niestabilne: malo konwersji | niskie wykorzystanie budzetu |
|
||||
| [PMax] products (catch-all) | PERFORMANCE_MAX | MAXIMIZE_CONVERSIONS | brak jawnego celu | 3542.16 PLN | 74.21 | 11235.86 | 3.17 | 0.00% | brak jawnego celu do oceny | stabilne | budzet blisko limitu |
|
||||
|
||||
## Rekomendacje strategii do decyzji
|
||||
|
||||
| Kampania | Waznosc | Rekomendacja | Powod | Dopasowanie strategii |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [PLA_CL1] gen_factor | czekaj | odczekaj przed zmiana strategii | budzet byl niedawno zmieniony; najpierw zbierz nowe dane po zmianie | ryzykowne: za malo konwersji dla strategii wartosci |
|
||||
| [PLA_CL1] podopharm | czekaj | odczekaj przed zmiana strategii | budzet byl niedawno zmieniony; najpierw zbierz nowe dane po zmianie | ryzykowne: za malo konwersji dla strategii wartosci |
|
||||
| [PLA_CL1] aurumaris | ostroznie | nie zmieniaj strategii | niestabilne: brak konwersji | ryzykowne: za malo konwersji dla strategii wartosci |
|
||||
| [PLA_CL1] mina_ibrow | ostroznie | nie zmieniaj strategii | niestabilne: brak konwersji | ryzykowne: za malo konwersji dla strategii wartosci |
|
||||
| [Search] brand | ostroznie | nie zmieniaj strategii | niestabilne: malo konwersji | pasuje do kampanii brand/search, nie optymalizuje bezposrednio wartosci konwersji |
|
||||
|
||||
## Reguly z bazy wiedzy
|
||||
|
||||
| ID | Temat | Rekomendacja | Ryzyko |
|
||||
| --- | --- | --- | --- |
|
||||
| search_new_campaign_no_weak_conversion_automation | strategie_stawek | Nie startuj kampanii Search od automatyzacji opartej o konwersje, jeśli konto nie ma jakościowych danych. Najpierw ustaw konkretne cele konwersji, sprawdź pomiar i zbuduj sensowną strukturę słów kluczowych. | Algorytm może uczyć się na zbyt małej albo błędnej liczbie sygnałów, przez co kampania będzie źle wydawać budżet i zbierze dane niskiej jakości. |
|
||||
| target_roas_too_high_can_limit_spend | strategie_stawek | W planie oznacz, że Docelowy ROAS może być zbyt restrykcyjny. Przed zmianą celu wskaż, czy problem wynika z jakości kampanii, oferty lub feedu, czy z samego celu ustawionego zbyt wysoko względem aktualnej efektywności. | Zbyt wysoki Docelowy ROAS może ograniczać wydatki, zmniejszać liczbę wyświetleń i blokować skalowanie kampanii, mimo że kampania mogłaby generować wartościowy ruch przy mniej restrykcyjnym celu. |
|
||||
| smart_bidding_sequential_budget_and_target_changes | strategie_stawek | Zmiany budzetow i celow Smart Bidding wprowadzaj sekwencyjnie. Nie zmieniaj jednoczesnie budzetu i Docelowego ROAS albo Docelowego CPA, jesli nie jest to swiadoma decyzja. Duze zmiany oznaczaj jako wyzsze ryzyko uczenia algorytmu i rekomenduj obserwacje wynikow przed kolejna zmiana. | Jednoczesne albo zbyt duze zmiany moga uruchomic niestabilny okres uczenia, utrudnic ocene przyczyny zmian wynikow i doprowadzic do nadmiernego wydawania budzetu albo utraty wolumenu konwersji. |
|
||||
@@ -0,0 +1,242 @@
|
||||
{
|
||||
"created_at": "2026-05-15T23:16:49+02:00",
|
||||
"client": "innsi.pl",
|
||||
"task": "check_account_anomalies",
|
||||
"task_name": "Sprawdzenie anomalii konta",
|
||||
"currency_code": "PLN",
|
||||
"recent_period": {
|
||||
"label": "ostatnie 7 zakonczonych dni",
|
||||
"start": "2026-05-08",
|
||||
"end": "2026-05-14"
|
||||
},
|
||||
"previous_period": {
|
||||
"label": "poprzednie 7 dni",
|
||||
"start": "2026-05-01",
|
||||
"end": "2026-05-07"
|
||||
},
|
||||
"account_summary": [
|
||||
{
|
||||
"metric": "Koszt",
|
||||
"previous": "1136.04 PLN",
|
||||
"recent": "1314.12 PLN",
|
||||
"change_percent": "+15.7%"
|
||||
},
|
||||
{
|
||||
"metric": "Klikniecia",
|
||||
"previous": "693",
|
||||
"recent": "829",
|
||||
"change_percent": "+19.6%"
|
||||
},
|
||||
{
|
||||
"metric": "Wyswietlenia",
|
||||
"previous": "68049",
|
||||
"recent": "73306",
|
||||
"change_percent": "+7.7%"
|
||||
},
|
||||
{
|
||||
"metric": "Konwersje",
|
||||
"previous": "27.00",
|
||||
"recent": "25.00",
|
||||
"change_percent": "-7.4%"
|
||||
},
|
||||
{
|
||||
"metric": "Wartosc konwersji",
|
||||
"previous": "4557.50 PLN",
|
||||
"recent": "4207.89 PLN",
|
||||
"change_percent": "-7.7%"
|
||||
},
|
||||
{
|
||||
"metric": "CTR",
|
||||
"previous": "1.0%",
|
||||
"recent": "1.1%",
|
||||
"change_percent": "+10.8%"
|
||||
},
|
||||
{
|
||||
"metric": "Sredni CPC",
|
||||
"previous": "1.64 PLN",
|
||||
"recent": "1.59 PLN",
|
||||
"change_percent": "-3.3%"
|
||||
},
|
||||
{
|
||||
"metric": "ROAS",
|
||||
"previous": "4.01",
|
||||
"recent": "3.20",
|
||||
"change_percent": "-20.2%"
|
||||
}
|
||||
],
|
||||
"campaigns": [
|
||||
{
|
||||
"campaign_id": "21249422107",
|
||||
"campaign_name": "[PMax] products (catch-all)",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "PERFORMANCE_MAX",
|
||||
"previous_cost": "769.01 PLN",
|
||||
"recent_cost": "775.32 PLN",
|
||||
"cost_change": "+0.8%",
|
||||
"previous_clicks": "551",
|
||||
"recent_clicks": "555",
|
||||
"clicks_change": "+0.7%",
|
||||
"previous_conversions": "19.00",
|
||||
"recent_conversions": "14.00",
|
||||
"conversions_change": "-26.3%",
|
||||
"previous_roas": "3.64",
|
||||
"recent_roas": "2.35",
|
||||
"roas_change": "-35.4%"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796378384",
|
||||
"campaign_name": "[PLA_CL1] gen_factor",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"previous_cost": "179.99 PLN",
|
||||
"recent_cost": "268.62 PLN",
|
||||
"cost_change": "+49.2%",
|
||||
"previous_clicks": "40",
|
||||
"recent_clicks": "78",
|
||||
"clicks_change": "+95.0%",
|
||||
"previous_conversions": "3.00",
|
||||
"recent_conversions": "6.00",
|
||||
"conversions_change": "+100.0%",
|
||||
"previous_roas": "5.18",
|
||||
"recent_roas": "7.33",
|
||||
"roas_change": "+41.5%"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796424236",
|
||||
"campaign_name": "[PLA_CL1] podopharm",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"previous_cost": "181.81 PLN",
|
||||
"recent_cost": "262.52 PLN",
|
||||
"cost_change": "+44.4%",
|
||||
"previous_clicks": "90",
|
||||
"recent_clicks": "177",
|
||||
"clicks_change": "+96.7%",
|
||||
"previous_conversions": "3.00",
|
||||
"recent_conversions": "5.00",
|
||||
"conversions_change": "+66.7%",
|
||||
"previous_roas": "1.59",
|
||||
"recent_roas": "1.60",
|
||||
"roas_change": "+0.6%"
|
||||
},
|
||||
{
|
||||
"campaign_id": "9941029102",
|
||||
"campaign_name": "[Search] brand",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SEARCH",
|
||||
"previous_cost": "5.23 PLN",
|
||||
"recent_cost": "7.65 PLN",
|
||||
"cost_change": "+46.3%",
|
||||
"previous_clicks": "12",
|
||||
"recent_clicks": "19",
|
||||
"clicks_change": "+58.3%",
|
||||
"previous_conversions": "2.00",
|
||||
"recent_conversions": "0.00",
|
||||
"conversions_change": "-100.0%",
|
||||
"previous_roas": "102.20",
|
||||
"recent_roas": "0.00",
|
||||
"roas_change": "-100.0%"
|
||||
}
|
||||
],
|
||||
"anomalies": [
|
||||
{
|
||||
"campaign_id": "9941029102",
|
||||
"campaign_name": "[Search] brand",
|
||||
"channel_type": "SEARCH",
|
||||
"status": "ENABLED",
|
||||
"metric": "wartosc konwersji",
|
||||
"severity": "wysokie",
|
||||
"previous_value": "534.50 PLN",
|
||||
"recent_value": "0.00 PLN",
|
||||
"change_percent": "-100.0%",
|
||||
"reason": "wartosc konwersji spadla o co najmniej polowe",
|
||||
"recommendation": "sprawdz pomiar, koszyk, kampanie produktowe i jakosc ruchu"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796378384",
|
||||
"campaign_name": "[PLA_CL1] gen_factor",
|
||||
"channel_type": "SHOPPING",
|
||||
"status": "ENABLED",
|
||||
"metric": "klikniecia",
|
||||
"severity": "niskie",
|
||||
"previous_value": "40",
|
||||
"recent_value": "78",
|
||||
"change_percent": "+95.0%",
|
||||
"reason": "klikniecia wzrosly bardzo mocno tydzien do tygodnia",
|
||||
"recommendation": "sprawdz, czy wzrost jest jakosciowy i nie wynika z niepasujacego ruchu"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796378384",
|
||||
"campaign_name": "[PLA_CL1] gen_factor",
|
||||
"channel_type": "SHOPPING",
|
||||
"status": "ENABLED",
|
||||
"metric": "konwersje",
|
||||
"severity": "niskie",
|
||||
"previous_value": "3.00",
|
||||
"recent_value": "6.00",
|
||||
"change_percent": "+100.0%",
|
||||
"reason": "konwersje wzrosly bardzo mocno tydzien do tygodnia",
|
||||
"recommendation": "sprawdz, czy wzrost jest rzeczywisty i czy nie zmienil sie pomiar"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796378384",
|
||||
"campaign_name": "[PLA_CL1] gen_factor",
|
||||
"channel_type": "SHOPPING",
|
||||
"status": "ENABLED",
|
||||
"metric": "wartosc konwersji",
|
||||
"severity": "niskie",
|
||||
"previous_value": "932.00 PLN",
|
||||
"recent_value": "1969.00 PLN",
|
||||
"change_percent": "+111.3%",
|
||||
"reason": "wartosc konwersji wzrosla ponad dwukrotnie",
|
||||
"recommendation": "sprawdz, czy wzrost wynika z realnej sprzedazy, a nie zmiany pomiaru"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23796424236",
|
||||
"campaign_name": "[PLA_CL1] podopharm",
|
||||
"channel_type": "SHOPPING",
|
||||
"status": "ENABLED",
|
||||
"metric": "klikniecia",
|
||||
"severity": "niskie",
|
||||
"previous_value": "90",
|
||||
"recent_value": "177",
|
||||
"change_percent": "+96.7%",
|
||||
"reason": "klikniecia wzrosly bardzo mocno tydzien do tygodnia",
|
||||
"recommendation": "sprawdz, czy wzrost jest jakosciowy i nie wynika z niepasujacego ruchu"
|
||||
}
|
||||
],
|
||||
"scope": [
|
||||
{
|
||||
"area": "Okres porownania",
|
||||
"check": "Porownaj ostatnie 7 zakonczonych dni z poprzednimi 7 dniami, bez uzywania niepelnych danych z dzisiaj."
|
||||
},
|
||||
{
|
||||
"area": "Metryki kampanii",
|
||||
"check": "Sprawdz koszt, klikniecia, wyswietlenia, konwersje, wartosc konwersji, CTR, CPC i ROAS na poziomie aktywnych kampanii."
|
||||
},
|
||||
{
|
||||
"area": "Nagly spadek",
|
||||
"check": "Oznacz kampanie, w ktorych spadl ruch, koszt, konwersje, wartosc konwersji albo ROAS."
|
||||
},
|
||||
{
|
||||
"area": "Nagly wzrost",
|
||||
"check": "Oznacz kampanie, w ktorych koszt, CPC albo ruch wzrosly szybciej niz wyniki."
|
||||
},
|
||||
{
|
||||
"area": "Priorytet reakcji",
|
||||
"check": "Nadaj anomaliom poziom waznosci, aby agent mogl szybko zdecydowac, ktore kampanie sprawdzic jako pierwsze."
|
||||
}
|
||||
],
|
||||
"out_of_scope": [
|
||||
"zmiany budzetow i ocena pacingu budzetu",
|
||||
"zmiany strategii stawek oraz celow Docelowy ROAS/Docelowy CPA",
|
||||
"analiza zapytan uzytkownikow oraz wykluczen",
|
||||
"analiza reklam RSA, zasobow i kreacji",
|
||||
"wdrazanie zmian na koncie Google Ads"
|
||||
],
|
||||
"knowledge_rules": [],
|
||||
"warnings": [
|
||||
"Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. Reguly dotyczace anomalii i alertow bedziemy dopisywac osobno po akceptacji uzytkownika."
|
||||
],
|
||||
"changes": []
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
# Plan: Sprawdzenie anomalii konta
|
||||
|
||||
Klient: innsi.pl
|
||||
Utworzono: 2026-05-15T23:16:49+02:00
|
||||
|
||||
## Okresy
|
||||
|
||||
- Ostatnie 7 zakonczonych dni: 2026-05-08 - 2026-05-14
|
||||
- Poprzednie 7 dni: 2026-05-01 - 2026-05-07
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Kampanie z danymi: 4
|
||||
- Wykryte anomalie: 5
|
||||
- Reguly wiedzy przypisane do zadania: 0
|
||||
- Zmiany do wdrozenia: 0
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. Reguly dotyczace anomalii i alertow bedziemy dopisywac osobno po akceptacji uzytkownika.
|
||||
|
||||
## Zakres zadania
|
||||
|
||||
| Obszar | Co sprawdzic |
|
||||
| --- | --- |
|
||||
| Okres porownania | Porownaj ostatnie 7 zakonczonych dni z poprzednimi 7 dniami, bez uzywania niepelnych danych z dzisiaj. |
|
||||
| Metryki kampanii | Sprawdz koszt, klikniecia, wyswietlenia, konwersje, wartosc konwersji, CTR, CPC i ROAS na poziomie aktywnych kampanii. |
|
||||
| Nagly spadek | Oznacz kampanie, w ktorych spadl ruch, koszt, konwersje, wartosc konwersji albo ROAS. |
|
||||
| Nagly wzrost | Oznacz kampanie, w ktorych koszt, CPC albo ruch wzrosly szybciej niz wyniki. |
|
||||
| Priorytet reakcji | Nadaj anomaliom poziom waznosci, aby agent mogl szybko zdecydowac, ktore kampanie sprawdzic jako pierwsze. |
|
||||
|
||||
## Poza zakresem tego zadania
|
||||
|
||||
- zmiany budzetow i ocena pacingu budzetu
|
||||
- zmiany strategii stawek oraz celow Docelowy ROAS/Docelowy CPA
|
||||
- analiza zapytan uzytkownikow oraz wykluczen
|
||||
- analiza reklam RSA, zasobow i kreacji
|
||||
- wdrazanie zmian na koncie Google Ads
|
||||
|
||||
## Podsumowanie konta
|
||||
|
||||
| Metryka | Poprzednie 7 dni | Ostatnie 7 dni | Zmiana |
|
||||
| --- | --- | --- | --- |
|
||||
| Koszt | 1136.04 PLN | 1314.12 PLN | +15.7% |
|
||||
| Klikniecia | 693 | 829 | +19.6% |
|
||||
| Wyswietlenia | 68049 | 73306 | +7.7% |
|
||||
| Konwersje | 27.00 | 25.00 | -7.4% |
|
||||
| Wartosc konwersji | 4557.50 PLN | 4207.89 PLN | -7.7% |
|
||||
| CTR | 1.0% | 1.1% | +10.8% |
|
||||
| Sredni CPC | 1.64 PLN | 1.59 PLN | -3.3% |
|
||||
| ROAS | 4.01 | 3.20 | -20.2% |
|
||||
|
||||
## Wykryte anomalie
|
||||
|
||||
| Waznosc | Kampania | Metryka | Poprzednio | Teraz | Zmiana | Powod | Rekomendacja |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| wysokie | [Search] brand | wartosc konwersji | 534.50 PLN | 0.00 PLN | -100.0% | wartosc konwersji spadla o co najmniej polowe | sprawdz pomiar, koszyk, kampanie produktowe i jakosc ruchu |
|
||||
| niskie | [PLA_CL1] gen_factor | klikniecia | 40 | 78 | +95.0% | klikniecia wzrosly bardzo mocno tydzien do tygodnia | sprawdz, czy wzrost jest jakosciowy i nie wynika z niepasujacego ruchu |
|
||||
| niskie | [PLA_CL1] gen_factor | konwersje | 3.00 | 6.00 | +100.0% | konwersje wzrosly bardzo mocno tydzien do tygodnia | sprawdz, czy wzrost jest rzeczywisty i czy nie zmienil sie pomiar |
|
||||
| niskie | [PLA_CL1] gen_factor | wartosc konwersji | 932.00 PLN | 1969.00 PLN | +111.3% | wartosc konwersji wzrosla ponad dwukrotnie | sprawdz, czy wzrost wynika z realnej sprzedazy, a nie zmiany pomiaru |
|
||||
| niskie | [PLA_CL1] podopharm | klikniecia | 90 | 177 | +96.7% | klikniecia wzrosly bardzo mocno tydzien do tygodnia | sprawdz, czy wzrost jest jakosciowy i nie wynika z niepasujacego ruchu |
|
||||
|
||||
## Porownanie kampanii
|
||||
|
||||
| Kampania | Typ | Status | Koszt poprzednio | Koszt teraz | Zmiana kosztu | Konwersje poprzednio | Konwersje teraz | Zmiana konwersji | ROAS poprzednio | ROAS teraz | Zmiana ROAS |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| [PMax] products (catch-all) | PERFORMANCE_MAX | ENABLED | 769.01 PLN | 775.32 PLN | +0.8% | 19.00 | 14.00 | -26.3% | 3.64 | 2.35 | -35.4% |
|
||||
| [PLA_CL1] gen_factor | SHOPPING | ENABLED | 179.99 PLN | 268.62 PLN | +49.2% | 3.00 | 6.00 | +100.0% | 5.18 | 7.33 | +41.5% |
|
||||
| [PLA_CL1] podopharm | SHOPPING | ENABLED | 181.81 PLN | 262.52 PLN | +44.4% | 3.00 | 5.00 | +66.7% | 1.59 | 1.60 | +0.6% |
|
||||
| [Search] brand | SEARCH | ENABLED | 5.23 PLN | 7.65 PLN | +46.3% | 2.00 | 0.00 | -100.0% | 102.20 | 0.00 | -100.0% |
|
||||
28
clients/innsi.pl/produkty_changelog.jsonl
Normal file
28
clients/innsi.pl/produkty_changelog.jsonl
Normal file
@@ -0,0 +1,28 @@
|
||||
{"product_id": "2720", "date": "2026-05-15", "field": "title", "old": "Maść z naturalnymi olejkami Regeneracja suchej skóry 70g Arkada", "new": "Arkada maść z naturalnymi olejkami do regeneracji suchej skóry 70 g"}
|
||||
{"product_id": "1814", "date": "2026-05-15", "field": "title", "old": "Zestaw płynów HydraPure Oczyszczanie Wodorowe", "new": "HydraPure zestaw płynów do oczyszczania wodorowego"}
|
||||
{"product_id": "2016", "date": "2026-05-15", "field": "title", "old": "Olejek do paznokci Mykobooster 10ml Podopharm", "new": "Podopharm Mykobooster olejek do paznokci 10 ml"}
|
||||
{"product_id": "1413", "date": "2026-05-15", "field": "title", "old": "Henna żelowa Brown 15ml Refectocil", "new": "Refectocil henna żelowa Brown do brwi i rzęs 15 ml"}
|
||||
{"product_id": "3133", "date": "2026-05-15", "field": "title", "old": "Nożyczki ES-03 NGHIA EXPORT Activ", "new": "NGHIA Export Activ ES-03 nożyczki kosmetyczne"}
|
||||
{"product_id": "93", "date": "2026-05-15", "field": "title", "old": "Wonder Sculpt Paletka cieni Karaja nr 01", "new": "Karaja Wonder Sculpt paletka cieni do powiek nr 01"}
|
||||
{"product_id": "2524", "date": "2026-05-15", "field": "title", "old": "Taśmy modelująco liftingujące beige Secret Lift IBRA Makeup", "new": "IBRA Makeup Secret Lift taśmy modelująco-liftingujące beige"}
|
||||
{"product_id": "1554", "date": "2026-05-15", "field": "title", "old": "Henna Anna brązowa proszkowa Hornung 20 g", "new": "Hornung Anna henna proszkowa brązowa 20 g"}
|
||||
{"product_id": "2026", "date": "2026-05-15", "field": "title", "old": "Krem do stóp w piance z mikrosrebrem i jaskółczym zielem 125ml Podopharm", "new": "Podopharm krem do stóp w piance z mikrosrebrem i jaskółczym zielem 125 ml"}
|
||||
{"product_id": "3560", "date": "2026-05-15", "field": "title", "old": "Pre-Depilatory Gel żel przed depilacją 200ml Starpil", "new": "Starpil Pre-Depilatory Gel żel przed depilacją 200 ml"}
|
||||
{"product_id": "2720", "date": "2026-05-15", "field": "google_product_category", "old": "", "new": "Health & Beauty > Personal Care > Cosmetics > Skin Care > Lotion & Moisturizer"}
|
||||
{"product_id": "1814", "date": "2026-05-15", "field": "google_product_category", "old": "", "new": "Health & Beauty > Personal Care > Cosmetics > Skin Care"}
|
||||
{"product_id": "2016", "date": "2026-05-15", "field": "google_product_category", "old": "", "new": "Health & Beauty > Personal Care > Cosmetics > Nail Care"}
|
||||
{"product_id": "1413", "date": "2026-05-15", "field": "google_product_category", "old": "", "new": "Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup"}
|
||||
{"product_id": "3133", "date": "2026-05-15", "field": "google_product_category", "old": "", "new": "Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools"}
|
||||
{"product_id": "93", "date": "2026-05-15", "field": "google_product_category", "old": "", "new": "Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup"}
|
||||
{"product_id": "2524", "date": "2026-05-15", "field": "google_product_category", "old": "", "new": "Health & Beauty > Personal Care > Cosmetics > Cosmetic Tools"}
|
||||
{"product_id": "1554", "date": "2026-05-15", "field": "google_product_category", "old": "", "new": "Health & Beauty > Personal Care > Cosmetics > Makeup > Eye Makeup"}
|
||||
{"product_id": "2026", "date": "2026-05-15", "field": "google_product_category", "old": "", "new": "Health & Beauty > Personal Care > Cosmetics > Skin Care > Lotion & Moisturizer"}
|
||||
{"product_id": "3560", "date": "2026-05-15", "field": "google_product_category", "old": "", "new": "Health & Beauty > Personal Care > Cosmetics > Skin Care"}
|
||||
{"product_id": "3582", "date": "2026-05-15", "field": "unit_pricing", "old": "", "new": "30 ml / 100 ml"}
|
||||
{"product_id": "3622", "date": "2026-05-15", "field": "unit_pricing", "old": "", "new": "8 ml / 100 ml"}
|
||||
{"product_id": "2721", "date": "2026-05-15", "field": "unit_pricing", "old": "", "new": "11 ml / 100 ml"}
|
||||
{"product_id": "2018", "date": "2026-05-15", "field": "unit_pricing", "old": "", "new": "20 ml / 100 ml"}
|
||||
{"product_id": "3378", "date": "2026-05-15", "field": "unit_pricing", "old": "", "new": "14 ml / 100 ml"}
|
||||
{"product_id": "3623", "date": "2026-05-15", "field": "unit_pricing", "old": "", "new": "15 ml / 100 ml"}
|
||||
{"product_id": "1883", "date": "2026-05-15", "field": "unit_pricing", "old": "", "new": "500 ml / 100 ml"}
|
||||
{"product_id": "2720", "date": "2026-05-15", "field": "unit_pricing", "old": "", "new": "70 g / 100 g"}
|
||||
@@ -168,3 +168,154 @@
|
||||
| investagd.pl | 1210 | custom_label_4 | catch_all | |
|
||||
| investagd.pl | 1211 | custom_label_4 | catch_all | |
|
||||
|
||||
## 20:45 - Synchronizacja kampanii PLA_CL1
|
||||
|
||||
| klient | kampania | czynnosc | grupa reklam | produkt |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Wąż ssący do odkurzaczy Zelmer 2000.1300 (czarny) | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | wstrzymano grupe reklam | Odkurzacz workowy Profi P6 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | wstrzymano grupe reklam | Zestaw odkurzacz workowy Profi 1.2 + 5x worki do odkurzacza | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Wąż ssący do odkurzaczy Zelmer 321.0110 (czarny) | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Filtr piankowy I typ 919.0087 do odkurzaczy Zelmer Aquos 829, Aquawelt 919 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | wstrzymano grupe reklam | Zestaw odkurzacz workowy Profi 1.2.1 + worki do odkurzacza | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Filtr S Hepa IG-03 do odkurzacza Invest GALACTICO | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Filtr do odkurzacza Rowenta Silence Force , Silence Force Compact, Silence Force, Extreme, Silence Force Extreme Compact, ZR002901 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Ssawka 3w1 do odkurzaczy Zelmer - 32 mm typ 354 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Filtr do odkurzaczy Kärcher WD4, WD5, WD 4.200 - WD 4.500, 6.414-960.0 OKRĄGŁY - FK-454 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] worki | wstrzymano grupe reklam | Worki PHILIPS Athena Duathlon, HR6814-6855; IZ-PH6.1F | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] pozostale | wstrzymano grupe reklam | Wkłady filtrujące do dzbanka Aquaphor Maxfor+ 3szt | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] pozostale | wstrzymano grupe reklam | Wkład do butelki filtrującej Aquaphor City | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Ssawka okrągła z naturalnym włosiem 35 mm do odkurzaczy Bosch | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] worki | wstrzymano grupe reklam | Worki do odkurzacza Amica Universis Beris Sumam Nortes papierowe 5 szt. | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] pozostale | wstrzymano grupe reklam | Szatkownica do maszynki do mięsa Zelmer 586 686 886 986 - przystawka z 4 tarkami (plastry, wiórki, ziemniaki) SA01 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | PHILIPS SpeedPro Max FC5005 FC6802 FILTR | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | wstrzymano grupe reklam | Odkurzacz workowy Profi 1.2 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | wstrzymano grupe reklam | Zestaw odkurzacz workowy Profi 11.5 + 12 x worki i 1x filtr | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | catch_all | wstrzymano grupe reklam | Zestaw odkurzacz workowy Profi 11.5 + 12 x worki i 1x filtr | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | catch_all | wstrzymano grupe reklam | ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | catch_all | wstrzymano grupe reklam | Odkurzacz workowy Profi 1.2 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | catch_all | wstrzymano grupe reklam | ODKURZACZ WORKOWY VM 1058 SURAZO | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | catch_all | wstrzymano grupe reklam | ODKURZACZ WORKOWY INVEST GALACTICO 850 W | produkt jest w zlej kampanii |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | catch_all | wstrzymano grupe reklam | Odkurzacz workowy Profi P6 + 5x worki - zestaw | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | catch_all | wstrzymano grupe reklam | ODKURZACZ WORKOWY AMICA VM 1033 ORA | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | catch_all | wstrzymano grupe reklam | Odkurzacz workowy Profi P6 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | catch_all | wstrzymano grupe reklam | Zestaw odkurzacz workowy Profi 1.2 + 5x worki do odkurzacza | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | catch_all | wstrzymano grupe reklam | Zestaw odkurzacz workowy Profi 1.2.1 + worki do odkurzacza | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | catch_all | wstrzymano grupe reklam | Odkurzacz workowy Profi 1.2.1 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | catch_all | wstrzymano grupe reklam | Odkurzacz przemysłowy Invest Profus III - budowlany warsztatowy do pracy na sucho i mokro 1200W 10L | produkt jest w zlej kampanii |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | catch_all | wstrzymano grupe reklam | ODKURZACZ WORKOWY ZELMER TADEK ZVC261 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | catch_all | wstrzymano grupe reklam | Odkurzacz workowy Profi 11.5 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Filtr powietrza wstępny 719.0060 do odkurzacza ZELMER 719 Wodnik Duo, Wodnik Duo Plus 819 Aquario | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Filtr HEPA 719.0150 do odkurzacza ZELMER 719 Wodnik Duo, 819 Aquario, Wodnik Duo Plus, 829 Aquos | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Filtr EPA 12 do odkurzacza ELECTROLUX Airmax, Clario, Ergo Space, Ultra Silencer, IZ-FHE1 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Filtr do odkurzacza Miele S4000 S5000 S6000 S8000; GA4007 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Ssawka mała z welurem SM 0535 do odkurzacza Bosch,Siemens, Moulinex , Karcher | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Zestaw ssawek IZ-ZDE do dywanów i wykładzin do odkurzacza Electrolux, Philips, Amica | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | wstrzymano grupe reklam | Odkurzacz workowy Profi 1.2.1 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] worki | wstrzymano grupe reklam | Worki papierowe do odkurzaczy SAMSUNG Easy RC 999, VP-95B; IZ-FA6 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] worki | wstrzymano grupe reklam | SZCZOTKA KOŃCÓWKA DO PAROWNICY KARCHER SC SC1 SC2 SC3 SC4 SC5 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] pozostale | wstrzymano grupe reklam | Wąż dopływowy 3,0 do pralki / zmywarki - 3 m | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] worki | wstrzymano grupe reklam | 5X Worki do odkurzacza Zelmer 700, 701, Compact, IZ-700.0020 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | wstrzymano grupe reklam | ODKURZACZ WORKOWY VM 1058 SURAZO | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] pozostale | wstrzymano grupe reklam | Wąż dopływowy 1,0 do pralki / zmywarki - 1 m | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] pozostale | wstrzymano grupe reklam | Nasadka miksująca 171.2000Z do robotów Zelmer 371, 281, 381, 481 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] worki | wstrzymano grupe reklam | 5X WORKI KARCHER A2000 A2004 A2054 WD2 WD2.200 WD2.250 ZAMIENNIK | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Ssawka do odkurzacza Zelmer duża podłogowa 32mm 23cm typ 49.1900 zamiennik (EAN 5905857142659) | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Mała ssawka z welurem SM35 do odkurzacza Bosch, Karcher, Profi, Miele, Moulinex, Samsung | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Zestaw filtrów GA3833 do odkurzacza PHILIPS FC 8058/01, PowerPro Active FC 8630 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Filtr 5000.0050ZKU HEPA 13 z uszczelką do odkurzaczy Zelmer Odyssey, Explorer, Syrius, Cobra, Cobra II Silent, Clarris, Clarris Twix, Magnat, Jupiter | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Zestaw ssawek IZ-ZDK do dywanów i wykładzin do odkurzacza Karcher, Bosch, Siemens, Profi, Rowenta | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | wstrzymano grupe reklam | ODKURZACZ WORKOWY ZELMER TADEK ZVC261 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | wstrzymano grupe reklam | Odkurzacz workowy Profi 11.5 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | wstrzymano grupe reklam | ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | wstrzymano grupe reklam | ODKURZACZ PRZEMYSŁOWY INVEST PROFUS III 1200W 10L 2 sztuki | produkt jest w zlej kampanii |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | wstrzymano grupe reklam | ODKURZACZ WORKOWY INVEST GALACTICO 850 W 2 sztuki | produkt jest w zlej kampanii |
|
||||
| investagd.pl | [PLA_CL1] worki | wstrzymano grupe reklam | Worki PANASONIC AMC 8 F01 T 1000, C 20E, MC-E 761; IZ-PC5 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] worki | wstrzymano grupe reklam | Worki papierowe do NILFISK 818460.00, GD 1000, GD 1000 SER, GD 1005, GD 1010, GDS 1010, HDS 1010, VP 100; IZ-NI3 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] pozostale | wstrzymano grupe reklam | Butelka filtrująca Aquaphor City 500 ml granatowa + wkład | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Płyn czyszczący do odkurzaczy piorących PL.D | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Zestaw akcesoriów do odkurzacza iRobot Roomba TS-75 | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Filtr EPA 12 2000.0050KU z uszczelką do odkurzaczy Zelmer Odyssey, Explorer, Syrius, Cobra, Cobra II Silent, Clarris, Magnat, Jupiter, Solaris | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Filtr wlotowy 601201.4070 do odkurzacza Zelmer Voyager Twix | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Ssawka do odkurzacza Zelmer z welurem 32mm - mała ssawka do mebli i tapicerki | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Zestaw ssawek IZ-SPZ do paneli do odkurzaczy Zelmer | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Zestaw ssawek IZ-ZDZ do dywanów do odkurzaczy Zelmer | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Ssawka mała 49.0003 do odkurzacza ZELMER | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Turboszczotka uniwersalna z regulowaną średnicą 30-38mm | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] worki | wstrzymano grupe reklam | Worek płócienny Electrolux S-bag; IZ-E5/PH5WP | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Szczotka ssawka do paneli z naturalnym włosiem do odkurzacza Bosch, Karcher, Siemens, Rowenta, Profi - IZ-SPU | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | wstrzymano grupe reklam | Odkurzacz workowy Profi P6 + 5x worki - zestaw | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Zestaw ssawek naturalnym włosiem do paneli do odkurzacza Electrolux, Amica, Samsung, Philips typ IZ-SPE | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | wstrzymano grupe reklam | ODKURZACZ WORKOWY AMICA VM 1033 ORA | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] pozostale | wstrzymano grupe reklam | Dzbanek filtrujący Aquaphor Jasper 2,8L + wkład maxfor+ | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] pozostale | zmieniono nazwe grupy reklam | Zelmer zestaw trzepaków do miksera 181 281 371 381 | Trzepaki do miksera Zelmer 371K - komplet do robotów 181, 281, 371, 381 |
|
||||
| investagd.pl | [PLA_CL1] worki | zmieniono nazwe grupy reklam | Worki do odkurzacza Electrolux Mondo E44 E49 | Worki do odkurzacza Electrolux Mondo E44 E49 Mondo II Z 1100-1199 papierowe + filtry |
|
||||
| investagd.pl | [PLA_CL1] worki | zmieniono nazwe grupy reklam | 5X Worki papierowe do odkurzacza Zelmer 2000, Aquawelt, Aquos, Cobra, Meteor 2, Voyager | Worki do odkurzacza Zelmer Meteor 2 Cobra Aquawelt Voyager - papierowe 5 szt |
|
||||
| investagd.pl | [PLA_CL1] worki | zmieniono nazwe grupy reklam | 5 SZT WORKI DO LIDL PARKSIDE PNTS 1300 1400 | Worki do odkurzacza Parkside PNTS 1300 1400 syntetyczne 5 szt. - zamiennik Lidl Einhell |
|
||||
| investagd.pl | [PLA_CL1] worki | zmieniono nazwe grupy reklam | Worki do odkurzaczy Amica Nimis VM 1021, 1022, Qubis Base VJ 1031, 1032, Universis Base VK 1012, Universis VK 1011, Ventis VK 4021 IZ-AM2/AM3S | Worki do odkurzacza Amica Nimis Qubis Universis Ventis IZ-AM2 |
|
||||
| investagd.pl | [PLA_CL1] worki | zmieniono nazwe grupy reklam | Worki ELECTROLUX E 44, E 49, Mondo, Mondo E 49, Mondo II, Mondo Z 1100 - 1199 | Worki do odkurzacza Electrolux Mondo E44 E49 Mondo II Z 1100-1199 papierowe |
|
||||
|
||||
## 21:34 - Optymalizacja tytulow produktow
|
||||
|
||||
| klient | produkt | pole | obecnie | docelowo |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| investagd.pl | 1041 | title | Odkurzacz workowy Profi 1.2.1 | Odkurzacz workowy Profi 1.2.1 do domu i biura |
|
||||
| investagd.pl | 569 | title | Wąż ssący do odkurzaczy Zelmer 2000.1300 (czarny) | Wąż ssący Zelmer 2000.1300 czarny do odkurzacza |
|
||||
| investagd.pl | 1068 | title | ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T | Odkurzacz workowy Zelmer Antek ZVC3501T |
|
||||
| investagd.pl | 1045 | title | Odkurzacz workowy Profi 11.5 | Odkurzacz workowy Profi 11.5 do domu i biura |
|
||||
| investagd.pl | 666 | title | Wąż dopływowy 3,0 do pralki / zmywarki - 3 m | Wąż dopływowy 3 m do pralki i zmywarki |
|
||||
| investagd.pl | 835 | title | Nasadka miksująca 171.2000Z do robotów Zelmer 371, 281, 381, 481 | Nasadka miksująca Zelmer 171.2000Z do robotów 371 281 381 481 |
|
||||
| investagd.pl | 178 | title | Worki do odkurzacza Electrolux / Philips IZ-E5/PH5S | Worki do odkurzacza Electrolux Philips IZ-E5 PH5S |
|
||||
| investagd.pl | 729 | title | Worki papierowe do odkurzacza Zelmer Adaś, Franek, Olek, Kuba ZVC 333, Kuba ZVC 334, Kuba ZVC 335 5szt | Worki papierowe Zelmer Adaś Franek Olek Kuba ZVC 333 334 335 5 szt. |
|
||||
| investagd.pl | 323 | title | Worki syntetyczne BOSCH Activa, Alpha, SIEMENS Super L; IZ-S11SP | Worki syntetyczne Bosch Activa Alpha Siemens Super L IZ-S11SP |
|
||||
| investagd.pl | 1083 | title | 4x Worki syntetyczne do odkurzacza Zelmer Józek, Kazik, Kazio | Worki syntetyczne Zelmer Józek Kazik Kazio 4 szt. |
|
||||
|
||||
## 21:36 - Optymalizacja kategorii Google
|
||||
|
||||
| klient | produkt | pole | obecnie | docelowo |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| investagd.pl | 1041 | google_product_category | | Dom i ogród > Sprzęt AGD > Odkurzacze |
|
||||
| investagd.pl | 569 | google_product_category | | Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy |
|
||||
| investagd.pl | 1068 | google_product_category | | Dom i ogród > Sprzęt AGD > Odkurzacze |
|
||||
| investagd.pl | 1045 | google_product_category | | Dom i ogród > Sprzęt AGD > Odkurzacze |
|
||||
| investagd.pl | 666 | google_product_category | | Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do pralek i suszarek |
|
||||
| investagd.pl | 835 | google_product_category | | Dom i ogród > Kuchnia i jadalnia > Akcesoria do sprzętów kuchennych > Akcesoria do mikserów i blenderów |
|
||||
| investagd.pl | 178 | google_product_category | | Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Worki do odkurzaczy |
|
||||
| investagd.pl | 729 | google_product_category | | Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Worki do odkurzaczy |
|
||||
| investagd.pl | 323 | google_product_category | | Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Worki do odkurzaczy |
|
||||
| investagd.pl | 1083 | google_product_category | | Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Worki do odkurzaczy |
|
||||
|
||||
## 21:40 - Uzupelnienie unit pricing
|
||||
|
||||
| klient | produkt | pole | obecnie | docelowo |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| investagd.pl | 871 | unit_pricing | | 5 szt / 1 szt |
|
||||
| investagd.pl | 1090 | unit_pricing | | 6 szt / 1 szt |
|
||||
|
||||
## 21:44 - Sprawdzenie dostepnosci produktow
|
||||
|
||||
| klient | produkt | pole | obecnie | docelowo |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| investagd.pl | 1097 | custom_label_4 | | paused |
|
||||
|
||||
## 21:48 - Synchronizacja kampanii PLA_CL1
|
||||
|
||||
| klient | kampania | czynnosc | grupa reklam | produkt |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | włączono grupę reklam | ODKURZACZ WORKOWY INVEST GALACTICO 850 W 2 sztuki | 1214 |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | catch_all | wstrzymano grupe reklam | ODKURZACZ WORKOWY INVEST GALACTICO 850 W 2 sztuki | produkt jest w zlej kampanii |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | wstrzymano grupe reklam | Uniwersalny zestaw końcówek do odkurzaczy 4szt + Worek na akcesoria | produkt ma CL4=paused w adsPRO |
|
||||
| investagd.pl | [PLA_CL1] worki | zmieniono nazwe grupy reklam | 4x Worki syntetyczne do odkurzacza Zelmer Józek, Kazik, Kazio | Worki syntetyczne Zelmer Józek Kazik Kazio 4 szt. |
|
||||
| investagd.pl | [PLA_CL1] worki | zmieniono nazwe grupy reklam | Worki papierowe do odkurzacza Zelmer Adaś, Franek, Olek, Kuba ZVC 333, Kuba ZVC 334, Kuba ZVC 335 5szt | Worki papierowe Zelmer Adaś Franek Olek Kuba ZVC 333 334 335 5 szt. |
|
||||
| investagd.pl | [PLA_CL1] worki | zmieniono nazwe grupy reklam | Worki do odkurzacza Electrolux / Philips IZ-E5/PH5S | Worki do odkurzacza Electrolux Philips IZ-E5 PH5S |
|
||||
| investagd.pl | [PLA_CL1] worki | zmieniono nazwe grupy reklam | Worki syntetyczne BOSCH Activa, Alpha, SIEMENS Super L; IZ-S11SP | Worki syntetyczne Bosch Activa Alpha Siemens Super L IZ-S11SP |
|
||||
|
||||
## 22:00 - Synchronizacja kampanii PLA_CL1
|
||||
|
||||
| klient | kampania | czynnosc | grupa reklam | produkt |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | utworzono grupe reklam | Ssawko-szczotka z naturalnym włosiem do odkurzaczy ELECTROLUX AEG PHILIPS DN32; 050-003 | 623 | 623 |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | catch_all | utworzono grupe reklam | ODKURZACZ PRZEMYSŁOWY INVEST PROFUS III 1200W 10L 2 sztuki | 1213 | 1213 |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze_akcesoria | zmieniono nazwe grupy reklam | Ssawko-szczotka z naturalnym włosiem do odkurzaczy ELECTROLUX AEG PHILIPS DN32; 050-003 | Ssawko-szczotka z naturalnym włosiem do odkurzaczy ELECTROLUX AEG PHILIPS DN32; 050-003 | 1093 |
|
||||
| investagd.pl | [PLA_CL1] odkurzacze | catch_all | zmieniono nazwe grupy reklam | ODKURZACZ PRZEMYSŁOWY INVEST PROFUS III 1200W 10L 2 sztuki | ODKURZACZ PRZEMYSŁOWY INVEST PROFUS III 1200W 10L 2 sztuki | 1212 |
|
||||
|
||||
|
||||
@@ -1,69 +1,69 @@
|
||||
id,offer_id,title,availability,channel,content_language,target_country,feed_label,brand,google_product_category,custom_label_0,custom_label_1,custom_label_2,custom_label_3,custom_label_4,link
|
||||
,1041,Odkurzacz workowy Profi 1.2.1,,,,,,,,,odkurzacze,,,,
|
||||
,1042,Zestaw odkurzacz workowy Profi 1.2.1 + worki do odkurzacza,,,,,,,,,odkurzacze,,,,
|
||||
,1043,Odkurzacz workowy Profi 1.2,,,,,,,,,odkurzacze,,,,
|
||||
,1044,Odkurzacz workowy Profi P6,,,,,,,,,odkurzacze,,,,
|
||||
,1045,Odkurzacz workowy Profi 11.5,,,,,,,,,odkurzacze,,,,
|
||||
,1046,Zestaw odkurzacz workowy Profi 11.5 + 12 x worki i 1x filtr,,,,,,,,,odkurzacze,,,,
|
||||
,1047,Zestaw odkurzacz workowy Profi 1.2 + 5x worki do odkurzacza,,,,,,,,,odkurzacze,,,,
|
||||
,1048,Odkurzacz workowy Profi P6 + 5x worki - zestaw,,,,,,,Dom i ogród > Sprzęt AGD > Sprzęt do sprzątania > Odkurzacze i urządzenia do zamiatania podłóg > Odkurzacze,,odkurzacze,,,,
|
||||
,1066,ODKURZACZ WORKOWY AMICA VM 1033 ORA,,,,,,,,,odkurzacze,,,,
|
||||
,1067,ODKURZACZ WORKOWY VM 1058 SURAZO,,,,,,,,,odkurzacze,,,,
|
||||
,1068,ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T,,,,,,,,,odkurzacze,,,,
|
||||
,1069,ODKURZACZ WORKOWY ZELMER TADEK ZVC261,,,,,,,,,odkurzacze,,,,
|
||||
,1041,Odkurzacz workowy Profi 1.2.1 do domu i biura,,,,,,,Dom i ogród > Sprzęt AGD > Odkurzacze,,odkurzacze,,,paused,
|
||||
,1042,Zestaw odkurzacz workowy Profi 1.2.1 + worki do odkurzacza,,,,,,,,,odkurzacze,,,paused,
|
||||
,1043,Odkurzacz workowy Profi 1.2,,,,,,,,,odkurzacze,,,paused,
|
||||
,1044,Odkurzacz workowy Profi P6,,,,,,,,,odkurzacze,,,paused,
|
||||
,1045,Odkurzacz workowy Profi 11.5 do domu i biura,,,,,,,Dom i ogród > Sprzęt AGD > Odkurzacze,,odkurzacze,,,paused,
|
||||
,1046,Zestaw odkurzacz workowy Profi 11.5 + 12 x worki i 1x filtr,,,,,,,,,odkurzacze,,,paused,
|
||||
,1047,Zestaw odkurzacz workowy Profi 1.2 + 5x worki do odkurzacza,,,,,,,,,odkurzacze,,,paused,
|
||||
,1048,Odkurzacz workowy Profi P6 + 5x worki - zestaw,,,,,,,Dom i ogród > Sprzęt AGD > Sprzęt do sprzątania > Odkurzacze i urządzenia do zamiatania podłóg > Odkurzacze,,odkurzacze,,,paused,
|
||||
,1066,ODKURZACZ WORKOWY AMICA VM 1033 ORA,,,,,,,,,odkurzacze,,,paused,
|
||||
,1067,ODKURZACZ WORKOWY VM 1058 SURAZO,,,,,,,,,odkurzacze,,,paused,
|
||||
,1068,Odkurzacz workowy Zelmer Antek ZVC3501T,,,,,,,Dom i ogród > Sprzęt AGD > Odkurzacze,,odkurzacze,,,paused,
|
||||
,1069,ODKURZACZ WORKOWY ZELMER TADEK ZVC261,,,,,,,,,odkurzacze,,,paused,
|
||||
,1210,Odkurzacz przemysłowy Invest Profus III - budowlany warsztatowy do pracy na sucho i mokro 1200W 10L,,,,,,,Dom i ogród > Sprzęt AGD > Sprzęt do sprzątania > Odkurzacze i urządzenia do zamiatania podłóg > Odkurzacze,,odkurzacze,,,,
|
||||
,1211,ODKURZACZ WORKOWY INVEST GALACTICO 850 W,,,,,,,,,odkurzacze,,,,
|
||||
,1212,ODKURZACZ PRZEMYSŁOWY INVEST PROFUS III 1200W 10L 2 sztuki,,,,,,,,,odkurzacze,,,,
|
||||
,1213,ODKURZACZ PRZEMYSŁOWY INVEST PROFUS III 1200W 10L 2 sztuki,,,,,,,,,odkurzacze,,,,
|
||||
,1212,ODKURZACZ PRZEMYSŁOWY INVEST PROFUS III 1200W 10L 2 sztuki,,,,,,,,,odkurzacze,,,catch_all,
|
||||
,1213,ODKURZACZ PRZEMYSŁOWY INVEST PROFUS III 1200W 10L 2 sztuki,,,,,,,,,odkurzacze,,,catch_all,
|
||||
,1214,ODKURZACZ WORKOWY INVEST GALACTICO 850 W 2 sztuki,,,,,,,,,odkurzacze,,,,
|
||||
,1005,PHILIPS SpeedPro Max FC5005 FC6802 FILTR,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,1005,PHILIPS SpeedPro Max FC5005 FC6802 FILTR,,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,1070,"Filtr HEPA oraz filtr stożkowy do odkurzaczy Dyson modeli DC58, DC59, DC61, DC62, V6 i V7",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,1093,Ssawko-szczotka z naturalnym włosiem do odkurzaczy ELECTROLUX AEG PHILIPS DN32; 050-003,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,1096,1X Filtr do odkurzacza Dyson V11 SV14 V15,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,1097,Uniwersalny zestaw końcówek do odkurzaczy 4szt + Worek na akcesoria,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,1097,Uniwersalny zestaw końcówek do odkurzaczy 4szt + Worek na akcesoria,,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,1098,Ssawko-szczotka z naturalnym włosiem ELECTROLUX AEG PHILIPS KARCHER ZELMER,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,1100,Rura teleskopowa z tworzywa średnica wewnętrzna 35 mm,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,1101,SSAWKA SZCZELINOWA DO ODKURZACZY KARCHER BOSCH SAMSUNG ROWENTA,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,239,"Filtr HEPA 719.0150 do odkurzacza ZELMER 719 Wodnik Duo, 819 Aquario, Wodnik Duo Plus, 829 Aquos",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,242,"Filtr powietrza wstępny 719.0060 do odkurzacza ZELMER 719 Wodnik Duo, Wodnik Duo Plus 819 Aquario",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,239,"Filtr HEPA 719.0150 do odkurzacza ZELMER 719 Wodnik Duo, 819 Aquario, Wodnik Duo Plus, 829 Aquos",,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,242,"Filtr powietrza wstępny 719.0060 do odkurzacza ZELMER 719 Wodnik Duo, Wodnik Duo Plus 819 Aquario",,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,245,Rura teleskopowa do odkurzacza Zelmer Electrolux 111.6000,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy,,odkurzacze_akcesoria,,,,
|
||||
,247,Ssawkoszczotka na kółkach do odkurzacza ZELMER; 449.0000P,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,250,Ssawka duża 49 P z dwoma zgarniaczami typ 170 do odkurzacza ZELMER,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,252,Ssawka średnia gładka 084 do odkurzacza ZELMER,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,253,Ssawka 800 z dwoma zgarniaczami typ 218 do odkurzacza ZELMER,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,254,Ssawka mała 49.0003 do odkurzacza ZELMER,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,254,Ssawka mała 49.0003 do odkurzacza ZELMER,,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,257,Ssawka z włosem typ 800 do odkurzacza ZELMER,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,258,Ssawka z włosem typ 1020 do odkurzacza ZELMER,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,259,Szczotka okrągła z włosem typ 046 do odkurzacza ZELMER,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,260,Ssawka szczelinowa długa typ 056 do odkurzacza ZELMER,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,290,"Filtr HEPA 13 IZ-FHE2 do odkurzacza ELECTROLUX Airmax, Clario, Ergo Space, Ultra Silencer",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,299,"Ssawka mała z welurem SM 0535 do odkurzacza Bosch,Siemens, Moulinex , Karcher",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,299,"Ssawka mała z welurem SM 0535 do odkurzacza Bosch,Siemens, Moulinex , Karcher",,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,309,"Ssawka mała ze zgarniaczem do odkurzacza Electrolux, Philips SM 0232",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,312,"Ssawka szczelinowa do odkurzacza Electrolux, Philips",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,313,"Ssawka duża do odkurzacza Electrolux, Philips; SE 0732",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,400,Uniwersalne filtry do odkurzaczy wlot i wylot; IZ-WWU,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,402,Uniwersalny zestaw końcówek do odkurzaczy 4szt,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,410,"Filtr S Hepa IF-33 do odkurzacza Invest FURIO, FURIO ECO",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,411,Filtr S Hepa IG-03 do odkurzacza Invest GALACTICO,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,411,Filtr S Hepa IG-03 do odkurzacza Invest GALACTICO,,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,419,"Filtr 5000.0050K HEPA 13 do odkurzaczy Zelmer Odyssey, Explorer, Syrius, Cobra, Cobra II Silent, Clarris, Clarris Twix, Magnat, Jupiter, Solaris, Sola",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,421,Płyn czyszczący do odkurzaczy piorących PL.D,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,421,Płyn czyszczący do odkurzaczy piorących PL.D,,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,422,Ssawka szczelinowa giętka do odkurzacza Zelmer,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,542,Ssawkoszczotka przełączalna do odkurzaczy Zelmer 32mm,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,551,"Filtr EPA 12 do odkurzacza ELECTROLUX Airmax, Clario, Ergo Space, Ultra Silencer, IZ-FHE1",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,551,"Filtr EPA 12 do odkurzacza ELECTROLUX Airmax, Clario, Ergo Space, Ultra Silencer, IZ-FHE1",,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,568,Wąż ssący do odkurzaczy Zelmer 1010.1100 (czarny),,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,569,Wąż ssący do odkurzaczy Zelmer 2000.1300 (czarny),,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,569,Wąż ssący Zelmer 2000.1300 czarny do odkurzacza,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy,,odkurzacze_akcesoria,,,paused,
|
||||
,57,"Worki do odkurzaczy DUO 01D011, 01D012; IZ-D011",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,570,Wąż ssący do odkurzaczy Zelmer 321.0110 (czarny),,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,570,Wąż ssący do odkurzaczy Zelmer 321.0110 (czarny),,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,571,Komplet filtrów wlot i wylot do odkurzacza Electrolux Mondo; IZ-WWE3,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,572,Szczotka parkietowa na kółkach do odkurzaczy ZELMER (czarna) 49.9500P,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,573,Turboszczotka uniwersalna z regulowaną średnicą 30-38mm,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,573,Turboszczotka uniwersalna z regulowaną średnicą 30-38mm,,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,577,Ssawka ze zgarniaczem typ 168 do odkurzacza ZELMER,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,578,Ssawka mała z włosiem do odkurzacza Zelmer,,,,,,,Akcesoria do odkurzaczy,,odkurzacze_akcesoria,,,,
|
||||
,579,"Ssawka mała z naturalnym włosiem do odkurzacza Electrolux, Philips typ 352",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,580,"Ssawka mała 353 z naturalnym włosiem do odkurzacza Bosch, Siemens, Moulinex",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,585,Ssawka do odkurzacza Zelmer duża podłogowa 32mm 23cm typ 49.1900 zamiennik (EAN 5905857142659),,,,,,,Dom i ogród > Sprzęt AGD > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Końcówki i szczotki do odkurzaczy,,odkurzacze_akcesoria,,,,
|
||||
,585,Ssawka do odkurzacza Zelmer duża podłogowa 32mm 23cm typ 49.1900 zamiennik (EAN 5905857142659),,,,,,,Dom i ogród > Sprzęt AGD > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Końcówki i szczotki do odkurzaczy,,odkurzacze_akcesoria,,,paused,
|
||||
,586,Ssawka duża do odkurzacza Bosch Siemens Moulinex SE 0735,,,,,,,Dom i ogród > Sprzęt AGD > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Końcówki i szczotki do odkurzaczy,,odkurzacze_akcesoria,,,,
|
||||
,592,"Filtr piankowy I typ 919.0087 do odkurzaczy Zelmer Aquos 829, Aquawelt 919",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,592,"Filtr piankowy I typ 919.0087 do odkurzaczy Zelmer Aquos 829, Aquawelt 919",,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,620,Filtr piankowy typ SC43 do odkurzacza Samsung SC43 VC43 VCC43,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,623,Ssawko-szczotka z naturalnym włosiem do odkurzaczy ELECTROLUX AEG PHILIPS DN32; 050-003,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,676,Rura teleskopowa z tworzywa do odkurzaczy ZELMER; RTP 0132,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
@@ -71,49 +71,49 @@
|
||||
,685,"Ssawko-szczotka SE1635 do odkurzaczy Bosch, Samsung, LG...",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,687,Ssawko-szczotka SE1432 do odkurzaczy Electrolux...,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,688,"Ssawko-szczotka SE1435 do odkurzaczy Bosch, Panasonic, Siemens...",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,748,Zestaw akcesoriów do odkurzacza iRobot Roomba TS-75,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,749,"Filtr do odkurzacza Rowenta Silence Force , Silence Force Compact, Silence Force, Extreme, Silence Force Extreme Compact, ZR002901",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,748,Zestaw akcesoriów do odkurzacza iRobot Roomba TS-75,,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,749,"Filtr do odkurzacza Rowenta Silence Force , Silence Force Compact, Silence Force, Extreme, Silence Force Extreme Compact, ZR002901",,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,750,"Filtr do odkurzacza Karcher NT 35/1 Eco/Te/M, NT 45/1 Eco/Te/M, NT 55/1 Eco/Te/M; FK-01",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,751,"Filtr FK-03 do odkurzacza Karcher 2501, 2701, 2801, SE 2001, SE5.100, 2501 TE, A2701, 2801 plus, SE 3001, 2601, 2701 TE, A2801, 3001, SE6.100, 2601 pl",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,752,"Filtr do odkurzacza Karcher NT 65/2 Eco Tc, NT 65/2 Eco, NT 72/2 Eco Tc; FK-04",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,753,"Filtr FK-10 do odkurzacza EINHELL: AFF 18, BT-VC 500 PARKSIDE: PAS 500A1, B1, C1, C2; PARK18/8C PARKSIDE 4711310437",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,756,"Filtry do odkurzacza FESTOOL CT, CTL, CTM 11, 22, 33, 44/45 Ventos 25/35, Karcher NT351, NT351/ECO, NT14/1; FK-17-2X",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,757,Filtr do odkurzacza Profi 3; FK-21,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,765,Filtr do odkurzacza Miele S4000 S5000 S6000 S8000; GA4007,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,766,"Zestaw filtrów GA3833 do odkurzacza PHILIPS FC 8058/01, PowerPro Active FC 8630",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,765,Filtr do odkurzacza Miele S4000 S5000 S6000 S8000; GA4007,,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,766,"Zestaw filtrów GA3833 do odkurzacza PHILIPS FC 8058/01, PowerPro Active FC 8630",,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,767,"Ssawka okrągła z naturalnym włosiem 32 mm do odkurzaczy Zelmer , 047",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,768,Ssawka okrągła z naturalnym włosiem 35 mm do odkurzaczy Bosch,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,768,Ssawka okrągła z naturalnym włosiem 35 mm do odkurzaczy Bosch,,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,769,"Ssawka okrągła z naturalnym włosiem 32 mm do odkurzaczy Electrolux, 049",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,771,Ssawka 3w1 do odkurzaczy Zelmer - 32 mm typ 354,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,772,"Szczotka ssawka do paneli z naturalnym włosiem do odkurzacza Bosch, Karcher, Siemens, Rowenta, Profi - IZ-SPU",,,,,,,Dom i ogród > Sprzęty domowe > Akcesoria do sprzętów domowych > Akcesoria do odkurzaczy,,odkurzacze_akcesoria,,,,
|
||||
,773,"Zestaw ssawek naturalnym włosiem do paneli do odkurzacza Electrolux, Amica, Samsung, Philips typ IZ-SPE",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,776,"Filtr do odkurzaczy Kärcher WD4, WD5, WD 4.200 - WD 4.500, 6.414-960.0 OKRĄGŁY - FK-454",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,777,"Filtr 5000.0050ZKU HEPA 13 z uszczelką do odkurzaczy Zelmer Odyssey, Explorer, Syrius, Cobra, Cobra II Silent, Clarris, Clarris Twix, Magnat, Jupiter",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,771,Ssawka 3w1 do odkurzaczy Zelmer - 32 mm typ 354,,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,772,"Szczotka ssawka do paneli z naturalnym włosiem do odkurzacza Bosch, Karcher, Siemens, Rowenta, Profi - IZ-SPU",,,,,,,Dom i ogród > Sprzęty domowe > Akcesoria do sprzętów domowych > Akcesoria do odkurzaczy,,odkurzacze_akcesoria,,,paused,
|
||||
,773,"Zestaw ssawek naturalnym włosiem do paneli do odkurzacza Electrolux, Amica, Samsung, Philips typ IZ-SPE",,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,776,"Filtr do odkurzaczy Kärcher WD4, WD5, WD 4.200 - WD 4.500, 6.414-960.0 OKRĄGŁY - FK-454",,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,777,"Filtr 5000.0050ZKU HEPA 13 z uszczelką do odkurzaczy Zelmer Odyssey, Explorer, Syrius, Cobra, Cobra II Silent, Clarris, Clarris Twix, Magnat, Jupiter",,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,781,Wkład zapachowy do odkurzaczy (granulat) o zapachu morskim AROMA,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,791,"Filtr EPA 12 2000.0050KU z uszczelką do odkurzaczy Zelmer Odyssey, Explorer, Syrius, Cobra, Cobra II Silent, Clarris, Magnat, Jupiter, Solaris",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,791,"Filtr EPA 12 2000.0050KU z uszczelką do odkurzaczy Zelmer Odyssey, Explorer, Syrius, Cobra, Cobra II Silent, Clarris, Magnat, Jupiter, Solaris",,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,793,"Filtr zmywalny do odkurzacza Karcher WD 2, WD 3, NT/27, SE 4001, SE 4002, MV 2, MV3, K 2000; FK-02/P",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,794,Filtr wlotowy 601201.4070 do odkurzacza Zelmer Voyager Twix,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,794,Filtr wlotowy 601201.4070 do odkurzacza Zelmer Voyager Twix,,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,802,"Filtr piankowy SC47 do odkurzacza Samsung SC47J0, SC4320, SC4325,VCC4320S3B/XEO, VCC4325S3K/XEO, VCC4325S3R/XEO",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,808,Ssawka do odkurzacza Zelmer z welurem 32mm - mała ssawka do mebli i tapicerki,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy,,odkurzacze_akcesoria,,,,
|
||||
,808,Ssawka do odkurzacza Zelmer z welurem 32mm - mała ssawka do mebli i tapicerki,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy,,odkurzacze_akcesoria,,,paused,
|
||||
,809,"Ssawka welurowa do odkurzacza Electrolux, Philips - mała końcówka szczelinowa SM 0332 do tapicerki, mebli, zasłon",,,,,,,Dom i ogród > Sprzątanie > Akcesoria do sprzątania > Akcesoria do odkurzaczy > Szczotki i ssawki do odkurzaczy,,odkurzacze_akcesoria,,,,
|
||||
,811,Duża ssawka 415 z naturalnym włosiem do odkurzacza Zelmer,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,814,"Ssawka 418 z syntetycznym włosiem do odkurzacza Bosch, Karcher, Moulinex, Siemens",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,815,"Ssawka 419 z naturalnym włosiem do odkurzacza Bosch, Karcher, Moulinex, Siemens",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,816,Zestaw ssawek IZ-SPZ do paneli do odkurzaczy Zelmer,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,817,Zestaw ssawek IZ-ZDZ do dywanów do odkurzaczy Zelmer,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,818,"Zestaw ssawek IZ-ZDE do dywanów i wykładzin do odkurzacza Electrolux, Philips, Amica",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,819,"Zestaw ssawek IZ-ZDK do dywanów i wykładzin do odkurzacza Karcher, Bosch, Siemens, Profi, Rowenta",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,816,Zestaw ssawek IZ-SPZ do paneli do odkurzaczy Zelmer,,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,817,Zestaw ssawek IZ-ZDZ do dywanów do odkurzaczy Zelmer,,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,818,"Zestaw ssawek IZ-ZDE do dywanów i wykładzin do odkurzacza Electrolux, Philips, Amica",,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,819,"Zestaw ssawek IZ-ZDK do dywanów i wykładzin do odkurzacza Karcher, Bosch, Siemens, Profi, Rowenta",,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,843,"Mała ssawka z welurem do tapicerki śr. wew. 32 mm do odkurzacza Hoover, De Longhi, Privileg, Philips, Electrolux, Rowenta, SE 0932",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,844,"Mała ssawka z welurem do tapicerki śr. wew. 35 mm do odkurzacza Bosch, Karcher, Moulinex, Siemens, Amica, Samsung, Profi, SE 0935",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,850,"Ssawka dwurzędowa 510 ze zgarniaczem śr. wew. 32mm do odkurzacza Electrolux, Philips",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,863,"Mała ssawka z welurem SM35 do odkurzacza Bosch, Karcher, Profi, Miele, Moulinex, Samsung",,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,863,"Mała ssawka z welurem SM35 do odkurzacza Bosch, Karcher, Profi, Miele, Moulinex, Samsung",,,,,,,,,odkurzacze_akcesoria,,,paused,
|
||||
,897,Filtr do odkurzacza Philips FC6409 FC6408 FC6170,,,,,,,,,odkurzacze_akcesoria,,,,
|
||||
,1013,UNIWERSALNY WKŁAD DO POCHŁANIACZA WILGOCI 250G,,,,,,,,,pozostale,,,,
|
||||
,1036,Wkłady do pochłaniacza wilgoci 250g uniwersalne - zestaw 10 szt. tabletki absorbujące,,,,,,,6827,,pozostale,,,,
|
||||
,1049,Butelka filtrująca Aquaphor City 500 ml granatowa + wkład,,,,,,,,,pozostale,,,,
|
||||
,1052,"Dzbanek filtrujący Aquaphor Jasper 2,8L + wkład maxfor+",,,,,,,,,pozostale,,,,
|
||||
,1054,Wkłady filtrujące do dzbanka Aquaphor Maxfor+ 3szt,,,,,,,Wymienne wkłady do filtrów wody,,pozostale,,,,
|
||||
,1055,Wkład do butelki filtrującej Aquaphor City,,,,,,,Wymienne wkłady do filtrów wody,,pozostale,,,,
|
||||
,1049,Butelka filtrująca Aquaphor City 500 ml granatowa + wkład,,,,,,,,,pozostale,,,paused,
|
||||
,1052,"Dzbanek filtrujący Aquaphor Jasper 2,8L + wkład maxfor+",,,,,,,,,pozostale,,,paused,
|
||||
,1054,Wkłady filtrujące do dzbanka Aquaphor Maxfor+ 3szt,,,,,,,Wymienne wkłady do filtrów wody,,pozostale,,,paused,
|
||||
,1055,Wkład do butelki filtrującej Aquaphor City,,,,,,,Wymienne wkłady do filtrów wody,,pozostale,,,paused,
|
||||
,1057,Filtr węglowy do okapów kuchennych IZ-FW2,,,,,,,,,pozostale,,,,
|
||||
,1103,Filtr do dzbanka Dafi Classic / Kenwood Anna - 6 szt. wkładów filtrujących wodę,,,,,,,Dom i ogród > Kuchnia i jadalnia > Przybory kuchenne > Filtry do wody > Wymienne wkłady do filtrów wody,,pozostale,,,,
|
||||
,285,Sitko o średnicy otworów 8 mm do maszynki ZELMER z komorą 5 sitko 86.1242,,,,,,,,,pozostale,,,,
|
||||
@@ -123,19 +123,19 @@
|
||||
,387,"Trzepaki do miksera Zelmer 371K - komplet do robotów 181, 281, 371, 381",,,,,,,Dom i ogród > Kuchnia i jadalnia > Akcesoria do sprzętów kuchennych > Akcesoria do mikserów i blenderów,,pozostale,,,,
|
||||
,390,"Trzepaki mieszadełka do miksera Zelmer 481K - komplet do robotów 381, 481, 281, 181",,,,,,,Dom i ogród > Kuchnia i jadalnia > Akcesoria do sprzętów kuchennych > Akcesoria do mikserów i blenderów,,pozostale,,,,
|
||||
,397,Sprzęgło ślimaka Zelmer 86.1203 do maszynki do mięsa - zamiennik do wszystkich modeli,,,,,,,Dom i ogród > Kuchnia i jadalnia > Akcesoria do sprzętów kuchennych > Akcesoria do rozdrabniaczy do żywności,,pozostale,,,,
|
||||
,45,"Szatkownica do maszynki do mięsa Zelmer 586 686 886 986 - przystawka z 4 tarkami (plastry, wiórki, ziemniaki) SA01",,,,,,,Dom i ogród > Sprzęt AGD > Akcesoria do sprzętu AGD > Akcesoria do sprzętu AGD do przygotowywania żywności,,pozostale,,,,
|
||||
,662,"Wąż dopływowy 1,0 do pralki / zmywarki - 1 m",,,,,,,,,pozostale,,,,
|
||||
,666,"Wąż dopływowy 3,0 do pralki / zmywarki - 3 m",,,,,,,,,pozostale,,,,
|
||||
,835,"Nasadka miksująca 171.2000Z do robotów Zelmer 371, 281, 381, 481",,,,,,,,,pozostale,,,,
|
||||
,45,"Szatkownica do maszynki do mięsa Zelmer 586 686 886 986 - przystawka z 4 tarkami (plastry, wiórki, ziemniaki) SA01",,,,,,,Dom i ogród > Sprzęt AGD > Akcesoria do sprzętu AGD > Akcesoria do sprzętu AGD do przygotowywania żywności,,pozostale,,,paused,
|
||||
,662,"Wąż dopływowy 1,0 do pralki / zmywarki - 1 m",,,,,,,,,pozostale,,,paused,
|
||||
,666,Wąż dopływowy 3 m do pralki i zmywarki,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do pralek i suszarek,,pozostale,,,paused,
|
||||
,835,Nasadka miksująca Zelmer 171.2000Z do robotów 371 281 381 481,,,,,,,Dom i ogród > Kuchnia i jadalnia > Akcesoria do sprzętów kuchennych > Akcesoria do mikserów i blenderów,,pozostale,,,paused,
|
||||
,840,Filtr ochrony silnika Parkside Niteo PNTS 1300 1500,,,,,,,Worki do odkurzaczy,,pozostale,,,,
|
||||
,1,Worki do odkurzacza Zelmer Meteor Admiral 1010 1020 1030 papierowe 5 szt. + filtry,,,,,,,4537,,worki,,,,
|
||||
,10,Worki do odkurzacza Zelmer Elf 321 322 Elf Bonus Flip papierowe 5 szt.,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy,,worki,,,,
|
||||
,1015,Worki do odkurzacza Zelmer Edek - papierowe 5 szt,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy,,worki,,,,
|
||||
,1023,SZCZOTKA KOŃCÓWKA DO PAROWNICY KARCHER SC SC1 SC2 SC3 SC4 SC5,,,,,,,,,worki,,,,
|
||||
,1023,SZCZOTKA KOŃCÓWKA DO PAROWNICY KARCHER SC SC1 SC2 SC3 SC4 SC5,,,,,,,,,worki,,,paused,
|
||||
,1037,Worki do odkurzacza Thomas Aqua+ Pet & Family X7 X8 X10 XT syntetyczne 5 szt.,,,,,,,4537,,worki,,,,
|
||||
,1056,Worki do KARCHER WD2 PLUS WD3 SE4001 SE4002 IZ-K22SP PO,,,,,,,,,worki,,,,
|
||||
,1081,5X WORKI KARCHER A2000 A2004 A2054 WD2 WD2.200 WD2.250 ZAMIENNIK,,,,,,,,,worki,,,,
|
||||
,1083,"4x Worki syntetyczne do odkurzacza Zelmer Józek, Kazik, Kazio",,,,,,,,,worki,,,,
|
||||
,1081,5X WORKI KARCHER A2000 A2004 A2054 WD2 WD2.200 WD2.250 ZAMIENNIK,,,,,,,,,worki,,,paused,
|
||||
,1083,Worki syntetyczne Zelmer Józek Kazik Kazio 4 szt.,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Worki do odkurzaczy,,worki,,,,
|
||||
,1087,"Worki syntetyczne do odkurzacza AMICA Surazo VM 1055, Ora VM 1032, SAMSUNG SC5480 SC5660, BEKO VCC 5325 AR, IZ-BAG05SPCZ 4szt",,,,,,,,,worki,,,,
|
||||
,1088,"5X Worki syntetyczne do odkurzaczy ZELMER Magnat 3000, Jupiter 4000, Maxim, Solaris Twix",,,,,,,,,worki,,,,
|
||||
,1089,Worki do odkurzacza Zelmer Elf 2 321 322 Elf Bonus Flip - 6 sztuk papierowe,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy,,worki,,,,
|
||||
@@ -148,37 +148,37 @@
|
||||
,15,Worki do odkurzacza Electrolux Mondo E44 E49 Mondo II Z 1100-1199 papierowe,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy,,worki,,,,
|
||||
,16,Worki do odkurzacza Electrolux Mondo E44 E49 Mondo II Z 1100-1199 papierowe + filtry,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy,,worki,,,,
|
||||
,17,Worki do odkurzacza Electrolux S-BAG Airmax Expression Philips Mobilo papierowe,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy,,worki,,,,
|
||||
,170,"Worki PANASONIC AMC 8 F01 T 1000, C 20E, MC-E 761; IZ-PC5",,,,,,,,,worki,,,,
|
||||
,178,Worki do odkurzacza Electrolux / Philips IZ-E5/PH5S,,,,,,,,,worki,,,,
|
||||
,170,"Worki PANASONIC AMC 8 F01 T 1000, C 20E, MC-E 761; IZ-PC5",,,,,,,,,worki,,,paused,
|
||||
,178,Worki do odkurzacza Electrolux Philips IZ-E5 PH5S,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Worki do odkurzaczy,,worki,,,,
|
||||
,2,Worki do odkurzacza Zelmer Meteor Admiral 1010 1020 1030 papierowe 5 szt.,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy,,worki,,,,
|
||||
,20,Worki do odkurzacza Electrolux Cyclone Power Filio - papierowe 5 szt IZ-E13,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy,,worki,,,,
|
||||
,21,Worki do odkurzacza Amica Universis Beris Sumam Nortes papierowe 5 szt.,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy,,worki,,,paused,
|
||||
,223,"Worki papierowe do MIELE Aquamarin, Automatic, Senator LX; IZ-M1/M4",,,,,,,,,worki,,,,
|
||||
,24,"5X Worki do odkurzacza Zelmer XS 01Z011 + filtry, IZ-XS2F",,,,,,,,,worki,,,,
|
||||
,27,"worki do odkurzacza uniwersalne z uchwytem do wycinania + filtr, Typ 1010, pasują do wielu modeli odkurzaczy workowych (5 szt.) IZ-BAG01F",,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Worki do odkurzaczy,,worki,,,,
|
||||
,323,"Worki syntetyczne BOSCH Activa, Alpha, SIEMENS Super L; IZ-S11SP",,,,,,,,,worki,,,,
|
||||
,323,Worki syntetyczne Bosch Activa Alpha Siemens Super L IZ-S11SP,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Worki do odkurzaczy,,worki,,,,
|
||||
,34,"Worki ELDOM OS 1200, HOLDEN Maximo OD 30, INVEST Galactico, Furio, MPM Focus, PHILIPS FC 8046, 8334, 8344, 8348; IZ-Y19",,,,,,,,,worki,,,,
|
||||
,35,Worki do odkurzacza Profi Europe Masterprofi Twist Profi 1 Profi 3 - 5 szt,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy,,worki,,,,
|
||||
,408,Worek płócienny Electrolux S-bag; IZ-E5/PH5WP,,,,,,,,,worki,,,,
|
||||
,408,Worek płócienny Electrolux S-bag; IZ-E5/PH5WP,,,,,,,,,worki,,,paused,
|
||||
,5,Worki do odkurzacza Zelmer Meteor 2 Cobra 2000 2010 - 5 szt papierowe + filtry,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy,,worki,,,,
|
||||
,507,"Worki papierowe do NILFISK 818460.00, GD 1000, GD 1000 SER, GD 1005, GD 1010, GDS 1010, HDS 1010, VP 100; IZ-NI3",,,,,,,,,worki,,,,
|
||||
,507,"Worki papierowe do NILFISK 818460.00, GD 1000, GD 1000 SER, GD 1005, GD 1010, GDS 1010, HDS 1010, VP 100; IZ-NI3",,,,,,,,,worki,,,paused,
|
||||
,54,"Worki papierowe do Rowenta BP 61 Enduro, Bully, RB 50 - RB 52, RB 500; IZ-R4",,,,,,,,,worki,,,,
|
||||
,56,"Worki papierowe do odkurzaczy SAMSUNG Easy RC 999, VP-95B; IZ-FA6",,,,,,,,,worki,,,,
|
||||
,56,"Worki papierowe do odkurzaczy SAMSUNG Easy RC 999, VP-95B; IZ-FA6",,,,,,,,,worki,,,paused,
|
||||
,6,Worki papierowe do odkurzacza Zelmer 3000 5500 Magnat Solaris Jupiter 5szt,,,,,,,Worki do odkurzaczy,,worki,,,,
|
||||
,609,"Worki syntetyczne do ROWENTA Silence Force, X-Treme Power; IZ-R16S",,,,,,,,,worki,,,,
|
||||
,640,Worki do odkurzacza Karcher T 7/1 T 9/1 T 10/1 - papierowe 5 szt,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy,,worki,,,,
|
||||
,644,Worki syntetyczne do ZELMER Multipro 01Z013,,,,,,,,,worki,,,,
|
||||
,696,"Worki do odkurzacza Parkside PNTS 1250 1300 1400 1500 - 5 szt + filtr (kompat. Niteo Tools IPX 4, Blaupunkt WD4000) IZ-IPX4",,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Worki do odkurzaczy,,worki,,,,
|
||||
,70,"5X Worki do odkurzacza Zelmer 700, 701, Compact, IZ-700.0020",,,,,,,,,worki,,,,
|
||||
,70,"5X Worki do odkurzacza Zelmer 700, 701, Compact, IZ-700.0020",,,,,,,,,worki,,,paused,
|
||||
,703,Worki do odkurzacza Amica Nimis Qubis Universis Ventis IZ-AM2,,,,,,,Worki do odkurzaczy,,worki,,,,
|
||||
,705,Worki do odkurzacza Blaupunkt VCB201 Bomann BS9010 BS9011,,,,,,,Worki do odkurzaczy,,worki,,,,
|
||||
,706,Worki do odkurzacza Samsung VP99; IZ-VP99,,,,,,,,,worki,,,,
|
||||
,723,Worki papierowe do odkurzacza Zelmer Józek Kazio Kazik + filtr,,,,,,,Worki do odkurzaczy,,worki,,,,
|
||||
,725,"Worki syntetyczne do odkurzacza Zelmer Józek, Kazik, Kazio + filtr",,,,,,,,,worki,,,,
|
||||
,729,"Worki papierowe do odkurzacza Zelmer Adaś, Franek, Olek, Kuba ZVC 333, Kuba ZVC 334, Kuba ZVC 335 5szt",,,,,,,,,worki,,,,
|
||||
,729,Worki papierowe Zelmer Adaś Franek Olek Kuba ZVC 333 334 335 5 szt.,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Worki do odkurzaczy,,worki,,,,
|
||||
,789,Worki do odkurzacza Wetrok Monovac 6 Plus - 5 szt IZ-WK2,,,,,,,Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy,,worki,,,,
|
||||
,8,"5X Worki papierowe do odkurzacza Zelmer Orion, Cobra II Silent 2500, Orion 1500, 1600, Twist, Twister",,,,,,,,,worki,,,,
|
||||
,825,"Worki PHILIPS Athena Duathlon, HR6814-6855; IZ-PH6.1F",,,,,,,,,worki,,,,
|
||||
,825,"Worki PHILIPS Athena Duathlon, HR6814-6855; IZ-PH6.1F",,,,,,,,,worki,,,paused,
|
||||
,845,"Worki syntetyczne IZ-BAG05SPCZ do odkurzacza AMICA Surazo VM 1055, Ora VM 1032, SAMSUNG SC5480 SC5660, BEKO VCC 5325 AR, IZ-BAG05SPCZ 5szt",,,,,,,,,worki,,,,
|
||||
,871,Worki do odkurzacza Parkside PNTS 1300 1400 syntetyczne 5 szt. - zamiennik Lidl Einhell,,,,,,,4537,,worki,,,,
|
||||
,880,Worki do odkurzacza Amica Ora VM1032-VM1035 12szt,,,,,,,Worki do odkurzaczy,,worki,,,,
|
||||
|
||||
|
@@ -7,3 +7,38 @@
|
||||
{"timestamp": "2026-05-15T10:35:00+02:00", "task": "Sprawdzenie pomiaru konwersji", "status": "plan przygotowany", "campaign": "", "summary": {"conversion_actions": 11, "findings": 12, "knowledge_rules": 0, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T14:35:56+02:00", "task": "Ustawienie CL4 catch_all dla odkurzaczy bez PROFI", "status": "wdrozono zmiany", "product": "1066, 1067, 1068, 1069, 1210, 1211, 1212, 1213, 1214", "plan_path": "D:\\google ads ver 2\\clients\\investagd.pl\\plans\\2026-05-15_14-26-27_adspro_cl4_odkurzacze_catch_all.json", "summary": {"applied": 9, "errors": 0}}
|
||||
{"timestamp": "2026-05-15T15:40:42+02:00", "task": "Korekta CL4 wg dost?pno?ci i promowanych odkurzaczy", "status": "wdrozono zmiany", "product": "45, 49, 55, 56, 67, 70, 99, 134, 147, 158", "plan_path": "D:\\google ads ver 2\\clients\\investagd.pl\\plans\\2026-05-15_15-36-55_adspro_cl4_availability_and_vacuum_correction.json", "summary": {"operations": 143, "applied": 143, "errors": 0, "set_paused": 141, "cleared_cl4": 2}}
|
||||
{"timestamp": "2026-05-15T20:37:28+02:00", "task": "Sprawdzenie ustawien", "status": "plan przygotowany", "campaign": "[PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] odkurzacze, [PLA_CL1] worki, [PLA_CL1] pozostale, [PLA] catch-all, [PLA_CL1] odkurzacze | catch_all, [PLA_CL1] czajniki", "summary": {"campaigns": 7, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T20:37:29+02:00", "task": "Sprawdzenie podstawowych ustawien Search", "status": "plan przygotowany", "campaign": "[DSA] produkty, [Search] brand", "summary": {"campaigns": 2, "knowledge_rules": 0, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T20:37:32+02:00", "task": "Sprawdzenie pomiaru konwersji", "status": "plan przygotowany", "campaign": "", "summary": {"conversion_actions": 11, "findings": 12, "knowledge_rules": 0, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T20:37:37+02:00", "task": "Synchronizacja kampanii PLA_CL1", "status": "plan przygotowany", "campaign": "[PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] odkurzacze, [PLA_CL1] worki, [PLA_CL1] pozostale, [PLA_CL1] odkurzacze | catch_all, [PLA_CL1] czajniki", "created_at": "2026-05-15T20:37:32+02:00", "summary": {"campaigns": 6, "products": 185, "create": 0, "enable": 0, "pause": 16, "rename": 6}}
|
||||
{"timestamp": "2026-05-15T20:37:40+02:00", "task": "Automatyzacja tROAS per grupa reklam PLA", "status": "plan przygotowany", "campaign": "", "summary": {"ad_groups": 200, "target_changes": 0, "rollback_changes": 0, "watchlist": 199, "knowledge_rules": 1}}
|
||||
{"timestamp": "2026-05-15T20:37:40+02:00", "task": "Optymalizacja tytulow produktow", "status": "plan przygotowany", "product": "1041, 569, 1068, 1045, 666, 835, 178, 729, 323, 1083", "summary": {"products": 10, "title_changes": 10, "category_changes": 0, "unit_pricing_changes": 0}}
|
||||
{"timestamp": "2026-05-15T20:37:41+02:00", "task": "Optymalizacja kategorii Google", "status": "plan przygotowany", "product": "1041, 569, 1068, 1045, 666, 835, 178, 729, 323, 1083", "summary": {"products": 10, "title_changes": 0, "category_changes": 10, "unit_pricing_changes": 0}}
|
||||
{"timestamp": "2026-05-15T20:37:41+02:00", "task": "Uzupelnienie unit pricing", "status": "plan przygotowany", "product": "387, 397, 16, 27, 1041, 871, 5, 1090, 808, 10", "summary": {"products": 10, "title_changes": 0, "category_changes": 0, "unit_pricing_changes": 2}}
|
||||
{"timestamp": "2026-05-15T20:38:55+02:00", "task": "Sprawdzenie dostepnosci produktow", "status": "plan przygotowany", "summary": {"products_checked": 448, "available": 306, "unavailable": 138, "not_mapped": 4, "changes": 1}}
|
||||
{"timestamp": "2026-05-15T20:38:57+02:00", "task": "Sprawdzenie wykorzystania budzetu", "status": "plan przygotowany", "campaign": "[PLA_CL1] pozostale, [PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] odkurzacze, [PLA_CL1] worki, [PLA] catch-all, [Search] brand, [PLA_CL1] czajniki, [PLA_CL1] odkurzacze | catch_all", "summary": {"campaigns": 8, "knowledge_rules": 1, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T20:38:59+02:00", "task": "Sprawdzenie strategii stawek", "status": "plan przygotowany", "campaign": "[PLA] catch-all, [PLA_CL1] odkurzacze, [Search] brand, [PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] pozostale, [PLA_CL1] worki, [PLA_CL1] czajniki, [PLA_CL1] odkurzacze | catch_all", "summary": {"campaigns": 8, "knowledge_rules": 3, "target_changes": 0}}
|
||||
{"timestamp": "2026-05-15T20:39:00+02:00", "task": "Sprawdzenie anomalii konta", "status": "plan przygotowany", "campaign": "[PLA_CL1] odkurzacze, [PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] worki, [PLA_CL1] odkurzacze, [PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] pozostale, [PLA_CL1] worki, [PLA_CL1] worki", "summary": {"campaigns": 6, "anomalies": 8, "knowledge_rules": 0, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T20:43:15+02:00", "task": "Synchronizacja kampanii PLA_CL1", "status": "plan przygotowany", "campaign": "[PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] odkurzacze, [PLA_CL1] worki, [PLA_CL1] pozostale, [PLA_CL1] odkurzacze | catch_all, [PLA_CL1] czajniki", "created_at": "2026-05-15T20:43:09+02:00", "summary": {"campaigns": 6, "products": 185, "create": 0, "enable": 0, "pause": 76, "rename": 6}}
|
||||
{"timestamp": "2026-05-15T20:45:05+02:00", "task": "Synchronizacja kampanii PLA_CL1", "status": "wdrozono zmiany", "campaign": "[PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] odkurzacze, [PLA_CL1] worki, [PLA_CL1] pozostale, [PLA_CL1] odkurzacze | catch_all, [PLA_CL1] czajniki", "summary": {"created": 0, "enabled": 0, "create_errors": 0, "paused": 76, "renamed": 6}}
|
||||
{"timestamp": "2026-05-15T21:26:50+02:00", "task": "Sprawdzenie ustawien", "status": "plan przygotowany", "campaign": "[PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] odkurzacze, [PLA_CL1] worki, [PLA_CL1] pozostale, [PLA] catch-all, [PLA_CL1] odkurzacze | catch_all, [PLA_CL1] czajniki", "summary": {"campaigns": 7, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T21:28:45+02:00", "task": "Sprawdzenie podstawowych ustawien Search", "status": "plan przygotowany", "campaign": "[DSA] produkty, [Search] brand", "summary": {"campaigns": 2, "knowledge_rules": 0, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T21:29:31+02:00", "task": "Sprawdzenie pomiaru konwersji", "status": "plan przygotowany", "campaign": "", "summary": {"conversion_actions": 11, "findings": 12, "knowledge_rules": 0, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T21:30:57+02:00", "task": "Synchronizacja kampanii PLA_CL1", "status": "plan przygotowany", "campaign": "[PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] odkurzacze, [PLA_CL1] worki, [PLA_CL1] pozostale, [PLA_CL1] odkurzacze | catch_all, [PLA_CL1] czajniki", "created_at": "2026-05-15T21:30:51+02:00", "summary": {"campaigns": 6, "products": 185, "create": 0, "enable": 0, "pause": 0, "rename": 0}}
|
||||
{"timestamp": "2026-05-15T21:31:31+02:00", "task": "Automatyzacja tROAS per grupa reklam PLA", "status": "plan przygotowany", "campaign": "", "summary": {"ad_groups": 124, "target_changes": 0, "rollback_changes": 0, "watchlist": 124, "knowledge_rules": 1}}
|
||||
{"timestamp": "2026-05-15T21:32:47+02:00", "task": "Optymalizacja tytulow produktow", "status": "plan przygotowany", "product": "1041, 569, 1068, 1045, 666, 835, 178, 729, 323, 1083", "summary": {"products": 10, "title_changes": 10, "category_changes": 0, "unit_pricing_changes": 0}}
|
||||
{"timestamp": "2026-05-15T21:34:25+02:00", "task": "Optymalizacja tytulow produktow", "status": "wdrozono zmiany", "product": "1041, 569, 1068, 1045, 666, 835, 178, 729, 323, 1083", "summary": {"applied": 10, "skipped": 0}}
|
||||
{"timestamp": "2026-05-15T21:34:55+02:00", "task": "Optymalizacja kategorii Google", "status": "plan przygotowany", "product": "1041, 569, 1068, 1045, 666, 835, 178, 729, 323, 1083", "summary": {"products": 10, "title_changes": 0, "category_changes": 10, "unit_pricing_changes": 0}}
|
||||
{"timestamp": "2026-05-15T21:36:21+02:00", "task": "Optymalizacja kategorii Google", "status": "wdrozono zmiany", "product": "1041, 569, 1068, 1045, 666, 835, 178, 729, 323, 1083", "summary": {"applied": 10, "skipped": 0}}
|
||||
{"timestamp": "2026-05-15T21:39:58+02:00", "task": "Uzupelnienie unit pricing", "status": "plan przygotowany", "product": "387, 397, 16, 27, 1041, 871, 5, 1090, 808, 10", "summary": {"products": 10, "title_changes": 0, "category_changes": 0, "unit_pricing_changes": 2}}
|
||||
{"timestamp": "2026-05-15T21:40:34+02:00", "task": "Uzupelnienie unit pricing", "status": "wdrozono zmiany", "product": "871, 1090", "summary": {"applied": 2, "skipped": 0}}
|
||||
{"timestamp": "2026-05-15T21:43:21+02:00", "task": "Sprawdzenie dostepnosci produktow", "status": "plan przygotowany", "summary": {"products_checked": 448, "available": 306, "unavailable": 138, "not_mapped": 4, "changes": 1}}
|
||||
{"timestamp": "2026-05-15T21:44:01+02:00", "task": "Sprawdzenie dostepnosci produktow", "status": "wdrozono zmiany", "product": "1097", "plan_path": "D:\\google ads ver 2\\clients\\investagd.pl\\plans\\2026-05-15_21-43-21_check_product_availability.json", "summary": {"applied": 1, "errors": 0}}
|
||||
{"timestamp": "2026-05-15T21:44:32+02:00", "task": "Sprawdzenie wykorzystania budzetu", "status": "plan przygotowany", "campaign": "[PLA_CL1] pozostale, [PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] odkurzacze, [PLA_CL1] worki, [PLA] catch-all, [Search] brand, [PLA_CL1] czajniki, [PLA_CL1] odkurzacze | catch_all", "summary": {"campaigns": 8, "knowledge_rules": 1, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T21:45:42+02:00", "task": "Sprawdzenie strategii stawek", "status": "plan przygotowany", "campaign": "[PLA] catch-all, [PLA_CL1] odkurzacze, [Search] brand, [PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] pozostale, [PLA_CL1] worki, [PLA_CL1] czajniki, [PLA_CL1] odkurzacze | catch_all", "summary": {"campaigns": 8, "knowledge_rules": 3, "target_changes": 0}}
|
||||
{"timestamp": "2026-05-15T21:46:25+02:00", "task": "Sprawdzenie anomalii konta", "status": "plan przygotowany", "campaign": "[PLA_CL1] odkurzacze, [PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] worki, [PLA_CL1] odkurzacze, [PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] pozostale, [PLA_CL1] worki, [PLA_CL1] worki", "summary": {"campaigns": 6, "anomalies": 8, "knowledge_rules": 0, "changes": 0}}
|
||||
{"timestamp": "2026-05-15T21:47:54+02:00", "task": "Synchronizacja kampanii PLA_CL1", "status": "plan przygotowany", "campaign": "[PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] odkurzacze, [PLA_CL1] worki, [PLA_CL1] pozostale, [PLA_CL1] odkurzacze | catch_all, [PLA_CL1] czajniki", "created_at": "2026-05-15T21:47:48+02:00", "summary": {"campaigns": 6, "products": 185, "create": 0, "enable": 1, "pause": 2, "rename": 4}}
|
||||
{"timestamp": "2026-05-15T21:48:37+02:00", "task": "Synchronizacja kampanii PLA_CL1", "status": "wdrozono zmiany", "campaign": "[PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] odkurzacze, [PLA_CL1] worki, [PLA_CL1] pozostale, [PLA_CL1] odkurzacze | catch_all, [PLA_CL1] czajniki", "summary": {"created": 0, "enabled": 1, "create_errors": 0, "paused": 2, "renamed": 4}}
|
||||
{"timestamp": "2026-05-15T21:54:28+02:00", "task": "Synchronizacja kampanii PLA_CL1", "status": "plan przygotowany", "campaign": "[PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] odkurzacze, [PLA_CL1] worki, [PLA_CL1] pozostale, [PLA_CL1] odkurzacze | catch_all, [PLA_CL1] czajniki", "created_at": "2026-05-15T21:54:22+02:00", "summary": {"campaigns": 6, "products": 185, "create": 2, "enable": 0, "pause": 0, "rename": 2}}
|
||||
{"timestamp": "2026-05-15T21:59:25+02:00", "task": "Synchronizacja kampanii PLA_CL1", "status": "plan przygotowany", "campaign": "[PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] odkurzacze, [PLA_CL1] worki, [PLA_CL1] pozostale, [PLA_CL1] odkurzacze | catch_all, [PLA_CL1] czajniki", "created_at": "2026-05-15T21:59:19+02:00", "summary": {"campaigns": 6, "products": 185, "create": 2, "enable": 0, "pause": 0, "rename": 2}}
|
||||
{"timestamp": "2026-05-15T22:00:28+02:00", "task": "Synchronizacja kampanii PLA_CL1", "status": "wdrozono zmiany", "campaign": "[PLA_CL1] odkurzacze_akcesoria, [PLA_CL1] odkurzacze, [PLA_CL1] worki, [PLA_CL1] pozostale, [PLA_CL1] odkurzacze | catch_all, [PLA_CL1] czajniki", "summary": {"created": 2, "enabled": 0, "create_errors": 0, "paused": 0, "renamed": 2}}
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"created_at": "2026-05-15T20:37:28+02:00",
|
||||
"client": "investagd.pl",
|
||||
"task": "check_pla_settings",
|
||||
"campaigns": [
|
||||
{
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23836770153",
|
||||
"campaign_name": "[PLA] catch-all",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
}
|
||||
],
|
||||
"changes": [],
|
||||
"skipped_rules": [],
|
||||
"warnings": []
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
# Plan: Sprawdzenie ustawien kampanii PLA
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T20:37:28+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Kampanie PLA: 7
|
||||
- Korekty do wdrozenia: 0
|
||||
|
||||
## Kampanie PLA
|
||||
|
||||
| Kampania | Status | Lokalizacje | Priorytet |
|
||||
| --- | --- | --- | --- |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | ENABLED | Obecność | Wysoki |
|
||||
| [PLA_CL1] odkurzacze | ENABLED | Obecność | Wysoki |
|
||||
| [PLA_CL1] worki | ENABLED | Obecność | Wysoki |
|
||||
| [PLA_CL1] pozostale | ENABLED | Obecność | Wysoki |
|
||||
| [PLA] catch-all | ENABLED | Obecność | Wysoki |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ENABLED | Obecność | Wysoki |
|
||||
| [PLA_CL1] czajniki | ENABLED | Obecność | Wysoki |
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"created_at": "2026-05-15T20:37:29+02:00",
|
||||
"client": "investagd.pl",
|
||||
"task": "check_search_basic_settings",
|
||||
"task_name": "Sprawdzenie podstawowych ustawien Search",
|
||||
"campaigns": [
|
||||
{
|
||||
"campaign_id": "20530740619",
|
||||
"campaign_name": "[DSA] produkty",
|
||||
"status": "PAUSED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecnosc",
|
||||
"target_google_search": true,
|
||||
"target_search_network": false,
|
||||
"target_partner_search_network": false,
|
||||
"target_content_network": false
|
||||
},
|
||||
{
|
||||
"campaign_id": "22934868198",
|
||||
"campaign_name": "[Search] brand",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecnosc",
|
||||
"target_google_search": true,
|
||||
"target_search_network": false,
|
||||
"target_partner_search_network": false,
|
||||
"target_content_network": false
|
||||
}
|
||||
],
|
||||
"changes": [],
|
||||
"scope": [
|
||||
{
|
||||
"area": "Lokalizacje",
|
||||
"check": "Wymagaj kierowania lokalizacji na Obecnosc; inne tryby przygotuj jako korekte do wdrozenia."
|
||||
},
|
||||
{
|
||||
"area": "Sieci",
|
||||
"check": "Wymagaj wylaczonej sieci reklamowej i wylaczonych partnerow wyszukiwania w kampaniach Search."
|
||||
},
|
||||
{
|
||||
"area": "Jezyki",
|
||||
"check": "Sprawdz, czy ustawienia jezykowe sa zgodne z rynkiem klienta."
|
||||
},
|
||||
{
|
||||
"area": "Harmonogram reklam",
|
||||
"check": "Sprawdz, czy harmonogram jest swiadomie ustawiony albo czy kampania dziala caly czas."
|
||||
}
|
||||
],
|
||||
"out_of_scope": [
|
||||
"budzety i wykorzystanie budzetu",
|
||||
"strategie stawek i uczenie strategii",
|
||||
"zapytania uzytkownikow oraz wykluczenia",
|
||||
"reklamy RSA i zasoby reklam",
|
||||
"wyniki kampanii oraz rentownosc"
|
||||
],
|
||||
"knowledge_rules": [],
|
||||
"warnings": [
|
||||
"Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. Uzyj `python gads.py wiedza przypisz --restart`, gdy bedziemy wybierac reguly dla Search."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
# Plan: Sprawdzenie podstawowych ustawien Search
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T20:37:29+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Kampanie Search: 2
|
||||
- Reguly wiedzy przypisane do zadania: 0
|
||||
- Zmiany do wdrozenia: 0
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. Uzyj `python gads.py wiedza przypisz --restart`, gdy bedziemy wybierac reguly dla Search.
|
||||
|
||||
## Zakres zadania
|
||||
|
||||
| Obszar | Co sprawdzic |
|
||||
| --- | --- |
|
||||
| Lokalizacje | Wymagaj kierowania lokalizacji na Obecnosc; inne tryby przygotuj jako korekte do wdrozenia. |
|
||||
| Sieci | Wymagaj wylaczonej sieci reklamowej i wylaczonych partnerow wyszukiwania w kampaniach Search. |
|
||||
| Jezyki | Sprawdz, czy ustawienia jezykowe sa zgodne z rynkiem klienta. |
|
||||
| Harmonogram reklam | Sprawdz, czy harmonogram jest swiadomie ustawiony albo czy kampania dziala caly czas. |
|
||||
|
||||
## Poza zakresem tego zadania
|
||||
|
||||
- budzety i wykorzystanie budzetu
|
||||
- strategie stawek i uczenie strategii
|
||||
- zapytania uzytkownikow oraz wykluczenia
|
||||
- reklamy RSA i zasoby reklam
|
||||
- wyniki kampanii oraz rentownosc
|
||||
|
||||
## Kampanie Search
|
||||
|
||||
| Kampania | Status | Lokalizacje | Google Search | Search Network | Partnerzy | Siec reklamowa |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| [DSA] produkty | PAUSED | Obecnosc | TAK | NIE | NIE | NIE |
|
||||
| [Search] brand | ENABLED | Obecnosc | TAK | NIE | NIE | NIE |
|
||||
@@ -0,0 +1,437 @@
|
||||
{
|
||||
"created_at": "2026-05-15T20:37:32+02:00",
|
||||
"client": "investagd.pl",
|
||||
"task": "check_conversion_tracking",
|
||||
"task_name": "Sprawdzenie pomiaru konwersji",
|
||||
"currency_code": "PLN",
|
||||
"conversion_actions": [
|
||||
{
|
||||
"conversion_action_id": "7148777438",
|
||||
"resource_name": "customers/2298555588/conversionActions/7148777438",
|
||||
"name": "GADS - add_to_cart",
|
||||
"status": "ENABLED",
|
||||
"type": "WEBPAGE",
|
||||
"category": "ADD_TO_CART",
|
||||
"primary_for_goal": false,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": false,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 1,
|
||||
"attribution_model": "GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 0.0,
|
||||
"all_conversion_value_30d": 0.0,
|
||||
"is_collecting_data": false,
|
||||
"problem_flags": [
|
||||
"brak danych 30 dni"
|
||||
],
|
||||
"recommendation": "Sprawdz, czy akcja nadal powinna byc aktywna i czy tag uruchamia sie na wlasciwym zdarzeniu."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7075615613",
|
||||
"resource_name": "customers/2298555588/conversionActions/7075615613",
|
||||
"name": "Clicks to call",
|
||||
"status": "ENABLED",
|
||||
"type": "GOOGLE_HOSTED",
|
||||
"category": "CONTACT",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 7,
|
||||
"attribution_model": "GOOGLE_ADS_LAST_CLICK",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 2.0,
|
||||
"all_conversion_value_30d": 2.0,
|
||||
"is_collecting_data": true,
|
||||
"problem_flags": [
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7061592203",
|
||||
"resource_name": "customers/2298555588/conversionActions/7061592203",
|
||||
"name": "Działania lokalne – inne interakcje",
|
||||
"status": "ENABLED",
|
||||
"type": "GOOGLE_HOSTED",
|
||||
"category": "ENGAGEMENT",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 7,
|
||||
"attribution_model": "GOOGLE_ADS_LAST_CLICK",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 29.0,
|
||||
"all_conversion_value_30d": 29.0,
|
||||
"is_collecting_data": true,
|
||||
"problem_flags": [
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7053031175",
|
||||
"resource_name": "customers/2298555588/conversionActions/7053031175",
|
||||
"name": "YouTube channel subscriptions",
|
||||
"status": "ENABLED",
|
||||
"type": "UNKNOWN",
|
||||
"category": "ENGAGEMENT",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "ONE_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 1,
|
||||
"attribution_model": "GOOGLE_ADS_LAST_CLICK",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 0.0,
|
||||
"all_conversion_value_30d": 0.0,
|
||||
"is_collecting_data": false,
|
||||
"problem_flags": [
|
||||
"brak danych 30 dni",
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7075914415",
|
||||
"resource_name": "customers/2298555588/conversionActions/7075914415",
|
||||
"name": "Local actions - Directions",
|
||||
"status": "ENABLED",
|
||||
"type": "GOOGLE_HOSTED",
|
||||
"category": "GET_DIRECTIONS",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 7,
|
||||
"attribution_model": "GOOGLE_ADS_LAST_CLICK",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 3.0,
|
||||
"all_conversion_value_30d": 3.0,
|
||||
"is_collecting_data": true,
|
||||
"problem_flags": [
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7069930207",
|
||||
"resource_name": "customers/2298555588/conversionActions/7069930207",
|
||||
"name": "Local actions - Website visits",
|
||||
"status": "ENABLED",
|
||||
"type": "GOOGLE_HOSTED",
|
||||
"category": "PAGE_VIEW",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 7,
|
||||
"attribution_model": "GOOGLE_ADS_LAST_CLICK",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 0.0,
|
||||
"all_conversion_value_30d": 0.0,
|
||||
"is_collecting_data": false,
|
||||
"problem_flags": [
|
||||
"brak danych 30 dni",
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7380507064",
|
||||
"resource_name": "customers/2298555588/conversionActions/7380507064",
|
||||
"name": "Calls from ads",
|
||||
"status": "ENABLED",
|
||||
"type": "AD_CALL",
|
||||
"category": "PHONE_CALL_LEAD",
|
||||
"primary_for_goal": false,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "XXX",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 30,
|
||||
"attribution_model": "GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 5.0,
|
||||
"all_conversion_value_30d": 5.0,
|
||||
"is_collecting_data": true,
|
||||
"problem_flags": [
|
||||
"ok"
|
||||
],
|
||||
"recommendation": "Bez pilnej zmiany; zostaw jako kontekst albo konwersje dodatkowa."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7058948335",
|
||||
"resource_name": "customers/2298555588/conversionActions/7058948335",
|
||||
"name": "Investagd.pl – GA4 (G-NW44987MSE) (web) purchase",
|
||||
"status": "ENABLED",
|
||||
"type": "GOOGLE_ANALYTICS_4_PURCHASE",
|
||||
"category": "PURCHASE",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": true,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": false,
|
||||
"click_window_days": 90,
|
||||
"view_window_days": 1,
|
||||
"attribution_model": "UNKNOWN",
|
||||
"conversions_30d": 69.0,
|
||||
"conversion_value_30d": 3177.07,
|
||||
"all_conversions_30d": 120.25,
|
||||
"all_conversion_value_30d": 5987.77,
|
||||
"is_collecting_data": true,
|
||||
"problem_flags": [
|
||||
"ok"
|
||||
],
|
||||
"recommendation": "Dane zakupowe wygladaja na podstawowy sygnal optymalizacji; kontroluj wartosc i duplikacje."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "6574100052",
|
||||
"resource_name": "customers/2298555588/conversionActions/6574100052",
|
||||
"name": "purchase",
|
||||
"status": "ENABLED",
|
||||
"type": "WEBPAGE",
|
||||
"category": "PURCHASE",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": true,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": false,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 1,
|
||||
"attribution_model": "GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 0.0,
|
||||
"all_conversion_value_30d": 0.0,
|
||||
"is_collecting_data": false,
|
||||
"problem_flags": [
|
||||
"brak danych 30 dni",
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7460221088",
|
||||
"resource_name": "customers/2298555588/conversionActions/7460221088",
|
||||
"name": "Wyświetlenia po obejrzeniu reklamy w YouTube",
|
||||
"status": "ENABLED",
|
||||
"type": "UNKNOWN",
|
||||
"category": "YOUTUBE_FOLLOW_ON_VIEWS",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 1,
|
||||
"attribution_model": "GOOGLE_ADS_LAST_CLICK",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 1.0,
|
||||
"all_conversion_value_30d": 1.0,
|
||||
"is_collecting_data": true,
|
||||
"problem_flags": [
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7058948338",
|
||||
"resource_name": "customers/2298555588/conversionActions/7058948338",
|
||||
"name": "Investagd.pl – GA4 (G-NW44987MSE) (web) generate_lead",
|
||||
"status": "HIDDEN",
|
||||
"type": "GOOGLE_ANALYTICS_4_CUSTOM",
|
||||
"category": "PAGE_VIEW",
|
||||
"primary_for_goal": false,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": false,
|
||||
"click_window_days": 90,
|
||||
"view_window_days": 1,
|
||||
"attribution_model": "UNKNOWN",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 0.0,
|
||||
"all_conversion_value_30d": 0.0,
|
||||
"is_collecting_data": false,
|
||||
"problem_flags": [
|
||||
"akcja nieaktywna"
|
||||
],
|
||||
"recommendation": "Zostaw nieaktywna, jesli jest historyczna; w przeciwnym razie uporzadkuj konfiguracje konwersji."
|
||||
}
|
||||
],
|
||||
"action_summary": [
|
||||
{
|
||||
"metric": "akcje konwersji",
|
||||
"count": 11
|
||||
},
|
||||
{
|
||||
"metric": "aktywne",
|
||||
"count": 10
|
||||
},
|
||||
{
|
||||
"metric": "podstawowe",
|
||||
"count": 8
|
||||
},
|
||||
{
|
||||
"metric": "zbieraja dane 30 dni",
|
||||
"count": 6
|
||||
},
|
||||
{
|
||||
"metric": "z problemami",
|
||||
"count": 9
|
||||
},
|
||||
{
|
||||
"metric": "podstawowe z danymi",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"findings": [
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "CONTACT",
|
||||
"item": "Clicks to call",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "ENGAGEMENT",
|
||||
"item": "Działania lokalne – inne interakcje",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "ENGAGEMENT",
|
||||
"item": "YouTube channel subscriptions",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "GET_DIRECTIONS",
|
||||
"item": "Local actions - Directions",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "PAGE_VIEW",
|
||||
"item": "Local actions - Website visits",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "PURCHASE",
|
||||
"item": "purchase",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "YOUTUBE_FOLLOW_ON_VIEWS",
|
||||
"item": "Wyświetlenia po obejrzeniu reklamy w YouTube",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "srednie",
|
||||
"area": "ADD_TO_CART",
|
||||
"item": "GADS - add_to_cart",
|
||||
"problem": "brak danych 30 dni",
|
||||
"recommendation": "Sprawdz, czy akcja nadal powinna byc aktywna i czy tag uruchamia sie na wlasciwym zdarzeniu."
|
||||
},
|
||||
{
|
||||
"severity": "srednie",
|
||||
"area": "ENGAGEMENT",
|
||||
"item": "YouTube channel subscriptions",
|
||||
"problem": "brak danych 30 dni",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "srednie",
|
||||
"area": "PAGE_VIEW",
|
||||
"item": "Investagd.pl – GA4 (G-NW44987MSE) (web) generate_lead",
|
||||
"problem": "akcja nieaktywna",
|
||||
"recommendation": "Zostaw nieaktywna, jesli jest historyczna; w przeciwnym razie uporzadkuj konfiguracje konwersji."
|
||||
},
|
||||
{
|
||||
"severity": "srednie",
|
||||
"area": "PAGE_VIEW",
|
||||
"item": "Local actions - Website visits",
|
||||
"problem": "brak danych 30 dni",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "srednie",
|
||||
"area": "PURCHASE",
|
||||
"item": "purchase",
|
||||
"problem": "brak danych 30 dni",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
}
|
||||
],
|
||||
"changes": [],
|
||||
"scope": [
|
||||
{
|
||||
"area": "Akcje konwersji",
|
||||
"check": "Pobierz akcje konwersji z Google Ads, ich status, typ, kategorie i ustawienie podstawowa/dodatkowa."
|
||||
},
|
||||
{
|
||||
"area": "Dane 30 dni",
|
||||
"check": "Sprawdz, czy akcje konwersji zbieraja konwersje, wartosc konwersji i wszystkie konwersje z ostatnich 30 dni."
|
||||
},
|
||||
{
|
||||
"area": "Wartosc konwersji",
|
||||
"check": "Oznacz konwersje zakupowe i e-commerce bez wartosci albo bez waluty jako problem do poprawy pomiaru."
|
||||
},
|
||||
{
|
||||
"area": "Jakosc optymalizacji",
|
||||
"check": "Oznacz brak aktywnych konwersji podstawowych, brak danych 30 dni oraz podejrzana duplikacje podobnych akcji."
|
||||
},
|
||||
{
|
||||
"area": "Rekomendacje",
|
||||
"check": "Przygotuj rekomendacje decyzyjne do konfiguracji pomiaru; skrypt nie wdraza zmian automatycznie."
|
||||
}
|
||||
],
|
||||
"knowledge_rules": [],
|
||||
"warnings": [
|
||||
"Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. Reguly dotyczace pomiaru konwersji warto dopisac po pierwszych audytach."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
# Plan: Sprawdzenie pomiaru konwersji
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T20:37:32+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Akcje konwersji: 11
|
||||
- Problemy / rekomendacje: 12
|
||||
- Reguly wiedzy przypisane do zadania: 0
|
||||
- Zmiany do wdrozenia: 0
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. Reguly dotyczace pomiaru konwersji warto dopisac po pierwszych audytach.
|
||||
|
||||
## Zakres audytu
|
||||
|
||||
| Obszar | Co sprawdzic |
|
||||
| --- | --- |
|
||||
| Akcje konwersji | Pobierz akcje konwersji z Google Ads, ich status, typ, kategorie i ustawienie podstawowa/dodatkowa. |
|
||||
| Dane 30 dni | Sprawdz, czy akcje konwersji zbieraja konwersje, wartosc konwersji i wszystkie konwersje z ostatnich 30 dni. |
|
||||
| Wartosc konwersji | Oznacz konwersje zakupowe i e-commerce bez wartosci albo bez waluty jako problem do poprawy pomiaru. |
|
||||
| Jakosc optymalizacji | Oznacz brak aktywnych konwersji podstawowych, brak danych 30 dni oraz podejrzana duplikacje podobnych akcji. |
|
||||
| Rekomendacje | Przygotuj rekomendacje decyzyjne do konfiguracji pomiaru; skrypt nie wdraza zmian automatycznie. |
|
||||
|
||||
## Podsumowanie akcji
|
||||
|
||||
| Metryka | Liczba |
|
||||
| --- | --- |
|
||||
| akcje konwersji | 11 |
|
||||
| aktywne | 10 |
|
||||
| podstawowe | 8 |
|
||||
| zbieraja dane 30 dni | 6 |
|
||||
| z problemami | 9 |
|
||||
| podstawowe z danymi | 1 |
|
||||
|
||||
## Problemy i rekomendacje
|
||||
|
||||
| Waznosc | Obszar | Element | Problem | Rekomendacja |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| wysokie | CONTACT | Clicks to call | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| wysokie | ENGAGEMENT | Działania lokalne – inne interakcje | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| wysokie | ENGAGEMENT | YouTube channel subscriptions | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| wysokie | GET_DIRECTIONS | Local actions - Directions | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| wysokie | PAGE_VIEW | Local actions - Website visits | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| wysokie | PURCHASE | purchase | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| wysokie | YOUTUBE_FOLLOW_ON_VIEWS | Wyświetlenia po obejrzeniu reklamy w YouTube | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| srednie | ADD_TO_CART | GADS - add_to_cart | brak danych 30 dni | Sprawdz, czy akcja nadal powinna byc aktywna i czy tag uruchamia sie na wlasciwym zdarzeniu. |
|
||||
| srednie | ENGAGEMENT | YouTube channel subscriptions | brak danych 30 dni | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| srednie | PAGE_VIEW | Investagd.pl – GA4 (G-NW44987MSE) (web) generate_lead | akcja nieaktywna | Zostaw nieaktywna, jesli jest historyczna; w przeciwnym razie uporzadkuj konfiguracje konwersji. |
|
||||
| srednie | PAGE_VIEW | Local actions - Website visits | brak danych 30 dni | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| srednie | PURCHASE | purchase | brak danych 30 dni | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
|
||||
## Akcje konwersji
|
||||
|
||||
| Nazwa | Status | Typ | Kategoria | Podstawowa | W konwersjach | Konw. 30d | Wartosc 30d | Wszystkie konw. 30d | Wartosc wszystkich 30d | Okno klik. | Okno view | Problemy |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| GADS - add_to_cart | ENABLED | WEBPAGE | ADD_TO_CART | NIE | NIE | 0.00 | 0.00 PLN | 0.00 | 0.00 PLN | 30 | 1 | brak danych 30 dni |
|
||||
| Clicks to call | ENABLED | GOOGLE_HOSTED | CONTACT | TAK | NIE | 0.00 | 0.00 PLN | 2.00 | 2.00 PLN | 30 | 7 | podstawowa bez konwersji |
|
||||
| Działania lokalne – inne interakcje | ENABLED | GOOGLE_HOSTED | ENGAGEMENT | TAK | NIE | 0.00 | 0.00 PLN | 29.00 | 29.00 PLN | 30 | 7 | podstawowa bez konwersji |
|
||||
| YouTube channel subscriptions | ENABLED | UNKNOWN | ENGAGEMENT | TAK | NIE | 0.00 | 0.00 PLN | 0.00 | 0.00 PLN | 30 | 1 | brak danych 30 dni, podstawowa bez konwersji |
|
||||
| Local actions - Directions | ENABLED | GOOGLE_HOSTED | GET_DIRECTIONS | TAK | NIE | 0.00 | 0.00 PLN | 3.00 | 3.00 PLN | 30 | 7 | podstawowa bez konwersji |
|
||||
| Local actions - Website visits | ENABLED | GOOGLE_HOSTED | PAGE_VIEW | TAK | NIE | 0.00 | 0.00 PLN | 0.00 | 0.00 PLN | 30 | 7 | brak danych 30 dni, podstawowa bez konwersji |
|
||||
| Calls from ads | ENABLED | AD_CALL | PHONE_CALL_LEAD | NIE | NIE | 0.00 | 0.00 PLN | 5.00 | 5.00 PLN | 30 | 30 | ok |
|
||||
| Investagd.pl – GA4 (G-NW44987MSE) (web) purchase | ENABLED | GOOGLE_ANALYTICS_4_PURCHASE | PURCHASE | TAK | TAK | 69.00 | 3177.07 PLN | 120.25 | 5987.77 PLN | 90 | 1 | ok |
|
||||
| purchase | ENABLED | WEBPAGE | PURCHASE | TAK | TAK | 0.00 | 0.00 PLN | 0.00 | 0.00 PLN | 30 | 1 | brak danych 30 dni, podstawowa bez konwersji |
|
||||
| Wyświetlenia po obejrzeniu reklamy w YouTube | ENABLED | UNKNOWN | YOUTUBE_FOLLOW_ON_VIEWS | TAK | NIE | 0.00 | 0.00 PLN | 1.00 | 1.00 PLN | 30 | 1 | podstawowa bez konwersji |
|
||||
| Investagd.pl – GA4 (G-NW44987MSE) (web) generate_lead | HIDDEN | GOOGLE_ANALYTICS_4_CUSTOM | PAGE_VIEW | NIE | NIE | 0.00 | 0.00 PLN | 0.00 | 0.00 PLN | 90 | 1 | akcja nieaktywna |
|
||||
748
clients/investagd.pl/plans/2026-05-15_20-37-37_sync_pla_cl1.json
Normal file
748
clients/investagd.pl/plans/2026-05-15_20-37-37_sync_pla_cl1.json
Normal file
@@ -0,0 +1,748 @@
|
||||
{
|
||||
"created_at": "2026-05-15T20:37:37+02:00",
|
||||
"client": "investagd.pl",
|
||||
"products_count": 185,
|
||||
"task": "sync_pla_cl1",
|
||||
"campaigns": [
|
||||
{
|
||||
"id": "23797182612",
|
||||
"name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"status": "ENABLED",
|
||||
"allowed": [
|
||||
"odkurzacze_akcesoria"
|
||||
],
|
||||
"variant": ""
|
||||
},
|
||||
{
|
||||
"id": "23797198440",
|
||||
"name": "[PLA_CL1] odkurzacze",
|
||||
"status": "ENABLED",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": ""
|
||||
},
|
||||
{
|
||||
"id": "23825822059",
|
||||
"name": "[PLA_CL1] worki",
|
||||
"status": "ENABLED",
|
||||
"allowed": [
|
||||
"worki"
|
||||
],
|
||||
"variant": ""
|
||||
},
|
||||
{
|
||||
"id": "23825825449",
|
||||
"name": "[PLA_CL1] pozostale",
|
||||
"status": "ENABLED",
|
||||
"allowed": [
|
||||
"pozostale"
|
||||
],
|
||||
"variant": ""
|
||||
},
|
||||
{
|
||||
"id": "23846225484",
|
||||
"name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"status": "ENABLED",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "catch_all"
|
||||
},
|
||||
{
|
||||
"id": "23846238222",
|
||||
"name": "[PLA_CL1] czajniki",
|
||||
"status": "ENABLED",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": ""
|
||||
}
|
||||
],
|
||||
"groups_total": 353,
|
||||
"groups_with_product_id": 346,
|
||||
"create_plan": [],
|
||||
"enable_plan": [],
|
||||
"pause_plan": [
|
||||
{
|
||||
"ad_group_id": "196211383189",
|
||||
"ad_group_name": "Zestaw odkurzacz workowy Profi 11.5 + 12 x worki i 1x filtr",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"reason": "produkt jest w zlej kampanii"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211383389",
|
||||
"ad_group_name": "ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"reason": "produkt jest w zlej kampanii"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211383429",
|
||||
"ad_group_name": "Odkurzacz workowy Profi 1.2",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"reason": "produkt jest w zlej kampanii"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211383669",
|
||||
"ad_group_name": "ODKURZACZ WORKOWY VM 1058 SURAZO",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"reason": "produkt jest w zlej kampanii"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211383829",
|
||||
"ad_group_name": "ODKURZACZ WORKOWY INVEST GALACTICO 850 W",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"reason": "produkt jest w zlej kampanii"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211383869",
|
||||
"ad_group_name": "Odkurzacz workowy Profi P6 + 5x worki - zestaw",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"reason": "produkt jest w zlej kampanii"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211383909",
|
||||
"ad_group_name": "ODKURZACZ WORKOWY AMICA VM 1033 ORA",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"reason": "produkt jest w zlej kampanii"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211384069",
|
||||
"ad_group_name": "Odkurzacz workowy Profi P6",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"reason": "produkt jest w zlej kampanii"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211384109",
|
||||
"ad_group_name": "Zestaw odkurzacz workowy Profi 1.2 + 5x worki do odkurzacza",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"reason": "produkt jest w zlej kampanii"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211384149",
|
||||
"ad_group_name": "Zestaw odkurzacz workowy Profi 1.2.1 + worki do odkurzacza",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"reason": "produkt jest w zlej kampanii"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211384309",
|
||||
"ad_group_name": "Odkurzacz workowy Profi 1.2.1",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"reason": "produkt jest w zlej kampanii"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211384629",
|
||||
"ad_group_name": "Odkurzacz przemysłowy Invest Profus III - budowlany warsztatowy do pracy na sucho i mokro 1200W 10L",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"reason": "produkt jest w zlej kampanii"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211385109",
|
||||
"ad_group_name": "ODKURZACZ WORKOWY ZELMER TADEK ZVC261",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"reason": "produkt jest w zlej kampanii"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211385269",
|
||||
"ad_group_name": "Odkurzacz workowy Profi 11.5",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"reason": "produkt jest w zlej kampanii"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "199094717027",
|
||||
"ad_group_name": "ODKURZACZ PRZEMYSŁOWY INVEST PROFUS III 1200W 10L 2 sztuki",
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"reason": "produkt jest w zlej kampanii"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "199094718427",
|
||||
"ad_group_name": "ODKURZACZ WORKOWY INVEST GALACTICO 850 W 2 sztuki",
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"reason": "produkt jest w zlej kampanii"
|
||||
}
|
||||
],
|
||||
"rename_plan": [
|
||||
{
|
||||
"ad_group_id": "193175051701",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"old_name": "Worki do odkurzacza Electrolux Mondo E44 E49",
|
||||
"new_name": "Worki do odkurzacza Electrolux Mondo E44 E49 Mondo II Z 1100-1199 papierowe + filtry"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175052221",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"old_name": "5X Worki papierowe do odkurzacza Zelmer 2000, Aquawelt, Aquos, Cobra, Meteor 2, Voyager",
|
||||
"new_name": "Worki do odkurzacza Zelmer Meteor 2 Cobra Aquawelt Voyager - papierowe 5 szt"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175052381",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"old_name": "5 SZT WORKI DO LIDL PARKSIDE PNTS 1300 1400",
|
||||
"new_name": "Worki do odkurzacza Parkside PNTS 1300 1400 syntetyczne 5 szt. - zamiennik Lidl Einhell"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175052941",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"old_name": "Worki do odkurzaczy Amica Nimis VM 1021, 1022, Qubis Base VJ 1031, 1032, Universis Base VK 1012, Universis VK 1011, Ventis VK 4021 IZ-AM2/AM3S",
|
||||
"new_name": "Worki do odkurzacza Amica Nimis Qubis Universis Ventis IZ-AM2"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175053821",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"old_name": "Worki ELECTROLUX E 44, E 49, Mondo, Mondo E 49, Mondo II, Mondo Z 1100 - 1199",
|
||||
"new_name": "Worki do odkurzacza Electrolux Mondo E44 E49 Mondo II Z 1100-1199 papierowe"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "191439362530",
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"old_name": "Zelmer zestaw trzepaków do miksera 181 281 371 381",
|
||||
"new_name": "Trzepaki do miksera Zelmer 371K - komplet do robotów 181, 281, 371, 381"
|
||||
}
|
||||
],
|
||||
"warnings": [
|
||||
"Grupy reklam bez dopasowania w adsPRO: 43.",
|
||||
"Produkty z CL4, ale bez kampanii-wariantu, przypisane do kampanii bazowej: 60.",
|
||||
"Grupy reklam w zlym wariancie kampanii (CL4 nie pasuje): 18.",
|
||||
"Grupy reklam w zlej kampanii (CL1 nie pasuje): 106."
|
||||
],
|
||||
"unmatched_groups": [
|
||||
{
|
||||
"ad_group_id": "194749203006",
|
||||
"ad_group_name": "WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"allowed": [
|
||||
"odkurzacze_akcesoria"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "912"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "194749203046",
|
||||
"ad_group_name": "Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"allowed": [
|
||||
"odkurzacze_akcesoria"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "619"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "194749203086",
|
||||
"ad_group_name": "4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"allowed": [
|
||||
"odkurzacze_akcesoria"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "64"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "194749203286",
|
||||
"ad_group_name": "Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"allowed": [
|
||||
"odkurzacze_akcesoria"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": ""
|
||||
},
|
||||
{
|
||||
"ad_group_id": "194749203526",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"allowed": [
|
||||
"odkurzacze_akcesoria"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "637"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "194749203766",
|
||||
"ad_group_name": "4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"allowed": [
|
||||
"odkurzacze_akcesoria"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "778"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "194749203806",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"allowed": [
|
||||
"odkurzacze_akcesoria"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "784"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196794680140",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "637"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196794680380",
|
||||
"ad_group_name": "4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "778"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196794680540",
|
||||
"ad_group_name": "Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": ""
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196794680620",
|
||||
"ad_group_name": "WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "912"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196794680780",
|
||||
"ad_group_name": "Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "619"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196794680820",
|
||||
"ad_group_name": "4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "64"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196794681340",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "784"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175051941",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"allowed": [
|
||||
"worki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "637"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175051981",
|
||||
"ad_group_name": "Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"allowed": [
|
||||
"worki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": ""
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175052141",
|
||||
"ad_group_name": "Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"allowed": [
|
||||
"worki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "619"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175052461",
|
||||
"ad_group_name": "4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"allowed": [
|
||||
"worki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "778"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175052701",
|
||||
"ad_group_name": "4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"allowed": [
|
||||
"worki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "64"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175053101",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"allowed": [
|
||||
"worki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "784"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175053861",
|
||||
"ad_group_name": "WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"allowed": [
|
||||
"worki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "912"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "191439361170",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"allowed": [
|
||||
"pozostale"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "637"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "191439361330",
|
||||
"ad_group_name": "Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"allowed": [
|
||||
"pozostale"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": ""
|
||||
},
|
||||
{
|
||||
"ad_group_id": "191439361370",
|
||||
"ad_group_name": "Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"allowed": [
|
||||
"pozostale"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "619"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "191439362130",
|
||||
"ad_group_name": "4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"allowed": [
|
||||
"pozostale"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "64"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "191439362370",
|
||||
"ad_group_name": "4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"allowed": [
|
||||
"pozostale"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "778"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "191439363010",
|
||||
"ad_group_name": "WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"allowed": [
|
||||
"pozostale"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "912"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "191439363570",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"allowed": [
|
||||
"pozostale"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "784"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211383109",
|
||||
"ad_group_name": "4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "catch_all",
|
||||
"offer_id": "778"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211383349",
|
||||
"ad_group_name": "4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "catch_all",
|
||||
"offer_id": "64"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211383629",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "catch_all",
|
||||
"offer_id": "784"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211384389",
|
||||
"ad_group_name": "WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "catch_all",
|
||||
"offer_id": "912"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211385309",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "catch_all",
|
||||
"offer_id": "637"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211385349",
|
||||
"ad_group_name": "Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "catch_all",
|
||||
"offer_id": ""
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211385509",
|
||||
"ad_group_name": "Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "catch_all",
|
||||
"offer_id": "619"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196993753336",
|
||||
"ad_group_name": "deleted01",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": ""
|
||||
},
|
||||
{
|
||||
"ad_group_id": "197306992220",
|
||||
"ad_group_name": "4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "778"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "197306992460",
|
||||
"ad_group_name": "4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "64"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "197306992980",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "637"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "197306993020",
|
||||
"ad_group_name": "Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": ""
|
||||
},
|
||||
{
|
||||
"ad_group_id": "197306993180",
|
||||
"ad_group_name": "Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "619"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "197306993660",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "784"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "197306994420",
|
||||
"ad_group_name": "WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "912"
|
||||
}
|
||||
]
|
||||
}
|
||||
111
clients/investagd.pl/plans/2026-05-15_20-37-37_sync_pla_cl1.md
Normal file
111
clients/investagd.pl/plans/2026-05-15_20-37-37_sync_pla_cl1.md
Normal file
@@ -0,0 +1,111 @@
|
||||
# Plan: Synchronizacja kampanii PLA_CL1
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T20:37:37+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Kampanie PLA_CL1: 6
|
||||
- Produkty z adsPRO: 185
|
||||
- Grupy reklam obecnie: 353
|
||||
- Grupy reklam z identyfikatorem produktu: 346
|
||||
- Do utworzenia: 0
|
||||
- Do włączenia: 0
|
||||
- Do wstrzymania: 16
|
||||
- Do zmiany nazwy: 6
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Grupy reklam bez dopasowania w adsPRO: 43.
|
||||
- Produkty z CL4, ale bez kampanii-wariantu, przypisane do kampanii bazowej: 60.
|
||||
- Grupy reklam w zlym wariancie kampanii (CL4 nie pasuje): 18.
|
||||
- Grupy reklam w zlej kampanii (CL1 nie pasuje): 106.
|
||||
|
||||
## Podsumowanie po kampaniach
|
||||
|
||||
| Kampania | Utworz | Wlacz | Wstrzymaj | Zmien nazwe |
|
||||
| --- | ---: | ---: | ---: | ---: |
|
||||
| [PLA_CL1] odkurzacze | 0 | 0 | 2 | 0 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | 0 | 0 | 14 | 0 |
|
||||
| [PLA_CL1] pozostale | 0 | 0 | 0 | 1 |
|
||||
| [PLA_CL1] worki | 0 | 0 | 0 | 5 |
|
||||
|
||||
## Grupy reklam bez dopasowania w adsPRO
|
||||
|
||||
| Kampania | Grupa reklam | Status | Identyfikator produktu |
|
||||
| --- | --- | --- | --- |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] odkurzacze | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] odkurzacze | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] odkurzacze | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] odkurzacze | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
| [PLA_CL1] odkurzacze | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] odkurzacze | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] odkurzacze | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] worki | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] worki | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] worki | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] worki | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] worki | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] worki | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] worki | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
| [PLA_CL1] pozostale | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] pozostale | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] pozostale | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] pozostale | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] pozostale | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] pozostale | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
| [PLA_CL1] pozostale | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] czajniki | deleted01 | PAUSED | |
|
||||
| [PLA_CL1] czajniki | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] czajniki | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] czajniki | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] czajniki | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] czajniki | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] czajniki | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] czajniki | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
|
||||
## Grupy reklam do wstrzymania
|
||||
|
||||
| Kampania | Grupa reklam | Powod |
|
||||
| --- | --- | --- |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Zestaw odkurzacz workowy Profi 11.5 + 12 x worki i 1x filtr | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz workowy Profi 1.2 | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ WORKOWY VM 1058 SURAZO | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ WORKOWY INVEST GALACTICO 850 W | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz workowy Profi P6 + 5x worki - zestaw | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ WORKOWY AMICA VM 1033 ORA | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz workowy Profi P6 | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Zestaw odkurzacz workowy Profi 1.2 + 5x worki do odkurzacza | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Zestaw odkurzacz workowy Profi 1.2.1 + worki do odkurzacza | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz workowy Profi 1.2.1 | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz przemysłowy Invest Profus III - budowlany warsztatowy do pracy na sucho i mokro 1200W 10L | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ WORKOWY ZELMER TADEK ZVC261 | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz workowy Profi 11.5 | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | ODKURZACZ PRZEMYSŁOWY INVEST PROFUS III 1200W 10L 2 sztuki | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | ODKURZACZ WORKOWY INVEST GALACTICO 850 W 2 sztuki | produkt jest w zlej kampanii |
|
||||
|
||||
## Nazwy grup reklam do zmiany
|
||||
|
||||
| Kampania | Obecna nazwa | Nowa nazwa |
|
||||
| --- | --- | --- |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Electrolux Mondo E44 E49 | Worki do odkurzacza Electrolux Mondo E44 E49 Mondo II Z 1100-1199 papierowe + filtry |
|
||||
| [PLA_CL1] worki | 5X Worki papierowe do odkurzacza Zelmer 2000, Aquawelt, Aquos, Cobra, Meteor 2, Voyager | Worki do odkurzacza Zelmer Meteor 2 Cobra Aquawelt Voyager - papierowe 5 szt |
|
||||
| [PLA_CL1] worki | 5 SZT WORKI DO LIDL PARKSIDE PNTS 1300 1400 | Worki do odkurzacza Parkside PNTS 1300 1400 syntetyczne 5 szt. - zamiennik Lidl Einhell |
|
||||
| [PLA_CL1] worki | Worki do odkurzaczy Amica Nimis VM 1021, 1022, Qubis Base VJ 1031, 1032, Universis Base VK 1012, Universis VK 1011, Ventis VK 4021 IZ-AM2/AM3S | Worki do odkurzacza Amica Nimis Qubis Universis Ventis IZ-AM2 |
|
||||
| [PLA_CL1] worki | Worki ELECTROLUX E 44, E 49, Mondo, Mondo E 49, Mondo II, Mondo Z 1100 - 1199 | Worki do odkurzacza Electrolux Mondo E44 E49 Mondo II Z 1100-1199 papierowe |
|
||||
| [PLA_CL1] pozostale | Zelmer zestaw trzepaków do miksera 181 281 371 381 | Trzepaki do miksera Zelmer 371K - komplet do robotów 181, 281, 371, 381 |
|
||||
@@ -0,0 +1,215 @@
|
||||
{
|
||||
"created_at": "2026-05-15T20:37:40+02:00",
|
||||
"client": "investagd.pl",
|
||||
"task": "optimize_product_titles",
|
||||
"task_name": "Optymalizacja tytulow produktow",
|
||||
"products": [
|
||||
{
|
||||
"offer_id": "1041",
|
||||
"default_name": "Odkurzacz workowy Profi 1.2.1",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 113,
|
||||
"impressions": 4813,
|
||||
"cost": 183.32
|
||||
},
|
||||
{
|
||||
"offer_id": "569",
|
||||
"default_name": "Wąż ssący do odkurzaczy Zelmer 2000.1300 (czarny)",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 46,
|
||||
"impressions": 1716,
|
||||
"cost": 43.43
|
||||
},
|
||||
{
|
||||
"offer_id": "1068",
|
||||
"default_name": "ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 44,
|
||||
"impressions": 2360,
|
||||
"cost": 67.09
|
||||
},
|
||||
{
|
||||
"offer_id": "1045",
|
||||
"default_name": "Odkurzacz workowy Profi 11.5",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 43,
|
||||
"impressions": 4511,
|
||||
"cost": 74.34
|
||||
},
|
||||
{
|
||||
"offer_id": "666",
|
||||
"default_name": "Wąż dopływowy 3,0 do pralki / zmywarki - 3 m",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 38,
|
||||
"impressions": 1268,
|
||||
"cost": 16.39
|
||||
},
|
||||
{
|
||||
"offer_id": "835",
|
||||
"default_name": "Nasadka miksująca 171.2000Z do robotów Zelmer 371, 281, 381, 481",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 37,
|
||||
"impressions": 1345,
|
||||
"cost": 24.18
|
||||
},
|
||||
{
|
||||
"offer_id": "178",
|
||||
"default_name": "Worki do odkurzacza Electrolux / Philips IZ-E5/PH5S",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 36,
|
||||
"impressions": 1551,
|
||||
"cost": 41.07
|
||||
},
|
||||
{
|
||||
"offer_id": "729",
|
||||
"default_name": "Worki papierowe do odkurzacza Zelmer Adaś, Franek, Olek, Kuba ZVC 333, Kuba ZVC 334, Kuba ZVC 335 5szt",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 36,
|
||||
"impressions": 935,
|
||||
"cost": 30.6
|
||||
},
|
||||
{
|
||||
"offer_id": "323",
|
||||
"default_name": "Worki syntetyczne BOSCH Activa, Alpha, SIEMENS Super L; IZ-S11SP",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 34,
|
||||
"impressions": 2299,
|
||||
"cost": 21.22
|
||||
},
|
||||
{
|
||||
"offer_id": "1083",
|
||||
"default_name": "4x Worki syntetyczne do odkurzacza Zelmer Józek, Kazik, Kazio",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 33,
|
||||
"impressions": 1357,
|
||||
"cost": 41.25
|
||||
}
|
||||
],
|
||||
"title_changes": [
|
||||
{
|
||||
"offer_id": "1041",
|
||||
"field": "title",
|
||||
"current_value": "Odkurzacz workowy Profi 1.2.1",
|
||||
"target_value": "",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "569",
|
||||
"field": "title",
|
||||
"current_value": "Wąż ssący do odkurzaczy Zelmer 2000.1300 (czarny)",
|
||||
"target_value": "",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "1068",
|
||||
"field": "title",
|
||||
"current_value": "ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T",
|
||||
"target_value": "Odkurzacz Workowy Zelmer Antek Zvc3501T",
|
||||
"reason": "brak zoptymalizowanego tytulu lub tytul wymaga normalizacji"
|
||||
},
|
||||
{
|
||||
"offer_id": "1045",
|
||||
"field": "title",
|
||||
"current_value": "Odkurzacz workowy Profi 11.5",
|
||||
"target_value": "",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "666",
|
||||
"field": "title",
|
||||
"current_value": "Wąż dopływowy 3,0 do pralki / zmywarki - 3 m",
|
||||
"target_value": "",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "835",
|
||||
"field": "title",
|
||||
"current_value": "Nasadka miksująca 171.2000Z do robotów Zelmer 371, 281, 381, 481",
|
||||
"target_value": "",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "178",
|
||||
"field": "title",
|
||||
"current_value": "Worki do odkurzacza Electrolux / Philips IZ-E5/PH5S",
|
||||
"target_value": "",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "729",
|
||||
"field": "title",
|
||||
"current_value": "Worki papierowe do odkurzacza Zelmer Adaś, Franek, Olek, Kuba ZVC 333, Kuba ZVC 334, Kuba ZVC 335 5szt",
|
||||
"target_value": "",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "323",
|
||||
"field": "title",
|
||||
"current_value": "Worki syntetyczne BOSCH Activa, Alpha, SIEMENS Super L; IZ-S11SP",
|
||||
"target_value": "",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "1083",
|
||||
"field": "title",
|
||||
"current_value": "4x Worki syntetyczne do odkurzacza Zelmer Józek, Kazik, Kazio",
|
||||
"target_value": "",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
}
|
||||
],
|
||||
"category_changes": [],
|
||||
"unit_pricing_changes": [],
|
||||
"skipped": [],
|
||||
"warnings": [
|
||||
"Czesc tytulow wymaga decyzji agenta AI; skrypt nie przepisuje tytulu bazowego jako optymalizacji."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
# Plan: Optymalizacja tytulow produktow
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T20:37:40+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Produkty z adsPRO: 10
|
||||
- Tytuly do zmiany: 10
|
||||
- Kategorie do uzupelnienia: 0
|
||||
- Unit pricing do zmiany: 0
|
||||
- Pominiete: 0
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Czesc tytulow wymaga decyzji agenta AI; skrypt nie przepisuje tytulu bazowego jako optymalizacji.
|
||||
|
||||
## Tytuly do decyzji lub zmiany
|
||||
|
||||
| Produkt | Obecnie | Docelowo | Powod |
|
||||
| --- | --- | --- | --- |
|
||||
| 1041 | Odkurzacz workowy Profi 1.2.1 | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 569 | Wąż ssący do odkurzaczy Zelmer 2000.1300 (czarny) | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 1068 | ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T | Odkurzacz Workowy Zelmer Antek Zvc3501T | brak zoptymalizowanego tytulu lub tytul wymaga normalizacji |
|
||||
| 1045 | Odkurzacz workowy Profi 11.5 | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 666 | Wąż dopływowy 3,0 do pralki / zmywarki - 3 m | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 835 | Nasadka miksująca 171.2000Z do robotów Zelmer 371, 281, 381, 481 | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 178 | Worki do odkurzacza Electrolux / Philips IZ-E5/PH5S | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 729 | Worki papierowe do odkurzacza Zelmer Adaś, Franek, Olek, Kuba ZVC 333, Kuba ZVC 334, Kuba ZVC 335 5szt | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 323 | Worki syntetyczne BOSCH Activa, Alpha, SIEMENS Super L; IZ-S11SP | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 1083 | 4x Worki syntetyczne do odkurzacza Zelmer Józek, Kazik, Kazio | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,241 @@
|
||||
# Plan: Automatyzacja tROAS per grupa reklam PLA
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T20:37:40+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Grupy reklam Shopping z danymi 30 dni: 200
|
||||
- Kandydaci do podniesienia tROAS: 0
|
||||
- Kandydaci do rollbacku: 0
|
||||
- Watchlista bez akcji: 199
|
||||
- Reguly wiedzy przypisane do zadania: 1
|
||||
|
||||
## Zakres zadania
|
||||
|
||||
| Obszar | Co sprawdzic |
|
||||
| --- | --- |
|
||||
| Zakres | Analizuje tylko aktywne grupy reklam w aktywnych kampaniach Standard Shopping. |
|
||||
| Dane 30 dni | Liczy realny ROAS grupy reklam z kosztu i wartosci konwersji z ostatnich 30 dni. |
|
||||
| 100 klikow | Grupy reklam z mniej niz 100 klikami od poczatku trafiaja tylko na watchliste. |
|
||||
| Trigger 10 konwersji | Podbicie tROAS wymaga co najmniej 10 nowych konwersji wzgledem lokalnego baseline. |
|
||||
| Stopniowanie | Jedna analiza moze podniesc tROAS grupy reklam maksymalnie o 0.5. |
|
||||
| Rollback | Jesli po zmianie realny ROAS z 30 dni spada ponizej ustawionego tROAS, plan proponuje przywrocenie poprzedniej wartosci. |
|
||||
|
||||
## Watchlista bez akcji
|
||||
|
||||
| Kampania | Grupa reklam | Klikniecia all-time | Konwersje 30 dni | Real ROAS | Powod |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| [PLA] catch-all | Grupa reklam 1 | 50 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Sprzęgło ślimaka Zelmer 86.1203 do maszynki do mięsa - zamiennik do wszystkich modeli | 42 | 1.00 | 0.56 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | worki do odkurzacza uniwersalne z uchwytem do wycinania + filtr, Typ 1010, pasują do wielu modeli odkurzaczy workowych (5 szt.) IZ-BAG01F | 41 | 1.28 | 1.62 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T | 38 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Trzepaki mieszadełka do miksera Zelmer 481K - komplet do robotów 381, 481, 281, 181 | 31 | 1.00 | 1.39 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Filtr do dzbanka Dafi Classic / Kenwood Anna - 6 szt. wkładów filtrujących wodę | 30 | 2.00 | 1.84 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Meteor Admiral 1010 1020 1030 papierowe 5 szt. + filtry | 29 | 1.45 | 3.23 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | Odkurzacz workowy Profi P6 + 5x worki - zestaw | 28 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Wąż ssący do odkurzaczy Zelmer 2000.1300 (czarny) | 26 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka do odkurzacza Zelmer z welurem 32mm - mała ssawka do mebli i tapicerki | 25 | 2.00 | 1.94 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Meteor 2 Cobra 2000 2010 - 5 szt papierowe + filtry | 25 | 1.50 | 2.75 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | Odkurzacz workowy Profi 11.5 | 23 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Szatkownica do maszynki do mięsa Zelmer 586 686 886 986 - przystawka z 4 tarkami (plastry, wiórki, ziemniaki) SA01 | 21 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | Odkurzacz workowy Profi 1.2 | 19 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | Odkurzacz przemysłowy Invest Profus III - budowlany warsztatowy do pracy na sucho i mokro 1200W 10L | 18 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Meteor Admiral 1010 1020 1030 papierowe 5 szt. | 17 | 1.00 | 2.01 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Meteor 2 Cobra 2000 Explorer 1100 papierowe 6 szt. zamiennik | 17 | 0.50 | 1.06 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Electrolux S-BAG Airmax Expression Philips Mobilo papierowe | 16 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Amica Universis Beris Sumam Nortes papierowe 5 szt. | 15 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Elf 2 321 322 Elf Bonus Flip - 6 sztuk papierowe | 15 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Orion 1500 Twist Twister papierowe 5 szt. + filtry | 15 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Filtr ochrony silnika Parkside Niteo PNTS 1300 1500 | 13 | 2.00 | 3.91 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | Odkurzacz workowy Profi P6 | 13 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Elf 321 322 Elf Bonus Flip papierowe 5 szt. | 12 | 1.00 | 3.78 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | Zestaw odkurzacz workowy Profi 1.2.1 + worki do odkurzacza | 12 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | ODKURZACZ WORKOWY AMICA VM 1033 ORA | 10 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka welurowa do odkurzacza Electrolux, Philips - mała końcówka szczelinowa SM 0332 do tapicerki, mebli, zasłon | 10 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Zestaw ssawek naturalnym włosiem do paneli do odkurzacza Electrolux, Amica, Samsung, Philips typ IZ-SPE | 10 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | ODKURZACZ WORKOWY VM 1058 SURAZO | 9 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | Zestaw odkurzacz workowy Profi 11.5 + 12 x worki i 1x filtr | 9 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Wkłady do pochłaniacza wilgoci 250g uniwersalne - zestaw 10 szt. tabletki absorbujące | 9 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Wąż ssący do odkurzaczy Zelmer 1010.1100 (czarny) | 8 | 1.00 | 4.18 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Zelmer zestaw trzepaków do miksera 181 281 371 381 | 8 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Zestaw ssawek IZ-SPZ do paneli do odkurzaczy Zelmer | 7 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Thomas Aqua+ Pet & Family X7 X8 X10 XT syntetyczne 5 szt. | 7 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Cobra Explorer Meteor Wodnik 5szt | 7 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka 419 z naturalnym włosiem do odkurzacza Bosch, Karcher, Moulinex, Siemens | 6 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka mała 49.0003 do odkurzacza ZELMER | 6 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Turboszczotka uniwersalna z regulowaną średnicą 30-38mm | 5 | 1.00 | 51.09 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka do odkurzacza Zelmer duża podłogowa 32mm 23cm typ 49.1900 zamiennik (EAN 5905857142659) | 5 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Electrolux Mondo E44 E49 | 5 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki papierowe do odkurzacza Zelmer 3000 5500 Magnat Solaris Jupiter 5szt | 5 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do KARCHER 6.904-333.0, T 9/1,T10/1, IZ-K16S 10 sztuk | 4 | 1.57 | 8.39 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka duża do odkurzacza Bosch Siemens Moulinex SE 0735 | 4 | 1.00 | 6.73 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Rura teleskopowa do odkurzacza Zelmer Electrolux 111.6000 | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka mała z welurem SM 0535 do odkurzacza Bosch,Siemens, Moulinex , Karcher | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka mała z włosiem do odkurzacza Zelmer | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Uniwersalny zestaw końcówek do odkurzaczy 4szt | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | 4x Worki syntetyczne do odkurzacza Zelmer Józek, Kazik, Kazio | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | 5X Worki do odkurzacza Zelmer XS 01Z011 + filtry, IZ-XS2F | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Amica Ora VM1032-VM1035 12szt | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Karcher T 7/1 T 9/1 T 10/1 - papierowe 5 szt | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Elf 321 322 Flip 5 szt + filtry, papierowe, zamiennik IZ-3210080 | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki syntetyczne IZ-BAG05SPCZ do odkurzacza AMICA Surazo VM 1055, Ora VM 1032, SAMSUNG SC5480 SC5660, BEKO VCC 5325 AR, IZ-BAG05SPCZ 5szt | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | Zestaw odkurzacz workowy Profi 1.2 + 5x worki do odkurzacza | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr 5000.0050K HEPA 13 do odkurzaczy Zelmer Odyssey, Explorer, Syrius, Cobra, Cobra II Silent, Clarris, Clarris Twix, Magnat, Jupiter, Solaris, Sola | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr do odkurzacza Philips FC6409 FC6408 FC6170 | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Mała ssawka z welurem SM35 do odkurzacza Bosch, Karcher, Profi, Miele, Moulinex, Samsung | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka duża do odkurzacza Electrolux, Philips; SE 0732 | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka dwurzędowa 510 ze zgarniaczem śr. wew. 32mm do odkurzacza Electrolux, Philips | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka mała ze zgarniaczem do odkurzacza Electrolux, Philips SM 0232 | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawko-szczotka 32 mm do odkurzacza Zelmer Aquawelt Aquario Aeromaster Jupiter Solaris SE14ZEL - końcówka ssąca 2w1 | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Nóż nożyk dwustronny do maszynki Zelmer z komorą 5 - kod 86.1009 | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | 5 SZT WORKI DO LIDL PARKSIDE PNTS 1300 1400 | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki ELECTROLUX E 44, E 49, Mondo, Mondo E 49, Mondo II, Mondo Z 1100 - 1199 | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Electrolux / Philips IZ-E5/PH5S | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Samsung VP99; IZ-VP99 | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki papierowe do odkurzacza Zelmer Józek Kazio Kazik + filtr | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki syntetyczne BOSCH Activa, Alpha, SIEMENS Super L; IZ-S11SP | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Komplet filtrów wlot i wylot do odkurzacza Electrolux Mondo; IZ-WWE3 | 2 | 1.00 | 70.26 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | ODKURZACZ PRZEMYSŁOWY INVEST PROFUS III 1200W 10L 2 sztuki | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr EPA 12 2000.0050KU z uszczelką do odkurzaczy Zelmer Odyssey, Explorer, Syrius, Cobra, Cobra II Silent, Clarris, Magnat, Jupiter, Solaris | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr FK-03 do odkurzacza Karcher 2501, 2701, 2801, SE 2001, SE5.100, 2501 TE, A2701, 2801 plus, SE 3001, 2601, 2701 TE, A2801, 3001, SE6.100, 2601 pl | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr FK-10 do odkurzacza EINHELL: AFF 18, BT-VC 500 PARKSIDE: PAS 500A1, B1, C1, C2; PARK18/8C PARKSIDE 4711310437 | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr HEPA 719.0150 do odkurzacza ZELMER 719 Wodnik Duo, 819 Aquario, Wodnik Duo Plus, 829 Aquos | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtry do odkurzacza FESTOOL CT, CTL, CTM 11, 22, 33, 44/45 Ventos 25/35, Karcher NT351, NT351/ECO, NT14/1; FK-17-2X | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Rura teleskopowa z tworzywa do odkurzaczy ZELMER; RTP 0132 | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Rura teleskopowa z tworzywa średnica wewnętrzna 35 mm | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka mała z naturalnym włosiem do odkurzacza Electrolux, Philips typ 352 | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka ze zgarniaczem typ 168 do odkurzacza ZELMER | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawkoszczotka przełączalna do odkurzaczy Zelmer 32mm | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Szczotka ssawka do paneli z naturalnym włosiem do odkurzacza Bosch, Karcher, Siemens, Rowenta, Profi - IZ-SPU | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Zestaw ssawek IZ-ZDZ do dywanów do odkurzaczy Zelmer | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Dzbanek filtrujący Aquaphor Jasper 2,8L + wkład maxfor+ | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Wąż dopływowy 1,0 do pralki / zmywarki - 1 m | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Wąż dopływowy 3,0 do pralki / zmywarki - 3 m | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | 5X Worki do odkurzacza Zelmer 700, 701, Compact, IZ-700.0020 | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | 5X Worki papierowe do odkurzacza Zelmer Orion, Cobra II Silent 2500, Orion 1500, 1600, Twist, Twister | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Electrolux Cyclone Power Filio - papierowe 5 szt IZ-E13 | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Parkside PNTS 1250 1300 1400 1500 - 5 szt + filtr (kompat. Niteo Tools IPX 4, Blaupunkt WD4000) IZ-IPX4 | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Profi Europe Masterprofi Twist Profi 1 Profi 3 - 5 szt | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Edek - papierowe 5 szt | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki papierowe do NILFISK 818460.00, GD 1000, GD 1000 SER, GD 1005, GD 1010, GDS 1010, HDS 1010, VP 100; IZ-NI3 | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Duża ssawka 415 z naturalnym włosiem do odkurzacza Zelmer | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr do odkurzacza Karcher NT 65/2 Eco Tc, NT 65/2 Eco, NT 72/2 Eco Tc; FK-04 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr do odkurzacza Miele S4000 S5000 S6000 S8000; GA4007 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr piankowy SC47 do odkurzacza Samsung SC47J0, SC4320, SC4325,VCC4320S3B/XEO, VCC4325S3K/XEO, VCC4325S3R/XEO | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr zmywalny do odkurzacza Karcher WD 2, WD 3, NT/27, SE 4001, SE 4002, MV 2, MV3, K 2000; FK-02/P | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Mała ssawka z welurem do tapicerki śr. wew. 32 mm do odkurzacza Hoover, De Longhi, Privileg, Philips, Electrolux, Rowenta, SE 0932 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Mała ssawka z welurem do tapicerki śr. wew. 35 mm do odkurzacza Bosch, Karcher, Moulinex, Siemens, Amica, Samsung, Profi, SE 0935 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka duża 49 P z dwoma zgarniaczami typ 170 do odkurzacza ZELMER | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka mała 353 z naturalnym włosiem do odkurzacza Bosch, Siemens, Moulinex | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka okrągła z naturalnym włosiem 32 mm do odkurzaczy Zelmer , 047 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka szczelinowa do odkurzacza Electrolux, Philips | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka z włosem typ 800 do odkurzacza ZELMER | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawko-szczotka z naturalnym włosiem ELECTROLUX AEG PHILIPS KARCHER ZELMER | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Szczotka okrągła z włosem typ 046 do odkurzacza ZELMER | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Uniwersalne filtry do odkurzaczy wlot i wylot; IZ-WWU | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Wkład zapachowy do odkurzaczy (granulat) o zapachu morskim AROMA | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Zestaw akcesoriów do odkurzacza iRobot Roomba TS-75 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Butelka filtrująca Aquaphor City 500 ml granatowa + wkład | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Nasadka miksująca 171.2000Z do robotów Zelmer 371, 281, 381, 481 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Nożyk jednostronny do maszynki ZELMER z komorą 8; kod 86.3107 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Wkłady filtrujące do dzbanka Aquaphor Maxfor+ 3szt | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | 5X WORKI KARCHER A2000 A2004 A2054 WD2 WD2.200 WD2.250 ZAMIENNIK | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | 5X Worki papierowe do odkurzacza Zelmer 2000, Aquawelt, Aquos, Cobra, Meteor 2, Voyager | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | 5X Worki syntetyczne do odkurzaczy ZELMER Magnat 3000, Jupiter 4000, Maxim, Solaris Twix | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worek płócienny Electrolux S-bag; IZ-E5/PH5WP | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki ELDOM OS 1200, HOLDEN Maximo OD 30, INVEST Galactico, Furio, MPM Focus, PHILIPS FC 8046, 8334, 8344, 8348; IZ-Y19 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki PHILIPS Athena Duathlon, HR6814-6855; IZ-PH6.1F | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do KARCHER WD2 PLUS WD3 SE4001 SE4002 IZ-K22SP PO | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Wetrok Monovac 6 Plus - 5 szt IZ-WK2 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzaczy Amica Nimis VM 1021, 1022, Qubis Base VJ 1031, 1032, Universis Base VK 1012, Universis VK 1011, Ventis VK 4021 IZ-AM2/AM3S | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki papierowe do odkurzacza Zelmer Adaś, Franek, Olek, Kuba ZVC 333, Kuba ZVC 334, Kuba ZVC 335 5szt | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki syntetyczne do odkurzacza Zelmer Józek, Kazik, Kazio + filtr | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | ODKURZACZ WORKOWY INVEST GALACTICO 850 W | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | ODKURZACZ WORKOWY INVEST GALACTICO 850 W 2 sztuki | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | ODKURZACZ WORKOWY ZELMER TADEK ZVC261 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ PRZEMYSŁOWY INVEST PROFUS III 1200W 10L 2 sztuki | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ WORKOWY AMICA VM 1033 ORA | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ WORKOWY INVEST GALACTICO 850 W | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ WORKOWY INVEST GALACTICO 850 W 2 sztuki | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ WORKOWY VM 1058 SURAZO | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ WORKOWY ZELMER TADEK ZVC261 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz przemysłowy Invest Profus III - budowlany warsztatowy do pracy na sucho i mokro 1200W 10L | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz workowy Profi 1.2 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz workowy Profi 1.2.1 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz workowy Profi 11.5 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz workowy Profi P6 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz workowy Profi P6 + 5x worki - zestaw | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Zestaw odkurzacz workowy Profi 1.2 + 5x worki do odkurzacza | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Zestaw odkurzacz workowy Profi 1.2.1 + worki do odkurzacza | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Zestaw odkurzacz workowy Profi 11.5 + 12 x worki i 1x filtr | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | 1X Filtr do odkurzacza Dyson V11 SV14 V15 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr 5000.0050ZKU HEPA 13 z uszczelką do odkurzaczy Zelmer Odyssey, Explorer, Syrius, Cobra, Cobra II Silent, Clarris, Clarris Twix, Magnat, Jupiter | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr EPA 12 do odkurzacza ELECTROLUX Airmax, Clario, Ergo Space, Ultra Silencer, IZ-FHE1 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr HEPA 13 IZ-FHE2 do odkurzacza ELECTROLUX Airmax, Clario, Ergo Space, Ultra Silencer | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr HEPA oraz filtr stożkowy do odkurzaczy Dyson modeli DC58, DC59, DC61, DC62, V6 i V7 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr S Hepa IF-33 do odkurzacza Invest FURIO, FURIO ECO | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr S Hepa IG-03 do odkurzacza Invest GALACTICO | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr do odkurzacza Karcher NT 35/1 Eco/Te/M, NT 45/1 Eco/Te/M, NT 55/1 Eco/Te/M; FK-01 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr do odkurzacza Profi 3; FK-21 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr do odkurzacza Rowenta Silence Force , Silence Force Compact, Silence Force, Extreme, Silence Force Extreme Compact, ZR002901 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr do odkurzaczy Kärcher WD4, WD5, WD 4.200 - WD 4.500, 6.414-960.0 OKRĄGŁY - FK-454 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr piankowy I typ 919.0087 do odkurzaczy Zelmer Aquos 829, Aquawelt 919 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr piankowy typ SC43 do odkurzacza Samsung SC43 VC43 VCC43 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr powietrza wstępny 719.0060 do odkurzacza ZELMER 719 Wodnik Duo, Wodnik Duo Plus 819 Aquario | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr wlotowy 601201.4070 do odkurzacza Zelmer Voyager Twix | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | PHILIPS SpeedPro Max FC5005 FC6802 FILTR | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Płyn czyszczący do odkurzaczy piorących PL.D | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | SSAWKA SZCZELINOWA DO ODKURZACZY KARCHER BOSCH SAMSUNG ROWENTA | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka 3w1 do odkurzaczy Zelmer - 32 mm typ 354 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka 418 z syntetycznym włosiem do odkurzacza Bosch, Karcher, Moulinex, Siemens | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka 800 z dwoma zgarniaczami typ 218 do odkurzacza ZELMER | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka okrągła z naturalnym włosiem 32 mm do odkurzaczy Electrolux, 049 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka okrągła z naturalnym włosiem 35 mm do odkurzaczy Bosch | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka szczelinowa długa typ 056 do odkurzacza ZELMER | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka szczelinowa giętka do odkurzacza Zelmer | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka z włosem typ 1020 do odkurzacza ZELMER | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka średnia gładka 084 do odkurzacza ZELMER | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawko-szczotka SE1432 do odkurzaczy Electrolux... | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawko-szczotka SE1435 do odkurzaczy Bosch, Panasonic, Siemens... | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawko-szczotka SE1635 do odkurzaczy Bosch, Samsung, LG... | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawko-szczotka z naturalnym włosiem do odkurzaczy ELECTROLUX AEG PHILIPS DN32; 050-003 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawkoszczotka na kółkach do odkurzacza ZELMER; 449.0000P | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Szczotka parkietowa na kółkach do odkurzaczy ZELMER (czarna) 49.9500P | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Uniwersalny zestaw końcówek do odkurzaczy 4szt + Worek na akcesoria | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Worki do odkurzaczy DUO 01D011, 01D012; IZ-D011 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Wąż ssący do odkurzaczy Zelmer 321.0110 (czarny) | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Zestaw filtrów GA3833 do odkurzacza PHILIPS FC 8058/01, PowerPro Active FC 8630 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Zestaw ssawek IZ-ZDE do dywanów i wykładzin do odkurzacza Electrolux, Philips, Amica | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Zestaw ssawek IZ-ZDK do dywanów i wykładzin do odkurzacza Karcher, Bosch, Siemens, Profi, Rowenta | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Filtr węglowy do okapów kuchennych IZ-FW2 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Nożyk do maszynki do mięsa Zelmer komora 5 - 86.1007 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Sitko o średnicy otworów 8 mm do maszynki ZELMER z komorą 5 sitko 86.1242 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | UNIWERSALNY WKŁAD DO POCHŁANIACZA WILGOCI 250G | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Wkład do butelki filtrującej Aquaphor City | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | SZCZOTKA KOŃCÓWKA DO PAROWNICY KARCHER SC SC1 SC2 SC3 SC4 SC5 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki PANASONIC AMC 8 F01 T 1000, C 20E, MC-E 761; IZ-PC5 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Blaupunkt VCB201 Bomann BS9010 BS9011 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Magnat 3000 5500 Solaris Jupiter papierowe 6 szt. | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Sławek ZVC 361 ZVC 362 5sztuk | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki papierowe do MIELE Aquamarin, Automatic, Senator LX; IZ-M1/M4 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki papierowe do Rowenta BP 61 Enduro, Bully, RB 50 - RB 52, RB 500; IZ-R4 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki papierowe do odkurzaczy SAMSUNG Easy RC 999, VP-95B; IZ-FA6 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki syntetyczne do ROWENTA Silence Force, X-Treme Power; IZ-R16S | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki syntetyczne do ZELMER Multipro 01Z013 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki syntetyczne do odkurzacza AMICA Surazo VM 1055, Ora VM 1032, SAMSUNG SC5480 SC5660, BEKO VCC 5325 AR, IZ-BAG05SPCZ 4szt | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
|
||||
## Reguly z bazy wiedzy
|
||||
|
||||
| ID | Temat | Rekomendacja | Ryzyko |
|
||||
| --- | --- | --- | --- |
|
||||
| smart_bidding_sequential_budget_and_target_changes | strategie_stawek | Zmiany budzetow i celow Smart Bidding wprowadzaj sekwencyjnie. Nie zmieniaj jednoczesnie budzetu i Docelowego ROAS albo Docelowego CPA, jesli nie jest to swiadoma decyzja. Duze zmiany oznaczaj jako wyzsze ryzyko uczenia algorytmu i rekomenduj obserwacje wynikow przed kolejna zmiana. | Jednoczesne albo zbyt duze zmiany moga uruchomic niestabilny okres uczenia, utrudnic ocene przyczyny zmian wynikow i doprowadzic do nadmiernego wydawania budzetu albo utraty wolumenu konwersji. |
|
||||
|
||||
## Poza zakresem tego zadania
|
||||
|
||||
- Performance Max
|
||||
- Search
|
||||
- kampanie Shopping bez grup reklam
|
||||
- automatyczne wdrozenie bez akceptacji uzytkownika
|
||||
- pauzowanie grup reklam z niskim albo zerowym ROAS
|
||||
@@ -0,0 +1,179 @@
|
||||
{
|
||||
"created_at": "2026-05-15T20:37:41+02:00",
|
||||
"client": "investagd.pl",
|
||||
"task": "fill_product_unit_pricing",
|
||||
"task_name": "Uzupelnienie unit pricing",
|
||||
"products": [
|
||||
{
|
||||
"product_id": 24251,
|
||||
"offer_id": "387",
|
||||
"default_name": "Zelmer zestaw trzepaków do miksera ręcznego do modeli 181, 281, 371, 381",
|
||||
"custom_title": "Trzepaki do miksera Zelmer 371K - komplet do robotów 181, 281, 371, 381",
|
||||
"google_product_category": "Dom i ogród > Kuchnia i jadalnia > Akcesoria do sprzętów kuchennych > Akcesoria do mikserów i blenderów",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 207,
|
||||
"clicks_all_time": 596
|
||||
},
|
||||
{
|
||||
"product_id": 24276,
|
||||
"offer_id": "397",
|
||||
"default_name": "Zelmer sprzęgło napędowe ślimaka 86.1203 do maszynki do mielenia mięsa",
|
||||
"custom_title": "Sprzęgło ślimaka Zelmer 86.1203 do maszynki do mięsa - zamiennik do wszystkich modeli",
|
||||
"google_product_category": "Dom i ogród > Kuchnia i jadalnia > Akcesoria do sprzętów kuchennych > Akcesoria do rozdrabniaczy do żywności",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 41,
|
||||
"clicks_all_time": 126
|
||||
},
|
||||
{
|
||||
"product_id": 24182,
|
||||
"offer_id": "16",
|
||||
"default_name": "Worki ELECTROLUX E 44, E 49, Mondo E 49, Mondo II, Mondo Z 1100 - 1199 + filtry; IZ-E3F",
|
||||
"custom_title": "Worki do odkurzacza Electrolux Mondo E44 E49 Mondo II Z 1100-1199 papierowe + filtry",
|
||||
"google_product_category": "Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 61,
|
||||
"clicks_all_time": 124
|
||||
},
|
||||
{
|
||||
"product_id": 24051,
|
||||
"offer_id": "27",
|
||||
"default_name": "Worki uniwersalne z uchwytem do wycinania Typ 1010 + filtr; IZ-BAG01F",
|
||||
"custom_title": "worki do odkurzacza uniwersalne z uchwytem do wycinania + filtr, Typ 1010, pasują do wielu modeli odkurzaczy workowych (5 szt.) IZ-BAG01F",
|
||||
"google_product_category": "Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Worki do odkurzaczy",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 81,
|
||||
"clicks_all_time": 118
|
||||
},
|
||||
{
|
||||
"product_id": 24354,
|
||||
"offer_id": "1041",
|
||||
"default_name": "Odkurzacz workowy Profi 1.2.1",
|
||||
"custom_title": "",
|
||||
"google_product_category": "",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 112,
|
||||
"clicks_all_time": 113
|
||||
},
|
||||
{
|
||||
"product_id": 24047,
|
||||
"offer_id": "871",
|
||||
"default_name": "5 SZT WORKI DO LIDL PARKSIDE PNTS 1300 1400 IZ-L4S",
|
||||
"custom_title": "Worki do odkurzacza Parkside PNTS 1300 1400 syntetyczne 5 szt. - zamiennik Lidl Einhell",
|
||||
"google_product_category": "4537",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 7,
|
||||
"clicks_all_time": 112
|
||||
},
|
||||
{
|
||||
"product_id": 24069,
|
||||
"offer_id": "5",
|
||||
"default_name": "5X Worki papierowe do odkurzacza Zelmer Meteor 2, Cobra 2000, 2010 + filtry IZ-2000.0280",
|
||||
"custom_title": "Worki do odkurzacza Zelmer Meteor 2 Cobra 2000 2010 - 5 szt papierowe + filtry",
|
||||
"google_product_category": "Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 49,
|
||||
"clicks_all_time": 110
|
||||
},
|
||||
{
|
||||
"product_id": 24177,
|
||||
"offer_id": "1090",
|
||||
"default_name": "Worki papierowe do odkurzacza Zelmer 6 sztuk do Cobra 2000, Explorer 1100, Meteor 2",
|
||||
"custom_title": "Worki do odkurzacza Zelmer Meteor 2 Cobra 2000 Explorer 1100 papierowe 6 szt. zamiennik",
|
||||
"google_product_category": "4537",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 32,
|
||||
"clicks_all_time": 109
|
||||
},
|
||||
{
|
||||
"product_id": 24046,
|
||||
"offer_id": "808",
|
||||
"default_name": "Ssawka do odkurzacza mała z welurem 32 mm zamiennik do Zelmer",
|
||||
"custom_title": "Ssawka do odkurzacza Zelmer z welurem 32mm - mała ssawka do mebli i tapicerki",
|
||||
"google_product_category": "Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 25,
|
||||
"clicks_all_time": 94
|
||||
},
|
||||
{
|
||||
"product_id": 24120,
|
||||
"offer_id": "10",
|
||||
"default_name": "5X Worki do odkurzacza Zelmer Elf 321, 322, Elf Bonus, Flip, IZ-321.0081",
|
||||
"custom_title": "Worki do odkurzacza Zelmer Elf 321 322 Elf Bonus Flip papierowe 5 szt.",
|
||||
"google_product_category": "Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 47,
|
||||
"clicks_all_time": 93
|
||||
}
|
||||
],
|
||||
"title_changes": [],
|
||||
"category_changes": [],
|
||||
"unit_pricing_changes": [
|
||||
{
|
||||
"offer_id": "871",
|
||||
"field": "unit_pricing",
|
||||
"title": "5 SZT WORKI DO LIDL PARKSIDE PNTS 1300 1400 IZ-L4S",
|
||||
"current_unit_pricing_measure": "",
|
||||
"current_unit_pricing_base_measure": "",
|
||||
"unit_pricing_measure": "5 szt",
|
||||
"unit_pricing_base_measure": "1 szt",
|
||||
"reason": "brak unit pricing; wartosc wyliczona z nazwy produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "1090",
|
||||
"field": "unit_pricing",
|
||||
"title": "Worki papierowe do odkurzacza Zelmer 6 sztuk do Cobra 2000, Explorer 1100, Meteor 2",
|
||||
"current_unit_pricing_measure": "",
|
||||
"current_unit_pricing_base_measure": "",
|
||||
"unit_pricing_measure": "6 szt",
|
||||
"unit_pricing_base_measure": "1 szt",
|
||||
"reason": "brak unit pricing; wartosc wyliczona z nazwy produktu"
|
||||
}
|
||||
],
|
||||
"skipped": [
|
||||
{
|
||||
"offer_id": "387",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "397",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "16",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "27",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "1041",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "5",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "808",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "10",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
}
|
||||
],
|
||||
"warnings": [
|
||||
"Unit pricing zostanie zapisany w adsPRO dopiero po akceptacji planu."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
# Plan: Uzupelnienie unit pricing
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T20:37:41+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Produkty z adsPRO: 10
|
||||
- Tytuly do zmiany: 0
|
||||
- Kategorie do uzupelnienia: 0
|
||||
- Unit pricing do zmiany: 2
|
||||
- Pominiete: 8
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Unit pricing zostanie zapisany w adsPRO dopiero po akceptacji planu.
|
||||
|
||||
## Unit pricing do zmiany
|
||||
|
||||
| Produkt | Measure | Base measure | Powod |
|
||||
| --- | --- | --- | --- |
|
||||
| 871 | 5 szt | 1 szt | brak unit pricing; wartosc wyliczona z nazwy produktu |
|
||||
| 1090 | 6 szt | 1 szt | brak unit pricing; wartosc wyliczona z nazwy produktu |
|
||||
|
||||
## Pominiete
|
||||
|
||||
| Produkt | Powod |
|
||||
| --- | --- |
|
||||
| 387 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
| 397 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
| 16 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
| 27 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
| 1041 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
| 5 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
| 808 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
| 10 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
@@ -0,0 +1,216 @@
|
||||
{
|
||||
"created_at": "2026-05-15T20:37:41+02:00",
|
||||
"client": "investagd.pl",
|
||||
"task": "optimize_product_categories",
|
||||
"task_name": "Optymalizacja kategorii Google",
|
||||
"products": [
|
||||
{
|
||||
"offer_id": "1041",
|
||||
"default_name": "Odkurzacz workowy Profi 1.2.1",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 113,
|
||||
"impressions": 4813,
|
||||
"cost": 183.32
|
||||
},
|
||||
{
|
||||
"offer_id": "569",
|
||||
"default_name": "Wąż ssący do odkurzaczy Zelmer 2000.1300 (czarny)",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 46,
|
||||
"impressions": 1716,
|
||||
"cost": 43.43
|
||||
},
|
||||
{
|
||||
"offer_id": "1068",
|
||||
"default_name": "ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 44,
|
||||
"impressions": 2360,
|
||||
"cost": 67.09
|
||||
},
|
||||
{
|
||||
"offer_id": "1045",
|
||||
"default_name": "Odkurzacz workowy Profi 11.5",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 43,
|
||||
"impressions": 4511,
|
||||
"cost": 74.34
|
||||
},
|
||||
{
|
||||
"offer_id": "666",
|
||||
"default_name": "Wąż dopływowy 3,0 do pralki / zmywarki - 3 m",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 38,
|
||||
"impressions": 1268,
|
||||
"cost": 16.39
|
||||
},
|
||||
{
|
||||
"offer_id": "835",
|
||||
"default_name": "Nasadka miksująca 171.2000Z do robotów Zelmer 371, 281, 381, 481",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 37,
|
||||
"impressions": 1345,
|
||||
"cost": 24.18
|
||||
},
|
||||
{
|
||||
"offer_id": "178",
|
||||
"default_name": "Worki do odkurzacza Electrolux / Philips IZ-E5/PH5S",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 36,
|
||||
"impressions": 1551,
|
||||
"cost": 41.07
|
||||
},
|
||||
{
|
||||
"offer_id": "729",
|
||||
"default_name": "Worki papierowe do odkurzacza Zelmer Adaś, Franek, Olek, Kuba ZVC 333, Kuba ZVC 334, Kuba ZVC 335 5szt",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 36,
|
||||
"impressions": 935,
|
||||
"cost": 30.6
|
||||
},
|
||||
{
|
||||
"offer_id": "323",
|
||||
"default_name": "Worki syntetyczne BOSCH Activa, Alpha, SIEMENS Super L; IZ-S11SP",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 34,
|
||||
"impressions": 2299,
|
||||
"cost": 21.22
|
||||
},
|
||||
{
|
||||
"offer_id": "1083",
|
||||
"default_name": "4x Worki syntetyczne do odkurzacza Zelmer Józek, Kazik, Kazio",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 33,
|
||||
"impressions": 1357,
|
||||
"cost": 41.25
|
||||
}
|
||||
],
|
||||
"title_changes": [],
|
||||
"category_changes": [
|
||||
{
|
||||
"offer_id": "1041",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "569",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "1068",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "1045",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "666",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "835",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "178",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "729",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "323",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "1083",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
}
|
||||
],
|
||||
"unit_pricing_changes": [],
|
||||
"skipped": [],
|
||||
"warnings": [
|
||||
"Kategorie Google wybiera agent AI; skrypt nie zgaduje ich automatycznie."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
# Plan: Optymalizacja kategorii Google
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T20:37:41+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Produkty z adsPRO: 10
|
||||
- Tytuly do zmiany: 0
|
||||
- Kategorie do uzupelnienia: 10
|
||||
- Unit pricing do zmiany: 0
|
||||
- Pominiete: 0
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Kategorie Google wybiera agent AI; skrypt nie zgaduje ich automatycznie.
|
||||
|
||||
## Kategorie Google do decyzji agenta AI
|
||||
|
||||
| Produkt | Obecnie | Decyzja agenta AI | Powod |
|
||||
| --- | --- | --- | --- |
|
||||
| 1041 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 569 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 1068 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 1045 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 666 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 835 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 178 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 729 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 323 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 1083 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,23 @@
|
||||
# Plan: Sprawdzenie dostepnosci produktow
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T20:38:55+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Produkty sprawdzone: 448
|
||||
- Dostepne: 306
|
||||
- Niedostepne reklamowo: 138
|
||||
- Niedopasowane: 4
|
||||
- Do ustawienia CL4=paused: 1
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Produkty niedopasowane albo bez jednoznacznego odczytu: 4.
|
||||
- Produkty niedostepne reklamowo: 138.
|
||||
|
||||
## Zmiany do wdrozenia
|
||||
|
||||
| Produkt | Obecne CL4 | Docelowe CL4 | Powod | URL |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 1097 | | paused | brak aktywnego przycisku Dodaj do koszyka | https://www.investagd.pl/x-p-1097.html |
|
||||
@@ -0,0 +1,315 @@
|
||||
{
|
||||
"created_at": "2026-05-15T20:38:57+02:00",
|
||||
"client": "investagd.pl",
|
||||
"task": "check_budget_usage",
|
||||
"task_name": "Sprawdzenie wykorzystania budzetu",
|
||||
"currency_code": "PLN",
|
||||
"campaigns": [
|
||||
{
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15557732820",
|
||||
"budget_name": "[PLA_CL1] pozostale",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 15000000,
|
||||
"expected_7d_micros": 105000000,
|
||||
"cost_7d_micros": 131570000,
|
||||
"avg_daily_cost_micros": 18795714,
|
||||
"usage_percent": 125.3,
|
||||
"pacing_label": "blisko limitu",
|
||||
"conversions": 6.0,
|
||||
"conversions_value": 206.84,
|
||||
"roas": 1.57,
|
||||
"search_impression_share": 0.4117296222664016,
|
||||
"search_budget_lost_impression_share": 0.5882703777335984,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "srednie",
|
||||
"action": "sprawdz mozliwosc podniesienia budżetu",
|
||||
"reason": "kampania wykorzystuje budzet i traci czesc wyswietlen przez budzet",
|
||||
"suggested_budget_change_percent": 30,
|
||||
"current_daily_budget_micros": 15000000,
|
||||
"recommended_daily_budget_micros": 19500000,
|
||||
"budget_delta_micros": 4500000,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15548480095",
|
||||
"budget_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 15000000,
|
||||
"expected_7d_micros": 105000000,
|
||||
"cost_7d_micros": 119230000,
|
||||
"avg_daily_cost_micros": 17032857,
|
||||
"usage_percent": 113.6,
|
||||
"pacing_label": "blisko limitu",
|
||||
"conversions": 4.0,
|
||||
"conversions_value": 189.49,
|
||||
"roas": 1.59,
|
||||
"search_impression_share": 0.5420177636073787,
|
||||
"search_budget_lost_impression_share": 0.45798223639262126,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "srednie",
|
||||
"action": "sprawdz mozliwosc podniesienia budżetu",
|
||||
"reason": "kampania wykorzystuje budzet i traci czesc wyswietlen przez budzet",
|
||||
"suggested_budget_change_percent": 25,
|
||||
"current_daily_budget_micros": 15000000,
|
||||
"recommended_daily_budget_micros": 18750000,
|
||||
"budget_delta_micros": 3750000,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15543226950",
|
||||
"budget_name": "[PLA_CL1] odkurzacze",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 60000000,
|
||||
"expected_7d_micros": 420000000,
|
||||
"cost_7d_micros": 412370000,
|
||||
"avg_daily_cost_micros": 58910000,
|
||||
"usage_percent": 98.2,
|
||||
"pacing_label": "blisko limitu",
|
||||
"conversions": 0.0,
|
||||
"conversions_value": 0.0,
|
||||
"roas": 0.0,
|
||||
"search_impression_share": 0.5640596682001952,
|
||||
"search_budget_lost_impression_share": 0.43594033179980485,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "ostroznie",
|
||||
"action": "nie podnoś budżetu bez oceny rentowności",
|
||||
"reason": "widac utrate przez budzet, ale brakuje wystarczajacej wartosci konwersji",
|
||||
"suggested_budget_change_percent": 0,
|
||||
"current_daily_budget_micros": 60000000,
|
||||
"recommended_daily_budget_micros": 60000000,
|
||||
"budget_delta_micros": 0,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15557730201",
|
||||
"budget_name": "[PLA_CL1] worki",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 40000000,
|
||||
"expected_7d_micros": 280000000,
|
||||
"cost_7d_micros": 229520000,
|
||||
"avg_daily_cost_micros": 32788571,
|
||||
"usage_percent": 82.0,
|
||||
"pacing_label": "w normie",
|
||||
"conversions": 5.07,
|
||||
"conversions_value": 319.79,
|
||||
"roas": 1.39,
|
||||
"search_impression_share": 0.5347182697780307,
|
||||
"search_budget_lost_impression_share": 0.4652817302219693,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "ok",
|
||||
"action": "bez zmiany budzetu",
|
||||
"reason": "brak jednoczesnego sygnalu wysokiego wykorzystania i utraty przez budzet",
|
||||
"suggested_budget_change_percent": 0,
|
||||
"current_daily_budget_micros": 40000000,
|
||||
"recommended_daily_budget_micros": 40000000,
|
||||
"budget_delta_micros": 0,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23836770153",
|
||||
"campaign_name": "[PLA] catch-all",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15578507680",
|
||||
"budget_name": "[PLA] catch-all",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 10000000,
|
||||
"expected_7d_micros": 70000000,
|
||||
"cost_7d_micros": 36670000,
|
||||
"avg_daily_cost_micros": 5238571,
|
||||
"usage_percent": 52.4,
|
||||
"pacing_label": "w normie",
|
||||
"conversions": 0.0,
|
||||
"conversions_value": 0.0,
|
||||
"roas": 0.0,
|
||||
"search_impression_share": 0.4660633484162896,
|
||||
"search_budget_lost_impression_share": 0.5339366515837104,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "ok",
|
||||
"action": "bez zmiany budzetu",
|
||||
"reason": "brak jednoczesnego sygnalu wysokiego wykorzystania i utraty przez budzet",
|
||||
"suggested_budget_change_percent": 0,
|
||||
"current_daily_budget_micros": 10000000,
|
||||
"recommended_daily_budget_micros": 10000000,
|
||||
"budget_delta_micros": 0,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "22934868198",
|
||||
"campaign_name": "[Search] brand",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SEARCH",
|
||||
"budget_id": "14870361809",
|
||||
"budget_name": "[Search] brand",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 30000000,
|
||||
"expected_7d_micros": 210000000,
|
||||
"cost_7d_micros": 48599836,
|
||||
"avg_daily_cost_micros": 6942833,
|
||||
"usage_percent": 23.1,
|
||||
"pacing_label": "niskie wykorzystanie",
|
||||
"conversions": 3.0,
|
||||
"conversions_value": 236.95,
|
||||
"roas": 4.88,
|
||||
"search_impression_share": 0.5238095238095238,
|
||||
"search_budget_lost_impression_share": 0.0,
|
||||
"search_rank_lost_impression_share": 0.47619047619047616,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "ok",
|
||||
"action": "bez zmiany budzetu",
|
||||
"reason": "brak jednoczesnego sygnalu wysokiego wykorzystania i utraty przez budzet",
|
||||
"suggested_budget_change_percent": 0,
|
||||
"current_daily_budget_micros": 30000000,
|
||||
"recommended_daily_budget_micros": 30000000,
|
||||
"budget_delta_micros": 0,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15575442944",
|
||||
"budget_name": "[PLA_CL1] czajniki",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 20000000,
|
||||
"expected_7d_micros": 140000000,
|
||||
"cost_7d_micros": 0,
|
||||
"avg_daily_cost_micros": 0,
|
||||
"usage_percent": 0.0,
|
||||
"pacing_label": "brak wydatkow",
|
||||
"conversions": 0.0,
|
||||
"conversions_value": 0.0,
|
||||
"roas": 0,
|
||||
"search_impression_share": 0.0,
|
||||
"search_budget_lost_impression_share": 0.0,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "do sprawdzenia",
|
||||
"action": "sprawdz brak wydatkow",
|
||||
"reason": "aktywna kampania nie wydala srodkow w ostatnich 7 dniach",
|
||||
"suggested_budget_change_percent": 0,
|
||||
"current_daily_budget_micros": 20000000,
|
||||
"recommended_daily_budget_micros": 20000000,
|
||||
"budget_delta_micros": 0,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15580076781",
|
||||
"budget_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 10000,
|
||||
"expected_7d_micros": 70000,
|
||||
"cost_7d_micros": 0,
|
||||
"avg_daily_cost_micros": 0,
|
||||
"usage_percent": 0.0,
|
||||
"pacing_label": "brak wydatkow",
|
||||
"conversions": 0.0,
|
||||
"conversions_value": 0.0,
|
||||
"roas": 0,
|
||||
"search_impression_share": 0.0,
|
||||
"search_budget_lost_impression_share": 0.0,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "do sprawdzenia",
|
||||
"action": "sprawdz brak wydatkow",
|
||||
"reason": "aktywna kampania nie wydala srodkow w ostatnich 7 dniach",
|
||||
"suggested_budget_change_percent": 0,
|
||||
"current_daily_budget_micros": 10000,
|
||||
"recommended_daily_budget_micros": 10000,
|
||||
"budget_delta_micros": 0,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
}
|
||||
],
|
||||
"scope": [
|
||||
{
|
||||
"area": "Wydatki 7 dni",
|
||||
"check": "Porownaj koszt z ostatnich 7 dni z oczekiwanym wydatkiem wynikajacym z budzetu dziennego."
|
||||
},
|
||||
{
|
||||
"area": "Pacing",
|
||||
"check": "Oznacz kampanie, ktore wydaja bardzo malo albo prawie caly tygodniowy limit budzetu."
|
||||
},
|
||||
{
|
||||
"area": "Utrata wyswietlania przez budzet",
|
||||
"check": "Polacz wykorzystanie budzetu z utrata udzialu w wyswietleniach przez budzet i rentownoscia kampanii."
|
||||
},
|
||||
{
|
||||
"area": "Brak wydatkow",
|
||||
"check": "Wskaz aktywne kampanie z budzetem, ktore nie wydaly srodkow w ostatnich 7 dniach."
|
||||
},
|
||||
{
|
||||
"area": "Budzet wspoldzielony",
|
||||
"check": "Pokaz nazwe budzetu, zeby latwiej wychwycic kampanie korzystajace z tego samego budzetu."
|
||||
}
|
||||
],
|
||||
"out_of_scope": [
|
||||
"zmiany stawek i strategii ustalania stawek",
|
||||
"ocena Docelowego ROAS albo Docelowego CPA",
|
||||
"analiza zapytan, wykluczen i jakosci ruchu",
|
||||
"wdrazanie zmian budzetowych na koncie"
|
||||
],
|
||||
"knowledge_rules": [
|
||||
{
|
||||
"id": "smart_bidding_sequential_budget_and_target_changes",
|
||||
"topic": "strategie_stawek",
|
||||
"rule_type": "warning",
|
||||
"condition": "Plan zaklada zmiane budzetu albo celu Smart Bidding, szczegolnie gdy zmiana jest duza albo nastepuje krotko po innej zmianie budzetu, strategii lub celu.",
|
||||
"recommendation": "Zmiany budzetow i celow Smart Bidding wprowadzaj sekwencyjnie. Nie zmieniaj jednoczesnie budzetu i Docelowego ROAS albo Docelowego CPA, jesli nie jest to swiadoma decyzja. Duze zmiany oznaczaj jako wyzsze ryzyko uczenia algorytmu i rekomenduj obserwacje wynikow przed kolejna zmiana.",
|
||||
"risk": "Jednoczesne albo zbyt duze zmiany moga uruchomic niestabilny okres uczenia, utrudnic ocene przyczyny zmian wynikow i doprowadzic do nadmiernego wydawania budzetu albo utraty wolumenu konwersji.",
|
||||
"source": "manual"
|
||||
}
|
||||
],
|
||||
"warnings": [],
|
||||
"budget_changes": [],
|
||||
"changes": []
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
# Plan: Sprawdzenie wykorzystania budzetu
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T20:38:57+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Kampanie aktywne z danymi 7 dni: 8
|
||||
- Reguly wiedzy przypisane do zadania: 1
|
||||
- Rekomendacje budzetowe do decyzji: 5
|
||||
- Zmiany budzetu do wdrozenia: 0
|
||||
|
||||
## Zakres zadania
|
||||
|
||||
| Obszar | Co sprawdzic |
|
||||
| --- | --- |
|
||||
| Wydatki 7 dni | Porownaj koszt z ostatnich 7 dni z oczekiwanym wydatkiem wynikajacym z budzetu dziennego. |
|
||||
| Pacing | Oznacz kampanie, ktore wydaja bardzo malo albo prawie caly tygodniowy limit budzetu. |
|
||||
| Utrata wyswietlania przez budzet | Polacz wykorzystanie budzetu z utrata udzialu w wyswietleniach przez budzet i rentownoscia kampanii. |
|
||||
| Brak wydatkow | Wskaz aktywne kampanie z budzetem, ktore nie wydaly srodkow w ostatnich 7 dniach. |
|
||||
| Budzet wspoldzielony | Pokaz nazwe budzetu, zeby latwiej wychwycic kampanie korzystajace z tego samego budzetu. |
|
||||
|
||||
## Poza zakresem tego zadania
|
||||
|
||||
- zmiany stawek i strategii ustalania stawek
|
||||
- ocena Docelowego ROAS albo Docelowego CPA
|
||||
- analiza zapytan, wykluczen i jakosci ruchu
|
||||
- wdrazanie zmian budzetowych na koncie
|
||||
|
||||
## Wykorzystanie budzetu z ostatnich 7 dni
|
||||
|
||||
| Kampania | Typ | Budzet dzienny | Koszt 7 dni | Uzycie 7 dni | Utrata przez budzet | ROAS | Status | Ost. zmiana budzetu | Budzet |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| [PLA_CL1] pozostale | SHOPPING | 15.00 PLN | 131.57 PLN | 125.3% | 58.83% | 1.57 | blisko limitu | brak danych | [PLA_CL1] pozostale |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | SHOPPING | 15.00 PLN | 119.23 PLN | 113.6% | 45.80% | 1.59 | blisko limitu | brak danych | [PLA_CL1] odkurzacze_akcesoria |
|
||||
| [PLA_CL1] odkurzacze | SHOPPING | 60.00 PLN | 412.37 PLN | 98.2% | 43.59% | - | blisko limitu | brak danych | [PLA_CL1] odkurzacze |
|
||||
| [PLA_CL1] worki | SHOPPING | 40.00 PLN | 229.52 PLN | 82.0% | 46.53% | 1.39 | w normie | brak danych | [PLA_CL1] worki |
|
||||
| [PLA] catch-all | SHOPPING | 10.00 PLN | 36.67 PLN | 52.4% | 53.39% | - | w normie | brak danych | [PLA] catch-all |
|
||||
| [Search] brand | SEARCH | 30.00 PLN | 48.60 PLN | 23.1% | 0.00% | 4.88 | niskie wykorzystanie | brak danych | [Search] brand |
|
||||
| [PLA_CL1] czajniki | SHOPPING | 20.00 PLN | 0.00 PLN | 0.0% | 0.00% | - | brak wydatkow | brak danych | [PLA_CL1] czajniki |
|
||||
| [PLA_CL1] odkurzacze | catch_all | SHOPPING | 0.01 PLN | 0.00 PLN | 0.0% | 0.00% | - | brak wydatkow | brak danych | [PLA_CL1] odkurzacze | catch_all |
|
||||
|
||||
## Rekomendacje budzetowe do decyzji
|
||||
|
||||
| Kampania | Waznosc | Obecnie | Propozycja | Zmiana | Powod |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| [PLA_CL1] pozostale | srednie | 15.00 PLN | 19.50 PLN | +30% (4.50 PLN) | kampania wykorzystuje budzet i traci czesc wyswietlen przez budzet |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | srednie | 15.00 PLN | 18.75 PLN | +25% (3.75 PLN) | kampania wykorzystuje budzet i traci czesc wyswietlen przez budzet |
|
||||
| [PLA_CL1] odkurzacze | ostroznie | 60.00 PLN | 60.00 PLN | +0% (0.00 PLN) | widac utrate przez budzet, ale brakuje wystarczajacej wartosci konwersji |
|
||||
| [PLA_CL1] czajniki | do sprawdzenia | 20.00 PLN | 20.00 PLN | +0% (0.00 PLN) | aktywna kampania nie wydala srodkow w ostatnich 7 dniach |
|
||||
| [PLA_CL1] odkurzacze | catch_all | do sprawdzenia | 0.01 PLN | 0.01 PLN | +0% (0.00 PLN) | aktywna kampania nie wydala srodkow w ostatnich 7 dniach |
|
||||
|
||||
## Reguly z bazy wiedzy
|
||||
|
||||
| ID | Temat | Rekomendacja | Ryzyko |
|
||||
| --- | --- | --- | --- |
|
||||
| smart_bidding_sequential_budget_and_target_changes | strategie_stawek | Zmiany budzetow i celow Smart Bidding wprowadzaj sekwencyjnie. Nie zmieniaj jednoczesnie budzetu i Docelowego ROAS albo Docelowego CPA, jesli nie jest to swiadoma decyzja. Duze zmiany oznaczaj jako wyzsze ryzyko uczenia algorytmu i rekomenduj obserwacje wynikow przed kolejna zmiana. | Jednoczesne albo zbyt duze zmiany moga uruchomic niestabilny okres uczenia, utrudnic ocene przyczyny zmian wynikow i doprowadzic do nadmiernego wydawania budzetu albo utraty wolumenu konwersji. |
|
||||
@@ -0,0 +1,358 @@
|
||||
{
|
||||
"created_at": "2026-05-15T20:38:59+02:00",
|
||||
"client": "investagd.pl",
|
||||
"task": "check_bidding_strategies",
|
||||
"task_name": "Sprawdzenie strategii stawek",
|
||||
"currency_code": "PLN",
|
||||
"campaigns": [
|
||||
{
|
||||
"campaign_id": "23836770153",
|
||||
"campaign_name": "[PLA] catch-all",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"bidding_strategy_type": "TARGET_SPEND",
|
||||
"bidding_strategy_resource": "",
|
||||
"budget_id": "15578507680",
|
||||
"budget_name": "[PLA] catch-all",
|
||||
"daily_budget_micros": 10000000,
|
||||
"cost_30d_micros": 36670000,
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"search_impression_share": 0.4660633484162896,
|
||||
"search_budget_lost_impression_share": 0.5339366515837104,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"budget_usage_percent": 12.2,
|
||||
"actual_roas": 0.0,
|
||||
"target_cpa_micros": 0,
|
||||
"target_roas": 0.0,
|
||||
"maximize_conversions_target_cpa_micros": 0,
|
||||
"maximize_conversion_value_target_roas": 0.0,
|
||||
"target_label": "brak jawnego celu",
|
||||
"risk_label": "brak konwersji w 30 dni",
|
||||
"target_assessment": "brak jawnego celu do oceny",
|
||||
"stability_label": "niestabilne: brak konwersji",
|
||||
"budget_context": "mocne ograniczenie budzetem",
|
||||
"strategy_fit": "do oceny recznej",
|
||||
"bidding_recommendation": {
|
||||
"level": "czekaj",
|
||||
"action": "najpierw rozwiaz ograniczenie budzetem",
|
||||
"reason": "zmiana celu strategii przy ograniczeniu budzetem moze zaciemnic efekt decyzji"
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"bidding_strategy_type": "TARGET_ROAS",
|
||||
"bidding_strategy_resource": "",
|
||||
"budget_id": "15543226950",
|
||||
"budget_name": "[PLA_CL1] odkurzacze",
|
||||
"daily_budget_micros": 60000000,
|
||||
"cost_30d_micros": 587350000,
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"search_impression_share": 0.6058726620796588,
|
||||
"search_budget_lost_impression_share": 0.3862777400910941,
|
||||
"search_rank_lost_impression_share": 0.00784959782924702,
|
||||
"budget_usage_percent": 32.6,
|
||||
"actual_roas": 0.0,
|
||||
"target_cpa_micros": 0,
|
||||
"target_roas": 0.5,
|
||||
"maximize_conversions_target_cpa_micros": 0,
|
||||
"maximize_conversion_value_target_roas": 0.0,
|
||||
"target_label": "Docelowy ROAS 50%",
|
||||
"risk_label": "brak konwersji w 30 dni",
|
||||
"target_assessment": "brak jawnego celu do oceny",
|
||||
"stability_label": "niestabilne: brak konwersji",
|
||||
"budget_context": "mocne ograniczenie budzetem",
|
||||
"strategy_fit": "ryzykowne: za malo konwersji dla strategii wartosci",
|
||||
"bidding_recommendation": {
|
||||
"level": "czekaj",
|
||||
"action": "najpierw rozwiaz ograniczenie budzetem",
|
||||
"reason": "zmiana celu strategii przy ograniczeniu budzetem moze zaciemnic efekt decyzji"
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "22934868198",
|
||||
"campaign_name": "[Search] brand",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SEARCH",
|
||||
"bidding_strategy_type": "TARGET_IMPRESSION_SHARE",
|
||||
"bidding_strategy_resource": "",
|
||||
"budget_id": "14870361809",
|
||||
"budget_name": "[Search] brand",
|
||||
"daily_budget_micros": 30000000,
|
||||
"cost_30d_micros": 290500290,
|
||||
"conversions_30d": 3.0,
|
||||
"conversion_value_30d": 236.95,
|
||||
"search_impression_share": 0.24447663889894966,
|
||||
"search_budget_lost_impression_share": 0.23180007243752263,
|
||||
"search_rank_lost_impression_share": 0.5237232886635277,
|
||||
"budget_usage_percent": 32.3,
|
||||
"actual_roas": 0.82,
|
||||
"target_cpa_micros": 0,
|
||||
"target_roas": 0.0,
|
||||
"maximize_conversions_target_cpa_micros": 0,
|
||||
"maximize_conversion_value_target_roas": 0.0,
|
||||
"target_label": "brak jawnego celu",
|
||||
"risk_label": "dane do oceny",
|
||||
"target_assessment": "brak jawnego celu do oceny",
|
||||
"stability_label": "niestabilne: malo konwersji",
|
||||
"budget_context": "ograniczenie budzetem do oceny",
|
||||
"strategy_fit": "pasuje do kampanii brand/search, nie optymalizuje bezposrednio wartosci konwersji",
|
||||
"bidding_recommendation": {
|
||||
"level": "czekaj",
|
||||
"action": "najpierw rozwiaz ograniczenie budzetem",
|
||||
"reason": "zmiana celu strategii przy ograniczeniu budzetem moze zaciemnic efekt decyzji"
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"bidding_strategy_type": "TARGET_ROAS",
|
||||
"bidding_strategy_resource": "",
|
||||
"budget_id": "15548480095",
|
||||
"budget_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"daily_budget_micros": 15000000,
|
||||
"cost_30d_micros": 190360000,
|
||||
"conversions_30d": 6.0,
|
||||
"conversion_value_30d": 260.79,
|
||||
"search_impression_share": 0.5483340803824892,
|
||||
"search_budget_lost_impression_share": 0.4196922157477962,
|
||||
"search_rank_lost_impression_share": 0.031973703869714626,
|
||||
"budget_usage_percent": 42.3,
|
||||
"actual_roas": 1.37,
|
||||
"target_cpa_micros": 0,
|
||||
"target_roas": 0.5,
|
||||
"maximize_conversions_target_cpa_micros": 0,
|
||||
"maximize_conversion_value_target_roas": 0.0,
|
||||
"target_label": "Docelowy ROAS 50%",
|
||||
"risk_label": "malo konwersji dla automatyzacji",
|
||||
"target_assessment": "za malo danych do oceny celu ROAS",
|
||||
"stability_label": "niestabilne: malo konwersji",
|
||||
"budget_context": "mocne ograniczenie budzetem",
|
||||
"strategy_fit": "ryzykowne: za malo konwersji dla strategii wartosci",
|
||||
"bidding_recommendation": {
|
||||
"level": "czekaj",
|
||||
"action": "najpierw rozwiaz ograniczenie budzetem",
|
||||
"reason": "zmiana celu strategii przy ograniczeniu budzetem moze zaciemnic efekt decyzji"
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"bidding_strategy_type": "TARGET_ROAS",
|
||||
"bidding_strategy_resource": "",
|
||||
"budget_id": "15557732820",
|
||||
"budget_name": "[PLA_CL1] pozostale",
|
||||
"daily_budget_micros": 15000000,
|
||||
"cost_30d_micros": 181060000,
|
||||
"conversions_30d": 6.0,
|
||||
"conversion_value_30d": 206.84,
|
||||
"search_impression_share": 0.45533376963350786,
|
||||
"search_budget_lost_impression_share": 0.5445026178010471,
|
||||
"search_rank_lost_impression_share": 0.0001636125654450262,
|
||||
"budget_usage_percent": 40.2,
|
||||
"actual_roas": 1.14,
|
||||
"target_cpa_micros": 0,
|
||||
"target_roas": 0.5,
|
||||
"maximize_conversions_target_cpa_micros": 0,
|
||||
"maximize_conversion_value_target_roas": 0.0,
|
||||
"target_label": "Docelowy ROAS 50%",
|
||||
"risk_label": "malo konwersji dla automatyzacji",
|
||||
"target_assessment": "za malo danych do oceny celu ROAS",
|
||||
"stability_label": "niestabilne: malo konwersji",
|
||||
"budget_context": "mocne ograniczenie budzetem",
|
||||
"strategy_fit": "ryzykowne: za malo konwersji dla strategii wartosci",
|
||||
"bidding_recommendation": {
|
||||
"level": "czekaj",
|
||||
"action": "najpierw rozwiaz ograniczenie budzetem",
|
||||
"reason": "zmiana celu strategii przy ograniczeniu budzetem moze zaciemnic efekt decyzji"
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"bidding_strategy_type": "TARGET_ROAS",
|
||||
"bidding_strategy_resource": "",
|
||||
"budget_id": "15557730201",
|
||||
"budget_name": "[PLA_CL1] worki",
|
||||
"daily_budget_micros": 40000000,
|
||||
"cost_30d_micros": 297180000,
|
||||
"conversions_30d": 8.300191,
|
||||
"conversion_value_30d": 462.66706218,
|
||||
"search_impression_share": 0.5254373617534688,
|
||||
"search_budget_lost_impression_share": 0.47355720892821235,
|
||||
"search_rank_lost_impression_share": 0.0010054293183189222,
|
||||
"budget_usage_percent": 24.8,
|
||||
"actual_roas": 1.56,
|
||||
"target_cpa_micros": 0,
|
||||
"target_roas": 0.5,
|
||||
"maximize_conversions_target_cpa_micros": 0,
|
||||
"maximize_conversion_value_target_roas": 0.0,
|
||||
"target_label": "Docelowy ROAS 50%",
|
||||
"risk_label": "malo konwersji dla automatyzacji",
|
||||
"target_assessment": "za malo danych do oceny celu ROAS",
|
||||
"stability_label": "niestabilne: malo konwersji",
|
||||
"budget_context": "mocne ograniczenie budzetem",
|
||||
"strategy_fit": "ryzykowne: za malo konwersji dla strategii wartosci",
|
||||
"bidding_recommendation": {
|
||||
"level": "czekaj",
|
||||
"action": "najpierw rozwiaz ograniczenie budzetem",
|
||||
"reason": "zmiana celu strategii przy ograniczeniu budzetem moze zaciemnic efekt decyzji"
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"bidding_strategy_type": "TARGET_ROAS",
|
||||
"bidding_strategy_resource": "",
|
||||
"budget_id": "15575442944",
|
||||
"budget_name": "[PLA_CL1] czajniki",
|
||||
"daily_budget_micros": 20000000,
|
||||
"cost_30d_micros": 0,
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"search_impression_share": 0.0,
|
||||
"search_budget_lost_impression_share": 0.0,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"budget_usage_percent": 0.0,
|
||||
"actual_roas": 0.0,
|
||||
"target_cpa_micros": 0,
|
||||
"target_roas": 0.5,
|
||||
"maximize_conversions_target_cpa_micros": 0,
|
||||
"maximize_conversion_value_target_roas": 0.0,
|
||||
"target_label": "Docelowy ROAS 50%",
|
||||
"risk_label": "brak konwersji w 30 dni",
|
||||
"target_assessment": "brak jawnego celu do oceny",
|
||||
"stability_label": "niestabilne: brak konwersji",
|
||||
"budget_context": "brak silnego sygnalu budzetowego",
|
||||
"strategy_fit": "ryzykowne: za malo konwersji dla strategii wartosci",
|
||||
"bidding_recommendation": {
|
||||
"level": "ostroznie",
|
||||
"action": "nie zmieniaj strategii",
|
||||
"reason": "niestabilne: brak konwersji"
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"bidding_strategy_type": "TARGET_ROAS",
|
||||
"bidding_strategy_resource": "",
|
||||
"budget_id": "15580076781",
|
||||
"budget_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"daily_budget_micros": 10000,
|
||||
"cost_30d_micros": 0,
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"search_impression_share": 0.0,
|
||||
"search_budget_lost_impression_share": 0.0,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"budget_usage_percent": 0.0,
|
||||
"actual_roas": 0.0,
|
||||
"target_cpa_micros": 0,
|
||||
"target_roas": 0.5,
|
||||
"maximize_conversions_target_cpa_micros": 0,
|
||||
"maximize_conversion_value_target_roas": 0.0,
|
||||
"target_label": "Docelowy ROAS 50%",
|
||||
"risk_label": "brak konwersji w 30 dni",
|
||||
"target_assessment": "brak jawnego celu do oceny",
|
||||
"stability_label": "niestabilne: brak konwersji",
|
||||
"budget_context": "brak silnego sygnalu budzetowego",
|
||||
"strategy_fit": "ryzykowne: za malo konwersji dla strategii wartosci",
|
||||
"bidding_recommendation": {
|
||||
"level": "ostroznie",
|
||||
"action": "nie zmieniaj strategii",
|
||||
"reason": "niestabilne: brak konwersji"
|
||||
}
|
||||
}
|
||||
],
|
||||
"scope": [
|
||||
{
|
||||
"area": "Typ strategii",
|
||||
"check": "Pokaz typ strategii ustalania stawek dla aktywnych kampanii."
|
||||
},
|
||||
{
|
||||
"area": "Cele strategii",
|
||||
"check": "Pokaz aktualny Docelowy ROAS albo Docelowy CPA, jezeli kampania go uzywa."
|
||||
},
|
||||
{
|
||||
"area": "Wolumen konwersji",
|
||||
"check": "Sprawdz liczbe konwersji z ostatnich 30 dni jako kontekst dla automatycznych strategii."
|
||||
},
|
||||
{
|
||||
"area": "Stabilnosc decyzji",
|
||||
"check": "Oznacz kampanie, gdzie malo danych zwieksza ryzyko pochopnej zmiany strategii albo celu."
|
||||
},
|
||||
{
|
||||
"area": "Ocena celu",
|
||||
"check": "Porownaj rzeczywisty ROAS/CPA z aktualnym celem i oznacz cele zbyt niskie albo zbyt wysokie."
|
||||
},
|
||||
{
|
||||
"area": "Kontekst budzetu",
|
||||
"check": "Uwzglednij wykorzystanie budzetu i utrate wyswietlania przez budzet przed rekomendacja zmiany strategii."
|
||||
},
|
||||
{
|
||||
"area": "Zmiany po budzecie",
|
||||
"check": "Jesli budzet byl niedawno zmieniany, rekomenduj odczekanie przed zmiana strategii albo celu."
|
||||
},
|
||||
{
|
||||
"area": "Dopasowanie strategii",
|
||||
"check": "Sprawdz, czy strategia pasuje do typu kampanii i dostepnego wolumenu danych."
|
||||
},
|
||||
{
|
||||
"area": "Rekomendacja",
|
||||
"check": "Pokaz konkretna rekomendacje decyzyjna bez automatycznego wdrazania zmian strategii."
|
||||
}
|
||||
],
|
||||
"out_of_scope": [
|
||||
"budzety i pacing budzetu",
|
||||
"podstawowe ustawienia kampanii, np. lokalizacje i sieci",
|
||||
"zapytania uzytkownikow oraz wykluczenia",
|
||||
"reklamy, zasoby i kreacje",
|
||||
"automatyczne wdrazanie zmian strategii stawek"
|
||||
],
|
||||
"knowledge_rules": [
|
||||
{
|
||||
"id": "search_new_campaign_no_weak_conversion_automation",
|
||||
"topic": "strategie_stawek",
|
||||
"rule_type": "warning",
|
||||
"condition": "Nowa kampania Search bez historii danych używa automatycznej strategii opartej o konwersje albo opiera się na słabych, zbyt ogólnych lub niewiarygodnych konwersjach.",
|
||||
"recommendation": "Nie startuj kampanii Search od automatyzacji opartej o konwersje, jeśli konto nie ma jakościowych danych. Najpierw ustaw konkretne cele konwersji, sprawdź pomiar i zbuduj sensowną strukturę słów kluczowych.",
|
||||
"risk": "Algorytm może uczyć się na zbyt małej albo błędnej liczbie sygnałów, przez co kampania będzie źle wydawać budżet i zbierze dane niskiej jakości.",
|
||||
"source": "manual"
|
||||
},
|
||||
{
|
||||
"id": "target_roas_too_high_can_limit_spend",
|
||||
"topic": "strategie_stawek",
|
||||
"rule_type": "warning",
|
||||
"condition": "Kampania używa strategii opartej o Docelowy ROAS, ma wystarczająco danych do oceny, a rzeczywisty ROAS jest wyraźnie niższy od ustawionego celu.",
|
||||
"recommendation": "W planie oznacz, że Docelowy ROAS może być zbyt restrykcyjny. Przed zmianą celu wskaż, czy problem wynika z jakości kampanii, oferty lub feedu, czy z samego celu ustawionego zbyt wysoko względem aktualnej efektywności.",
|
||||
"risk": "Zbyt wysoki Docelowy ROAS może ograniczać wydatki, zmniejszać liczbę wyświetleń i blokować skalowanie kampanii, mimo że kampania mogłaby generować wartościowy ruch przy mniej restrykcyjnym celu.",
|
||||
"source": "manual"
|
||||
},
|
||||
{
|
||||
"id": "smart_bidding_sequential_budget_and_target_changes",
|
||||
"topic": "strategie_stawek",
|
||||
"rule_type": "warning",
|
||||
"condition": "Plan zaklada zmiane budzetu albo celu Smart Bidding, szczegolnie gdy zmiana jest duza albo nastepuje krotko po innej zmianie budzetu, strategii lub celu.",
|
||||
"recommendation": "Zmiany budzetow i celow Smart Bidding wprowadzaj sekwencyjnie. Nie zmieniaj jednoczesnie budzetu i Docelowego ROAS albo Docelowego CPA, jesli nie jest to swiadoma decyzja. Duze zmiany oznaczaj jako wyzsze ryzyko uczenia algorytmu i rekomenduj obserwacje wynikow przed kolejna zmiana.",
|
||||
"risk": "Jednoczesne albo zbyt duze zmiany moga uruchomic niestabilny okres uczenia, utrudnic ocene przyczyny zmian wynikow i doprowadzic do nadmiernego wydawania budzetu albo utraty wolumenu konwersji.",
|
||||
"source": "manual"
|
||||
}
|
||||
],
|
||||
"warnings": [],
|
||||
"target_changes": [],
|
||||
"changes": []
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
# Plan: Sprawdzenie strategii stawek
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T20:38:59+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Kampanie aktywne z danymi 30 dni: 8
|
||||
- Reguly wiedzy przypisane do zadania: 3
|
||||
- Rekomendacje strategii do decyzji: 8
|
||||
- Zmiany celu do wdrozenia po akceptacji: 0
|
||||
|
||||
## Zakres zadania
|
||||
|
||||
| Obszar | Co sprawdzic |
|
||||
| --- | --- |
|
||||
| Typ strategii | Pokaz typ strategii ustalania stawek dla aktywnych kampanii. |
|
||||
| Cele strategii | Pokaz aktualny Docelowy ROAS albo Docelowy CPA, jezeli kampania go uzywa. |
|
||||
| Wolumen konwersji | Sprawdz liczbe konwersji z ostatnich 30 dni jako kontekst dla automatycznych strategii. |
|
||||
| Stabilnosc decyzji | Oznacz kampanie, gdzie malo danych zwieksza ryzyko pochopnej zmiany strategii albo celu. |
|
||||
| Ocena celu | Porownaj rzeczywisty ROAS/CPA z aktualnym celem i oznacz cele zbyt niskie albo zbyt wysokie. |
|
||||
| Kontekst budzetu | Uwzglednij wykorzystanie budzetu i utrate wyswietlania przez budzet przed rekomendacja zmiany strategii. |
|
||||
| Zmiany po budzecie | Jesli budzet byl niedawno zmieniany, rekomenduj odczekanie przed zmiana strategii albo celu. |
|
||||
| Dopasowanie strategii | Sprawdz, czy strategia pasuje do typu kampanii i dostepnego wolumenu danych. |
|
||||
| Rekomendacja | Pokaz konkretna rekomendacje decyzyjna bez automatycznego wdrazania zmian strategii. |
|
||||
|
||||
## Poza zakresem tego zadania
|
||||
|
||||
- budzety i pacing budzetu
|
||||
- podstawowe ustawienia kampanii, np. lokalizacje i sieci
|
||||
- zapytania uzytkownikow oraz wykluczenia
|
||||
- reklamy, zasoby i kreacje
|
||||
- automatyczne wdrazanie zmian strategii stawek
|
||||
|
||||
## Strategie stawek z ostatnich 30 dni
|
||||
|
||||
| Kampania | Typ | Strategia | Cel | Koszt | Konwersje | Wartosc konwersji | ROAS | Utrata budzet | Ocena celu | Stabilnosc | Budzet |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| [PLA] catch-all | SHOPPING | TARGET_SPEND | brak jawnego celu | 36.67 PLN | 0.00 | 0.00 | 0.00 | 53.39% | brak jawnego celu do oceny | niestabilne: brak konwersji | mocne ograniczenie budzetem |
|
||||
| [PLA_CL1] odkurzacze | SHOPPING | TARGET_ROAS | Docelowy ROAS 50% | 587.35 PLN | 0.00 | 0.00 | 0.00 | 38.63% | brak jawnego celu do oceny | niestabilne: brak konwersji | mocne ograniczenie budzetem |
|
||||
| [Search] brand | SEARCH | TARGET_IMPRESSION_SHARE | brak jawnego celu | 290.50 PLN | 3.00 | 236.95 | 0.82 | 23.18% | brak jawnego celu do oceny | niestabilne: malo konwersji | ograniczenie budzetem do oceny |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | SHOPPING | TARGET_ROAS | Docelowy ROAS 50% | 190.36 PLN | 6.00 | 260.79 | 1.37 | 41.97% | za malo danych do oceny celu ROAS | niestabilne: malo konwersji | mocne ograniczenie budzetem |
|
||||
| [PLA_CL1] pozostale | SHOPPING | TARGET_ROAS | Docelowy ROAS 50% | 181.06 PLN | 6.00 | 206.84 | 1.14 | 54.45% | za malo danych do oceny celu ROAS | niestabilne: malo konwersji | mocne ograniczenie budzetem |
|
||||
| [PLA_CL1] worki | SHOPPING | TARGET_ROAS | Docelowy ROAS 50% | 297.18 PLN | 8.30 | 462.67 | 1.56 | 47.36% | za malo danych do oceny celu ROAS | niestabilne: malo konwersji | mocne ograniczenie budzetem |
|
||||
| [PLA_CL1] czajniki | SHOPPING | TARGET_ROAS | Docelowy ROAS 50% | 0.00 PLN | 0.00 | 0.00 | 0.00 | 0.00% | brak jawnego celu do oceny | niestabilne: brak konwersji | brak silnego sygnalu budzetowego |
|
||||
| [PLA_CL1] odkurzacze | catch_all | SHOPPING | TARGET_ROAS | Docelowy ROAS 50% | 0.00 PLN | 0.00 | 0.00 | 0.00 | 0.00% | brak jawnego celu do oceny | niestabilne: brak konwersji | brak silnego sygnalu budzetowego |
|
||||
|
||||
## Rekomendacje strategii do decyzji
|
||||
|
||||
| Kampania | Waznosc | Rekomendacja | Powod | Dopasowanie strategii |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [PLA] catch-all | czekaj | najpierw rozwiaz ograniczenie budzetem | zmiana celu strategii przy ograniczeniu budzetem moze zaciemnic efekt decyzji | do oceny recznej |
|
||||
| [PLA_CL1] odkurzacze | czekaj | najpierw rozwiaz ograniczenie budzetem | zmiana celu strategii przy ograniczeniu budzetem moze zaciemnic efekt decyzji | ryzykowne: za malo konwersji dla strategii wartosci |
|
||||
| [Search] brand | czekaj | najpierw rozwiaz ograniczenie budzetem | zmiana celu strategii przy ograniczeniu budzetem moze zaciemnic efekt decyzji | pasuje do kampanii brand/search, nie optymalizuje bezposrednio wartosci konwersji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | czekaj | najpierw rozwiaz ograniczenie budzetem | zmiana celu strategii przy ograniczeniu budzetem moze zaciemnic efekt decyzji | ryzykowne: za malo konwersji dla strategii wartosci |
|
||||
| [PLA_CL1] pozostale | czekaj | najpierw rozwiaz ograniczenie budzetem | zmiana celu strategii przy ograniczeniu budzetem moze zaciemnic efekt decyzji | ryzykowne: za malo konwersji dla strategii wartosci |
|
||||
| [PLA_CL1] worki | czekaj | najpierw rozwiaz ograniczenie budzetem | zmiana celu strategii przy ograniczeniu budzetem moze zaciemnic efekt decyzji | ryzykowne: za malo konwersji dla strategii wartosci |
|
||||
| [PLA_CL1] czajniki | ostroznie | nie zmieniaj strategii | niestabilne: brak konwersji | ryzykowne: za malo konwersji dla strategii wartosci |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ostroznie | nie zmieniaj strategii | niestabilne: brak konwersji | ryzykowne: za malo konwersji dla strategii wartosci |
|
||||
|
||||
## Reguly z bazy wiedzy
|
||||
|
||||
| ID | Temat | Rekomendacja | Ryzyko |
|
||||
| --- | --- | --- | --- |
|
||||
| search_new_campaign_no_weak_conversion_automation | strategie_stawek | Nie startuj kampanii Search od automatyzacji opartej o konwersje, jeśli konto nie ma jakościowych danych. Najpierw ustaw konkretne cele konwersji, sprawdź pomiar i zbuduj sensowną strukturę słów kluczowych. | Algorytm może uczyć się na zbyt małej albo błędnej liczbie sygnałów, przez co kampania będzie źle wydawać budżet i zbierze dane niskiej jakości. |
|
||||
| target_roas_too_high_can_limit_spend | strategie_stawek | W planie oznacz, że Docelowy ROAS może być zbyt restrykcyjny. Przed zmianą celu wskaż, czy problem wynika z jakości kampanii, oferty lub feedu, czy z samego celu ustawionego zbyt wysoko względem aktualnej efektywności. | Zbyt wysoki Docelowy ROAS może ograniczać wydatki, zmniejszać liczbę wyświetleń i blokować skalowanie kampanii, mimo że kampania mogłaby generować wartościowy ruch przy mniej restrykcyjnym celu. |
|
||||
| smart_bidding_sequential_budget_and_target_changes | strategie_stawek | Zmiany budzetow i celow Smart Bidding wprowadzaj sekwencyjnie. Nie zmieniaj jednoczesnie budzetu i Docelowego ROAS albo Docelowego CPA, jesli nie jest to swiadoma decyzja. Duze zmiany oznaczaj jako wyzsze ryzyko uczenia algorytmu i rekomenduj obserwacje wynikow przed kolejna zmiana. | Jednoczesne albo zbyt duze zmiany moga uruchomic niestabilny okres uczenia, utrudnic ocene przyczyny zmian wynikow i doprowadzic do nadmiernego wydawania budzetu albo utraty wolumenu konwersji. |
|
||||
@@ -0,0 +1,317 @@
|
||||
{
|
||||
"created_at": "2026-05-15T20:39:00+02:00",
|
||||
"client": "investagd.pl",
|
||||
"task": "check_account_anomalies",
|
||||
"task_name": "Sprawdzenie anomalii konta",
|
||||
"currency_code": "PLN",
|
||||
"recent_period": {
|
||||
"label": "ostatnie 7 zakonczonych dni",
|
||||
"start": "2026-05-08",
|
||||
"end": "2026-05-14"
|
||||
},
|
||||
"previous_period": {
|
||||
"label": "poprzednie 7 dni",
|
||||
"start": "2026-05-01",
|
||||
"end": "2026-05-07"
|
||||
},
|
||||
"account_summary": [
|
||||
{
|
||||
"metric": "Koszt",
|
||||
"previous": "405.29 PLN",
|
||||
"recent": "977.96 PLN",
|
||||
"change_percent": "+141.3%"
|
||||
},
|
||||
{
|
||||
"metric": "Klikniecia",
|
||||
"previous": "220",
|
||||
"recent": "721",
|
||||
"change_percent": "+227.7%"
|
||||
},
|
||||
{
|
||||
"metric": "Wyswietlenia",
|
||||
"previous": "9884",
|
||||
"recent": "35547",
|
||||
"change_percent": "+259.6%"
|
||||
},
|
||||
{
|
||||
"metric": "Konwersje",
|
||||
"previous": "5.23",
|
||||
"recent": "18.07",
|
||||
"change_percent": "+245.9%"
|
||||
},
|
||||
{
|
||||
"metric": "Wartosc konwersji",
|
||||
"previous": "214.17 PLN",
|
||||
"recent": "953.07 PLN",
|
||||
"change_percent": "+345.0%"
|
||||
},
|
||||
{
|
||||
"metric": "CTR",
|
||||
"previous": "2.2%",
|
||||
"recent": "2.0%",
|
||||
"change_percent": "-9.0%"
|
||||
},
|
||||
{
|
||||
"metric": "Sredni CPC",
|
||||
"previous": "1.84 PLN",
|
||||
"recent": "1.36 PLN",
|
||||
"change_percent": "-26.4%"
|
||||
},
|
||||
{
|
||||
"metric": "ROAS",
|
||||
"previous": "0.53",
|
||||
"recent": "0.97",
|
||||
"change_percent": "+83.0%"
|
||||
}
|
||||
],
|
||||
"campaigns": [
|
||||
{
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"previous_cost": "174.98 PLN",
|
||||
"recent_cost": "412.37 PLN",
|
||||
"cost_change": "+135.7%",
|
||||
"previous_clicks": "80",
|
||||
"recent_clicks": "193",
|
||||
"clicks_change": "+141.2%",
|
||||
"previous_conversions": "0.00",
|
||||
"recent_conversions": "0.00",
|
||||
"conversions_change": "nowe dane",
|
||||
"previous_roas": "0.00",
|
||||
"recent_roas": "0.00",
|
||||
"roas_change": "nowe dane"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"previous_cost": "67.66 PLN",
|
||||
"recent_cost": "229.52 PLN",
|
||||
"cost_change": "+239.2%",
|
||||
"previous_clicks": "39",
|
||||
"recent_clicks": "207",
|
||||
"clicks_change": "+430.8%",
|
||||
"previous_conversions": "3.23",
|
||||
"recent_conversions": "5.07",
|
||||
"conversions_change": "+57.3%",
|
||||
"previous_roas": "2.11",
|
||||
"recent_roas": "1.39",
|
||||
"roas_change": "-34.1%"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"previous_cost": "49.49 PLN",
|
||||
"recent_cost": "131.57 PLN",
|
||||
"cost_change": "+165.9%",
|
||||
"previous_clicks": "28",
|
||||
"recent_clicks": "125",
|
||||
"clicks_change": "+346.4%",
|
||||
"previous_conversions": "0.00",
|
||||
"recent_conversions": "6.00",
|
||||
"conversions_change": "nowe dane",
|
||||
"previous_roas": "0.00",
|
||||
"recent_roas": "1.57",
|
||||
"roas_change": "nowe dane"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"previous_cost": "69.92 PLN",
|
||||
"recent_cost": "119.23 PLN",
|
||||
"cost_change": "+70.5%",
|
||||
"previous_clicks": "50",
|
||||
"recent_clicks": "134",
|
||||
"clicks_change": "+168.0%",
|
||||
"previous_conversions": "2.00",
|
||||
"recent_conversions": "4.00",
|
||||
"conversions_change": "+100.0%",
|
||||
"previous_roas": "1.02",
|
||||
"recent_roas": "1.59",
|
||||
"roas_change": "+55.9%"
|
||||
},
|
||||
{
|
||||
"campaign_id": "22934868198",
|
||||
"campaign_name": "[Search] brand",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SEARCH",
|
||||
"previous_cost": "43.24 PLN",
|
||||
"recent_cost": "48.60 PLN",
|
||||
"cost_change": "+12.4%",
|
||||
"previous_clicks": "23",
|
||||
"recent_clicks": "35",
|
||||
"clicks_change": "+52.2%",
|
||||
"previous_conversions": "0.00",
|
||||
"recent_conversions": "3.00",
|
||||
"conversions_change": "nowe dane",
|
||||
"previous_roas": "0.00",
|
||||
"recent_roas": "4.88",
|
||||
"roas_change": "nowe dane"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23836770153",
|
||||
"campaign_name": "[PLA] catch-all",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"previous_cost": "0.00 PLN",
|
||||
"recent_cost": "36.67 PLN",
|
||||
"cost_change": "nowe dane",
|
||||
"previous_clicks": "0",
|
||||
"recent_clicks": "27",
|
||||
"clicks_change": "nowe dane",
|
||||
"previous_conversions": "0.00",
|
||||
"recent_conversions": "0.00",
|
||||
"conversions_change": "nowe dane",
|
||||
"previous_roas": "0.00",
|
||||
"recent_roas": "0.00",
|
||||
"roas_change": "nowe dane"
|
||||
}
|
||||
],
|
||||
"anomalies": [
|
||||
{
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"channel_type": "SHOPPING",
|
||||
"status": "ENABLED",
|
||||
"metric": "koszt",
|
||||
"severity": "srednie",
|
||||
"previous_value": "174.98 PLN",
|
||||
"recent_value": "412.37 PLN",
|
||||
"change_percent": "+135.7%",
|
||||
"reason": "koszt wzrosl szybciej niz typowy tygodniowy prog alarmowy",
|
||||
"recommendation": "sprawdz budzet, strategie stawek i zmiany ruchu w osobnych zadaniach"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"channel_type": "SHOPPING",
|
||||
"status": "ENABLED",
|
||||
"metric": "koszt",
|
||||
"severity": "srednie",
|
||||
"previous_value": "69.92 PLN",
|
||||
"recent_value": "119.23 PLN",
|
||||
"change_percent": "+70.5%",
|
||||
"reason": "koszt wzrosl szybciej niz typowy tygodniowy prog alarmowy",
|
||||
"recommendation": "sprawdz budzet, strategie stawek i zmiany ruchu w osobnych zadaniach"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"channel_type": "SHOPPING",
|
||||
"status": "ENABLED",
|
||||
"metric": "koszt",
|
||||
"severity": "srednie",
|
||||
"previous_value": "67.66 PLN",
|
||||
"recent_value": "229.52 PLN",
|
||||
"change_percent": "+239.2%",
|
||||
"reason": "koszt wzrosl szybciej niz typowy tygodniowy prog alarmowy",
|
||||
"recommendation": "sprawdz budzet, strategie stawek i zmiany ruchu w osobnych zadaniach"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"channel_type": "SHOPPING",
|
||||
"status": "ENABLED",
|
||||
"metric": "klikniecia",
|
||||
"severity": "niskie",
|
||||
"previous_value": "80",
|
||||
"recent_value": "193",
|
||||
"change_percent": "+141.2%",
|
||||
"reason": "klikniecia wzrosly bardzo mocno tydzien do tygodnia",
|
||||
"recommendation": "sprawdz, czy wzrost jest jakosciowy i nie wynika z niepasujacego ruchu"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"channel_type": "SHOPPING",
|
||||
"status": "ENABLED",
|
||||
"metric": "klikniecia",
|
||||
"severity": "niskie",
|
||||
"previous_value": "50",
|
||||
"recent_value": "134",
|
||||
"change_percent": "+168.0%",
|
||||
"reason": "klikniecia wzrosly bardzo mocno tydzien do tygodnia",
|
||||
"recommendation": "sprawdz, czy wzrost jest jakosciowy i nie wynika z niepasujacego ruchu"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"channel_type": "SHOPPING",
|
||||
"status": "ENABLED",
|
||||
"metric": "klikniecia",
|
||||
"severity": "niskie",
|
||||
"previous_value": "28",
|
||||
"recent_value": "125",
|
||||
"change_percent": "+346.4%",
|
||||
"reason": "klikniecia wzrosly bardzo mocno tydzien do tygodnia",
|
||||
"recommendation": "sprawdz, czy wzrost jest jakosciowy i nie wynika z niepasujacego ruchu"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"channel_type": "SHOPPING",
|
||||
"status": "ENABLED",
|
||||
"metric": "klikniecia",
|
||||
"severity": "niskie",
|
||||
"previous_value": "39",
|
||||
"recent_value": "207",
|
||||
"change_percent": "+430.8%",
|
||||
"reason": "klikniecia wzrosly bardzo mocno tydzien do tygodnia",
|
||||
"recommendation": "sprawdz, czy wzrost jest jakosciowy i nie wynika z niepasujacego ruchu"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"channel_type": "SHOPPING",
|
||||
"status": "ENABLED",
|
||||
"metric": "wartosc konwersji",
|
||||
"severity": "niskie",
|
||||
"previous_value": "142.87 PLN",
|
||||
"recent_value": "319.79 PLN",
|
||||
"change_percent": "+123.8%",
|
||||
"reason": "wartosc konwersji wzrosla ponad dwukrotnie",
|
||||
"recommendation": "sprawdz, czy wzrost wynika z realnej sprzedazy, a nie zmiany pomiaru"
|
||||
}
|
||||
],
|
||||
"scope": [
|
||||
{
|
||||
"area": "Okres porownania",
|
||||
"check": "Porownaj ostatnie 7 zakonczonych dni z poprzednimi 7 dniami, bez uzywania niepelnych danych z dzisiaj."
|
||||
},
|
||||
{
|
||||
"area": "Metryki kampanii",
|
||||
"check": "Sprawdz koszt, klikniecia, wyswietlenia, konwersje, wartosc konwersji, CTR, CPC i ROAS na poziomie aktywnych kampanii."
|
||||
},
|
||||
{
|
||||
"area": "Nagly spadek",
|
||||
"check": "Oznacz kampanie, w ktorych spadl ruch, koszt, konwersje, wartosc konwersji albo ROAS."
|
||||
},
|
||||
{
|
||||
"area": "Nagly wzrost",
|
||||
"check": "Oznacz kampanie, w ktorych koszt, CPC albo ruch wzrosly szybciej niz wyniki."
|
||||
},
|
||||
{
|
||||
"area": "Priorytet reakcji",
|
||||
"check": "Nadaj anomaliom poziom waznosci, aby agent mogl szybko zdecydowac, ktore kampanie sprawdzic jako pierwsze."
|
||||
}
|
||||
],
|
||||
"out_of_scope": [
|
||||
"zmiany budzetow i ocena pacingu budzetu",
|
||||
"zmiany strategii stawek oraz celow Docelowy ROAS/Docelowy CPA",
|
||||
"analiza zapytan uzytkownikow oraz wykluczen",
|
||||
"analiza reklam RSA, zasobow i kreacji",
|
||||
"wdrazanie zmian na koncie Google Ads"
|
||||
],
|
||||
"knowledge_rules": [],
|
||||
"warnings": [
|
||||
"Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. Reguly dotyczace anomalii i alertow bedziemy dopisywac osobno po akceptacji uzytkownika."
|
||||
],
|
||||
"changes": []
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
# Plan: Sprawdzenie anomalii konta
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T20:39:00+02:00
|
||||
|
||||
## Okresy
|
||||
|
||||
- Ostatnie 7 zakonczonych dni: 2026-05-08 - 2026-05-14
|
||||
- Poprzednie 7 dni: 2026-05-01 - 2026-05-07
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Kampanie z danymi: 6
|
||||
- Wykryte anomalie: 8
|
||||
- Reguly wiedzy przypisane do zadania: 0
|
||||
- Zmiany do wdrozenia: 0
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. Reguly dotyczace anomalii i alertow bedziemy dopisywac osobno po akceptacji uzytkownika.
|
||||
|
||||
## Zakres zadania
|
||||
|
||||
| Obszar | Co sprawdzic |
|
||||
| --- | --- |
|
||||
| Okres porownania | Porownaj ostatnie 7 zakonczonych dni z poprzednimi 7 dniami, bez uzywania niepelnych danych z dzisiaj. |
|
||||
| Metryki kampanii | Sprawdz koszt, klikniecia, wyswietlenia, konwersje, wartosc konwersji, CTR, CPC i ROAS na poziomie aktywnych kampanii. |
|
||||
| Nagly spadek | Oznacz kampanie, w ktorych spadl ruch, koszt, konwersje, wartosc konwersji albo ROAS. |
|
||||
| Nagly wzrost | Oznacz kampanie, w ktorych koszt, CPC albo ruch wzrosly szybciej niz wyniki. |
|
||||
| Priorytet reakcji | Nadaj anomaliom poziom waznosci, aby agent mogl szybko zdecydowac, ktore kampanie sprawdzic jako pierwsze. |
|
||||
|
||||
## Poza zakresem tego zadania
|
||||
|
||||
- zmiany budzetow i ocena pacingu budzetu
|
||||
- zmiany strategii stawek oraz celow Docelowy ROAS/Docelowy CPA
|
||||
- analiza zapytan uzytkownikow oraz wykluczen
|
||||
- analiza reklam RSA, zasobow i kreacji
|
||||
- wdrazanie zmian na koncie Google Ads
|
||||
|
||||
## Podsumowanie konta
|
||||
|
||||
| Metryka | Poprzednie 7 dni | Ostatnie 7 dni | Zmiana |
|
||||
| --- | --- | --- | --- |
|
||||
| Koszt | 405.29 PLN | 977.96 PLN | +141.3% |
|
||||
| Klikniecia | 220 | 721 | +227.7% |
|
||||
| Wyswietlenia | 9884 | 35547 | +259.6% |
|
||||
| Konwersje | 5.23 | 18.07 | +245.9% |
|
||||
| Wartosc konwersji | 214.17 PLN | 953.07 PLN | +345.0% |
|
||||
| CTR | 2.2% | 2.0% | -9.0% |
|
||||
| Sredni CPC | 1.84 PLN | 1.36 PLN | -26.4% |
|
||||
| ROAS | 0.53 | 0.97 | +83.0% |
|
||||
|
||||
## Wykryte anomalie
|
||||
|
||||
| Waznosc | Kampania | Metryka | Poprzednio | Teraz | Zmiana | Powod | Rekomendacja |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| srednie | [PLA_CL1] odkurzacze | koszt | 174.98 PLN | 412.37 PLN | +135.7% | koszt wzrosl szybciej niz typowy tygodniowy prog alarmowy | sprawdz budzet, strategie stawek i zmiany ruchu w osobnych zadaniach |
|
||||
| srednie | [PLA_CL1] odkurzacze_akcesoria | koszt | 69.92 PLN | 119.23 PLN | +70.5% | koszt wzrosl szybciej niz typowy tygodniowy prog alarmowy | sprawdz budzet, strategie stawek i zmiany ruchu w osobnych zadaniach |
|
||||
| srednie | [PLA_CL1] worki | koszt | 67.66 PLN | 229.52 PLN | +239.2% | koszt wzrosl szybciej niz typowy tygodniowy prog alarmowy | sprawdz budzet, strategie stawek i zmiany ruchu w osobnych zadaniach |
|
||||
| niskie | [PLA_CL1] odkurzacze | klikniecia | 80 | 193 | +141.2% | klikniecia wzrosly bardzo mocno tydzien do tygodnia | sprawdz, czy wzrost jest jakosciowy i nie wynika z niepasujacego ruchu |
|
||||
| niskie | [PLA_CL1] odkurzacze_akcesoria | klikniecia | 50 | 134 | +168.0% | klikniecia wzrosly bardzo mocno tydzien do tygodnia | sprawdz, czy wzrost jest jakosciowy i nie wynika z niepasujacego ruchu |
|
||||
| niskie | [PLA_CL1] pozostale | klikniecia | 28 | 125 | +346.4% | klikniecia wzrosly bardzo mocno tydzien do tygodnia | sprawdz, czy wzrost jest jakosciowy i nie wynika z niepasujacego ruchu |
|
||||
| niskie | [PLA_CL1] worki | klikniecia | 39 | 207 | +430.8% | klikniecia wzrosly bardzo mocno tydzien do tygodnia | sprawdz, czy wzrost jest jakosciowy i nie wynika z niepasujacego ruchu |
|
||||
| niskie | [PLA_CL1] worki | wartosc konwersji | 142.87 PLN | 319.79 PLN | +123.8% | wartosc konwersji wzrosla ponad dwukrotnie | sprawdz, czy wzrost wynika z realnej sprzedazy, a nie zmiany pomiaru |
|
||||
|
||||
## Porownanie kampanii
|
||||
|
||||
| Kampania | Typ | Status | Koszt poprzednio | Koszt teraz | Zmiana kosztu | Konwersje poprzednio | Konwersje teraz | Zmiana konwersji | ROAS poprzednio | ROAS teraz | Zmiana ROAS |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| [PLA_CL1] odkurzacze | SHOPPING | ENABLED | 174.98 PLN | 412.37 PLN | +135.7% | 0.00 | 0.00 | nowe dane | 0.00 | 0.00 | nowe dane |
|
||||
| [PLA_CL1] worki | SHOPPING | ENABLED | 67.66 PLN | 229.52 PLN | +239.2% | 3.23 | 5.07 | +57.3% | 2.11 | 1.39 | -34.1% |
|
||||
| [PLA_CL1] pozostale | SHOPPING | ENABLED | 49.49 PLN | 131.57 PLN | +165.9% | 0.00 | 6.00 | nowe dane | 0.00 | 1.57 | nowe dane |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | SHOPPING | ENABLED | 69.92 PLN | 119.23 PLN | +70.5% | 2.00 | 4.00 | +100.0% | 1.02 | 1.59 | +55.9% |
|
||||
| [Search] brand | SEARCH | ENABLED | 43.24 PLN | 48.60 PLN | +12.4% | 0.00 | 3.00 | nowe dane | 0.00 | 4.88 | nowe dane |
|
||||
| [PLA] catch-all | SHOPPING | ENABLED | 0.00 PLN | 36.67 PLN | nowe dane | 0.00 | 0.00 | nowe dane | 0.00 | 0.00 | nowe dane |
|
||||
1169
clients/investagd.pl/plans/2026-05-15_20-43-15_sync_pla_cl1.json
Normal file
1169
clients/investagd.pl/plans/2026-05-15_20-43-15_sync_pla_cl1.json
Normal file
File diff suppressed because it is too large
Load Diff
173
clients/investagd.pl/plans/2026-05-15_20-43-15_sync_pla_cl1.md
Normal file
173
clients/investagd.pl/plans/2026-05-15_20-43-15_sync_pla_cl1.md
Normal file
@@ -0,0 +1,173 @@
|
||||
# Plan: Synchronizacja kampanii PLA_CL1
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T20:43:15+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Kampanie PLA_CL1: 6
|
||||
- Produkty z adsPRO: 185
|
||||
- Grupy reklam obecnie: 353
|
||||
- Grupy reklam z identyfikatorem produktu: 346
|
||||
- Do utworzenia: 0
|
||||
- Do włączenia: 0
|
||||
- Do wstrzymania: 76
|
||||
- Do zmiany nazwy: 6
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Grupy reklam bez dopasowania w adsPRO: 43.
|
||||
- Produkty z CL4=paused pominiete przy tworzeniu i wlaczaniu grup reklam: 60.
|
||||
- Aktywne grupy reklam produktow z CL4=paused do wstrzymania: 72.
|
||||
- Grupy reklam w zlym wariancie kampanii (CL4 nie pasuje): 6.
|
||||
- Grupy reklam w zlej kampanii (CL1 nie pasuje): 70.
|
||||
|
||||
## Podsumowanie po kampaniach
|
||||
|
||||
| Kampania | Utworz | Wlacz | Wstrzymaj | Zmien nazwe |
|
||||
| --- | ---: | ---: | ---: | ---: |
|
||||
| [PLA_CL1] odkurzacze | 0 | 0 | 14 | 0 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | 0 | 0 | 14 | 0 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | 0 | 0 | 31 | 0 |
|
||||
| [PLA_CL1] pozostale | 0 | 0 | 8 | 1 |
|
||||
| [PLA_CL1] worki | 0 | 0 | 9 | 5 |
|
||||
|
||||
## Grupy reklam bez dopasowania w adsPRO
|
||||
|
||||
| Kampania | Grupa reklam | Status | Identyfikator produktu |
|
||||
| --- | --- | --- | --- |
|
||||
| [PLA_CL1] pozostale | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] pozostale | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] pozostale | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] pozostale | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] pozostale | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] pozostale | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
| [PLA_CL1] pozostale | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] worki | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] worki | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] worki | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] worki | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] worki | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] worki | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] worki | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] odkurzacze | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] odkurzacze | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] odkurzacze | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] odkurzacze | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
| [PLA_CL1] odkurzacze | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] odkurzacze | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] odkurzacze | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] czajniki | deleted01 | PAUSED | |
|
||||
| [PLA_CL1] czajniki | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] czajniki | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] czajniki | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] czajniki | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] czajniki | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] czajniki | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] czajniki | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
|
||||
## Grupy reklam do wstrzymania
|
||||
|
||||
| Kampania | Grupa reklam | Powod |
|
||||
| --- | --- | --- |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Wąż ssący do odkurzaczy Zelmer 2000.1300 (czarny) | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | Odkurzacz workowy Profi P6 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | Zestaw odkurzacz workowy Profi 1.2 + 5x worki do odkurzacza | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Wąż ssący do odkurzaczy Zelmer 321.0110 (czarny) | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr piankowy I typ 919.0087 do odkurzaczy Zelmer Aquos 829, Aquawelt 919 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | Zestaw odkurzacz workowy Profi 1.2.1 + worki do odkurzacza | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr S Hepa IG-03 do odkurzacza Invest GALACTICO | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr do odkurzacza Rowenta Silence Force , Silence Force Compact, Silence Force, Extreme, Silence Force Extreme Compact, ZR002901 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka 3w1 do odkurzaczy Zelmer - 32 mm typ 354 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr do odkurzaczy Kärcher WD4, WD5, WD 4.200 - WD 4.500, 6.414-960.0 OKRĄGŁY - FK-454 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] worki | Worki PHILIPS Athena Duathlon, HR6814-6855; IZ-PH6.1F | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] pozostale | Wkłady filtrujące do dzbanka Aquaphor Maxfor+ 3szt | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] pozostale | Wkład do butelki filtrującej Aquaphor City | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka okrągła z naturalnym włosiem 35 mm do odkurzaczy Bosch | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Amica Universis Beris Sumam Nortes papierowe 5 szt. | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] pozostale | Szatkownica do maszynki do mięsa Zelmer 586 686 886 986 - przystawka z 4 tarkami (plastry, wiórki, ziemniaki) SA01 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | PHILIPS SpeedPro Max FC5005 FC6802 FILTR | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | Odkurzacz workowy Profi 1.2 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | Zestaw odkurzacz workowy Profi 11.5 + 12 x worki i 1x filtr | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Zestaw odkurzacz workowy Profi 11.5 + 12 x worki i 1x filtr | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz workowy Profi 1.2 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ WORKOWY VM 1058 SURAZO | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ WORKOWY INVEST GALACTICO 850 W | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz workowy Profi P6 + 5x worki - zestaw | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ WORKOWY AMICA VM 1033 ORA | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz workowy Profi P6 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Zestaw odkurzacz workowy Profi 1.2 + 5x worki do odkurzacza | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Zestaw odkurzacz workowy Profi 1.2.1 + worki do odkurzacza | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz workowy Profi 1.2.1 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz przemysłowy Invest Profus III - budowlany warsztatowy do pracy na sucho i mokro 1200W 10L | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ WORKOWY ZELMER TADEK ZVC261 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Odkurzacz workowy Profi 11.5 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr powietrza wstępny 719.0060 do odkurzacza ZELMER 719 Wodnik Duo, Wodnik Duo Plus 819 Aquario | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr HEPA 719.0150 do odkurzacza ZELMER 719 Wodnik Duo, 819 Aquario, Wodnik Duo Plus, 829 Aquos | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr EPA 12 do odkurzacza ELECTROLUX Airmax, Clario, Ergo Space, Ultra Silencer, IZ-FHE1 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr do odkurzacza Miele S4000 S5000 S6000 S8000; GA4007 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka mała z welurem SM 0535 do odkurzacza Bosch,Siemens, Moulinex , Karcher | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Zestaw ssawek IZ-ZDE do dywanów i wykładzin do odkurzacza Electrolux, Philips, Amica | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | Odkurzacz workowy Profi 1.2.1 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] worki | Worki papierowe do odkurzaczy SAMSUNG Easy RC 999, VP-95B; IZ-FA6 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] worki | SZCZOTKA KOŃCÓWKA DO PAROWNICY KARCHER SC SC1 SC2 SC3 SC4 SC5 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] pozostale | Wąż dopływowy 3,0 do pralki / zmywarki - 3 m | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] worki | 5X Worki do odkurzacza Zelmer 700, 701, Compact, IZ-700.0020 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | ODKURZACZ WORKOWY VM 1058 SURAZO | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] pozostale | Wąż dopływowy 1,0 do pralki / zmywarki - 1 m | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] pozostale | Nasadka miksująca 171.2000Z do robotów Zelmer 371, 281, 381, 481 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] worki | 5X WORKI KARCHER A2000 A2004 A2054 WD2 WD2.200 WD2.250 ZAMIENNIK | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka do odkurzacza Zelmer duża podłogowa 32mm 23cm typ 49.1900 zamiennik (EAN 5905857142659) | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Mała ssawka z welurem SM35 do odkurzacza Bosch, Karcher, Profi, Miele, Moulinex, Samsung | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Zestaw filtrów GA3833 do odkurzacza PHILIPS FC 8058/01, PowerPro Active FC 8630 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr 5000.0050ZKU HEPA 13 z uszczelką do odkurzaczy Zelmer Odyssey, Explorer, Syrius, Cobra, Cobra II Silent, Clarris, Clarris Twix, Magnat, Jupiter | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Zestaw ssawek IZ-ZDK do dywanów i wykładzin do odkurzacza Karcher, Bosch, Siemens, Profi, Rowenta | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | ODKURZACZ WORKOWY ZELMER TADEK ZVC261 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | Odkurzacz workowy Profi 11.5 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | ODKURZACZ PRZEMYSŁOWY INVEST PROFUS III 1200W 10L 2 sztuki | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] odkurzacze | ODKURZACZ WORKOWY INVEST GALACTICO 850 W 2 sztuki | produkt jest w zlej kampanii |
|
||||
| [PLA_CL1] worki | Worki PANASONIC AMC 8 F01 T 1000, C 20E, MC-E 761; IZ-PC5 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] worki | Worki papierowe do NILFISK 818460.00, GD 1000, GD 1000 SER, GD 1005, GD 1010, GDS 1010, HDS 1010, VP 100; IZ-NI3 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] pozostale | Butelka filtrująca Aquaphor City 500 ml granatowa + wkład | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Płyn czyszczący do odkurzaczy piorących PL.D | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Zestaw akcesoriów do odkurzacza iRobot Roomba TS-75 | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr EPA 12 2000.0050KU z uszczelką do odkurzaczy Zelmer Odyssey, Explorer, Syrius, Cobra, Cobra II Silent, Clarris, Magnat, Jupiter, Solaris | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr wlotowy 601201.4070 do odkurzacza Zelmer Voyager Twix | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka do odkurzacza Zelmer z welurem 32mm - mała ssawka do mebli i tapicerki | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Zestaw ssawek IZ-SPZ do paneli do odkurzaczy Zelmer | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Zestaw ssawek IZ-ZDZ do dywanów do odkurzaczy Zelmer | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka mała 49.0003 do odkurzacza ZELMER | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Turboszczotka uniwersalna z regulowaną średnicą 30-38mm | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] worki | Worek płócienny Electrolux S-bag; IZ-E5/PH5WP | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Szczotka ssawka do paneli z naturalnym włosiem do odkurzacza Bosch, Karcher, Siemens, Rowenta, Profi - IZ-SPU | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | Odkurzacz workowy Profi P6 + 5x worki - zestaw | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Zestaw ssawek naturalnym włosiem do paneli do odkurzacza Electrolux, Amica, Samsung, Philips typ IZ-SPE | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] odkurzacze | ODKURZACZ WORKOWY AMICA VM 1033 ORA | produkt ma CL4=paused w adsPRO |
|
||||
| [PLA_CL1] pozostale | Dzbanek filtrujący Aquaphor Jasper 2,8L + wkład maxfor+ | produkt ma CL4=paused w adsPRO |
|
||||
|
||||
## Nazwy grup reklam do zmiany
|
||||
|
||||
| Kampania | Obecna nazwa | Nowa nazwa |
|
||||
| --- | --- | --- |
|
||||
| [PLA_CL1] pozostale | Zelmer zestaw trzepaków do miksera 181 281 371 381 | Trzepaki do miksera Zelmer 371K - komplet do robotów 181, 281, 371, 381 |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Electrolux Mondo E44 E49 | Worki do odkurzacza Electrolux Mondo E44 E49 Mondo II Z 1100-1199 papierowe + filtry |
|
||||
| [PLA_CL1] worki | 5X Worki papierowe do odkurzacza Zelmer 2000, Aquawelt, Aquos, Cobra, Meteor 2, Voyager | Worki do odkurzacza Zelmer Meteor 2 Cobra Aquawelt Voyager - papierowe 5 szt |
|
||||
| [PLA_CL1] worki | 5 SZT WORKI DO LIDL PARKSIDE PNTS 1300 1400 | Worki do odkurzacza Parkside PNTS 1300 1400 syntetyczne 5 szt. - zamiennik Lidl Einhell |
|
||||
| [PLA_CL1] worki | Worki do odkurzaczy Amica Nimis VM 1021, 1022, Qubis Base VJ 1031, 1032, Universis Base VK 1012, Universis VK 1011, Ventis VK 4021 IZ-AM2/AM3S | Worki do odkurzacza Amica Nimis Qubis Universis Ventis IZ-AM2 |
|
||||
| [PLA_CL1] worki | Worki ELECTROLUX E 44, E 49, Mondo, Mondo E 49, Mondo II, Mondo Z 1100 - 1199 | Worki do odkurzacza Electrolux Mondo E44 E49 Mondo II Z 1100-1199 papierowe |
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"created_at": "2026-05-15T21:26:50+02:00",
|
||||
"client": "investagd.pl",
|
||||
"task": "check_pla_settings",
|
||||
"campaigns": [
|
||||
{
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23836770153",
|
||||
"campaign_name": "[PLA] catch-all",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
},
|
||||
{
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecność",
|
||||
"campaign_priority": "HIGH",
|
||||
"campaign_priority_label": "Wysoki"
|
||||
}
|
||||
],
|
||||
"changes": [],
|
||||
"skipped_rules": [],
|
||||
"warnings": []
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
# Plan: Sprawdzenie ustawien kampanii PLA
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T21:26:50+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Kampanie PLA: 7
|
||||
- Korekty do wdrozenia: 0
|
||||
|
||||
## Kampanie PLA
|
||||
|
||||
| Kampania | Status | Lokalizacje | Priorytet |
|
||||
| --- | --- | --- | --- |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | ENABLED | Obecność | Wysoki |
|
||||
| [PLA_CL1] odkurzacze | ENABLED | Obecność | Wysoki |
|
||||
| [PLA_CL1] worki | ENABLED | Obecność | Wysoki |
|
||||
| [PLA_CL1] pozostale | ENABLED | Obecność | Wysoki |
|
||||
| [PLA] catch-all | ENABLED | Obecność | Wysoki |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ENABLED | Obecność | Wysoki |
|
||||
| [PLA_CL1] czajniki | ENABLED | Obecność | Wysoki |
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"created_at": "2026-05-15T21:28:45+02:00",
|
||||
"client": "investagd.pl",
|
||||
"task": "check_search_basic_settings",
|
||||
"task_name": "Sprawdzenie podstawowych ustawien Search",
|
||||
"campaigns": [
|
||||
{
|
||||
"campaign_id": "20530740619",
|
||||
"campaign_name": "[DSA] produkty",
|
||||
"status": "PAUSED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecnosc",
|
||||
"target_google_search": true,
|
||||
"target_search_network": false,
|
||||
"target_partner_search_network": false,
|
||||
"target_content_network": false
|
||||
},
|
||||
{
|
||||
"campaign_id": "22934868198",
|
||||
"campaign_name": "[Search] brand",
|
||||
"status": "ENABLED",
|
||||
"positive_geo_target_type": "PRESENCE",
|
||||
"positive_geo_target_type_label": "Obecnosc",
|
||||
"target_google_search": true,
|
||||
"target_search_network": false,
|
||||
"target_partner_search_network": false,
|
||||
"target_content_network": false
|
||||
}
|
||||
],
|
||||
"changes": [],
|
||||
"scope": [
|
||||
{
|
||||
"area": "Lokalizacje",
|
||||
"check": "Wymagaj kierowania lokalizacji na Obecnosc; inne tryby przygotuj jako korekte do wdrozenia."
|
||||
},
|
||||
{
|
||||
"area": "Sieci",
|
||||
"check": "Wymagaj wylaczonej sieci reklamowej i wylaczonych partnerow wyszukiwania w kampaniach Search."
|
||||
},
|
||||
{
|
||||
"area": "Jezyki",
|
||||
"check": "Sprawdz, czy ustawienia jezykowe sa zgodne z rynkiem klienta."
|
||||
},
|
||||
{
|
||||
"area": "Harmonogram reklam",
|
||||
"check": "Sprawdz, czy harmonogram jest swiadomie ustawiony albo czy kampania dziala caly czas."
|
||||
}
|
||||
],
|
||||
"out_of_scope": [
|
||||
"budzety i wykorzystanie budzetu",
|
||||
"strategie stawek i uczenie strategii",
|
||||
"zapytania uzytkownikow oraz wykluczenia",
|
||||
"reklamy RSA i zasoby reklam",
|
||||
"wyniki kampanii oraz rentownosc"
|
||||
],
|
||||
"knowledge_rules": [],
|
||||
"warnings": [
|
||||
"Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. Uzyj `python gads.py wiedza przypisz --restart`, gdy bedziemy wybierac reguly dla Search."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
# Plan: Sprawdzenie podstawowych ustawien Search
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T21:28:45+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Kampanie Search: 2
|
||||
- Reguly wiedzy przypisane do zadania: 0
|
||||
- Zmiany do wdrozenia: 0
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. Uzyj `python gads.py wiedza przypisz --restart`, gdy bedziemy wybierac reguly dla Search.
|
||||
|
||||
## Zakres zadania
|
||||
|
||||
| Obszar | Co sprawdzic |
|
||||
| --- | --- |
|
||||
| Lokalizacje | Wymagaj kierowania lokalizacji na Obecnosc; inne tryby przygotuj jako korekte do wdrozenia. |
|
||||
| Sieci | Wymagaj wylaczonej sieci reklamowej i wylaczonych partnerow wyszukiwania w kampaniach Search. |
|
||||
| Jezyki | Sprawdz, czy ustawienia jezykowe sa zgodne z rynkiem klienta. |
|
||||
| Harmonogram reklam | Sprawdz, czy harmonogram jest swiadomie ustawiony albo czy kampania dziala caly czas. |
|
||||
|
||||
## Poza zakresem tego zadania
|
||||
|
||||
- budzety i wykorzystanie budzetu
|
||||
- strategie stawek i uczenie strategii
|
||||
- zapytania uzytkownikow oraz wykluczenia
|
||||
- reklamy RSA i zasoby reklam
|
||||
- wyniki kampanii oraz rentownosc
|
||||
|
||||
## Kampanie Search
|
||||
|
||||
| Kampania | Status | Lokalizacje | Google Search | Search Network | Partnerzy | Siec reklamowa |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| [DSA] produkty | PAUSED | Obecnosc | TAK | NIE | NIE | NIE |
|
||||
| [Search] brand | ENABLED | Obecnosc | TAK | NIE | NIE | NIE |
|
||||
@@ -0,0 +1,437 @@
|
||||
{
|
||||
"created_at": "2026-05-15T21:29:31+02:00",
|
||||
"client": "investagd.pl",
|
||||
"task": "check_conversion_tracking",
|
||||
"task_name": "Sprawdzenie pomiaru konwersji",
|
||||
"currency_code": "PLN",
|
||||
"conversion_actions": [
|
||||
{
|
||||
"conversion_action_id": "7148777438",
|
||||
"resource_name": "customers/2298555588/conversionActions/7148777438",
|
||||
"name": "GADS - add_to_cart",
|
||||
"status": "ENABLED",
|
||||
"type": "WEBPAGE",
|
||||
"category": "ADD_TO_CART",
|
||||
"primary_for_goal": false,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": false,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 1,
|
||||
"attribution_model": "GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 0.0,
|
||||
"all_conversion_value_30d": 0.0,
|
||||
"is_collecting_data": false,
|
||||
"problem_flags": [
|
||||
"brak danych 30 dni"
|
||||
],
|
||||
"recommendation": "Sprawdz, czy akcja nadal powinna byc aktywna i czy tag uruchamia sie na wlasciwym zdarzeniu."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7075615613",
|
||||
"resource_name": "customers/2298555588/conversionActions/7075615613",
|
||||
"name": "Clicks to call",
|
||||
"status": "ENABLED",
|
||||
"type": "GOOGLE_HOSTED",
|
||||
"category": "CONTACT",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 7,
|
||||
"attribution_model": "GOOGLE_ADS_LAST_CLICK",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 2.0,
|
||||
"all_conversion_value_30d": 2.0,
|
||||
"is_collecting_data": true,
|
||||
"problem_flags": [
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7061592203",
|
||||
"resource_name": "customers/2298555588/conversionActions/7061592203",
|
||||
"name": "Działania lokalne – inne interakcje",
|
||||
"status": "ENABLED",
|
||||
"type": "GOOGLE_HOSTED",
|
||||
"category": "ENGAGEMENT",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 7,
|
||||
"attribution_model": "GOOGLE_ADS_LAST_CLICK",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 29.0,
|
||||
"all_conversion_value_30d": 29.0,
|
||||
"is_collecting_data": true,
|
||||
"problem_flags": [
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7053031175",
|
||||
"resource_name": "customers/2298555588/conversionActions/7053031175",
|
||||
"name": "YouTube channel subscriptions",
|
||||
"status": "ENABLED",
|
||||
"type": "UNKNOWN",
|
||||
"category": "ENGAGEMENT",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "ONE_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 1,
|
||||
"attribution_model": "GOOGLE_ADS_LAST_CLICK",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 0.0,
|
||||
"all_conversion_value_30d": 0.0,
|
||||
"is_collecting_data": false,
|
||||
"problem_flags": [
|
||||
"brak danych 30 dni",
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7075914415",
|
||||
"resource_name": "customers/2298555588/conversionActions/7075914415",
|
||||
"name": "Local actions - Directions",
|
||||
"status": "ENABLED",
|
||||
"type": "GOOGLE_HOSTED",
|
||||
"category": "GET_DIRECTIONS",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 7,
|
||||
"attribution_model": "GOOGLE_ADS_LAST_CLICK",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 3.0,
|
||||
"all_conversion_value_30d": 3.0,
|
||||
"is_collecting_data": true,
|
||||
"problem_flags": [
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7069930207",
|
||||
"resource_name": "customers/2298555588/conversionActions/7069930207",
|
||||
"name": "Local actions - Website visits",
|
||||
"status": "ENABLED",
|
||||
"type": "GOOGLE_HOSTED",
|
||||
"category": "PAGE_VIEW",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 7,
|
||||
"attribution_model": "GOOGLE_ADS_LAST_CLICK",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 0.0,
|
||||
"all_conversion_value_30d": 0.0,
|
||||
"is_collecting_data": false,
|
||||
"problem_flags": [
|
||||
"brak danych 30 dni",
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7380507064",
|
||||
"resource_name": "customers/2298555588/conversionActions/7380507064",
|
||||
"name": "Calls from ads",
|
||||
"status": "ENABLED",
|
||||
"type": "AD_CALL",
|
||||
"category": "PHONE_CALL_LEAD",
|
||||
"primary_for_goal": false,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "XXX",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 30,
|
||||
"attribution_model": "GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 5.0,
|
||||
"all_conversion_value_30d": 5.0,
|
||||
"is_collecting_data": true,
|
||||
"problem_flags": [
|
||||
"ok"
|
||||
],
|
||||
"recommendation": "Bez pilnej zmiany; zostaw jako kontekst albo konwersje dodatkowa."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7058948335",
|
||||
"resource_name": "customers/2298555588/conversionActions/7058948335",
|
||||
"name": "Investagd.pl – GA4 (G-NW44987MSE) (web) purchase",
|
||||
"status": "ENABLED",
|
||||
"type": "GOOGLE_ANALYTICS_4_PURCHASE",
|
||||
"category": "PURCHASE",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": true,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": false,
|
||||
"click_window_days": 90,
|
||||
"view_window_days": 1,
|
||||
"attribution_model": "UNKNOWN",
|
||||
"conversions_30d": 69.0,
|
||||
"conversion_value_30d": 3177.07,
|
||||
"all_conversions_30d": 120.25,
|
||||
"all_conversion_value_30d": 5987.77,
|
||||
"is_collecting_data": true,
|
||||
"problem_flags": [
|
||||
"ok"
|
||||
],
|
||||
"recommendation": "Dane zakupowe wygladaja na podstawowy sygnal optymalizacji; kontroluj wartosc i duplikacje."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "6574100052",
|
||||
"resource_name": "customers/2298555588/conversionActions/6574100052",
|
||||
"name": "purchase",
|
||||
"status": "ENABLED",
|
||||
"type": "WEBPAGE",
|
||||
"category": "PURCHASE",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": true,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": false,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 1,
|
||||
"attribution_model": "GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 0.0,
|
||||
"all_conversion_value_30d": 0.0,
|
||||
"is_collecting_data": false,
|
||||
"problem_flags": [
|
||||
"brak danych 30 dni",
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7460221088",
|
||||
"resource_name": "customers/2298555588/conversionActions/7460221088",
|
||||
"name": "Wyświetlenia po obejrzeniu reklamy w YouTube",
|
||||
"status": "ENABLED",
|
||||
"type": "UNKNOWN",
|
||||
"category": "YOUTUBE_FOLLOW_ON_VIEWS",
|
||||
"primary_for_goal": true,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": true,
|
||||
"click_window_days": 30,
|
||||
"view_window_days": 1,
|
||||
"attribution_model": "GOOGLE_ADS_LAST_CLICK",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 1.0,
|
||||
"all_conversion_value_30d": 1.0,
|
||||
"is_collecting_data": true,
|
||||
"problem_flags": [
|
||||
"podstawowa bez konwersji"
|
||||
],
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"conversion_action_id": "7058948338",
|
||||
"resource_name": "customers/2298555588/conversionActions/7058948338",
|
||||
"name": "Investagd.pl – GA4 (G-NW44987MSE) (web) generate_lead",
|
||||
"status": "HIDDEN",
|
||||
"type": "GOOGLE_ANALYTICS_4_CUSTOM",
|
||||
"category": "PAGE_VIEW",
|
||||
"primary_for_goal": false,
|
||||
"include_in_conversions_metric": false,
|
||||
"counting_type": "MANY_PER_CLICK",
|
||||
"default_value": 1.0,
|
||||
"default_currency_code": "PLN",
|
||||
"always_use_default_value": false,
|
||||
"click_window_days": 90,
|
||||
"view_window_days": 1,
|
||||
"attribution_model": "UNKNOWN",
|
||||
"conversions_30d": 0.0,
|
||||
"conversion_value_30d": 0.0,
|
||||
"all_conversions_30d": 0.0,
|
||||
"all_conversion_value_30d": 0.0,
|
||||
"is_collecting_data": false,
|
||||
"problem_flags": [
|
||||
"akcja nieaktywna"
|
||||
],
|
||||
"recommendation": "Zostaw nieaktywna, jesli jest historyczna; w przeciwnym razie uporzadkuj konfiguracje konwersji."
|
||||
}
|
||||
],
|
||||
"action_summary": [
|
||||
{
|
||||
"metric": "akcje konwersji",
|
||||
"count": 11
|
||||
},
|
||||
{
|
||||
"metric": "aktywne",
|
||||
"count": 10
|
||||
},
|
||||
{
|
||||
"metric": "podstawowe",
|
||||
"count": 8
|
||||
},
|
||||
{
|
||||
"metric": "zbieraja dane 30 dni",
|
||||
"count": 6
|
||||
},
|
||||
{
|
||||
"metric": "z problemami",
|
||||
"count": 9
|
||||
},
|
||||
{
|
||||
"metric": "podstawowe z danymi",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"findings": [
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "CONTACT",
|
||||
"item": "Clicks to call",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "ENGAGEMENT",
|
||||
"item": "Działania lokalne – inne interakcje",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "ENGAGEMENT",
|
||||
"item": "YouTube channel subscriptions",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "GET_DIRECTIONS",
|
||||
"item": "Local actions - Directions",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "PAGE_VIEW",
|
||||
"item": "Local actions - Website visits",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "PURCHASE",
|
||||
"item": "purchase",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "wysokie",
|
||||
"area": "YOUTUBE_FOLLOW_ON_VIEWS",
|
||||
"item": "Wyświetlenia po obejrzeniu reklamy w YouTube",
|
||||
"problem": "podstawowa bez konwersji",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "srednie",
|
||||
"area": "ADD_TO_CART",
|
||||
"item": "GADS - add_to_cart",
|
||||
"problem": "brak danych 30 dni",
|
||||
"recommendation": "Sprawdz, czy akcja nadal powinna byc aktywna i czy tag uruchamia sie na wlasciwym zdarzeniu."
|
||||
},
|
||||
{
|
||||
"severity": "srednie",
|
||||
"area": "ENGAGEMENT",
|
||||
"item": "YouTube channel subscriptions",
|
||||
"problem": "brak danych 30 dni",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "srednie",
|
||||
"area": "PAGE_VIEW",
|
||||
"item": "Investagd.pl – GA4 (G-NW44987MSE) (web) generate_lead",
|
||||
"problem": "akcja nieaktywna",
|
||||
"recommendation": "Zostaw nieaktywna, jesli jest historyczna; w przeciwnym razie uporzadkuj konfiguracje konwersji."
|
||||
},
|
||||
{
|
||||
"severity": "srednie",
|
||||
"area": "PAGE_VIEW",
|
||||
"item": "Local actions - Website visits",
|
||||
"problem": "brak danych 30 dni",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
},
|
||||
{
|
||||
"severity": "srednie",
|
||||
"area": "PURCHASE",
|
||||
"item": "purchase",
|
||||
"problem": "brak danych 30 dni",
|
||||
"recommendation": "Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji."
|
||||
}
|
||||
],
|
||||
"changes": [],
|
||||
"scope": [
|
||||
{
|
||||
"area": "Akcje konwersji",
|
||||
"check": "Pobierz akcje konwersji z Google Ads, ich status, typ, kategorie i ustawienie podstawowa/dodatkowa."
|
||||
},
|
||||
{
|
||||
"area": "Dane 30 dni",
|
||||
"check": "Sprawdz, czy akcje konwersji zbieraja konwersje, wartosc konwersji i wszystkie konwersje z ostatnich 30 dni."
|
||||
},
|
||||
{
|
||||
"area": "Wartosc konwersji",
|
||||
"check": "Oznacz konwersje zakupowe i e-commerce bez wartosci albo bez waluty jako problem do poprawy pomiaru."
|
||||
},
|
||||
{
|
||||
"area": "Jakosc optymalizacji",
|
||||
"check": "Oznacz brak aktywnych konwersji podstawowych, brak danych 30 dni oraz podejrzana duplikacje podobnych akcji."
|
||||
},
|
||||
{
|
||||
"area": "Rekomendacje",
|
||||
"check": "Przygotuj rekomendacje decyzyjne do konfiguracji pomiaru; skrypt nie wdraza zmian automatycznie."
|
||||
}
|
||||
],
|
||||
"knowledge_rules": [],
|
||||
"warnings": [
|
||||
"Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. Reguly dotyczace pomiaru konwersji warto dopisac po pierwszych audytach."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
# Plan: Sprawdzenie pomiaru konwersji
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T21:29:31+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Akcje konwersji: 11
|
||||
- Problemy / rekomendacje: 12
|
||||
- Reguly wiedzy przypisane do zadania: 0
|
||||
- Zmiany do wdrozenia: 0
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Do tego zadania nie przypisano jeszcze regul z bazy wiedzy. Reguly dotyczace pomiaru konwersji warto dopisac po pierwszych audytach.
|
||||
|
||||
## Zakres audytu
|
||||
|
||||
| Obszar | Co sprawdzic |
|
||||
| --- | --- |
|
||||
| Akcje konwersji | Pobierz akcje konwersji z Google Ads, ich status, typ, kategorie i ustawienie podstawowa/dodatkowa. |
|
||||
| Dane 30 dni | Sprawdz, czy akcje konwersji zbieraja konwersje, wartosc konwersji i wszystkie konwersje z ostatnich 30 dni. |
|
||||
| Wartosc konwersji | Oznacz konwersje zakupowe i e-commerce bez wartosci albo bez waluty jako problem do poprawy pomiaru. |
|
||||
| Jakosc optymalizacji | Oznacz brak aktywnych konwersji podstawowych, brak danych 30 dni oraz podejrzana duplikacje podobnych akcji. |
|
||||
| Rekomendacje | Przygotuj rekomendacje decyzyjne do konfiguracji pomiaru; skrypt nie wdraza zmian automatycznie. |
|
||||
|
||||
## Podsumowanie akcji
|
||||
|
||||
| Metryka | Liczba |
|
||||
| --- | --- |
|
||||
| akcje konwersji | 11 |
|
||||
| aktywne | 10 |
|
||||
| podstawowe | 8 |
|
||||
| zbieraja dane 30 dni | 6 |
|
||||
| z problemami | 9 |
|
||||
| podstawowe z danymi | 1 |
|
||||
|
||||
## Problemy i rekomendacje
|
||||
|
||||
| Waznosc | Obszar | Element | Problem | Rekomendacja |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| wysokie | CONTACT | Clicks to call | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| wysokie | ENGAGEMENT | Działania lokalne – inne interakcje | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| wysokie | ENGAGEMENT | YouTube channel subscriptions | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| wysokie | GET_DIRECTIONS | Local actions - Directions | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| wysokie | PAGE_VIEW | Local actions - Website visits | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| wysokie | PURCHASE | purchase | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| wysokie | YOUTUBE_FOLLOW_ON_VIEWS | Wyświetlenia po obejrzeniu reklamy w YouTube | podstawowa bez konwersji | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| srednie | ADD_TO_CART | GADS - add_to_cart | brak danych 30 dni | Sprawdz, czy akcja nadal powinna byc aktywna i czy tag uruchamia sie na wlasciwym zdarzeniu. |
|
||||
| srednie | ENGAGEMENT | YouTube channel subscriptions | brak danych 30 dni | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| srednie | PAGE_VIEW | Investagd.pl – GA4 (G-NW44987MSE) (web) generate_lead | akcja nieaktywna | Zostaw nieaktywna, jesli jest historyczna; w przeciwnym razie uporzadkuj konfiguracje konwersji. |
|
||||
| srednie | PAGE_VIEW | Local actions - Website visits | brak danych 30 dni | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
| srednie | PURCHASE | purchase | brak danych 30 dni | Sprawdz tag i zasadnosc uzywania tej akcji jako podstawowej do optymalizacji. |
|
||||
|
||||
## Akcje konwersji
|
||||
|
||||
| Nazwa | Status | Typ | Kategoria | Podstawowa | W konwersjach | Konw. 30d | Wartosc 30d | Wszystkie konw. 30d | Wartosc wszystkich 30d | Okno klik. | Okno view | Problemy |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| GADS - add_to_cart | ENABLED | WEBPAGE | ADD_TO_CART | NIE | NIE | 0.00 | 0.00 PLN | 0.00 | 0.00 PLN | 30 | 1 | brak danych 30 dni |
|
||||
| Clicks to call | ENABLED | GOOGLE_HOSTED | CONTACT | TAK | NIE | 0.00 | 0.00 PLN | 2.00 | 2.00 PLN | 30 | 7 | podstawowa bez konwersji |
|
||||
| Działania lokalne – inne interakcje | ENABLED | GOOGLE_HOSTED | ENGAGEMENT | TAK | NIE | 0.00 | 0.00 PLN | 29.00 | 29.00 PLN | 30 | 7 | podstawowa bez konwersji |
|
||||
| YouTube channel subscriptions | ENABLED | UNKNOWN | ENGAGEMENT | TAK | NIE | 0.00 | 0.00 PLN | 0.00 | 0.00 PLN | 30 | 1 | brak danych 30 dni, podstawowa bez konwersji |
|
||||
| Local actions - Directions | ENABLED | GOOGLE_HOSTED | GET_DIRECTIONS | TAK | NIE | 0.00 | 0.00 PLN | 3.00 | 3.00 PLN | 30 | 7 | podstawowa bez konwersji |
|
||||
| Local actions - Website visits | ENABLED | GOOGLE_HOSTED | PAGE_VIEW | TAK | NIE | 0.00 | 0.00 PLN | 0.00 | 0.00 PLN | 30 | 7 | brak danych 30 dni, podstawowa bez konwersji |
|
||||
| Calls from ads | ENABLED | AD_CALL | PHONE_CALL_LEAD | NIE | NIE | 0.00 | 0.00 PLN | 5.00 | 5.00 PLN | 30 | 30 | ok |
|
||||
| Investagd.pl – GA4 (G-NW44987MSE) (web) purchase | ENABLED | GOOGLE_ANALYTICS_4_PURCHASE | PURCHASE | TAK | TAK | 69.00 | 3177.07 PLN | 120.25 | 5987.77 PLN | 90 | 1 | ok |
|
||||
| purchase | ENABLED | WEBPAGE | PURCHASE | TAK | TAK | 0.00 | 0.00 PLN | 0.00 | 0.00 PLN | 30 | 1 | brak danych 30 dni, podstawowa bez konwersji |
|
||||
| Wyświetlenia po obejrzeniu reklamy w YouTube | ENABLED | UNKNOWN | YOUTUBE_FOLLOW_ON_VIEWS | TAK | NIE | 0.00 | 0.00 PLN | 1.00 | 1.00 PLN | 30 | 1 | podstawowa bez konwersji |
|
||||
| Investagd.pl – GA4 (G-NW44987MSE) (web) generate_lead | HIDDEN | GOOGLE_ANALYTICS_4_CUSTOM | PAGE_VIEW | NIE | NIE | 0.00 | 0.00 PLN | 0.00 | 0.00 PLN | 90 | 1 | akcja nieaktywna |
|
||||
592
clients/investagd.pl/plans/2026-05-15_21-30-57_sync_pla_cl1.json
Normal file
592
clients/investagd.pl/plans/2026-05-15_21-30-57_sync_pla_cl1.json
Normal file
@@ -0,0 +1,592 @@
|
||||
{
|
||||
"created_at": "2026-05-15T21:30:57+02:00",
|
||||
"client": "investagd.pl",
|
||||
"products_count": 185,
|
||||
"task": "sync_pla_cl1",
|
||||
"campaigns": [
|
||||
{
|
||||
"id": "23797182612",
|
||||
"name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"status": "ENABLED",
|
||||
"allowed": [
|
||||
"odkurzacze_akcesoria"
|
||||
],
|
||||
"variant": ""
|
||||
},
|
||||
{
|
||||
"id": "23797198440",
|
||||
"name": "[PLA_CL1] odkurzacze",
|
||||
"status": "ENABLED",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": ""
|
||||
},
|
||||
{
|
||||
"id": "23825822059",
|
||||
"name": "[PLA_CL1] worki",
|
||||
"status": "ENABLED",
|
||||
"allowed": [
|
||||
"worki"
|
||||
],
|
||||
"variant": ""
|
||||
},
|
||||
{
|
||||
"id": "23825825449",
|
||||
"name": "[PLA_CL1] pozostale",
|
||||
"status": "ENABLED",
|
||||
"allowed": [
|
||||
"pozostale"
|
||||
],
|
||||
"variant": ""
|
||||
},
|
||||
{
|
||||
"id": "23846225484",
|
||||
"name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"status": "ENABLED",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "catch_all"
|
||||
},
|
||||
{
|
||||
"id": "23846238222",
|
||||
"name": "[PLA_CL1] czajniki",
|
||||
"status": "ENABLED",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": ""
|
||||
}
|
||||
],
|
||||
"groups_total": 353,
|
||||
"groups_with_product_id": 346,
|
||||
"create_plan": [],
|
||||
"enable_plan": [],
|
||||
"pause_plan": [],
|
||||
"rename_plan": [],
|
||||
"warnings": [
|
||||
"Grupy reklam bez dopasowania w adsPRO: 43.",
|
||||
"Produkty z CL4=paused pominiete przy tworzeniu i wlaczaniu grup reklam: 60.",
|
||||
"Grupy reklam w zlym wariancie kampanii (CL4 nie pasuje): 6.",
|
||||
"Grupy reklam w zlej kampanii (CL1 nie pasuje): 70."
|
||||
],
|
||||
"unmatched_groups": [
|
||||
{
|
||||
"ad_group_id": "191439361170",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"allowed": [
|
||||
"pozostale"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "637"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "191439361330",
|
||||
"ad_group_name": "Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"allowed": [
|
||||
"pozostale"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": ""
|
||||
},
|
||||
{
|
||||
"ad_group_id": "191439361370",
|
||||
"ad_group_name": "Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"allowed": [
|
||||
"pozostale"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "619"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "191439362130",
|
||||
"ad_group_name": "4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"allowed": [
|
||||
"pozostale"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "64"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "191439362370",
|
||||
"ad_group_name": "4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"allowed": [
|
||||
"pozostale"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "778"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "191439363010",
|
||||
"ad_group_name": "WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"allowed": [
|
||||
"pozostale"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "912"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "191439363570",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"allowed": [
|
||||
"pozostale"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "784"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175051941",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"allowed": [
|
||||
"worki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "637"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175051981",
|
||||
"ad_group_name": "Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"allowed": [
|
||||
"worki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": ""
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175052141",
|
||||
"ad_group_name": "Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"allowed": [
|
||||
"worki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "619"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175052461",
|
||||
"ad_group_name": "4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"allowed": [
|
||||
"worki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "778"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175052701",
|
||||
"ad_group_name": "4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"allowed": [
|
||||
"worki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "64"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175053101",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"allowed": [
|
||||
"worki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "784"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "193175053861",
|
||||
"ad_group_name": "WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"allowed": [
|
||||
"worki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "912"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "194749203006",
|
||||
"ad_group_name": "WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"allowed": [
|
||||
"odkurzacze_akcesoria"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "912"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "194749203046",
|
||||
"ad_group_name": "Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"allowed": [
|
||||
"odkurzacze_akcesoria"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "619"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "194749203086",
|
||||
"ad_group_name": "4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"allowed": [
|
||||
"odkurzacze_akcesoria"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "64"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "194749203286",
|
||||
"ad_group_name": "Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"allowed": [
|
||||
"odkurzacze_akcesoria"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": ""
|
||||
},
|
||||
{
|
||||
"ad_group_id": "194749203526",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"allowed": [
|
||||
"odkurzacze_akcesoria"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "637"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "194749203766",
|
||||
"ad_group_name": "4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"allowed": [
|
||||
"odkurzacze_akcesoria"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "778"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "194749203806",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"allowed": [
|
||||
"odkurzacze_akcesoria"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "784"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211383109",
|
||||
"ad_group_name": "4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "catch_all",
|
||||
"offer_id": "778"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211383349",
|
||||
"ad_group_name": "4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "catch_all",
|
||||
"offer_id": "64"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211383629",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "catch_all",
|
||||
"offer_id": "784"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211384389",
|
||||
"ad_group_name": "WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "catch_all",
|
||||
"offer_id": "912"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211385309",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "catch_all",
|
||||
"offer_id": "637"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211385349",
|
||||
"ad_group_name": "Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "catch_all",
|
||||
"offer_id": ""
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196211385509",
|
||||
"ad_group_name": "Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "catch_all",
|
||||
"offer_id": "619"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196794680140",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "637"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196794680380",
|
||||
"ad_group_name": "4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "778"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196794680540",
|
||||
"ad_group_name": "Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": ""
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196794680620",
|
||||
"ad_group_name": "WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "912"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196794680780",
|
||||
"ad_group_name": "Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "619"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196794680820",
|
||||
"ad_group_name": "4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "64"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196794681340",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"allowed": [
|
||||
"odkurzacze"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "784"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "196993753336",
|
||||
"ad_group_name": "deleted01",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": ""
|
||||
},
|
||||
{
|
||||
"ad_group_id": "197306992220",
|
||||
"ad_group_name": "4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "778"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "197306992460",
|
||||
"ad_group_name": "4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "64"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "197306992980",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "637"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "197306993020",
|
||||
"ad_group_name": "Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": ""
|
||||
},
|
||||
{
|
||||
"ad_group_id": "197306993180",
|
||||
"ad_group_name": "Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "619"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "197306993660",
|
||||
"ad_group_name": "Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "784"
|
||||
},
|
||||
{
|
||||
"ad_group_id": "197306994420",
|
||||
"ad_group_name": "WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT",
|
||||
"ad_group_status": "PAUSED",
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"allowed": [
|
||||
"czajniki"
|
||||
],
|
||||
"variant": "",
|
||||
"offer_id": "912"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
# Plan: Synchronizacja kampanii PLA_CL1
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T21:30:57+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Kampanie PLA_CL1: 6
|
||||
- Produkty z adsPRO: 185
|
||||
- Grupy reklam obecnie: 353
|
||||
- Grupy reklam z identyfikatorem produktu: 346
|
||||
- Do utworzenia: 0
|
||||
- Do włączenia: 0
|
||||
- Do wstrzymania: 0
|
||||
- Do zmiany nazwy: 0
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Grupy reklam bez dopasowania w adsPRO: 43.
|
||||
- Produkty z CL4=paused pominiete przy tworzeniu i wlaczaniu grup reklam: 60.
|
||||
- Grupy reklam w zlym wariancie kampanii (CL4 nie pasuje): 6.
|
||||
- Grupy reklam w zlej kampanii (CL1 nie pasuje): 70.
|
||||
|
||||
## Grupy reklam bez dopasowania w adsPRO
|
||||
|
||||
| Kampania | Grupa reklam | Status | Identyfikator produktu |
|
||||
| --- | --- | --- | --- |
|
||||
| [PLA_CL1] pozostale | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] pozostale | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] pozostale | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] pozostale | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] pozostale | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] pozostale | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
| [PLA_CL1] pozostale | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] worki | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] worki | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] worki | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] worki | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] worki | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] worki | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] worki | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] odkurzacze | catch_all | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] odkurzacze | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] odkurzacze | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] odkurzacze | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] odkurzacze | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
| [PLA_CL1] odkurzacze | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] odkurzacze | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] odkurzacze | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] czajniki | deleted01 | PAUSED | |
|
||||
| [PLA_CL1] czajniki | 4X Worki syntetyczne IZ-49.4020 ZELMER Clarris, Cobra 2000, 2010, Elf 321, 323, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 778 |
|
||||
| [PLA_CL1] czajniki | 4X Worki syntetyczne do odkurzaczy Zelmer Clarris, Cobra 2000, 2010, Elf 321, 322, Antek ZVC, Explorer 1100, Flip, Meteor 2, 400, Odyssey 450, 49.4000 | PAUSED | 64 |
|
||||
| [PLA_CL1] czajniki | Worki syntetyczne do odkurzacza KARCHER WD3 MOULINEX PROGRESS 10 sztuk | PAUSED | 637 |
|
||||
| [PLA_CL1] czajniki | Worki papierowe do odkurzacza Zelmer Józek, Kazio, Kazik + filtr | PAUSED | |
|
||||
| [PLA_CL1] czajniki | Worki do odkurzaczy AEG BEKO GRUNDIG, Samsung; IZ-BAG05S | PAUSED | 619 |
|
||||
| [PLA_CL1] czajniki | Worki syntetyczne do odkurzaczy Bosch AdvancedVac 20, Bosch UniversalVac 15 | PAUSED | 784 |
|
||||
| [PLA_CL1] czajniki | WORKI DO ODKURZACZA KARCHER WD2 WD3 SE4001 10SZT | PAUSED | 912 |
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,166 @@
|
||||
# Plan: Automatyzacja tROAS per grupa reklam PLA
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T21:31:31+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Grupy reklam Shopping z danymi 30 dni: 124
|
||||
- Kandydaci do podniesienia tROAS: 0
|
||||
- Kandydaci do rollbacku: 0
|
||||
- Watchlista bez akcji: 124
|
||||
- Reguly wiedzy przypisane do zadania: 1
|
||||
|
||||
## Zakres zadania
|
||||
|
||||
| Obszar | Co sprawdzic |
|
||||
| --- | --- |
|
||||
| Zakres | Analizuje tylko aktywne grupy reklam w aktywnych kampaniach Standard Shopping. |
|
||||
| Dane 30 dni | Liczy realny ROAS grupy reklam z kosztu i wartosci konwersji z ostatnich 30 dni. |
|
||||
| 100 klikow | Grupy reklam z mniej niz 100 klikami od poczatku trafiaja tylko na watchliste. |
|
||||
| Trigger 10 konwersji | Podbicie tROAS wymaga co najmniej 10 nowych konwersji wzgledem lokalnego baseline. |
|
||||
| Stopniowanie | Jedna analiza moze podniesc tROAS grupy reklam maksymalnie o 0.5. |
|
||||
| Rollback | Jesli po zmianie realny ROAS z 30 dni spada ponizej ustawionego tROAS, plan proponuje przywrocenie poprzedniej wartosci. |
|
||||
|
||||
## Watchlista bez akcji
|
||||
|
||||
| Kampania | Grupa reklam | Klikniecia all-time | Konwersje 30 dni | Real ROAS | Powod |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| [PLA] catch-all | Grupa reklam 1 | 50 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Sprzęgło ślimaka Zelmer 86.1203 do maszynki do mięsa - zamiennik do wszystkich modeli | 42 | 1.00 | 0.56 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | worki do odkurzacza uniwersalne z uchwytem do wycinania + filtr, Typ 1010, pasują do wielu modeli odkurzaczy workowych (5 szt.) IZ-BAG01F | 41 | 1.28 | 1.62 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Trzepaki mieszadełka do miksera Zelmer 481K - komplet do robotów 381, 481, 281, 181 | 31 | 1.00 | 1.39 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Filtr do dzbanka Dafi Classic / Kenwood Anna - 6 szt. wkładów filtrujących wodę | 30 | 2.00 | 1.84 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Meteor Admiral 1010 1020 1030 papierowe 5 szt. + filtry | 29 | 1.45 | 3.23 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Meteor 2 Cobra 2000 2010 - 5 szt papierowe + filtry | 25 | 1.50 | 2.75 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | Odkurzacz przemysłowy Invest Profus III - budowlany warsztatowy do pracy na sucho i mokro 1200W 10L | 18 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Meteor Admiral 1010 1020 1030 papierowe 5 szt. | 17 | 1.00 | 2.01 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Meteor 2 Cobra 2000 Explorer 1100 papierowe 6 szt. zamiennik | 17 | 0.50 | 1.06 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Electrolux S-BAG Airmax Expression Philips Mobilo papierowe | 16 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Elf 2 321 322 Elf Bonus Flip - 6 sztuk papierowe | 15 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Orion 1500 Twist Twister papierowe 5 szt. + filtry | 15 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Filtr ochrony silnika Parkside Niteo PNTS 1300 1500 | 13 | 2.00 | 3.91 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Elf 321 322 Elf Bonus Flip papierowe 5 szt. | 12 | 1.00 | 3.78 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka welurowa do odkurzacza Electrolux, Philips - mała końcówka szczelinowa SM 0332 do tapicerki, mebli, zasłon | 10 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Wkłady do pochłaniacza wilgoci 250g uniwersalne - zestaw 10 szt. tabletki absorbujące | 9 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Wąż ssący do odkurzaczy Zelmer 1010.1100 (czarny) | 8 | 1.00 | 4.18 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Trzepaki do miksera Zelmer 371K - komplet do robotów 181, 281, 371, 381 | 8 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Thomas Aqua+ Pet & Family X7 X8 X10 XT syntetyczne 5 szt. | 7 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Cobra Explorer Meteor Wodnik 5szt | 7 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka 419 z naturalnym włosiem do odkurzacza Bosch, Karcher, Moulinex, Siemens | 6 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Electrolux Mondo E44 E49 Mondo II Z 1100-1199 papierowe + filtry | 5 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki papierowe do odkurzacza Zelmer 3000 5500 Magnat Solaris Jupiter 5szt | 5 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do KARCHER 6.904-333.0, T 9/1,T10/1, IZ-K16S 10 sztuk | 4 | 1.57 | 8.39 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka duża do odkurzacza Bosch Siemens Moulinex SE 0735 | 4 | 1.00 | 6.73 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Rura teleskopowa do odkurzacza Zelmer Electrolux 111.6000 | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka mała z włosiem do odkurzacza Zelmer | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Uniwersalny zestaw końcówek do odkurzaczy 4szt | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | 4x Worki syntetyczne do odkurzacza Zelmer Józek, Kazik, Kazio | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | 5X Worki do odkurzacza Zelmer XS 01Z011 + filtry, IZ-XS2F | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Amica Ora VM1032-VM1035 12szt | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Karcher T 7/1 T 9/1 T 10/1 - papierowe 5 szt | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Elf 321 322 Flip 5 szt + filtry, papierowe, zamiennik IZ-3210080 | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki syntetyczne IZ-BAG05SPCZ do odkurzacza AMICA Surazo VM 1055, Ora VM 1032, SAMSUNG SC5480 SC5660, BEKO VCC 5325 AR, IZ-BAG05SPCZ 5szt | 4 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr 5000.0050K HEPA 13 do odkurzaczy Zelmer Odyssey, Explorer, Syrius, Cobra, Cobra II Silent, Clarris, Clarris Twix, Magnat, Jupiter, Solaris, Sola | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr do odkurzacza Philips FC6409 FC6408 FC6170 | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka duża do odkurzacza Electrolux, Philips; SE 0732 | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka dwurzędowa 510 ze zgarniaczem śr. wew. 32mm do odkurzacza Electrolux, Philips | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka mała ze zgarniaczem do odkurzacza Electrolux, Philips SM 0232 | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawko-szczotka 32 mm do odkurzacza Zelmer Aquawelt Aquario Aeromaster Jupiter Solaris SE14ZEL - końcówka ssąca 2w1 | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Nóż nożyk dwustronny do maszynki Zelmer z komorą 5 - kod 86.1009 | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Electrolux / Philips IZ-E5/PH5S | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Electrolux Mondo E44 E49 Mondo II Z 1100-1199 papierowe | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Parkside PNTS 1300 1400 syntetyczne 5 szt. - zamiennik Lidl Einhell | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Samsung VP99; IZ-VP99 | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki papierowe do odkurzacza Zelmer Józek Kazio Kazik + filtr | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki syntetyczne BOSCH Activa, Alpha, SIEMENS Super L; IZ-S11SP | 3 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Komplet filtrów wlot i wylot do odkurzacza Electrolux Mondo; IZ-WWE3 | 2 | 1.00 | 70.26 | mniej niz 100 klikow od poczatku - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr FK-03 do odkurzacza Karcher 2501, 2701, 2801, SE 2001, SE5.100, 2501 TE, A2701, 2801 plus, SE 3001, 2601, 2701 TE, A2801, 3001, SE6.100, 2601 pl | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr FK-10 do odkurzacza EINHELL: AFF 18, BT-VC 500 PARKSIDE: PAS 500A1, B1, C1, C2; PARK18/8C PARKSIDE 4711310437 | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtry do odkurzacza FESTOOL CT, CTL, CTM 11, 22, 33, 44/45 Ventos 25/35, Karcher NT351, NT351/ECO, NT14/1; FK-17-2X | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Rura teleskopowa z tworzywa do odkurzaczy ZELMER; RTP 0132 | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Rura teleskopowa z tworzywa średnica wewnętrzna 35 mm | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka mała z naturalnym włosiem do odkurzacza Electrolux, Philips typ 352 | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka ze zgarniaczem typ 168 do odkurzacza ZELMER | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawkoszczotka przełączalna do odkurzaczy Zelmer 32mm | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | 5X Worki papierowe do odkurzacza Zelmer Orion, Cobra II Silent 2500, Orion 1500, 1600, Twist, Twister | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Electrolux Cyclone Power Filio - papierowe 5 szt IZ-E13 | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Parkside PNTS 1250 1300 1400 1500 - 5 szt + filtr (kompat. Niteo Tools IPX 4, Blaupunkt WD4000) IZ-IPX4 | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Profi Europe Masterprofi Twist Profi 1 Profi 3 - 5 szt | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Edek - papierowe 5 szt | 2 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Duża ssawka 415 z naturalnym włosiem do odkurzacza Zelmer | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr do odkurzacza Karcher NT 65/2 Eco Tc, NT 65/2 Eco, NT 72/2 Eco Tc; FK-04 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr piankowy SC47 do odkurzacza Samsung SC47J0, SC4320, SC4325,VCC4320S3B/XEO, VCC4325S3K/XEO, VCC4325S3R/XEO | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr zmywalny do odkurzacza Karcher WD 2, WD 3, NT/27, SE 4001, SE 4002, MV 2, MV3, K 2000; FK-02/P | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Mała ssawka z welurem do tapicerki śr. wew. 32 mm do odkurzacza Hoover, De Longhi, Privileg, Philips, Electrolux, Rowenta, SE 0932 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Mała ssawka z welurem do tapicerki śr. wew. 35 mm do odkurzacza Bosch, Karcher, Moulinex, Siemens, Amica, Samsung, Profi, SE 0935 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka duża 49 P z dwoma zgarniaczami typ 170 do odkurzacza ZELMER | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka mała 353 z naturalnym włosiem do odkurzacza Bosch, Siemens, Moulinex | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka okrągła z naturalnym włosiem 32 mm do odkurzaczy Zelmer , 047 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka szczelinowa do odkurzacza Electrolux, Philips | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka z włosem typ 800 do odkurzacza ZELMER | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawko-szczotka z naturalnym włosiem ELECTROLUX AEG PHILIPS KARCHER ZELMER | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Szczotka okrągła z włosem typ 046 do odkurzacza ZELMER | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Uniwersalne filtry do odkurzaczy wlot i wylot; IZ-WWU | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Wkład zapachowy do odkurzaczy (granulat) o zapachu morskim AROMA | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Nożyk jednostronny do maszynki ZELMER z komorą 8; kod 86.3107 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | 5X Worki syntetyczne do odkurzaczy ZELMER Magnat 3000, Jupiter 4000, Maxim, Solaris Twix | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki ELDOM OS 1200, HOLDEN Maximo OD 30, INVEST Galactico, Furio, MPM Focus, PHILIPS FC 8046, 8334, 8344, 8348; IZ-Y19 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do KARCHER WD2 PLUS WD3 SE4001 SE4002 IZ-K22SP PO | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Amica Nimis Qubis Universis Ventis IZ-AM2 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Wetrok Monovac 6 Plus - 5 szt IZ-WK2 | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Meteor 2 Cobra Aquawelt Voyager - papierowe 5 szt | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki papierowe do odkurzacza Zelmer Adaś, Franek, Olek, Kuba ZVC 333, Kuba ZVC 334, Kuba ZVC 335 5szt | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki syntetyczne do odkurzacza Zelmer Józek, Kazik, Kazio + filtr | 1 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | ODKURZACZ WORKOWY INVEST GALACTICO 850 W | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ PRZEMYSŁOWY INVEST PROFUS III 1200W 10L 2 sztuki | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze | catch_all | ODKURZACZ WORKOWY INVEST GALACTICO 850 W 2 sztuki | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | 1X Filtr do odkurzacza Dyson V11 SV14 V15 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr HEPA 13 IZ-FHE2 do odkurzacza ELECTROLUX Airmax, Clario, Ergo Space, Ultra Silencer | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr HEPA oraz filtr stożkowy do odkurzaczy Dyson modeli DC58, DC59, DC61, DC62, V6 i V7 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr S Hepa IF-33 do odkurzacza Invest FURIO, FURIO ECO | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr do odkurzacza Karcher NT 35/1 Eco/Te/M, NT 45/1 Eco/Te/M, NT 55/1 Eco/Te/M; FK-01 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr do odkurzacza Profi 3; FK-21 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Filtr piankowy typ SC43 do odkurzacza Samsung SC43 VC43 VCC43 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | SSAWKA SZCZELINOWA DO ODKURZACZY KARCHER BOSCH SAMSUNG ROWENTA | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka 418 z syntetycznym włosiem do odkurzacza Bosch, Karcher, Moulinex, Siemens | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka 800 z dwoma zgarniaczami typ 218 do odkurzacza ZELMER | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka okrągła z naturalnym włosiem 32 mm do odkurzaczy Electrolux, 049 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka szczelinowa długa typ 056 do odkurzacza ZELMER | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka szczelinowa giętka do odkurzacza Zelmer | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka z włosem typ 1020 do odkurzacza ZELMER | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawka średnia gładka 084 do odkurzacza ZELMER | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawko-szczotka SE1432 do odkurzaczy Electrolux... | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawko-szczotka SE1435 do odkurzaczy Bosch, Panasonic, Siemens... | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawko-szczotka SE1635 do odkurzaczy Bosch, Samsung, LG... | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawko-szczotka z naturalnym włosiem do odkurzaczy ELECTROLUX AEG PHILIPS DN32; 050-003 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Ssawkoszczotka na kółkach do odkurzacza ZELMER; 449.0000P | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Szczotka parkietowa na kółkach do odkurzaczy ZELMER (czarna) 49.9500P | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Uniwersalny zestaw końcówek do odkurzaczy 4szt + Worek na akcesoria | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] odkurzacze_akcesoria | Worki do odkurzaczy DUO 01D011, 01D012; IZ-D011 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Filtr węglowy do okapów kuchennych IZ-FW2 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Nożyk do maszynki do mięsa Zelmer komora 5 - 86.1007 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | Sitko o średnicy otworów 8 mm do maszynki ZELMER z komorą 5 sitko 86.1242 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] pozostale | UNIWERSALNY WKŁAD DO POCHŁANIACZA WILGOCI 250G | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Blaupunkt VCB201 Bomann BS9010 BS9011 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Magnat 3000 5500 Solaris Jupiter papierowe 6 szt. | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki do odkurzacza Zelmer Sławek ZVC 361 ZVC 362 5sztuk | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki papierowe do MIELE Aquamarin, Automatic, Senator LX; IZ-M1/M4 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki papierowe do Rowenta BP 61 Enduro, Bully, RB 50 - RB 52, RB 500; IZ-R4 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki syntetyczne do ROWENTA Silence Force, X-Treme Power; IZ-R16S | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki syntetyczne do ZELMER Multipro 01Z013 | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
| [PLA_CL1] worki | Worki syntetyczne do odkurzacza AMICA Surazo VM 1055, Ora VM 1032, SAMSUNG SC5480 SC5660, BEKO VCC 5325 AR, IZ-BAG05SPCZ 4szt | 0 | 0.00 | 0.00 | mniej niz 100 klikow od poczatku i niski albo zerowy ROAS - obserwuj, bez akcji |
|
||||
|
||||
## Reguly z bazy wiedzy
|
||||
|
||||
| ID | Temat | Rekomendacja | Ryzyko |
|
||||
| --- | --- | --- | --- |
|
||||
| smart_bidding_sequential_budget_and_target_changes | strategie_stawek | Zmiany budzetow i celow Smart Bidding wprowadzaj sekwencyjnie. Nie zmieniaj jednoczesnie budzetu i Docelowego ROAS albo Docelowego CPA, jesli nie jest to swiadoma decyzja. Duze zmiany oznaczaj jako wyzsze ryzyko uczenia algorytmu i rekomenduj obserwacje wynikow przed kolejna zmiana. | Jednoczesne albo zbyt duze zmiany moga uruchomic niestabilny okres uczenia, utrudnic ocene przyczyny zmian wynikow i doprowadzic do nadmiernego wydawania budzetu albo utraty wolumenu konwersji. |
|
||||
|
||||
## Poza zakresem tego zadania
|
||||
|
||||
- Performance Max
|
||||
- Search
|
||||
- kampanie Shopping bez grup reklam
|
||||
- automatyczne wdrozenie bez akceptacji uzytkownika
|
||||
- pauzowanie grup reklam z niskim albo zerowym ROAS
|
||||
@@ -0,0 +1,215 @@
|
||||
{
|
||||
"created_at": "2026-05-15T21:32:47+02:00",
|
||||
"client": "investagd.pl",
|
||||
"task": "optimize_product_titles",
|
||||
"task_name": "Optymalizacja tytulow produktow",
|
||||
"products": [
|
||||
{
|
||||
"offer_id": "1041",
|
||||
"default_name": "Odkurzacz workowy Profi 1.2.1",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 113,
|
||||
"impressions": 4813,
|
||||
"cost": 183.32
|
||||
},
|
||||
{
|
||||
"offer_id": "569",
|
||||
"default_name": "Wąż ssący do odkurzaczy Zelmer 2000.1300 (czarny)",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 46,
|
||||
"impressions": 1716,
|
||||
"cost": 43.43
|
||||
},
|
||||
{
|
||||
"offer_id": "1068",
|
||||
"default_name": "ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 44,
|
||||
"impressions": 2360,
|
||||
"cost": 67.09
|
||||
},
|
||||
{
|
||||
"offer_id": "1045",
|
||||
"default_name": "Odkurzacz workowy Profi 11.5",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 43,
|
||||
"impressions": 4511,
|
||||
"cost": 74.34
|
||||
},
|
||||
{
|
||||
"offer_id": "666",
|
||||
"default_name": "Wąż dopływowy 3,0 do pralki / zmywarki - 3 m",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 38,
|
||||
"impressions": 1268,
|
||||
"cost": 16.39
|
||||
},
|
||||
{
|
||||
"offer_id": "835",
|
||||
"default_name": "Nasadka miksująca 171.2000Z do robotów Zelmer 371, 281, 381, 481",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 37,
|
||||
"impressions": 1345,
|
||||
"cost": 24.18
|
||||
},
|
||||
{
|
||||
"offer_id": "178",
|
||||
"default_name": "Worki do odkurzacza Electrolux / Philips IZ-E5/PH5S",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 36,
|
||||
"impressions": 1551,
|
||||
"cost": 41.07
|
||||
},
|
||||
{
|
||||
"offer_id": "729",
|
||||
"default_name": "Worki papierowe do odkurzacza Zelmer Adaś, Franek, Olek, Kuba ZVC 333, Kuba ZVC 334, Kuba ZVC 335 5szt",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 36,
|
||||
"impressions": 935,
|
||||
"cost": 30.6
|
||||
},
|
||||
{
|
||||
"offer_id": "323",
|
||||
"default_name": "Worki syntetyczne BOSCH Activa, Alpha, SIEMENS Super L; IZ-S11SP",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 34,
|
||||
"impressions": 2299,
|
||||
"cost": 21.22
|
||||
},
|
||||
{
|
||||
"offer_id": "1083",
|
||||
"default_name": "4x Worki syntetyczne do odkurzacza Zelmer Józek, Kazik, Kazio",
|
||||
"custom_title": null,
|
||||
"title_changed": false,
|
||||
"google_product_category": null,
|
||||
"needs_title": true,
|
||||
"needs_category": true,
|
||||
"clicks": 33,
|
||||
"impressions": 1357,
|
||||
"cost": 41.25
|
||||
}
|
||||
],
|
||||
"title_changes": [
|
||||
{
|
||||
"offer_id": "1041",
|
||||
"field": "title",
|
||||
"current_value": "Odkurzacz workowy Profi 1.2.1",
|
||||
"target_value": "Odkurzacz workowy Profi 1.2.1 do domu i biura",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "569",
|
||||
"field": "title",
|
||||
"current_value": "Wąż ssący do odkurzaczy Zelmer 2000.1300 (czarny)",
|
||||
"target_value": "Wąż ssący Zelmer 2000.1300 czarny do odkurzacza",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "1068",
|
||||
"field": "title",
|
||||
"current_value": "ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T",
|
||||
"target_value": "Odkurzacz workowy Zelmer Antek ZVC3501T",
|
||||
"reason": "brak zoptymalizowanego tytulu lub tytul wymaga normalizacji"
|
||||
},
|
||||
{
|
||||
"offer_id": "1045",
|
||||
"field": "title",
|
||||
"current_value": "Odkurzacz workowy Profi 11.5",
|
||||
"target_value": "Odkurzacz workowy Profi 11.5 do domu i biura",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "666",
|
||||
"field": "title",
|
||||
"current_value": "Wąż dopływowy 3,0 do pralki / zmywarki - 3 m",
|
||||
"target_value": "Wąż dopływowy 3 m do pralki i zmywarki",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "835",
|
||||
"field": "title",
|
||||
"current_value": "Nasadka miksująca 171.2000Z do robotów Zelmer 371, 281, 381, 481",
|
||||
"target_value": "Nasadka miksująca Zelmer 171.2000Z do robotów 371 281 381 481",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "178",
|
||||
"field": "title",
|
||||
"current_value": "Worki do odkurzacza Electrolux / Philips IZ-E5/PH5S",
|
||||
"target_value": "Worki do odkurzacza Electrolux Philips IZ-E5 PH5S",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "729",
|
||||
"field": "title",
|
||||
"current_value": "Worki papierowe do odkurzacza Zelmer Adaś, Franek, Olek, Kuba ZVC 333, Kuba ZVC 334, Kuba ZVC 335 5szt",
|
||||
"target_value": "Worki papierowe Zelmer Adaś Franek Olek Kuba ZVC 333 334 335 5 szt.",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "323",
|
||||
"field": "title",
|
||||
"current_value": "Worki syntetyczne BOSCH Activa, Alpha, SIEMENS Super L; IZ-S11SP",
|
||||
"target_value": "Worki syntetyczne Bosch Activa Alpha Siemens Super L IZ-S11SP",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "1083",
|
||||
"field": "title",
|
||||
"current_value": "4x Worki syntetyczne do odkurzacza Zelmer Józek, Kazik, Kazio",
|
||||
"target_value": "Worki syntetyczne Zelmer Józek Kazik Kazio 4 szt.",
|
||||
"reason": "brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
}
|
||||
],
|
||||
"category_changes": [],
|
||||
"unit_pricing_changes": [],
|
||||
"skipped": [],
|
||||
"warnings": [
|
||||
"Czesc tytulow wymaga decyzji agenta AI; skrypt nie przepisuje tytulu bazowego jako optymalizacji."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
# Plan: Optymalizacja tytulow produktow
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T21:32:47+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Produkty z adsPRO: 10
|
||||
- Tytuly do zmiany: 10
|
||||
- Kategorie do uzupelnienia: 0
|
||||
- Unit pricing do zmiany: 0
|
||||
- Pominiete: 0
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Czesc tytulow wymaga decyzji agenta AI; skrypt nie przepisuje tytulu bazowego jako optymalizacji.
|
||||
|
||||
## Tytuly do decyzji lub zmiany
|
||||
|
||||
| Produkt | Obecnie | Docelowo | Powod |
|
||||
| --- | --- | --- | --- |
|
||||
| 1041 | Odkurzacz workowy Profi 1.2.1 | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 569 | Wąż ssący do odkurzaczy Zelmer 2000.1300 (czarny) | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 1068 | ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T | Odkurzacz Workowy Zelmer Antek Zvc3501T | brak zoptymalizowanego tytulu lub tytul wymaga normalizacji |
|
||||
| 1045 | Odkurzacz workowy Profi 11.5 | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 666 | Wąż dopływowy 3,0 do pralki / zmywarki - 3 m | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 835 | Nasadka miksująca 171.2000Z do robotów Zelmer 371, 281, 381, 481 | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 178 | Worki do odkurzacza Electrolux / Philips IZ-E5/PH5S | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 729 | Worki papierowe do odkurzacza Zelmer Adaś, Franek, Olek, Kuba ZVC 333, Kuba ZVC 334, Kuba ZVC 335 5szt | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 323 | Worki syntetyczne BOSCH Activa, Alpha, SIEMENS Super L; IZ-S11SP | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
| 1083 | 4x Worki syntetyczne do odkurzacza Zelmer Józek, Kazik, Kazio | | brak zoptymalizowanego tytulu; tytul wybiera agent AI po analizie produktu |
|
||||
@@ -0,0 +1,216 @@
|
||||
{
|
||||
"created_at": "2026-05-15T21:34:55+02:00",
|
||||
"client": "investagd.pl",
|
||||
"task": "optimize_product_categories",
|
||||
"task_name": "Optymalizacja kategorii Google",
|
||||
"products": [
|
||||
{
|
||||
"offer_id": "1041",
|
||||
"default_name": "Odkurzacz workowy Profi 1.2.1",
|
||||
"custom_title": "Odkurzacz workowy Profi 1.2.1 do domu i biura",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 113,
|
||||
"impressions": 4813,
|
||||
"cost": 183.32
|
||||
},
|
||||
{
|
||||
"offer_id": "569",
|
||||
"default_name": "Wąż ssący do odkurzaczy Zelmer 2000.1300 (czarny)",
|
||||
"custom_title": "Wąż ssący Zelmer 2000.1300 czarny do odkurzacza",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 46,
|
||||
"impressions": 1716,
|
||||
"cost": 43.43
|
||||
},
|
||||
{
|
||||
"offer_id": "1068",
|
||||
"default_name": "ODKURZACZ WORKOWY ZELMER ANTEK ZVC3501T",
|
||||
"custom_title": "Odkurzacz workowy Zelmer Antek ZVC3501T",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 44,
|
||||
"impressions": 2360,
|
||||
"cost": 67.09
|
||||
},
|
||||
{
|
||||
"offer_id": "1045",
|
||||
"default_name": "Odkurzacz workowy Profi 11.5",
|
||||
"custom_title": "Odkurzacz workowy Profi 11.5 do domu i biura",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 43,
|
||||
"impressions": 4511,
|
||||
"cost": 74.34
|
||||
},
|
||||
{
|
||||
"offer_id": "666",
|
||||
"default_name": "Wąż dopływowy 3,0 do pralki / zmywarki - 3 m",
|
||||
"custom_title": "Wąż dopływowy 3 m do pralki i zmywarki",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 38,
|
||||
"impressions": 1268,
|
||||
"cost": 16.39
|
||||
},
|
||||
{
|
||||
"offer_id": "835",
|
||||
"default_name": "Nasadka miksująca 171.2000Z do robotów Zelmer 371, 281, 381, 481",
|
||||
"custom_title": "Nasadka miksująca Zelmer 171.2000Z do robotów 371 281 381 481",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 37,
|
||||
"impressions": 1345,
|
||||
"cost": 24.18
|
||||
},
|
||||
{
|
||||
"offer_id": "178",
|
||||
"default_name": "Worki do odkurzacza Electrolux / Philips IZ-E5/PH5S",
|
||||
"custom_title": "Worki do odkurzacza Electrolux Philips IZ-E5 PH5S",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 36,
|
||||
"impressions": 1551,
|
||||
"cost": 41.07
|
||||
},
|
||||
{
|
||||
"offer_id": "729",
|
||||
"default_name": "Worki papierowe do odkurzacza Zelmer Adaś, Franek, Olek, Kuba ZVC 333, Kuba ZVC 334, Kuba ZVC 335 5szt",
|
||||
"custom_title": "Worki papierowe Zelmer Adaś Franek Olek Kuba ZVC 333 334 335 5 szt.",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 36,
|
||||
"impressions": 935,
|
||||
"cost": 30.6
|
||||
},
|
||||
{
|
||||
"offer_id": "323",
|
||||
"default_name": "Worki syntetyczne BOSCH Activa, Alpha, SIEMENS Super L; IZ-S11SP",
|
||||
"custom_title": "Worki syntetyczne Bosch Activa Alpha Siemens Super L IZ-S11SP",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 34,
|
||||
"impressions": 2299,
|
||||
"cost": 21.22
|
||||
},
|
||||
{
|
||||
"offer_id": "1083",
|
||||
"default_name": "4x Worki syntetyczne do odkurzacza Zelmer Józek, Kazik, Kazio",
|
||||
"custom_title": "Worki syntetyczne Zelmer Józek Kazik Kazio 4 szt.",
|
||||
"title_changed": true,
|
||||
"google_product_category": null,
|
||||
"needs_title": false,
|
||||
"needs_category": true,
|
||||
"clicks": 33,
|
||||
"impressions": 1357,
|
||||
"cost": 41.25
|
||||
}
|
||||
],
|
||||
"title_changes": [],
|
||||
"category_changes": [
|
||||
{
|
||||
"offer_id": "1041",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Dom i ogród > Sprzęt AGD > Odkurzacze",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "569",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "1068",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Dom i ogród > Sprzęt AGD > Odkurzacze",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "1045",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Dom i ogród > Sprzęt AGD > Odkurzacze",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "666",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do pralek i suszarek",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "835",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Dom i ogród > Kuchnia i jadalnia > Akcesoria do sprzętów kuchennych > Akcesoria do mikserów i blenderów",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "178",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Worki do odkurzaczy",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "729",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Worki do odkurzaczy",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "323",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Worki do odkurzaczy",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
},
|
||||
{
|
||||
"offer_id": "1083",
|
||||
"field": "google_product_category",
|
||||
"current_value": "",
|
||||
"target_value": "Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Worki do odkurzaczy",
|
||||
"reason": "brak kategorii Google; kategorie wybiera agent AI po analizie produktu",
|
||||
"requires_agent_decision": true
|
||||
}
|
||||
],
|
||||
"unit_pricing_changes": [],
|
||||
"skipped": [],
|
||||
"warnings": [
|
||||
"Kategorie Google wybiera agent AI; skrypt nie zgaduje ich automatycznie."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
# Plan: Optymalizacja kategorii Google
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T21:34:55+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Produkty z adsPRO: 10
|
||||
- Tytuly do zmiany: 0
|
||||
- Kategorie do uzupelnienia: 10
|
||||
- Unit pricing do zmiany: 0
|
||||
- Pominiete: 0
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Kategorie Google wybiera agent AI; skrypt nie zgaduje ich automatycznie.
|
||||
|
||||
## Kategorie Google do decyzji agenta AI
|
||||
|
||||
| Produkt | Obecnie | Decyzja agenta AI | Powod |
|
||||
| --- | --- | --- | --- |
|
||||
| 1041 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 569 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 1068 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 1045 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 666 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 835 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 178 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 729 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 323 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
| 1083 | | | brak kategorii Google; kategorie wybiera agent AI po analizie produktu |
|
||||
@@ -0,0 +1,179 @@
|
||||
{
|
||||
"created_at": "2026-05-15T21:39:58+02:00",
|
||||
"client": "investagd.pl",
|
||||
"task": "fill_product_unit_pricing",
|
||||
"task_name": "Uzupelnienie unit pricing",
|
||||
"products": [
|
||||
{
|
||||
"product_id": 24251,
|
||||
"offer_id": "387",
|
||||
"default_name": "Zelmer zestaw trzepaków do miksera ręcznego do modeli 181, 281, 371, 381",
|
||||
"custom_title": "Trzepaki do miksera Zelmer 371K - komplet do robotów 181, 281, 371, 381",
|
||||
"google_product_category": "Dom i ogród > Kuchnia i jadalnia > Akcesoria do sprzętów kuchennych > Akcesoria do mikserów i blenderów",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 207,
|
||||
"clicks_all_time": 596
|
||||
},
|
||||
{
|
||||
"product_id": 24276,
|
||||
"offer_id": "397",
|
||||
"default_name": "Zelmer sprzęgło napędowe ślimaka 86.1203 do maszynki do mielenia mięsa",
|
||||
"custom_title": "Sprzęgło ślimaka Zelmer 86.1203 do maszynki do mięsa - zamiennik do wszystkich modeli",
|
||||
"google_product_category": "Dom i ogród > Kuchnia i jadalnia > Akcesoria do sprzętów kuchennych > Akcesoria do rozdrabniaczy do żywności",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 41,
|
||||
"clicks_all_time": 126
|
||||
},
|
||||
{
|
||||
"product_id": 24182,
|
||||
"offer_id": "16",
|
||||
"default_name": "Worki ELECTROLUX E 44, E 49, Mondo E 49, Mondo II, Mondo Z 1100 - 1199 + filtry; IZ-E3F",
|
||||
"custom_title": "Worki do odkurzacza Electrolux Mondo E44 E49 Mondo II Z 1100-1199 papierowe + filtry",
|
||||
"google_product_category": "Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 61,
|
||||
"clicks_all_time": 124
|
||||
},
|
||||
{
|
||||
"product_id": 24051,
|
||||
"offer_id": "27",
|
||||
"default_name": "Worki uniwersalne z uchwytem do wycinania Typ 1010 + filtr; IZ-BAG01F",
|
||||
"custom_title": "worki do odkurzacza uniwersalne z uchwytem do wycinania + filtr, Typ 1010, pasują do wielu modeli odkurzaczy workowych (5 szt.) IZ-BAG01F",
|
||||
"google_product_category": "Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy > Worki do odkurzaczy",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 81,
|
||||
"clicks_all_time": 118
|
||||
},
|
||||
{
|
||||
"product_id": 24354,
|
||||
"offer_id": "1041",
|
||||
"default_name": "Odkurzacz workowy Profi 1.2.1",
|
||||
"custom_title": "Odkurzacz workowy Profi 1.2.1 do domu i biura",
|
||||
"google_product_category": "Dom i ogród > Sprzęt AGD > Odkurzacze",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 112,
|
||||
"clicks_all_time": 113
|
||||
},
|
||||
{
|
||||
"product_id": 24047,
|
||||
"offer_id": "871",
|
||||
"default_name": "5 SZT WORKI DO LIDL PARKSIDE PNTS 1300 1400 IZ-L4S",
|
||||
"custom_title": "Worki do odkurzacza Parkside PNTS 1300 1400 syntetyczne 5 szt. - zamiennik Lidl Einhell",
|
||||
"google_product_category": "4537",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 7,
|
||||
"clicks_all_time": 112
|
||||
},
|
||||
{
|
||||
"product_id": 24069,
|
||||
"offer_id": "5",
|
||||
"default_name": "5X Worki papierowe do odkurzacza Zelmer Meteor 2, Cobra 2000, 2010 + filtry IZ-2000.0280",
|
||||
"custom_title": "Worki do odkurzacza Zelmer Meteor 2 Cobra 2000 2010 - 5 szt papierowe + filtry",
|
||||
"google_product_category": "Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 49,
|
||||
"clicks_all_time": 110
|
||||
},
|
||||
{
|
||||
"product_id": 24177,
|
||||
"offer_id": "1090",
|
||||
"default_name": "Worki papierowe do odkurzacza Zelmer 6 sztuk do Cobra 2000, Explorer 1100, Meteor 2",
|
||||
"custom_title": "Worki do odkurzacza Zelmer Meteor 2 Cobra 2000 Explorer 1100 papierowe 6 szt. zamiennik",
|
||||
"google_product_category": "4537",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 32,
|
||||
"clicks_all_time": 109
|
||||
},
|
||||
{
|
||||
"product_id": 24046,
|
||||
"offer_id": "808",
|
||||
"default_name": "Ssawka do odkurzacza mała z welurem 32 mm zamiennik do Zelmer",
|
||||
"custom_title": "Ssawka do odkurzacza Zelmer z welurem 32mm - mała ssawka do mebli i tapicerki",
|
||||
"google_product_category": "Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 25,
|
||||
"clicks_all_time": 94
|
||||
},
|
||||
{
|
||||
"product_id": 24120,
|
||||
"offer_id": "10",
|
||||
"default_name": "5X Worki do odkurzacza Zelmer Elf 321, 322, Elf Bonus, Flip, IZ-321.0081",
|
||||
"custom_title": "Worki do odkurzacza Zelmer Elf 321 322 Elf Bonus Flip papierowe 5 szt.",
|
||||
"google_product_category": "Dom i ogród > Akcesoria do sprzętu AGD > Akcesoria do odkurzaczy",
|
||||
"unit_pricing_measure": "",
|
||||
"unit_pricing_base_measure": "",
|
||||
"clicks_30": 47,
|
||||
"clicks_all_time": 93
|
||||
}
|
||||
],
|
||||
"title_changes": [],
|
||||
"category_changes": [],
|
||||
"unit_pricing_changes": [
|
||||
{
|
||||
"offer_id": "871",
|
||||
"field": "unit_pricing",
|
||||
"title": "5 SZT WORKI DO LIDL PARKSIDE PNTS 1300 1400 IZ-L4S",
|
||||
"current_unit_pricing_measure": "",
|
||||
"current_unit_pricing_base_measure": "",
|
||||
"unit_pricing_measure": "5 szt",
|
||||
"unit_pricing_base_measure": "1 szt",
|
||||
"reason": "brak unit pricing; wartosc wyliczona z nazwy produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "1090",
|
||||
"field": "unit_pricing",
|
||||
"title": "Worki papierowe do odkurzacza Zelmer 6 sztuk do Cobra 2000, Explorer 1100, Meteor 2",
|
||||
"current_unit_pricing_measure": "",
|
||||
"current_unit_pricing_base_measure": "",
|
||||
"unit_pricing_measure": "6 szt",
|
||||
"unit_pricing_base_measure": "1 szt",
|
||||
"reason": "brak unit pricing; wartosc wyliczona z nazwy produktu"
|
||||
}
|
||||
],
|
||||
"skipped": [
|
||||
{
|
||||
"offer_id": "387",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "397",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "16",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "27",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "1041",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "5",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "808",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
},
|
||||
{
|
||||
"offer_id": "10",
|
||||
"reason": "brak jednoznacznego unit pricing w nazwie produktu"
|
||||
}
|
||||
],
|
||||
"warnings": [
|
||||
"Unit pricing zostanie zapisany w adsPRO dopiero po akceptacji planu."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
# Plan: Uzupelnienie unit pricing
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T21:39:58+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Produkty z adsPRO: 10
|
||||
- Tytuly do zmiany: 0
|
||||
- Kategorie do uzupelnienia: 0
|
||||
- Unit pricing do zmiany: 2
|
||||
- Pominiete: 8
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Unit pricing zostanie zapisany w adsPRO dopiero po akceptacji planu.
|
||||
|
||||
## Unit pricing do zmiany
|
||||
|
||||
| Produkt | Measure | Base measure | Powod |
|
||||
| --- | --- | --- | --- |
|
||||
| 871 | 5 szt | 1 szt | brak unit pricing; wartosc wyliczona z nazwy produktu |
|
||||
| 1090 | 6 szt | 1 szt | brak unit pricing; wartosc wyliczona z nazwy produktu |
|
||||
|
||||
## Pominiete
|
||||
|
||||
| Produkt | Powod |
|
||||
| --- | --- |
|
||||
| 387 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
| 397 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
| 16 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
| 27 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
| 1041 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
| 5 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
| 808 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
| 10 | brak jednoznacznego unit pricing w nazwie produktu |
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,23 @@
|
||||
# Plan: Sprawdzenie dostepnosci produktow
|
||||
|
||||
Klient: investagd.pl
|
||||
Utworzono: 2026-05-15T21:43:21+02:00
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
- Produkty sprawdzone: 448
|
||||
- Dostepne: 306
|
||||
- Niedostepne reklamowo: 138
|
||||
- Niedopasowane: 4
|
||||
- Do ustawienia CL4=paused: 1
|
||||
|
||||
## Uwagi
|
||||
|
||||
- Produkty niedopasowane albo bez jednoznacznego odczytu: 4.
|
||||
- Produkty niedostepne reklamowo: 138.
|
||||
|
||||
## Zmiany do wdrozenia
|
||||
|
||||
| Produkt | Obecne CL4 | Docelowe CL4 | Powod | URL |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 1097 | | paused | brak aktywnego przycisku Dodaj do koszyka | https://www.investagd.pl/x-p-1097.html |
|
||||
@@ -0,0 +1,315 @@
|
||||
{
|
||||
"created_at": "2026-05-15T21:44:32+02:00",
|
||||
"client": "investagd.pl",
|
||||
"task": "check_budget_usage",
|
||||
"task_name": "Sprawdzenie wykorzystania budzetu",
|
||||
"currency_code": "PLN",
|
||||
"campaigns": [
|
||||
{
|
||||
"campaign_id": "23825825449",
|
||||
"campaign_name": "[PLA_CL1] pozostale",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15557732820",
|
||||
"budget_name": "[PLA_CL1] pozostale",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 15000000,
|
||||
"expected_7d_micros": 105000000,
|
||||
"cost_7d_micros": 131570000,
|
||||
"avg_daily_cost_micros": 18795714,
|
||||
"usage_percent": 125.3,
|
||||
"pacing_label": "blisko limitu",
|
||||
"conversions": 6.0,
|
||||
"conversions_value": 206.84,
|
||||
"roas": 1.57,
|
||||
"search_impression_share": 0.4117296222664016,
|
||||
"search_budget_lost_impression_share": 0.5882703777335984,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "srednie",
|
||||
"action": "sprawdz mozliwosc podniesienia budżetu",
|
||||
"reason": "kampania wykorzystuje budzet i traci czesc wyswietlen przez budzet",
|
||||
"suggested_budget_change_percent": 30,
|
||||
"current_daily_budget_micros": 15000000,
|
||||
"recommended_daily_budget_micros": 19500000,
|
||||
"budget_delta_micros": 4500000,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23797182612",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15548480095",
|
||||
"budget_name": "[PLA_CL1] odkurzacze_akcesoria",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 15000000,
|
||||
"expected_7d_micros": 105000000,
|
||||
"cost_7d_micros": 119230000,
|
||||
"avg_daily_cost_micros": 17032857,
|
||||
"usage_percent": 113.6,
|
||||
"pacing_label": "blisko limitu",
|
||||
"conversions": 4.0,
|
||||
"conversions_value": 189.49,
|
||||
"roas": 1.59,
|
||||
"search_impression_share": 0.5420177636073787,
|
||||
"search_budget_lost_impression_share": 0.45798223639262126,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "srednie",
|
||||
"action": "sprawdz mozliwosc podniesienia budżetu",
|
||||
"reason": "kampania wykorzystuje budzet i traci czesc wyswietlen przez budzet",
|
||||
"suggested_budget_change_percent": 25,
|
||||
"current_daily_budget_micros": 15000000,
|
||||
"recommended_daily_budget_micros": 18750000,
|
||||
"budget_delta_micros": 3750000,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23797198440",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15543226950",
|
||||
"budget_name": "[PLA_CL1] odkurzacze",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 60000000,
|
||||
"expected_7d_micros": 420000000,
|
||||
"cost_7d_micros": 412370000,
|
||||
"avg_daily_cost_micros": 58910000,
|
||||
"usage_percent": 98.2,
|
||||
"pacing_label": "blisko limitu",
|
||||
"conversions": 0.0,
|
||||
"conversions_value": 0.0,
|
||||
"roas": 0.0,
|
||||
"search_impression_share": 0.5640596682001952,
|
||||
"search_budget_lost_impression_share": 0.43594033179980485,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "ostroznie",
|
||||
"action": "nie podnoś budżetu bez oceny rentowności",
|
||||
"reason": "widac utrate przez budzet, ale brakuje wystarczajacej wartosci konwersji",
|
||||
"suggested_budget_change_percent": 0,
|
||||
"current_daily_budget_micros": 60000000,
|
||||
"recommended_daily_budget_micros": 60000000,
|
||||
"budget_delta_micros": 0,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23825822059",
|
||||
"campaign_name": "[PLA_CL1] worki",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15557730201",
|
||||
"budget_name": "[PLA_CL1] worki",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 40000000,
|
||||
"expected_7d_micros": 280000000,
|
||||
"cost_7d_micros": 229520000,
|
||||
"avg_daily_cost_micros": 32788571,
|
||||
"usage_percent": 82.0,
|
||||
"pacing_label": "w normie",
|
||||
"conversions": 5.07,
|
||||
"conversions_value": 319.79,
|
||||
"roas": 1.39,
|
||||
"search_impression_share": 0.5347182697780307,
|
||||
"search_budget_lost_impression_share": 0.4652817302219693,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "ok",
|
||||
"action": "bez zmiany budzetu",
|
||||
"reason": "brak jednoczesnego sygnalu wysokiego wykorzystania i utraty przez budzet",
|
||||
"suggested_budget_change_percent": 0,
|
||||
"current_daily_budget_micros": 40000000,
|
||||
"recommended_daily_budget_micros": 40000000,
|
||||
"budget_delta_micros": 0,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23836770153",
|
||||
"campaign_name": "[PLA] catch-all",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15578507680",
|
||||
"budget_name": "[PLA] catch-all",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 10000000,
|
||||
"expected_7d_micros": 70000000,
|
||||
"cost_7d_micros": 36670000,
|
||||
"avg_daily_cost_micros": 5238571,
|
||||
"usage_percent": 52.4,
|
||||
"pacing_label": "w normie",
|
||||
"conversions": 0.0,
|
||||
"conversions_value": 0.0,
|
||||
"roas": 0.0,
|
||||
"search_impression_share": 0.4660633484162896,
|
||||
"search_budget_lost_impression_share": 0.5339366515837104,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "ok",
|
||||
"action": "bez zmiany budzetu",
|
||||
"reason": "brak jednoczesnego sygnalu wysokiego wykorzystania i utraty przez budzet",
|
||||
"suggested_budget_change_percent": 0,
|
||||
"current_daily_budget_micros": 10000000,
|
||||
"recommended_daily_budget_micros": 10000000,
|
||||
"budget_delta_micros": 0,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "22934868198",
|
||||
"campaign_name": "[Search] brand",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SEARCH",
|
||||
"budget_id": "14870361809",
|
||||
"budget_name": "[Search] brand",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 30000000,
|
||||
"expected_7d_micros": 210000000,
|
||||
"cost_7d_micros": 48599836,
|
||||
"avg_daily_cost_micros": 6942833,
|
||||
"usage_percent": 23.1,
|
||||
"pacing_label": "niskie wykorzystanie",
|
||||
"conversions": 3.0,
|
||||
"conversions_value": 236.95,
|
||||
"roas": 4.88,
|
||||
"search_impression_share": 0.5238095238095238,
|
||||
"search_budget_lost_impression_share": 0.0,
|
||||
"search_rank_lost_impression_share": 0.47619047619047616,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "ok",
|
||||
"action": "bez zmiany budzetu",
|
||||
"reason": "brak jednoczesnego sygnalu wysokiego wykorzystania i utraty przez budzet",
|
||||
"suggested_budget_change_percent": 0,
|
||||
"current_daily_budget_micros": 30000000,
|
||||
"recommended_daily_budget_micros": 30000000,
|
||||
"budget_delta_micros": 0,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23846238222",
|
||||
"campaign_name": "[PLA_CL1] czajniki",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15575442944",
|
||||
"budget_name": "[PLA_CL1] czajniki",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 20000000,
|
||||
"expected_7d_micros": 140000000,
|
||||
"cost_7d_micros": 0,
|
||||
"avg_daily_cost_micros": 0,
|
||||
"usage_percent": 0.0,
|
||||
"pacing_label": "brak wydatkow",
|
||||
"conversions": 0.0,
|
||||
"conversions_value": 0.0,
|
||||
"roas": 0,
|
||||
"search_impression_share": 0.0,
|
||||
"search_budget_lost_impression_share": 0.0,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "do sprawdzenia",
|
||||
"action": "sprawdz brak wydatkow",
|
||||
"reason": "aktywna kampania nie wydala srodkow w ostatnich 7 dniach",
|
||||
"suggested_budget_change_percent": 0,
|
||||
"current_daily_budget_micros": 20000000,
|
||||
"recommended_daily_budget_micros": 20000000,
|
||||
"budget_delta_micros": 0,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"campaign_id": "23846225484",
|
||||
"campaign_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"status": "ENABLED",
|
||||
"channel_type": "SHOPPING",
|
||||
"budget_id": "15580076781",
|
||||
"budget_name": "[PLA_CL1] odkurzacze | catch_all",
|
||||
"budget_delivery_method": "STANDARD",
|
||||
"daily_budget_micros": 10000,
|
||||
"expected_7d_micros": 70000,
|
||||
"cost_7d_micros": 0,
|
||||
"avg_daily_cost_micros": 0,
|
||||
"usage_percent": 0.0,
|
||||
"pacing_label": "brak wydatkow",
|
||||
"conversions": 0.0,
|
||||
"conversions_value": 0.0,
|
||||
"roas": 0,
|
||||
"search_impression_share": 0.0,
|
||||
"search_budget_lost_impression_share": 0.0,
|
||||
"search_rank_lost_impression_share": 0.0,
|
||||
"days_since_budget_change": null,
|
||||
"budget_recommendation": {
|
||||
"level": "do sprawdzenia",
|
||||
"action": "sprawdz brak wydatkow",
|
||||
"reason": "aktywna kampania nie wydala srodkow w ostatnich 7 dniach",
|
||||
"suggested_budget_change_percent": 0,
|
||||
"current_daily_budget_micros": 10000,
|
||||
"recommended_daily_budget_micros": 10000,
|
||||
"budget_delta_micros": 0,
|
||||
"days_since_budget_change": null,
|
||||
"min_days_between_budget_changes": 7
|
||||
}
|
||||
}
|
||||
],
|
||||
"scope": [
|
||||
{
|
||||
"area": "Wydatki 7 dni",
|
||||
"check": "Porownaj koszt z ostatnich 7 dni z oczekiwanym wydatkiem wynikajacym z budzetu dziennego."
|
||||
},
|
||||
{
|
||||
"area": "Pacing",
|
||||
"check": "Oznacz kampanie, ktore wydaja bardzo malo albo prawie caly tygodniowy limit budzetu."
|
||||
},
|
||||
{
|
||||
"area": "Utrata wyswietlania przez budzet",
|
||||
"check": "Polacz wykorzystanie budzetu z utrata udzialu w wyswietleniach przez budzet i rentownoscia kampanii."
|
||||
},
|
||||
{
|
||||
"area": "Brak wydatkow",
|
||||
"check": "Wskaz aktywne kampanie z budzetem, ktore nie wydaly srodkow w ostatnich 7 dniach."
|
||||
},
|
||||
{
|
||||
"area": "Budzet wspoldzielony",
|
||||
"check": "Pokaz nazwe budzetu, zeby latwiej wychwycic kampanie korzystajace z tego samego budzetu."
|
||||
}
|
||||
],
|
||||
"out_of_scope": [
|
||||
"zmiany stawek i strategii ustalania stawek",
|
||||
"ocena Docelowego ROAS albo Docelowego CPA",
|
||||
"analiza zapytan, wykluczen i jakosci ruchu",
|
||||
"wdrazanie zmian budzetowych na koncie"
|
||||
],
|
||||
"knowledge_rules": [
|
||||
{
|
||||
"id": "smart_bidding_sequential_budget_and_target_changes",
|
||||
"topic": "strategie_stawek",
|
||||
"rule_type": "warning",
|
||||
"condition": "Plan zaklada zmiane budzetu albo celu Smart Bidding, szczegolnie gdy zmiana jest duza albo nastepuje krotko po innej zmianie budzetu, strategii lub celu.",
|
||||
"recommendation": "Zmiany budzetow i celow Smart Bidding wprowadzaj sekwencyjnie. Nie zmieniaj jednoczesnie budzetu i Docelowego ROAS albo Docelowego CPA, jesli nie jest to swiadoma decyzja. Duze zmiany oznaczaj jako wyzsze ryzyko uczenia algorytmu i rekomenduj obserwacje wynikow przed kolejna zmiana.",
|
||||
"risk": "Jednoczesne albo zbyt duze zmiany moga uruchomic niestabilny okres uczenia, utrudnic ocene przyczyny zmian wynikow i doprowadzic do nadmiernego wydawania budzetu albo utraty wolumenu konwersji.",
|
||||
"source": "manual"
|
||||
}
|
||||
],
|
||||
"warnings": [],
|
||||
"budget_changes": [],
|
||||
"changes": []
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user