Est. reading time: 8 minutes
A brand connects the Shopify app, the catalog ingests without an error, and the first sales campaign launches against the All Products group. Spend clears, impressions pile up, and the return lands below every other channel in the account.
The conclusion that follows is usually that Pinterest users browse without buying. The file that decided which products got shown, to whom, and with what information attached rarely gets audited.
That file carries more weight on Pinterest than it does anywhere else in a paid media account. Shopping campaigns run without keyword or interest targeting, and Pinterest’s guidance on shopping ads states that the platform uses the product data in your data source to show relevant products to people browsing product Pins, with no additional targeting setup required. The matching signal is not the audience you defined. It’s the columns you submitted.
In Pinterest catalog ads, the product data does the targeting
The most common feed we open was built for Google Shopping and pushed to Pinterest unchanged, which means the copy in it was written for a shelf. Titles carry SKU fragments and internal shorthand, descriptions are clipped marketing lines, and product_type either repeats the site’s navigation labels or sits empty. Each of those fields is a matching input on Pinterest, and thin values narrow the set of searches and feeds your product can be placed against.
Pinterest’s retail catalog field reference allows more room than most feeds use. Titles accept up to 500 characters and should match the product name on the landing page, including variant details such as color and size. Descriptions accept up to 10,000 characters of plain text, and Pinterest recommends the description_html field for descriptions longer than 200 characters, since that field gets used in place of the plain description when both are present.
product_type accepts up to five subcategories separated by a greater-than sign wrapped in spaces, and Pinterest recognizes no other delimiter (commas and pipes will not parse). A path three or four levels deep tells the system considerably more about the product than a single top-level word.
The work is a review pass on those fields wherever your feed gets built. Name the item the way a shopper would name it, fill descriptions with attributes and use cases, and build product_type as a taxonomy with real depth. None of this requires touching a campaign.
Ingestion success and ad eligibility are separate checks
A clean ingestion status gets read as a healthy catalog. Pinterest’s catalog diagnostics reports two different things across two tabs. Ingestion issues cover successful uploads, products that failed to upload, and warnings (products that uploaded successfully while carrying missing or invalid metadata). Distribution issues cover products approved for ads, products ineligible for ads, and products ineligible for organic distribution.
Warnings are the line nobody works. A product sitting there is in your catalog and can still be ineligible for the surfaces you are paying for, which means the product group you promoted may be smaller in practice than the count on the screen suggests.
Two eligibility mechanics deserve a standing place in your ops routine. Products marked out of stock are not distributed on Pinterest organically or through shopping ads, so availability accuracy sets the ceiling on what a campaign can serve. Products also have to be updated every seven days to keep being distributed, and a hosted data source gets accessed daily, which makes feed freshness a permanent requirement.
Work the distribution tab before touching bids. Export the issue details, group the errors by cause, and fix them in the feed so one change clears every affected row. Then reconcile the approved product count against the group you are promoting, so you know how much of the catalog is genuinely biddable.
Image and video fields decide how many chances a product gets
Main product images need to be at least 1000×1500 pixels and reachable by Pinterest’s user agent, with no template or stand-in imagery. One detail catches brands mid-season. If you change an image, the new file needs a different URL, or the image on Pinterest will not update.
additional_image_link is the field with the most upside and the least use. It accepts up to 10 additional image URLs per product, and Pinterest creates a new Pin for every additional image link. A product with a packshot, a lifestyle shot, a detail shot, and an in-use shot enters with four distinct creatives, all built from images already sitting in the product page gallery.
video_link works on the same principle. When an item has an associated static image and a video, Pinterest promotes the video in the shopping ad, so filling that field changes what your spend runs on. Two operational notes belong with this work. Pinterest recommends adding “video” to the names of product groups that contain videos so they are easy to find when building video shopping ads, and delivery may be delayed by a day or two when you update imagery across an entire catalog.
Segmentation you can use in Ads Manager has to exist in the feed first
Pinterest recommends launching with the All Products group and breaking out campaigns and ad groups afterward, which is sound advice that plenty of accounts follow only halfway. The auto-created groups (All Products, Top Sellers, Back In Stock, Best Deals, New Arrivals, and Most Popular) update once per day, and every one except All Products caps at 1,000 products. Top Sellers ranks by conversion rate and requires the conversion tag.
When you build your own groups, the filter menu is the constraint. Per Pinterest’s documentation on creating product groups, the contains and does not contain operators are available only for Custom label 0 through 4 and Product title, and the numeric operators are available only for Custom number 0 through 4 and Price. Any filter also requires that its field exists in the data source and is filled in, so grouping logic you want in three months has to be written into the feed now.
That makes the custom label and custom number fields the most valuable underused columns in a Pinterest feed:
- A margin tier in a custom label lets your high-margin products carry their own budget and bid.
- A bestseller flag gives you a scalable group of proven products without depending on the 1,000-product Top Sellers cap.
- Seasonal collection tags let you turn a range on and off without rebuilding campaign structure.
- A custom number holding inventory depth keeps thin stock out of the groups you push hardest.
Structure copied from your site’s collection pages inherits merchandising logic, not economics. Shopify accounts have a shortcut here, and it comes with limits. Linking Shopify to Pinterest features up to 100 of your collections as product groups, syncing up to 1,000 products per collection every 48 hours, and editing or deleting those groups sends you back into the Shopify app.
One structural rule keeps you from bidding against yourself. Overlapping products across promoted product groups can cause bidding issues, and the exclusion is built into the filter menu (choose the Product Group filter, set the operator to “is not”, and select the groups whose products should stay out of the new one).
Build the tracking that lets you judge groups on revenue
The ad_link field holds a full URL including tracking parameters for traffic from shopping ads, which keeps product-level and group-level reporting readable once several groups are running. Pinterest does not currently support impression tracking in that field, so build the measurement plan around clicks and conversions.
The Pinterest tag is the dependency behind all of it. Installing it is a prerequisite for adding a catalog, it feeds the Top Sellers group, and dynamic retargeting relies on it to reach people who visited your site or left items in the cart. Pinterest positions shopping ads as a way to engage people early, while they are looking for inspiration, which is a fair reason to expect a short attribution window to understate what a product group produced. The adjustment is to judge groups on click-based conversions, then check that read against backend revenue over a longer horizon before cutting a group that looks marginal in Ads Manager.
Sequence is what makes this manageable. Clean the required fields so the catalog ingests, work the distribution tab until the approved count matches what you meant to promote, fill the image, video, and description fields so each product has something to compete with, then write the labels that let you separate the products worth scaling. Campaign structure comes last, because it can only reflect what the feed already says. If a catalog is spending without converting and you want another read on it, send it over and we’ll go through it with you.










