A custom audience is a list of your own users, matched against NewsBreak users so you can target or exclude them in an ad set.
The identifier file
You supply the audience as a CSV of pre-hashed identifiers. The file must be:
| Rule | Detail |
|---|---|
| Format | .csv, UTF-8 |
| Columns | Exactly one. A second column, or a trailing comma, is rejected. |
| Header row | Not allowed. Every line must be an identifier. |
| Identifier | SHA-256, lower- or upper-case hex, exactly 64 characters |
| Blank lines | Ignored |
| Size | Up to 100 MB |
Hash the identifiers yourself — NewsBreak does not normalize or hash raw values, and never receives them. Normalize before hashing (trim whitespace, lowercase email addresses) or your match rate will suffer.
fileType declares *what* you hashed, EMAIL or DEVICE_ID. It is not verified against the file contents, so a mismatch produces a valid audience that matches nothing.
Example file
2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae fcde2b2edba56bf408601fb721fe9b5c338d10ee429ea04fae5511b68fbf8fb9
Processing is a daily batch
Creating or updating an audience queues the file. Matching runs in a once-daily offline job, so:
- A new audience is returned with
status: QUEUEDand nosize. - It becomes
status: AVAILABLEwith asizeonce the job has processed it — normally within 24 hours, and up to ~48 hours if you upload just after a run. - Poll no more than hourly. Polling every minute will not make it finish sooner.
- There is no failure status. A file that passes validation is accepted; if it matches no NewsBreak users, the audience becomes
AVAILABLEwith a size of 0.
An audience must be AVAILABLE before an ad set can use it.
Updating an audience
Updates are queued operations, not immediate edits. Each update call uploads a new file with an operation:
| Operation | Effect |
|---|---|
ADD | Adds the file's users to the audience |
DELETE | Removes the file's users from the audience |
REPLACE | Replaces the audience's users with the file's |
Operations apply on the next run of the daily job, in the order received.
Sharing
Sharing grants other ad accounts you manage access to an audience. Sharing is additive — there is no way to revoke it through the API, so confirm the target accounts before calling.
Status values
| Status | Meaning |
|---|---|
QUEUED | The file is waiting for the daily job. Not targetable yet. |
AVAILABLE | Processed and targetable. |
EXPIRING | Unused for a long time and no longer targetable. Using it in an ad set keeps it active. |