La maggior parte dei report di Performance Max ti mostra ricavi e ROAS. Pochi mostrano il profitto lordo, perché Google può calcolarlo solo quando ogni prodotto del tuo feed riporta un costo. Google precisa che questo costo può essere approssimativo: la sua stessa guida alla configurazione suggerisce di stimare il COGS all'80% del prezzo del prodotto quando non si hanno cifre esatte. Questa guida è pensata per chi gestisce i feed e per i responsabili del paid media che hanno una colonna di costo da qualche parte (un export dell'ERP, un listino fornitore) e vogliono portarla nel feed di Merchant Center. Alla fine avrai un attributo cost_of_goods_sold formattato correttamente, un tag di conversione coerente con esso e un primo report sui margini che potrai trasformare in fasce di custom label.
Cosa fa e cosa non fa cost_of_goods_sold
cost_of_goods_sold è un attributo di Merchant Center che abilita il reporting sul profitto lordo. Google descrive il profitto lordo come ricavi meno COGS. L'attributo non cambia quali prodotti vengono approvati, come si posizionano o quanto offri. Dà soltanto a Google Ads un costo da sottrarre ai ricavi che registra già per ogni articolo venduto.
Per la maggior parte dei merchant è facoltativo. Google lo indica come obbligatorio solo per gli sconti automatici e le promozioni dinamiche. Per tutti gli altri è un potenziamento del reporting, e il reporting funziona solo se anche il tag di conversione invia i dati carrello a livello di articolo.
L'attributo non è un'impostazione di bidding e Feedance non gestisce le offerte. Quello che i dati ti offrono è una visione affidabile di quali prodotti e campagne generano denaro, così le decisioni su struttura e budget che prendi altrove si basano sul profitto e non sui ricavi.
Passo 1: decidi da dove arriverà il costo di ogni prodotto
Google accetta valori esatti, medie e stime, quindi la prima decisione riguarda quale fonte ritieni abbastanza affidabile da mantenere nel tempo. Qui sotto classifichiamo le opzioni in base a quanto spesso restano accurate dopo il primo mese.
| Fonte del costo | Accuratezza | Onere di manutenzione | Da usare quando |
|---|---|---|---|
| Export da ERP o sistema di magazzino, per SKU | Alta | Basso una volta automatizzato | I costi sono già memorizzati per variante |
| Listino fornitore collegato tramite SKU | Media o alta | Medio; i listini cambiano a ogni stagione | Non hai un ERP, ma hai un file fornitore pulito |
| Media per categoria (ad esempio 0.62 x prezzo per una categoria) | Media | Basso | I margini sono uniformi all'interno di una categoria |
| Percentuale fissa del prezzo (esempio di Google: 80%) | Bassa | Nessuno | Ti serve un primo report questa settimana e rifinirai in seguito |
Una percentuale fissa produce un profitto lordo che si muove esattamente come i ricavi, quindi non ti dirà mai che un prodotto guadagna più per vendita di un altro. Usala per attivare il reporting, non per prendere decisioni sui margini.
Passo 2: formatta l'attributo in modo esatto
La specifica di Google per cost_of_goods_sold prevede un numero seguito da un codice valuta ISO 4217, senza ripetizioni, con il punto come separatore decimale. Se una delle due regole non viene rispettata, i prodotti possono risultare non idonei al reporting, con il risultato di dati incompleti.
In un feed delimitato da tabulazioni il valore appare così:
412.50 TRY
In XML:
<g:cost_of_goods_sold>412.50 TRY</g:cost_of_goods_sold>
Usa per il COGS la stessa valuta del prezzo che il tuo tag di conversione riporta. Google lo raccomanda per evitare incongruenze dovute ai tassi di cambio. I merchant che vendono in lire turche con un fornitore che fattura in euro devono convertire il costo in lire all'interno del feed prima dell'export, usando un tasso aggiornato con regolarità.
Questi sono gli errori di formattazione che vediamo più spesso nelle colonne di costo e le conseguenze di ciascuno:
| Valore di origine | Problema | Valore corretto |
|---|---|---|
412,50 TRY | Virgola come separatore decimale, frequente negli export con impostazioni locali turche | 412.50 TRY |
412.50 | Manca il codice valuta | 412.50 TRY |
TL 412.50 | Non è un codice ISO 4217 e l'ordine è sbagliato | 412.50 TRY |
1,412.50 TRY | Separatore delle migliaia all'interno del numero | 1412.50 TRY |
0.00 TRY | Costo vuoto esportato come zero, che equivale a un margine del 100% | Ometti l'attributo per quel prodotto |
L'ultima riga è una scelta di buon senso, non una regola di Google. Un costo pari a zero è un numero valido, quindi Google lo accetterà, e gonfierà il profitto lordo di quell'articolo. Noi omettiamo l'attributo quando il costo è sconosciuto.
Passo 3: consegna il valore a Merchant Center
Google elenca tre modi per fornire i dati COGS: il feed di prodotto, la Content API (e la sua erede Merchant API) oppure un feed supplementare. La strada del feed supplementare è di solito la più sicura quando i dati di costo provengono da un sistema diverso dal catalogo prodotti, perché puoi inviare un file a due colonne (id e cost_of_goods_sold) senza toccare il feed principale.
Se gestisci i feed con una piattaforma, l'equivalente è un livello che aggiunge un attributo senza riscrivere la sorgente. In Feedance è a questo che servono i feed supplementari, e le feed rules possono calcolare un costo medio per categoria a partire dal prezzo quando usi una stima. Non abbiamo pubblicato un esempio di cliente per questo uso specifico, quindi considera il funzionamento quello descritto in quelle pagine delle funzionalità.
Passo 4: verifica che i dati carrello corrispondano agli ID del tuo feed
Il costo viene usato solo quando Google riesce ad abbinare un articolo venduto a un articolo del feed. La guida di Google afferma che gli ID articolo nell'array items del tag di conversione devono corrispondere esattamente all'attributo id nel tuo feed di Merchant Center e che vengono elaborati solo gli articoli provenienti da un account Merchant Center collegato all'account Google Ads. Le conversioni idonee devono essere conversioni di acquisto utilizzate per il bidding, tracciate con il tag Google o con Google Tag Manager.
Esegui questa checklist prima di aspettare i dati:
- L'account Merchant Center è collegato all'account Google Ads che possiede la conversione di acquisto.
- Il tag di acquisto invia un array items con un ID, un prezzo e una quantità per ogni riga d'ordine.
- L'ID nel tag è la stessa stringa dell'
iddel feed, comprese maiuscole/minuscole ed eventuali suffissi di variante. Se il tag invia lo SKU padre e il feed usa gli ID delle varianti, nulla corrisponde. - Il prezzo nel tag usa la stessa valuta dei valori COGS.
- La diagnostica dell'azione di conversione non mostra avvisi di ID non corrispondenti. Google indica questa sezione di diagnostica per individuare le discrepanze.
Le discrepanze negli ID articolo sono la ragione più comune per cui un rollout del COGS mostra trattini al posto dei numeri. Google osserva che, senza l'attributo COGS, i valori di COGS e profitto lordo compaiono vuoti o come un trattino nei report.
Passo 5: leggi il primo report e confrontalo con i numeri della finanza
Google Ads espone i risultati come profitto lordo, margine di profitto lordo, costo del venduto, ricavi e unità vendute. Per Performance Max, la Google Ads API documenta queste metriche come metrics.gross_profit_micros, metrics.gross_profit_margin e metrics.cost_of_goods_sold_micros, disponibili in asset_group_product_group_view, campaign, customer e shopping_performance_view.
Due avvertenze della documentazione dell'API influenzano il modo in cui leggi i primi numeri. Le metriche dei dati carrello non sono disponibili finché non sono state registrate tutte le conversioni dei prodotti associati, quindi i primi giorni sembreranno incompleti. Inoltre, dal 15 giugno 2026, shopping_performance_view include i dati di tutte le reti di Performance Max, non solo della Rete Display, quindi le metriche potrebbero aumentare una sola volta quando quei dati vengono aggiunti. Se confronti un prima e un dopo, non considerare quel salto una tantum come un effetto della modifica al feed.
Valida con un controllo di plausibilità: scegli una settimana, prendi i ricavi che Google Ads attribuisce ai dati carrello, sottrai il costo dei team finanziari per gli stessi prodotti e confronta. Aspettati una differenza se il tuo COGS è una media. Non aspettarti che sia zero.
Passo 6: trasforma il profitto lordo in fasce di margine
Quando il margine di profitto lordo è visibile per prodotto, raggruppa i prodotti in poche fasce e scrivi la fascia in una custom label. Google consente da custom_label_0 a custom_label_4, ciascuna fino a 100 caratteri, con un valore per prodotto per attributo e fino a 1.000 valori univoci per etichetta. Da tre a cinque fasce bastano.
Uno schema illustrativo (i numeri sono esempi, non benchmark):
| Margine lordo sul prezzo del feed | Valore di custom_label_1 | Uso tipico |
|---|---|---|
| Sotto il 20% | margin_low | Gruppo di inserzioni separato; valutalo sul profitto per clic, non sul ROAS |
| Dal 20% al 40% | margin_mid | Gruppo predefinito |
| Sopra il 40% | margin_high | Candidato a un budget maggiore |
| Nessun COGS | margin_unknown | Elenco da rivedere; correggi i dati |
La fascia è un calcolo lato feed a partire da price e cost_of_goods_sold, quindi una feed rule può scriverla automaticamente a ogni ricostruzione del feed. Il nostro articolo precedente su custom label, product type e item ID per i gruppi di inserzioni di Performance Max spiega quante dimensioni di etichetta può sostenere un albero di gruppi di inserzioni prima di frammentarsi. Se vuoi verificare se la modifica ha aiutato, il nostro metodo per misurare una modifica del feed rispetto al ROAS si applica senza cambiamenti.
Passo 7: mantieni viva la colonna dei costi
Il costo diventa obsoleto più in fretta del prezzo. Assegnagli un responsabile e una cadenza di aggiornamento. Riesporta dopo ogni variazione del prezzo del fornitore, ogni movimento valutario rilevante per il tuo margine e ogni stagione. Un prodotto il cui costo supera il prezzo dovrebbe mostrare un margine negativo nel tuo controllo prima ancora di arrivare in un report.
Dove questo approccio mostra i suoi limiti
Il reporting COGS misura il profitto lordo sugli articoli venduti. Non include sussidi di spedizione, resi, commissioni di pagamento o spesa pubblicitaria, quindi un prodotto può mostrare un margine lordo sano e comunque far perdere denaro. La stessa documentazione di SA360 di Google porta l'esempio del costo all'ingrosso prima di tasse, spedizione e costi pubblicitari, il che conferma questo perimetro.
Dipende anche dalla corretta implementazione dei dati carrello e richiede che l'acquisto sia una conversione che Google può attribuire. Solo gli acquisti registrati come conversioni con dati carrello possono comparire in queste metriche.
Le medie nascondono la varianza. Se una categoria mescola un accessorio con margine del 15% e un prodotto principale con margine del 55%, una media di categoria rappresenterà male entrambi.
Anche i concorrenti trattano questo tema. DataFeedWatch pubblica una guida sull'aggiunta del costo del venduto a un feed per il reporting sul profitto lordo, e piattaforme posizionate sulla redditività dei prodotti, come ROI Hunter, possono adattarsi meglio se la logica di profitto è la tua esigenza principale (vedi il nostro confronto). Feedance prepara i dati; non imposta offerte o budget a partire da essi.
FAQ
cost_of_goods_sold è obbligatorio per Google Shopping?
No. Google lo considera facoltativo, tranne che per gli sconti automatici e le promozioni dinamiche, dove è obbligatorio. Senza di esso i tuoi annunci funzionano normalmente, ma le metriche di COGS e profitto lordo risultano vuote.
Il costo deve essere esatto?
No. Google afferma che i dati servono per il reporting e non devono essere esatti. Se il costo varia da prodotto a prodotto, fornisci una media o una stima approssimativa, come l'80% del prezzo.
I clienti possono vedere il costo?
Google descrive l'attributo come un input di reporting usato quando le conversioni vengono registrate con dati carrello. La sua documentazione non lo presenta come contenuto dell'annuncio, ma non abbiamo testato ogni superficie, quindi verifica nel tuo account.
Perché i miei report mostrano un trattino per il profitto lordo?
Di solito manca l'attributo oppure gli ID nel tag di conversione non corrispondono all'id del feed. Controlla prima la diagnostica dell'azione di conversione per cercare ID non corrispondenti.
Quale valuta devo usare?
La valuta del prezzo che il tuo tag di conversione riporta. Google raccomanda di farle coincidere per evitare incongruenze dovute ai tassi di cambio.
Funziona con Performance Max?
Sì. La Google Ads API documenta le metriche dei dati carrello, tra cui profitto lordo e margine di profitto lordo, per le campagne Performance Max in cui è implementata la funzione Conversioni con dati carrello.
Dove lo aggiungo se non voglio modificare il feed principale?
Usa un feed supplementare oppure la Content API o la Merchant API. Google le elenca insieme al feed principale come metodi di invio accettati.
In cosa si differenzia dalle custom label?
L'attributo di costo alimenta il reporting sul profitto di Google. Una custom label è un segmento che definisci per la struttura delle campagne. Usi il primo per calcolare il margine e la seconda per agire di conseguenza.
Controlla il tuo feed prima di aggiungere la colonna dei costi
Una colonna dei costi è utile solo se il resto del feed è solido. Passa il tuo feed nello strumento gratuito di audit del feed di prodotto per trovare attributi mancanti e malformati prima di costruirci sopra le fasce di margine.
Fonti
- 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

Co-founder di Feedance, dove mette a frutto il suo background di ingegnere informatico e marketer per ricavare insight analitici. Con una forte attenzione alla trasformazione dei dati in strategie concrete, si dedica ad aiutare i brand a ottenere una crescita significativa nel panorama digitale.
LinkedIn



















