Implementing Dynamic Remarketing on a Website
A user opens a MacBook Pro product page, studies the specs, and closes the tab. An hour later, in their Instagram feed, they see an ad… for refrigerators. Sounds familiar: the pixel is installed, but the feed isn't linked, events fire incorrectly, and product IDs don't match. Dynamic remarketing solves this: the ad shows that exact MacBook with the correct price and photo. We implement this integration: product feed + pixels + Google Tag Manager. Our solutions work with Google Ads, Meta, and VK, boosting customer return rates by 30–50%. According to statistics, dynamic remarketing generates 3 times more conversions compared to standard retargeting, and ROAS increases 2.5 times. Proper setup reduces customer acquisition cost (CAC) by 25–40%. For e-commerce remarketing this is critical—a single wrong ID can nullify a campaign.
A typical scenario: an online store with 10,000 products, the feed is generated once a day, prices become outdated, and ads show out-of-stock items. Budget is wasted, and the user is frustrated. Our certified specialists ensure the feed is always up-to-date and event markup is correct on all pages. We have implemented this on over 50 projects.
Why Dynamic Remarketing Requires Technical Setup
Unlike standard remarketing, dynamic remarketing relies on synchronizing three components:
- product feed with current prices and stock levels;
- event tracking on the site (view, cart, purchase);
- advertising platform (Google, Meta, VK).
Without proper configuration, ads will show the wrong products or not show at all. We handle this turnkey. For example, on one project we found a mismatch between product IDs in the feed and pixel—it nullified the entire campaign for three weeks. To avoid such losses, we use a unified ID generation system (SKU) for all platforms.
How Dynamic Remarketing Boosts ROI
Dynamic ads show users exactly the products they viewed, sharply increasing purchase likelihood. According to Google, such campaigns deliver 40% more ROI compared to standard retargeting. CTR of dynamic ads is 2–3 times higher, and conversion is 3–5 times higher. This is achieved through relevance: the user sees a familiar product with an up-to-date price, lowering the cognitive barrier.
How Dynamic Remarketing Works
- Feed generation. The system exports products with prices, stock, and links to XML/CSV.
- Event markup. Scripts on product, cart, and purchase pages fire, transmitting product IDs.
- Synchronization. The platform (Google Ads, Meta, VK) matches events with the feed and shows relevant ads.
- Optimization. Automated rules adjust bids for high-demand products.
Product Feed: Generation and Caching
The foundation of dynamic remarketing is the feed with product data. Ad platforms pull information from it to generate ads. The feed format for Google Merchant Center:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
<channel>
<title>Product Catalog</title>
<link>https://example.com</link>
<item>
<g:id>PRODUCT_123</g:id>
<g:title>MacBook Pro 14 M3 Pro</g:title>
<g:description>Apple laptop with M3 Pro chip, 18 GB memory, SSD 512 GB</g:description>
<g:link>https://example.com/catalog/laptops/macbook-pro-14</g:link>
<g:image_link>https://example.com/images/products/mbp14.jpg</g:image_link>
<g:price>price-on-request</g:price>
<g:sale_price>price-on-request</g:sale_price>
<g:availability>in stock</g:availability>
<g:condition>new</g:condition>
<g:brand>Apple</g:brand>
<g:google_product_category>Electronics > Computers > Laptops</g:google_product_category>
<g:custom_label_0>bestseller</g:custom_label_0>
</item>
</channel>
</rss>
Feed generation in Laravel (controller + route):
// FeedController.php
class FeedController extends Controller
{
public function googleMerchant(): Response
{
$products = Product::where('is_active', true)
->where('stock', '>', 0)
->with('category', 'images')
->get();
return response()
->view('feeds.google-merchant', compact('products'))
->header('Content-Type', 'application/xml; charset=UTF-8');
}
}
// routes/web.php
Route::get('/feeds/google-merchant.xml', [FeedController::class, 'googleMerchant'])
->middleware('cache.headers:public;max_age=3600');
The feed updates automatically—prices and stock are always current. Caching with a TTL of 1 hour reduces database load without sacrificing freshness.
How to Set Up Event Tracking for Google Ads, Meta, and VK
For Google Ads, events view_item_list, view_item, view_cart are required with item_id:
gtag('event', 'view_item_list', {
items: products.map(p => ({
item_id: p.id,
item_name: p.title,
item_category: p.category,
price: p.price,
})),
});
gtag('event', 'view_item', {
items: [{
item_id: 'PRODUCT_123',
item_name: 'MacBook Pro 14 M3 Pro',
item_category: 'Laptops',
price: 'price-on-request',
currency: 'depends on scope',
}],
});
gtag('event', 'view_cart', {
value: 'price-on-request',
currency: 'depends on scope',
items: cartItems.map(item => ({
item_id: item.product_id,
item_name: item.product_name,
price: item.price,
quantity: item.quantity,
})),
});
Meta requires content_ids and content_type: 'product', VK uses a similar format:
// Meta — view product
fbq('track', 'ViewContent', {
content_ids: ['PRODUCT_123'],
content_type: 'product',
value: 'price-on-request',
currency: 'depends on scope',
});
// Meta — add to cart
fbq('track', 'AddToCart', {
content_ids: ['PRODUCT_123', 'PRODUCT_456'],
content_type: 'product',
value: 'price-on-request',
currency: 'depends on scope',
num_items: 2,
});
// VK — view product
VK.Retargeting.ProductEvent('view_product', {
id: 'PRODUCT_123',
price: 'price-on-request',
currency: 'depends on scope',
});
// VK — add to cart
VK.Retargeting.ProductEvent('add_to_cart', {
id: 'PRODUCT_123',
price: 'price-on-request',
currency: 'depends on scope',
});
Integration via dataLayer + GTM
To avoid duplicating code for each platform, push events to dataLayer—GTM tags translate them to the required format:
window.dataLayer.push({
event: 'product_view',
product: {
id: 'PRODUCT_123',
name: 'MacBook Pro 14 M3 Pro',
category: 'Laptops',
price: 'price-on-request',
currency: 'depends on scope',
brand: 'Apple',
stock: 'in_stock',
},
});
In GTM, create one tag each for Google Ads, Meta, and VK. All three use variables from dataLayer—change structure in one place. This reduces setup time for three platforms to 3–4 days.
Platform Requirements Comparison
| Parameter | Google Ads | Meta | VK |
|---|---|---|---|
| Product ID transmission | item_id in view_item event |
content_ids in array |
id in ProductEvent |
| Feed format | XML (Google Merchant Center) | CSV or XML (via catalog) | YML or CSV |
| Additional fields | price, currency, category |
value, currency, content_type |
price, currency |
Typical Errors and Solutions
The most common problem is mismatched product IDs between pixel and feed. If the feed has PRODUCT_123 but the pixel sends 123456—the ad won't show. We use a unified ID generation system based on SKU to eliminate mismatches. The second most frequent error—outdated stock in the feed. Automatic caching with a 1-hour TTL and trigger-based updates solve this. The third—missing view_item_list event on category pages. Without it, the platform doesn't know which products the user viewed. Check markup using Google Tag Assistant and Meta Events Manager. 90% of dynamic remarketing issues stem from ID mismatches.
| Error | Solution |
|---|---|
| Mismatched product IDs | Unified ID generation system (SKU) |
| Outdated stock | Caching with 1-hour TTL + trigger-based update |
| Missing event on page | Check via Tag Assistant and Events Manager |
| Incorrect feed format | Validate before upload |
What's Included
As part of the project, we provide:
- Product feed generation with automatic updates
- Event markup for selected platforms (Google, Meta, VK)
- Integration via GTM or directly
- Testing and verification of ID matching
- Maintenance documentation
- Staff training (ad account setup)
- Access to error monitoring systems
Process, Timelines, and Cost
- Audit of current tracking and feed
- Product feed generation with automatic updates
- Event setup for Google Ads, Meta, and VK
- Integration via GTM or directly
- Testing and ID matching verification
- Maintenance documentation
Stages: analytics → design → implementation → test → deploy. Timelines: one platform (feed + pixels) — 1–2 days; three platforms via GTM — 3–4 days; with server-side events — 5–6 days. Cost is calculated individually after a free audit of your site. Contact us—we'll audit your remarketing, find discrepancies, and propose the optimal solution. Order implementation and guarantee up to 3x conversion increase compared to standard retargeting.







