Google lifestyle_image_link vs additional_image_link

Put the AI scene in lifestyle_image_link, angles in additional_image_link, and host stable URLs. Limits, a Sume request and a feed snippet.

5 min readSume
All posts

Put the AI lifestyle scene in lifestyle_image_link, keep your angle and detail shots in additional_image_link, and leave image_link for the real product on a clean background. Google's product data specification describes lifestyle_image_link as an optional attribute that is only available for browsy surfaces, while additional_image_link takes up to 10 more images (Google Merchant Center Help, read 2026-10-03).

Sume generates the scene. Hosting it at a stable URL and checking its AI metadata are on you, and the last two sections cover both.

What does each Google image attribute take?

The three attributes share a file-format rule: a URL that points straight to a supported image, in JPEG or WebP (both recommended), PNG, GIF, BMP or TIFF, with the extension matching the real format. Google recommends about 1500 x 1500 pixels or larger, and says it has announced a 500 x 500 pixel minimum for all products beginning January 31, 2027 (read 2026-10-03).

Google Merchant Center image attributes, read 2026-10-03
AttributeStatusHow manyWhat Google says it is for
image_linkRequiredOne URLThe main product image; no promotional overlays or watermarks
additional_image_linkOptional, recommendedUp to 10More angles, product staging, the product in use, parts of the product
lifestyle_image_linkOptionalOne URLA lifestyle image; only available for browsy surfaces

Which attribute should the AI scene go in?

The image_link page says to submit alternative angles or detailed shots in additional_image_link and an in-context or lifestyle representation in lifestyle_image_link. The additional-image page also allows staging and in-use shots there. So both can legally carry a scene. The difference is purpose: use lifestyle_image_link for the one scene you want Google to treat as the lifestyle image, and fill additional_image_link with angles.

Keep the main image honest. Google's rules for image_link ban added text, calls to action, price or shipping claims, watermarks and added logos, and they require the exact item being sold. An AI scene belongs in the other two fields, and the supplier photo stays in the first.

How do you generate the lifestyle scene with Sume?

Send the packshot as a reference to openai/gpt-image-2.5 and describe the setting, light and props, not the product. Custom sizes need both edges to be multiples of 16, so 1536 x 1536, about the 1500 Google recommends, is a valid request. Check the output against the packshot for shape, color and labels before it goes in a feed.

curl -sS -X POST "https://api.sume.com/v1/images" \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: gmc-sku-1042-lifestyle-v1" \
  -d '{
    "model": "openai/gpt-image-2.5",
    "prompt": "The product on a kitchen counter in morning light, a mug and a plant nearby, no text, no logos added",
    "input_references": [{"type": "image_url",
      "image_url": {"url": "https://cdn.example.com/sku-1042.jpg"}}],
    "image_size": "1536x1536"
  }'

Why host the file yourself?

Google's best-practice list asks for stable URLs and warns against dynamic parameters such as timestamps or session IDs that change on every feed submission, because they cause unnecessary recrawling (read 2026-10-03). Sume returns Sume-hosted signed URLs for generated images, according to the Image API docs. Download the file and publish it from your own storage under a fixed path, then put that URL in the feed.

Crawl access matters too. Google asks that your robots.txt allow Googlebot and Googlebot-image to fetch the files, and says an update can take 24 to 48 hours to take effect.

def feed_cols(additional, lifestyle):
    enc = lambda u: u.replace(",", "%2C")
    return {
        "additional_image_link": ",".join(enc(u) for u in additional[:10]),
        "lifestyle_image_link": enc(lifestyle),
    }

print(feed_cols(
    ["https://shop.example.com/img/1042-back.jpg",
     "https://shop.example.com/img/1042-detail.jpg"],
    "https://shop.example.com/img/1042-lifestyle.jpg",
))

Does each color or size need its own scene?

Google's best practices say to submit a distinct image for every variant, showing only the variant being sold, with the right color, pattern and finish (read 2026-10-03). That applies to the scene too. A lifestyle shot with a navy jacket on a listing for the green one is a mismatch. Generate the scene once per variant from that variant's own packshot, rather than recoloring one scene by hand.

For a catalog this multiplies fast: three variants and two scenes each is six images per product. Send one request per image, in async mode if you run many, and let Sume queue the overflow beyond your processing limit rather than throttling by hand.

What about the AI-generated metadata rule?

Google says all images created with generative AI must contain metadata marking them AI-generated, for example the IPTC DigitalSourceType value TrainedAlgorithmicMedia, and that you should not strip it (read 2026-10-03). The Sume documentation does not say that generated files carry that tag, so test a real output with an EXIF reader before you rely on it. The exiftool check post covers the check, and a resize or re-encode step in your own pipeline can strip embedded metadata if the tool does not preserve it.

  • image_link is the supplier photo; the AI scene goes in lifestyle_image_link.
  • Fill additional_image_link with angles and details, up to 10, comma separated, with commas inside URLs written as %2C.
  • Publish files at fixed URLs you control, with the extension matching the format.
  • Check each AI image's metadata before and after your own resize step.
  • Use a distinct Idempotency-Key per SKU and version.

Sources

Related posts

More in Integrations

All Integrations posts

Written by Sume