Custom Segment Targeting
Custom Segments (also referred to as List Targeting) is a targeting feature that lets you deliver ads to specific users based on an uploaded list. It works similarly to User DB targeting, but instead of building audiences live through pixels or endpoints, you upload a CSV list and target against definitions (rules) that map each identifier to one or more segment values.
Overview
Custom Segments (also referred to as List Targeting) is a targeting feature that lets you deliver ads to specific users based on an uploaded list. It works similarly to User DB targeting, but instead of building audiences live through pixels or endpoints, you upload a CSV list and target against definitions (rules) that map each identifier to one or more segment values.
With Custom Segments you can:
- Upload a CSV list of user identifiers
- Assign each identifier into one or more named segments
- Create reusable definitions (rules) to represent those segments
- Target campaigns/ad items to those definitions
- Serve ads only when the matching identifier is passed in the ad request
Typical use case (SKUID + Segment)
A common setup is a two-column file where the first column is your unique identifier (for example SKUID) and the second column is the segment name/value you want to target on.
Example CSV
SKUID, Segment
How it works
At runtime, AdButler uses the identifier you pass in the ad request to locate the matching row in the uploaded list. It then evaluates the definition rules against that row to decide whether an ad item is eligible to serve.
Step-by-step setup
1) Create a new Custom Segment container
In the AdButler dashboard, create a new Custom Segment and give it a clear name (for example, “Client Target List”). This segment container represents the dataset you’ll upload and target against.
2) Define the CSV fields
Define the columns that exist in your CSV. Mark your identifier column (e.g., SKUID) as the identifier, and set the segment column as Text. Defining fields allows AdButler to understand the structure of the file. Recommended field setup: - Identifier column: SKUID (set as Identifier)
- Segment column: Segment (Text)
3) Upload members (your CSV list)
Use “Update Members” to upload your CSV. AdButler will process the file and load the rows into the segment member table. If your source file is Excel, save/export it as CSV (UTF-8) before uploading.
4) Create definitions (segment rules)
Definitions are the rules you target in campaigns/ad items.
Each definition has rules that describe which rows in the CSV qualify for that segment. For simple segment lists, a definition is often just “Segment equals A”. Examples:
- Segment A: Segment equals “A”
- Segment B: Segment equals “B”
- Combined: Segment is one of “A”, “B”
5) Target an ad item using a definition
Create or edit an ad item and scroll to Targeting. Select the Custom Segment Definition you want to target (for example, “Segment A”). Save the ad item.
6) Pass the identifier in the ad request
To activate Custom Segment targeting, pass the identifier in the request as a dedicated parameter (separate from data keys). Parameter
custom: {custom_segment_member: 'Office 1',
Async JavaScript :
<!-- Custom Segment Zone [async] -->
<script type="text/javascript">if (!window.AdButler){(function(){var s = document.createElement("script"); s.async = true; s.type = "text/javascript"; s.src = 'https://servedbyadbutler.com/app.js'; var n = document.getElementsByTagName("script")[0]; n.parentNode.insertBefore(s, n);}());}</script>
<script type="text/javascript">
var AdButler = AdButler || {};
AdButler.ads = AdButler.ads || [];
var abkw = window.abkw || '';
var plc1140234 = window.plc1140234 || 0;
document.write('<'+'div id="placement_1140234_'+plc1140234+'"></'+'div>');
AdButler.ads.push({handler: function(opt){ AdButler.register(178452, 1140234, [300,250], 'placement_1140234_'+opt.place, opt); }, opt: { place: plc1140234++, keywords: abkw, domain: 'servedbyadbutler.com', custom: {'custom_segment_member' : 'Office 1'}, click: 'CLICK_MACRO_PLACEHOLDER' }});
</script>
JSON Ad API:
https://servedbyadbutler.com/adserve/;ID=178452;size=300x250;setID=1140234;type=json;custom_segment_member=Office%201
Working with multiple target lists
If you have multiple separate target lists (separate Custom Segment files), an ad item may need to qualify against more than one list. Current behaviour may allow selecting one definition at a time; if you need multi-select, plan to either:
- Create a combined definition using “is one of …” when the logic is reusable, or
- Request/enable multi-select of multiple definitions for a single ad item when you truly have separate lists.
Testing checklist
Before rolling out to dynamic zones site-wide, validate the end-to-end flow with a small test setup.
- Upload a small CSV list with a few identifiers and segment values
- Create definitions (e.g., Segment A, Segment B)
- Create a dummy campaign + ad item targeted to one definition
- Test on a staging HTML page using a simple fixed-size zone (dynamic not required)
- Verify ads serve only when the request includes a matching identifier
Future option: Live audiences (User DB)
Custom Segments are static lists. If you want audiences that update based on ad interactions (views/clicks) or on-site behavior, consider using AdButler User DB. User DB can be updated via pixel or endpoint to build “live” audiences that you can include/exclude in targeting.
Summary
Custom Segments (List Targeting) lets you upload a user list, define segment rules, target ad items to those rules, and serve ads only when the identifier is passed in the request. This supports SKUID/NPI-style targeting workflows and can be tested safely on staging before a full dynamic-zone rollout.