MetafieldsGoogle Merchant Fields

Google Merchant Fields

PromoSync populates metafields specifically for Google Merchant Center integration. These fields help optimize your products for Google Shopping campaigns.

Overview

Google Shopping requires specific product data to display your products effectively. PromoSync automatically populates these fields from supplier data, reducing manual data entry.

Namespace

All Google Merchant fields use the custom.google namespace:

{% raw %}{{ product.metafields.custom.google.brand }}
{{ product.metafields.custom.google.condition }}{% endraw %}

Product-Level Fields

These fields are attached to the product.

google_product_category

Google Product Category from Google taxonomy.

PropertyValue
Namespacecustom.google
Keygoogle_product_category
Typesingle_line_text_field
{% raw %}{{ product.metafields.custom.google.google_product_category }}
→ "Apparel & Accessories > Clothing > Shirts & Tops > T-Shirts"{% endraw %}

product_type

Merchant-defined product categorization.

PropertyValue
Namespacecustom.google
Keyproduct_type
Typesingle_line_text_field
{% raw %}{{ product.metafields.custom.google.product_type }}
→ "T-Shirts > Short Sleeve"{% endraw %}

condition

Product condition.

PropertyValue
Namespacecustom.google
Keycondition
Typesingle_line_text_field

Valid values: new, refurbished, used

{% raw %}{{ product.metafields.custom.google.condition }}
→ "new"{% endraw %}

brand

Brand name for Google Shopping.

PropertyValue
Namespacecustom.google
Keybrand
Typesingle_line_text_field
{% raw %}{{ product.metafields.custom.google.brand }}
→ "BELLA+CANVAS"{% endraw %}

identifier_exists

Whether product has GTIN, MPN, or brand.

PropertyValue
Namespacecustom.google
Keyidentifier_exists
Typeboolean

Set to false for custom or promotional products without standard identifiers.

{% raw %}{{ product.metafields.custom.google.identifier_exists }}
→ true{% endraw %}

adult

Whether product contains adult content.

PropertyValue
Namespacecustom.google
Keyadult
Typeboolean
{% raw %}{{ product.metafields.custom.google.adult }}
→ false{% endraw %}

age_group

Target age group.

PropertyValue
Namespacecustom.google
Keyage_group
Typesingle_line_text_field

Valid values: adult, kids, toddler, infant, newborn

{% raw %}{{ product.metafields.custom.google.age_group }}
→ "adult"{% endraw %}

gender

Target gender.

PropertyValue
Namespacecustom.google
Keygender
Typesingle_line_text_field

Valid values: male, female, unisex

{% raw %}{{ product.metafields.custom.google.gender }}
→ "unisex"{% endraw %}

material

Primary material of the product.

PropertyValue
Namespacecustom.google
Keymaterial
Typesingle_line_text_field
{% raw %}{{ product.metafields.custom.google.material }}
→ "Cotton"{% endraw %}

pattern

Pattern or print on the product.

PropertyValue
Namespacecustom.google
Keypattern
Typesingle_line_text_field
{% raw %}{{ product.metafields.custom.google.pattern }}
→ "Solid"{% endraw %}

size_type

Size type for apparel.

PropertyValue
Namespacecustom.google
Keysize_type
Typesingle_line_text_field

Valid values: regular, petite, plus, tall, big, maternity

{% raw %}{{ product.metafields.custom.google.size_type }}
→ "regular"{% endraw %}

size_system

Size system used.

PropertyValue
Namespacecustom.google
Keysize_system
Typesingle_line_text_field

Valid values: US, UK, EU, DE, FR, JP, CN, IT, BR, MEX, AU

{% raw %}{{ product.metafields.custom.google.size_system }}
→ "US"{% endraw %}

Custom Labels

Custom labels for grouping products in Google Shopping campaigns.

KeyDescription
custom_label_0Custom label 0
custom_label_1Custom label 1
custom_label_2Custom label 2
custom_label_3Custom label 3
custom_label_4Custom label 4

All custom labels are single_line_text_field type.

{% raw %}{{ product.metafields.custom.google.custom_label_0 }}
→ "best-seller"{% endraw %}

Common uses for custom labels:

  • custom_label_0: Supplier name
  • custom_label_1: Margin tier (high, medium, low)
  • custom_label_2: Season (spring, summer, fall, winter)
  • custom_label_3: Sale status (on_sale, clearance)
  • custom_label_4: Performance (best_seller, new_arrival)

