Sale events are all about reaching the right customers at the right time.
But with so many promotions bombarding shoppers, how can you make your campaign stand out during a sale?
Amazon Marketing Cloud can help.
By leveraging AMC's custom audience creation capabilities, you can target your DSP ads with laser precision, reaching high-intent customers who are most likely to convert.
In this blog, we will discuss 7 powerful custom audiences you can build with AMC to supercharge your DSP campaigns during any sales event, from Black Friday to back-to-school season.
Let's first understand about Amazon Marketing Cloud Custom Audiences
What is AMC Custom Audiences?
AMC Custom Audiences, a feature within Amazon Marketing Cloud (AMC), empowers you to create particular target audiences for your advertising campaigns. You can use SQL queries or pre-made templates to build custom audiences groups, using different data types to target your ads based on customer behavior and interest.

6 Custom AMC Audiences that you can utilize:
Consumers who clicked on your Sponsored Product Ads but didn't purchase
This audience segment represents a valuable pool of potential customers who have shown initial interest in your product through clicking your Sponsored Ads. By retargeting them, you can reignite their consideration during a sales event. This approach allows you to:
Showcase promotional offers: Highlight the discounts and special deals available during the sale to incentivize purchase.
Remind them of the product: Re-introduce your product with compelling messaging and visuals to rekindle their interest.
SQL Query
-- Optional update: To add Sponsored Products (SP) campaign filters, add the campaign names to campaign CTE and uncomment lines [1 of 2] and [2 of 2] below.
-- Note that you must use the campaign name, as we do not have a customer-facing campaign_id available for Sponsored Ads.
WITH SP (campaign) AS (
VALUES
('SP_campaign_name1'),
('SP_campaign_name2')
),
clicks AS (
SELECT
user_id
FROM
sponsored_ads_traffic_for_audiences
WHERE
clicks > 0
AND ad_product_type = 'sponsored_products'
),
purchases AS (
SELECT
user_id
FROM
amazon_attributed_events_by_traffic_time_for_audiences
WHERE
total_purchases > 0
AND ad_product_type = 'sponsored_products'
)
SELECT
user_id
FROM
clicks
WHERE
user_id NOT IN (
SELECT
user_id
FROM
purchases
)
-- Optional update: To add Sponsored Products (SP) campaign filters, add the campaign names to campaign CTE and uncomment lines [1 of 2] and [2 of 2] below.
-- Note that you must use the campaign name, as we do not have a customer-facing campaign_id available for Sponsored Ads.
WITH SP (campaign) AS (
VALUES
('SP_campaign_name1'),
('SP_campaign_name2')
),
clicks AS (
SELECT
user_id
FROM
sponsored_ads_traffic_for_audiences
WHERE
clicks > 0
AND ad_product_type = 'sponsored_products'
),
purchases AS (
SELECT
user_id
FROM
amazon_attributed_events_by_traffic_time_for_audiences
WHERE
total_purchases > 0
AND ad_product_type = 'sponsored_products'
)
SELECT
user_id
FROM
clicks
WHERE
user_id NOT IN (
SELECT
user_id
FROM
purchases
)
-- Optional update: To add Sponsored Products (SP) campaign filters, add the campaign names to campaign CTE and uncomment lines [1 of 2] and [2 of 2] below.
-- Note that you must use the campaign name, as we do not have a customer-facing campaign_id available for Sponsored Ads.
WITH SP (campaign) AS (
VALUES
('SP_campaign_name1'),
('SP_campaign_name2')
),
clicks AS (
SELECT
user_id
FROM
sponsored_ads_traffic_for_audiences
WHERE
clicks > 0
AND ad_product_type = 'sponsored_products'
),
purchases AS (
SELECT
user_id
FROM
amazon_attributed_events_by_traffic_time_for_audiences
WHERE
total_purchases > 0
AND ad_product_type = 'sponsored_products'
)
SELECT
user_id
FROM
clicks
WHERE
user_id NOT IN (
SELECT
user_id
FROM
purchases
)
Consumers who added the products to their cart but didn't complete the purchase
Shoppers who added items to their cart but didn't make the purchase represent a prime opportunity for recouping lost sales during a sales event. This audience segment has demonstrated significant purchase intent and can be effectively re-engaged with targeted campaigns. Here's how:
Urgency and scarcity: Highlight limited-time discounts or low stock availability to create a sense of urgency and encourage them to complete the purchase before the offer expires.
Missed Opportunities: Target people who have added a particular product to their cart but didn't purchase it before the sale event.
SQL Query
-- Optional update: To filter by ASINs, add one or more ASINs to the list of ASINs below and uncomment lines [1 of 2] and [2 of 2]
WITH asins (asin) AS (
VALUES
('asin1'),
('asin2')
),
purchase AS(
SELECT
user_id,
MAX(event_dt_utc) AS purchase_dt_max
FROM
conversions
WHERE
event_subtype = 'order'
GROUP BY
1
),
atc AS (
SELECT
user_id,
MAX(event_dt_utc) AS atc_dt_max
FROM
conversions
WHERE
event_subtype = 'shoppingCart'
GROUP BY
1
)
SELECT
COUNT(DISTINCT atc.user_id)
FROM
atc
LEFT JOIN purchase ON atc.user_id = purchase.user_id
WHERE
atc_dt_max > purchase_dt_max
OR purchase_dt_max IS NULL
-- Optional update: To filter by ASINs, add one or more ASINs to the list of ASINs below and uncomment lines [1 of 2] and [2 of 2]
WITH asins (asin) AS (
VALUES
('asin1'),
('asin2')
),
purchase AS(
SELECT
user_id,
MAX(event_dt_utc) AS purchase_dt_max
FROM
conversions
WHERE
event_subtype = 'order'
GROUP BY
1
),
atc AS (
SELECT
user_id,
MAX(event_dt_utc) AS atc_dt_max
FROM
conversions
WHERE
event_subtype = 'shoppingCart'
GROUP BY
1
)
SELECT
COUNT(DISTINCT atc.user_id)
FROM
atc
LEFT JOIN purchase ON atc.user_id = purchase.user_id
WHERE
atc_dt_max > purchase_dt_max
OR purchase_dt_max IS NULL
-- Optional update: To filter by ASINs, add one or more ASINs to the list of ASINs below and uncomment lines [1 of 2] and [2 of 2]
WITH asins (asin) AS (
VALUES
('asin1'),
('asin2')
),
purchase AS(
SELECT
user_id,
MAX(event_dt_utc) AS purchase_dt_max
FROM
conversions
WHERE
event_subtype = 'order'
GROUP BY
1
),
atc AS (
SELECT
user_id,
MAX(event_dt_utc) AS atc_dt_max
FROM
conversions
WHERE
event_subtype = 'shoppingCart'
GROUP BY
1
)
SELECT
COUNT(DISTINCT atc.user_id)
FROM
atc
LEFT JOIN purchase ON atc.user_id = purchase.user_id
WHERE
atc_dt_max > purchase_dt_max
OR purchase_dt_max IS NULL
Consumers who have added the products to their wish lists but haven't purchased them
AMC allows you to track various metrics, and a wish list is one of them. Consumers who add products to their wish lists or gift lists indicate a strong level of interest but might not be ready for immediate purchase. This segment holds immense potential for conversion during sales events. Here's how to effectively target them:
Promote sale-specific benefits: Emphasize the significant price drops or special deals available during the sales event, making the desired product more attractive.
Time-bound offers: Create a sense of urgency by showcasing limited-time discounts or exclusive deals for wishlist items, encouraging purchases before the offer ends.
SQL Query
-- Optional update: To filter by ASINs, add one or more ASINs to the list of ASINs below and uncomment lines [1 of 2] and [2 of 2]
WITH asins (asin) AS (
VALUES
('asin1'),
('asin2')
),
purchase AS(
SELECT
user_id,
MAX(event_dt_utc) AS purchase_dt_max
FROM
conversions
WHERE
event_subtype = 'order'
GROUP BY
1
),
wl AS (
SELECT
user_id,
MAX(event_dt_utc) AS wl_dt_max
FROM
conversions
WHERE
event_subtype = 'wishList'
GROUP BY
1
)
SELECT
COUNT(DISTINCT wl.user_id)
FROM
wl
LEFT JOIN purchase ON wl.user_id = purchase.user_id
WHERE
wl_dt_max > purchase_dt_max
OR purchase_dt_max IS NULL
-- Optional update: To filter by ASINs, add one or more ASINs to the list of ASINs below and uncomment lines [1 of 2] and [2 of 2]
WITH asins (asin) AS (
VALUES
('asin1'),
('asin2')
),
purchase AS(
SELECT
user_id,
MAX(event_dt_utc) AS purchase_dt_max
FROM
conversions
WHERE
event_subtype = 'order'
GROUP BY
1
),
wl AS (
SELECT
user_id,
MAX(event_dt_utc) AS wl_dt_max
FROM
conversions
WHERE
event_subtype = 'wishList'
GROUP BY
1
)
SELECT
COUNT(DISTINCT wl.user_id)
FROM
wl
LEFT JOIN purchase ON wl.user_id = purchase.user_id
WHERE
wl_dt_max > purchase_dt_max
OR purchase_dt_max IS NULL
-- Optional update: To filter by ASINs, add one or more ASINs to the list of ASINs below and uncomment lines [1 of 2] and [2 of 2]
WITH asins (asin) AS (
VALUES
('asin1'),
('asin2')
),
purchase AS(
SELECT
user_id,
MAX(event_dt_utc) AS purchase_dt_max
FROM
conversions
WHERE
event_subtype = 'order'
GROUP BY
1
),
wl AS (
SELECT
user_id,
MAX(event_dt_utc) AS wl_dt_max
FROM
conversions
WHERE
event_subtype = 'wishList'
GROUP BY
1
)
SELECT
COUNT(DISTINCT wl.user_id)
FROM
wl
LEFT JOIN purchase ON wl.user_id = purchase.user_id
WHERE
wl_dt_max > purchase_dt_max
OR purchase_dt_max IS NULL
Consumers who watched your Streaming TV Campaigns but not your DSP Display ad campaign
Research shows that people who see both Streaming TV and DSP Display ads are more likely to purchase those who only see one type of ad. Creating custom audiences to target consumers who saw your Streaming TV ads but not Amazon DSP ads can help you reach more potential customers, and increase sales during sales events. Here's how to do it effectively:
Focus on brand awareness and consideration: Since this audience segment hasn't interacted with your display ads, prioritize building brand awareness and product familiarity. Utilize engaging visuals and compelling messaging to pique their interest.
SQL Query
WITH impressions_display AS (
SELECT
user_id
FROM
dsp_impressions_for_audiences
WHERE
campaign_id IN (
'111122222'
)
AND impressions > 0
),
impressions_streaming AS (
SELECT
user_id
FROM
dsp_impressions_for_audiences
WHERE
campaign_id IN (
'111133333',
'111144444'
)
AND impressions > 0
)
SELECT
user_id
FROM
impressions_streaming
WHERE
user_id NOT IN (
SELECT
user_id
FROM
impressions_display
)
WITH impressions_display AS (
SELECT
user_id
FROM
dsp_impressions_for_audiences
WHERE
campaign_id IN (
'111122222'
)
AND impressions > 0
),
impressions_streaming AS (
SELECT
user_id
FROM
dsp_impressions_for_audiences
WHERE
campaign_id IN (
'111133333',
'111144444'
)
AND impressions > 0
)
SELECT
user_id
FROM
impressions_streaming
WHERE
user_id NOT IN (
SELECT
user_id
FROM
impressions_display
)
WITH impressions_display AS (
SELECT
user_id
FROM
dsp_impressions_for_audiences
WHERE
campaign_id IN (
'111122222'
)
AND impressions > 0
),
impressions_streaming AS (
SELECT
user_id
FROM
dsp_impressions_for_audiences
WHERE
campaign_id IN (
'111133333',
'111144444'
)
AND impressions > 0
)
SELECT
user_id
FROM
impressions_streaming
WHERE
user_id NOT IN (
SELECT
user_id
FROM
impressions_display
)
The High Intent Shoppers - Consumers who come under the high-volume customers segment
High-volume customers, those who consistently make frequent purchases, represent a goldmine for driving sales during events. They have established trust with your brand and demonstrated a clear purchase pattern. Here's how to leverage this valuable audience segment:
Personalized offers and rewards: Reward their loyalty with exclusive discounts, early access to sales, or tiered loyalty programs that incentivize them to spend more during the sales event.
This AMC audience segment query is available with the help of a Paid Subscription of Flexible Shopping Insights through AMC Paid Features.
-- Instructional Query: High Value Custom Segments --
WITH purchase AS (
SELECT
user_id,
SUM(total_product_sales) AS total_product_sales
FROM
conversions_all_for_audiences
WHERE
total_product_sales > 0
AND tracked_asin IN (
SELECT
DISTINCT tracked_asin
FROM
amazon_attributed_events_by_conversion_time_for_audiences
WHERE
advertiser_id IN ('111111111')
)
AND tracked_asin IN ('111111111', '222222222')
AND user_id IS NOT NULL
GROUP BY
1
),
-- Calculate rank percentile
percentile_calc AS (
SELECT
user_id,
total_product_sales,
RANK() OVER (
ORDER BY
total_product_sales
) AS rnk,
(
RANK() OVER (
ORDER BY
total_product_sales
) * 100
) / COUNT(user_id) OVER () AS Percentile
FROM
purchase
)
SELECT
user_id
FROM
percentile_calc c
WHERE
Percentile >= 50
-- Instructional Query: High Value Custom Segments --
WITH purchase AS (
SELECT
user_id,
SUM(total_product_sales) AS total_product_sales
FROM
conversions_all_for_audiences
WHERE
total_product_sales > 0
AND tracked_asin IN (
SELECT
DISTINCT tracked_asin
FROM
amazon_attributed_events_by_conversion_time_for_audiences
WHERE
advertiser_id IN ('111111111')
)
AND tracked_asin IN ('111111111', '222222222')
AND user_id IS NOT NULL
GROUP BY
1
),
-- Calculate rank percentile
percentile_calc AS (
SELECT
user_id,
total_product_sales,
RANK() OVER (
ORDER BY
total_product_sales
) AS rnk,
(
RANK() OVER (
ORDER BY
total_product_sales
) * 100
) / COUNT(user_id) OVER () AS Percentile
FROM
purchase
)
SELECT
user_id
FROM
percentile_calc c
WHERE
Percentile >= 50
-- Instructional Query: High Value Custom Segments --
WITH purchase AS (
SELECT
user_id,
SUM(total_product_sales) AS total_product_sales
FROM
conversions_all_for_audiences
WHERE
total_product_sales > 0
AND tracked_asin IN (
SELECT
DISTINCT tracked_asin
FROM
amazon_attributed_events_by_conversion_time_for_audiences
WHERE
advertiser_id IN ('111111111')
)
AND tracked_asin IN ('111111111', '222222222')
AND user_id IS NOT NULL
GROUP BY
1
),
-- Calculate rank percentile
percentile_calc AS (
SELECT
user_id,
total_product_sales,
RANK() OVER (
ORDER BY
total_product_sales
) AS rnk,
(
RANK() OVER (
ORDER BY
total_product_sales
) * 100
) / COUNT(user_id) OVER () AS Percentile
FROM
purchase
)
SELECT
user_id
FROM
percentile_calc c
WHERE
Percentile >= 50
Consumers who have viewed your product detail page multiple times
Consumers who have repeatedly visited your product detail page have exhibited a strong level of interest, making them a prime target audience for sales events. Here's how to effectively capture their attention and convert them into paying customers:
Highlight sale-specific value propositions: Emphasize the significant price reductions or exclusive deals available during the sales event, making the product considerably more attractive.
Address lingering doubts: Some repeat viewers might still have questions or concerns. Utilize targeted ad messaging or on-page content to address these potential hesitations directly. Provide clear information about product features and benefits, and answer any FAQs they might have.
SQL Query
WITH asins (asin) AS (
VALUES
(1111111111),
(2222222222)
),
dpvs AS (
SELECT
tracked_asin,
user_id,
SUM(conversions) AS dpv
FROM
conversions_for_audiences
WHERE
event_subtype = 'detailPageView'
GROUP BY
1,
2
)
SELECT
tracked_asin,
IF(dpv < 5, CONCAT('dpv_', dpv), 'dpv_5+') AS dpv_buckets,
COUNT(DISTINCT user_id) AS users_in_bucket,
SUM(dpv) AS dpv_in_bucket
FROM
dpvs
GROUP BY
1,
2
WITH asins (asin) AS (
VALUES
(1111111111),
(2222222222)
),
dpvs AS (
SELECT
tracked_asin,
user_id,
SUM(conversions) AS dpv
FROM
conversions_for_audiences
WHERE
event_subtype = 'detailPageView'
GROUP BY
1,
2
)
SELECT
tracked_asin,
IF(dpv < 5, CONCAT('dpv_', dpv), 'dpv_5+') AS dpv_buckets,
COUNT(DISTINCT user_id) AS users_in_bucket,
SUM(dpv) AS dpv_in_bucket
FROM
dpvs
GROUP BY
1,
2
WITH asins (asin) AS (
VALUES
(1111111111),
(2222222222)
),
dpvs AS (
SELECT
tracked_asin,
user_id,
SUM(conversions) AS dpv
FROM
conversions_for_audiences
WHERE
event_subtype = 'detailPageView'
GROUP BY
1,
2
)
SELECT
tracked_asin,
IF(dpv < 5, CONCAT('dpv_', dpv), 'dpv_5+') AS dpv_buckets,
COUNT(DISTINCT user_id) AS users_in_bucket,
SUM(dpv) AS dpv_in_bucket
FROM
dpvs
GROUP BY
1,
2

How Adbrew Can Help?
Amazon Marketing Cloud provides detailed data and useful insights, but it can be complex, especially for those unfamiliar with SQL.
Luckily, Adbrew has a straightforward solution to simplify your Amazon Advertising experience. Our easy-to-use AMC dashboard lets you quickly access practical insights for your brand.
We have a team of AMC Experts to help you create custom audiences for your DSP Campaigns, extract insights from AMC data, and manage your advertising campaigns.