Większość raportów Performance Max pokazuje przychód i ROAS. Niewiele z nich pokazuje zysk brutto, bo Google może go obliczyć tylko wtedy, gdy każdy produkt w feedzie ma przypisany koszt. Google podkreśla, że ten koszt może być przybliżony: jego własny przewodnik konfiguracji sugeruje oszacowanie COGS na 80% ceny produktu, jeśli nie masz dokładnych danych. Ten poradnik jest dla osób zarządzających feedami i liderów płatnych kampanii, które mają gdzieś kolumnę z kosztem (eksport z ERP, cennik dostawcy) i chcą ją umieścić w feedzie Merchant Center. Na końcu będziesz mieć poprawnie sformatowany atrybut cost_of_goods_sold, pasujący do niego tag konwersji oraz pierwszy raport marży, który zamienisz w progi etykiet niestandardowych.
Co robi, a czego nie robi cost_of_goods_sold
cost_of_goods_sold to atrybut Merchant Center, który umożliwia raportowanie zysku brutto. Google opisuje zysk brutto jako przychód minus COGS. Atrybut nie zmienia tego, które produkty są zatwierdzane, jak się wyświetlają ani ile licytujesz. Daje Google Ads jedynie koszt, który odejmuje od przychodu już zapisanego dla każdej sprzedanej sztuki.
Dla większości sprzedawców atrybut jest opcjonalny. Google wymaga go tylko w przypadku automatycznych rabatów i dynamicznych promocji. Dla wszystkich pozostałych to ulepszenie raportowania, które działa tylko wtedy, gdy tag konwersji wysyła także dane koszyka na poziomie pozycji.
Atrybut nie jest ustawieniem licytacji, a Feedance nie zarządza stawkami. Dane dają natomiast wiarygodny obraz tego, które produkty i kampanie zarabiają, dzięki czemu decyzje o strukturze i budżecie, które podejmujesz gdzie indziej, opierają się na zysku, a nie na przychodzie.
Krok 1: Zdecyduj, skąd będzie pochodzić koszt każdego produktu
Google akceptuje wartości dokładne, średnie i szacunkowe, więc pierwsza decyzja dotyczy tego, któremu źródłu ufasz na tyle, by je utrzymywać. Poniżej uszeregowaliśmy opcje według tego, jak często pozostają dokładne po pierwszym miesiącu.
| Źródło kosztu | Dokładność | Nakład utrzymania | Kiedy używać |
|---|---|---|---|
| Eksport z ERP lub systemu magazynowego, per SKU | Wysoka | Niski po automatyzacji | Koszty są już przechowywane dla każdego wariantu |
| Cennik dostawcy połączony po SKU | Średnia do wysokiej | Średni; cenniki zmieniają się sezonowo | Brak ERP, ale masz czysty plik od dostawcy |
| Średnia dla kategorii (na przykład 0,62 x cena dla jednej kategorii) | Średnia | Niski | Marże są jednolite w obrębie kategorii |
| Stały procent ceny (przykład Google: 80%) | Niska | Brak | Potrzebujesz pierwszego raportu w tym tygodniu i dopracujesz go później |
Stały procent daje zysk brutto, który porusza się dokładnie razem z przychodem, więc nigdy nie pokaże, że jeden produkt zarabia więcej na sprzedaży niż inny. Użyj go, aby uruchomić raportowanie, a nie do podejmowania decyzji o marży.
Krok 2: Sformatuj atrybut dokładnie
Specyfikacja Google dla cost_of_goods_sold to liczba plus kod waluty ISO 4217, bez powtórzeń, z kropką jako separatorem dziesiętnym. Naruszenie którejkolwiek z tych zasad może sprawić, że produkty nie będą kwalifikować się do raportowania, co skutkuje niekompletnymi danymi.
W feedzie rozdzielanym tabulatorami wartość wygląda tak:
412.50 TRY
W XML:
<g:cost_of_goods_sold>412.50 TRY</g:cost_of_goods_sold>
Używaj dla COGS tej samej waluty, co cena raportowana przez tag konwersji. Google zaleca to, aby uniknąć niespójności wynikających z kursów walut. Sprzedawcy sprzedający w lirach tureckich, których dostawca fakturuje w euro, muszą przed eksportem przeliczyć koszt na liry w feedzie, używając kursu odświeżanego według harmonogramu.
To najczęstsze błędy formatowania, jakie widzimy w kolumnach kosztów, oraz skutki każdego z nich:
| Wartość źródłowa | Problem | Poprawiona wartość |
|---|---|---|
412,50 TRY | Przecinek jako separator dziesiętny, częsty w eksportach z tureckimi ustawieniami regionalnymi | 412.50 TRY |
412.50 | Brak kodu waluty | 412.50 TRY |
TL 412.50 | To nie jest kod ISO 4217, a kolejność jest błędna | 412.50 TRY |
1,412.50 TRY | Separator tysięcy wewnątrz liczby | 1412.50 TRY |
0.00 TRY | Pusty koszt wyeksportowany jako zero, co odczytywane jest jako 100% marży | Pomiń atrybut dla tego produktu |
Ostatni wiersz to kwestia oceny, a nie reguła Google. Zerowy koszt jest poprawną liczbą, więc Google go zaakceptuje, a zysk brutto dla tej pozycji zostanie zawyżony. Gdy koszt jest nieznany, pomijamy atrybut.
Krok 3: Dostarcz wartość do Merchant Center
Google wymienia trzy sposoby przekazania danych COGS: feed produktowy, Content API (i jego następca Merchant API) lub feed uzupełniający. Feed uzupełniający jest zwykle najbezpieczniejszą drogą, gdy dane o kosztach pochodzą z innego systemu niż katalog produktów, bo możesz wysłać plik z dwiema kolumnami (id i cost_of_goods_sold) bez ingerencji w feed główny.
Jeśli zarządzasz feedami za pomocą platformy, odpowiednikiem jest warstwa, która dodaje atrybut bez przepisywania źródła. W Feedance służą do tego feedy uzupełniające, a Feed Rules mogą obliczyć średni koszt kategorii na podstawie ceny, jeśli używasz szacunku. Nie opublikowaliśmy przykładu klienta dla tego konkretnego zastosowania, więc mechanikę traktuj tak, jak opisano ją na stronach tych funkcji.
Krok 4: Sprawdź, czy dane koszyka zgadzają się z ID w feedzie
Koszt jest używany tylko wtedy, gdy Google może dopasować sprzedaną pozycję do pozycji z feedu. Pomoc Google podaje, że ID pozycji w tablicy items tagu konwersji muszą dokładnie odpowiadać atrybutowi id w feedzie Merchant Center oraz że przetwarzane są tylko pozycje z konta Merchant Center połączonego z kontem Google Ads. Kwalifikujące się konwersje muszą być konwersjami zakupu uwzględnianymi w licytacji, korzystającymi z tagu Google lub Google Tag Manager.
Przejdź tę listę kontrolną, zanim zaczniesz czekać na dane:
- Konto Merchant Center jest połączone z kontem Google Ads, które jest właścicielem konwersji zakupu.
- Tag zakupu wysyła tablicę items z ID, ceną i ilością dla każdej pozycji zamówienia.
- ID w tagu to ten sam ciąg znaków co
idw feedzie, łącznie z wielkością liter i ewentualnym sufiksem wariantu. Jeśli tag wysyła SKU produktu nadrzędnego, a feed używa ID wariantów, nic się nie dopasuje. - Cena w tagu jest w tej samej walucie co wartości COGS.
- Diagnostyka akcji konwersji nie pokazuje ostrzeżeń o niedopasowanych ID. Google wskazuje tę sekcję diagnostyki jako miejsce do wyszukiwania niezgodności.
Niezgodność ID pozycji to najczęstszy powód, dla którego po wdrożeniu COGS zamiast liczb widać kreski. Google zaznacza, że bez atrybutu COGS wartości COGS i zysku brutto w raportach są puste lub wyświetlane jako kreska.
Krok 5: Przeczytaj pierwszy raport i porównaj go z danymi finansowymi
Google Ads udostępnia wyniki jako zysk brutto, marżę zysku brutto, koszt sprzedanych towarów, przychód i liczbę sprzedanych sztuk. Dla Performance Max Google Ads API dokumentuje te metryki jako metrics.gross_profit_micros, metrics.gross_profit_margin i metrics.cost_of_goods_sold_micros, dostępne w asset_group_product_group_view, campaign, customer i shopping_performance_view.
Dwa zastrzeżenia z dokumentacji API wpływają na sposób czytania pierwszych liczb. Metryki danych koszyka nie są dostępne, dopóki nie zostaną zarejestrowane wszystkie konwersje dla powiązanych produktów, więc pierwsze dni będą wyglądać na niekompletne. Ponadto od 15 czerwca 2026 r. shopping_performance_view obejmuje dane ze wszystkich sieci Performance Max, a nie tylko z Sieci Reklamowej, więc metryki mogą jednorazowo wzrosnąć po dodaniu tych danych. Jeśli porównujesz stan przed zmianą i po niej, nie traktuj tego jednorazowego skoku jako efektu zmiany w feedzie.
Zweryfikuj wyniki prostą kontrolą: wybierz tydzień, weź przychód, który Google Ads przypisuje do danych koszyka, odejmij koszt tych samych produktów według działu finansów i porównaj. Jeśli twoje COGS jest średnią, spodziewaj się różnicy. Nie oczekuj, że wyniesie zero.
Krok 6: Zamień zysk brutto w progi marży
Gdy marża zysku brutto jest widoczna dla każdego produktu, pogrupuj produkty w kilka progów i wpisz próg do etykiety niestandardowej. Google dopuszcza custom_label_0 do custom_label_4, każdą do 100 znaków, z jedną wartością na produkt dla każdego atrybutu i do 1000 unikalnych wartości na etykietę. Wystarczą trzy do pięciu progów.
Przykładowy schemat (liczby są przykładami, a nie benchmarkami):
| Marża brutto od ceny w feedzie | Wartość custom_label_1 | Typowe zastosowanie |
|---|---|---|
| Poniżej 20% | margin_low | Osobna grupa produktów; oceniaj po zysku na kliknięcie, a nie po ROAS |
| 20% do 40% | margin_mid | Grupa domyślna |
| Powyżej 40% | margin_high | Kandydat do większego budżetu |
| Brak COGS | margin_unknown | Lista do przeglądu; popraw dane |
Próg jest obliczany po stronie feedu na podstawie price i cost_of_goods_sold, więc reguła feedu może zapisywać go automatycznie przy każdej przebudowie feedu. Nasz wcześniejszy artykuł o etykietach niestandardowych, typie produktu i ID pozycji w grupach produktów Performance Max opisuje, ile wymiarów etykiet może unieść drzewo grup produktów, zanim się rozdrobni. Jeśli chcesz sprawdzić, czy zmiana pomogła, nasza metoda mierzenia wpływu zmiany w feedzie na ROAS ma zastosowanie bez zmian.
Krok 7: Utrzymuj kolumnę kosztów przy życiu
Koszt dezaktualizuje się szybciej niż cena. Przypisz mu właściciela i częstotliwość odświeżania. Eksportuj dane ponownie po każdej zmianie cen u dostawcy, każdej istotnej dla marży zmianie kursu walut i w każdym sezonie. Produkt, którego koszt przekracza cenę, powinien pokazywać ujemną marżę w twojej własnej kontroli, zanim w ogóle trafi do raportu.
Gdzie to zawodzi
Raportowanie COGS mierzy zysk brutto na sprzedanych pozycjach. Nie uwzględnia dopłat do wysyłki, zwrotów, opłat płatniczych ani wydatków na reklamę, więc produkt może wykazywać zdrową marżę brutto i mimo to przynosić stratę. Dokumentacja SA360 Google podaje przykład kosztu hurtowego przed podatkiem, wysyłką i kosztami reklamy, co potwierdza ten zakres.
Zależy to także od poprawnego wdrożenia danych koszyka i wymaga, aby zakup był konwersją, którą Google może przypisać. W tych metrykach mogą pojawić się tylko zakupy raportowane jako konwersje z danymi koszyka.
Średnie ukrywają zmienność. Jeśli jedna kategoria łączy akcesorium z marżą 15% z produktem podstawowym z marżą 55%, średnia kategorii błędnie odzwierciedli oba.
Konkurencja też to obsługuje. DataFeedWatch publikuje poradnik o dodawaniu kosztu sprzedanych towarów do feedu na potrzeby raportowania zysku brutto, a platformy skoncentrowane na rentowności produktów, takie jak ROI Hunter, mogą lepiej pasować, jeśli logika zysku jest twoją główną potrzebą (zobacz nasze porównanie). Feedance przygotowuje dane; nie ustawia na ich podstawie stawek ani budżetów.
FAQ
Czy cost_of_goods_sold jest wymagany w Google Shopping?
Nie. Google traktuje go jako opcjonalny, z wyjątkiem automatycznych rabatów i dynamicznych promocji, gdzie jest wymagany. Bez niego reklamy działają normalnie, ale metryki COGS i zysku brutto są puste.
Czy koszt musi być dokładny?
Nie. Google mówi, że dane służą do raportowania i nie muszą być dokładne. Jeśli koszt różni się między produktami, podaj średnią lub przybliżone oszacowanie, na przykład 80% ceny.
Czy klienci mogą zobaczyć koszt?
Google opisuje atrybut jako dane wejściowe do raportowania, używane, gdy konwersje są raportowane z danymi koszyka. Jego dokumentacja nie przedstawia go jako treści reklamy, ale nie testowaliśmy każdej powierzchni, więc potwierdź to na własnym koncie.
Dlaczego w raportach zysk brutto jest wyświetlany jako kreska?
Zwykle brakuje atrybutu albo ID w tagu konwersji nie zgadzają się z id w feedzie. Najpierw sprawdź w diagnostyce akcji konwersji, czy nie ma niedopasowanych ID.
Jakiej waluty powinienem użyć?
Waluty ceny raportowanej przez tag konwersji. Google zaleca ich dopasowanie, aby uniknąć niespójności wynikających z kursów walut.
Czy to działa z Performance Max?
Tak. Google Ads API dokumentuje metryki danych koszyka, w tym zysk brutto i marżę zysku brutto, dla kampanii Performance Max, w których wdrożono konwersje z danymi koszyka.
Gdzie to dodać, jeśli nie chcę edytować głównego feedu?
Użyj feedu uzupełniającego albo Content API lub Merchant API. Google wymienia je obok feedu głównego jako akceptowane metody dostarczania.
Czym różni się to od etykiet niestandardowych?
Atrybut kosztu zasila raportowanie zysku w Google. Etykieta niestandardowa to segment, który definiujesz na potrzeby struktury kampanii. Pierwszego używasz do obliczenia marży, a drugiej do działania na jej podstawie.
Sprawdź swój feed, zanim dodasz kolumnę kosztów
Kolumna kosztów pomaga tylko wtedy, gdy reszta feedu jest poprawna. Przepuść swój feed przez darmowe narzędzie do audytu feedu produktowego, aby znaleźć brakujące i błędnie sformatowane atrybuty, zanim zbudujesz na nich progi marży.
Źródła
- Google Merchant Center Help: Cost of goods (COGS) [cost_of_goods_sold]
- Google Ads Help: About conversions with cart data
- Google Ads Help: Set up and test reporting with conversions with cart data
- Search Ads 360 Help: Enable reporting on profit margins for Conversions with Cart Data
- Google Ads API: Performance Max retail reporting
- Google Merchant Center Help: Custom label [custom_label_0 to custom_label_4]
- DataFeedWatch: Get reporting on gross profit by adding cost of goods sold to your feed

Współzałożyciel Feedance, gdzie wykorzystuje swoje doświadczenie jako inżynier komputerowy i marketer, aby dostarczać analityczne wnioski. Skupia się na przekształcaniu danych w konkretne strategie i pomaga markom osiągać znaczący wzrost w świecie cyfrowym.
LinkedIn



