product_detail

Additional structured product details.

PropertyValue
Namespacecustom.google
Keyproduct_detail
Typejson
{% raw %}{% assign details = product.metafields.custom.google.product_detail.value %}
{% if details %}
  <!-- Access structured product details -->
{% endif %}{% endraw %}

Variant-Level Fields

These fields are attached to individual product variants.

gtin

Global Trade Item Number (barcode).

PropertyValue
Namespacecustom.google
Keygtin
Typesingle_line_text_field
OwnerPRODUCTVARIANT
{% raw %}{{ variant.metafields.custom.google.gtin }}
→ "882932789234"{% endraw %}

mpn

Manufacturer Part Number (variant SKU).

PropertyValue
Namespacecustom.google
Keympn
Typesingle_line_text_field
OwnerPRODUCTVARIANT
{% raw %}{{ variant.metafields.custom.google.mpn }}
→ "3001-BLK-L"{% endraw %}

title

Google Product Variant Title.

PropertyValue
Namespacecustom.google
Keytitle
Typesingle_line_text_field
OwnerPRODUCTVARIANT
{% raw %}{{ variant.metafields.custom.google.title }}
→ "Unisex Jersey Tee - Black - Large"{% endraw %}

cost_of_goods_sold

Google Product Variant COGS.

PropertyValue
Namespacecustom.google
Keycost_of_goods_sold
Typesingle_line_text_field
OwnerPRODUCTVARIANT
{% raw %}{{ variant.metafields.custom.google.cost_of_goods_sold }}
→ "8.25 USD"{% endraw %}

color

Color of the product variant.

PropertyValue
Namespacecustom.google
Keycolor
Typesingle_line_text_field
OwnerPRODUCTVARIANT
{% raw %}{{ variant.metafields.custom.google.color }}
→ "Black"{% endraw %}

size

Size of the product variant.

PropertyValue
Namespacecustom.google
Keysize
Typesingle_line_text_field
OwnerPRODUCTVARIANT
{% raw %}{{ variant.metafields.custom.google.size }}
→ "Large"{% endraw %}

item_group_id

ID for grouping product variants.

PropertyValue
Namespacecustom.google
Keyitem_group_id
Typesingle_line_text_field
OwnerPRODUCTVARIANT
{% raw %}{{ variant.metafields.custom.google.item_group_id }}
→ "3001"{% endraw %}

Complete Field List

Product-Level Fields

KeyTypeDescription
google_product_categorytextGoogle Product Category
product_typetextMerchant-defined category
conditiontextnew, refurbished, used
brandtextBrand name
identifier_existsbooleanHas GTIN/MPN/brand
adultbooleanAdult content
age_grouptextTarget age group
gendertextTarget gender
materialtextPrimary material
patterntextPattern/print
size_typetextSize type
size_systemtextSize system
custom_label_0textCustom label 0
custom_label_1textCustom label 1
custom_label_2textCustom label 2
custom_label_3textCustom label 3
custom_label_4textCustom label 4
product_detailjsonAdditional details

Variant-Level Fields

KeyTypeDescription
gtintextGlobal Trade Item Number
mpntextManufacturer Part Number
titletextVariant title
cost_of_goods_soldtextVariant COGS
colortextVariant color
sizetextVariant size
item_group_idtextVariant grouping ID

Shopify Google Channel Integration

These metafields work with Shopify’s Google channel app:

  1. Install the Google channel app from Shopify
  2. Connect your Google Merchant Center account
  3. PromoSync metafields automatically populate your product feed
  4. Products sync to Google Shopping

Troubleshooting

Missing Required Fields

If Google rejects products for missing data:

  1. Check if supplier provides the data
  2. Some custom/promotional products won’t have GTINs
  3. Set identifier_exists to false for products without standard identifiers

Invalid Values

Google has strict value requirements:

FieldCommon IssueSolution
gender”Men’s” instead of “male”PromoSync normalizes values
conditionMissingDefaults to “new”
age_groupInvalid valueUse enumerated values only

Feed Errors

Common Google Merchant Center errors:

ErrorCauseSolution
Invalid GTINChecksum failureVerify with supplier
Missing brandNot providedAdd manually or contact supplier
Invalid categoryOld taxonomyCheck Google taxonomy updates