> ## Documentation Index
> Fetch the complete documentation index at: https://docs.topsort.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Audiences per Vendor

> Restrict audience visibility to specific vendors with vendor-scoped segments

export const ChangelogActions = () => {
  return <>
      <style>{`
        .changelog-actions {
          display: flex;
          justify-content: center;
          gap: 12px;
          margin-top: 2rem;
          padding-top: 1.5rem;
          border-top: 1px solid #e5e7eb;
        }
        
        [data-theme="dark"] .changelog-actions {
          border-top-color: #374151;
        }
        
        .changelog-btn {
          display: inline-flex;
          align-items: center;
          gap: 6px;
          padding: 8px 16px;
          border-radius: 9999px;
          border: 1px solid #d1d5db;
          background: transparent;
          color: #6b7280;
          font-size: 14px;
          cursor: pointer;
          transition: all 0.2s ease;
        }
        
        .changelog-btn:hover {
          border-color: #9ca3af;
          background: #f9fafb;
        }
        
        [data-theme="dark"] .changelog-btn {
          border-color: #4b5563;
          color: #9ca3af;
        }
        
        [data-theme="dark"] .changelog-btn:hover {
          border-color: #6b7280;
          background: #1f2937;
        }
      `}</style>
      <div className="changelog-actions">
        <button className="changelog-btn" onClick={() => {
    const btn = event.target.closest("button");
    btn.innerHTML = "❤️ Like";
    btn.style.borderColor = "#ec4899";
  }}>
          🤍 Like
        </button>
        <button className="changelog-btn" onClick={() => {
    const btn = event.target.closest("button");
    navigator.clipboard.writeText(window.location.href);
    const originalContent = btn.innerHTML;
    btn.innerHTML = "✓ Copied";
    btn.style.borderColor = "#22c55e";
    btn.style.color = "#22c55e";
    setTimeout(() => {
      btn.innerHTML = originalContent;
      btn.style.borderColor = "";
      btn.style.color = "";
    }, 2000);
  }}>
          ↗ Share
        </button>
      </div>
    </>;
};

<div style={{ display: "flex", gap: "8px", flexWrap: "wrap", marginBottom: "16px" }}>
  <Badge color="gray" size="sm" icon="calendar">March 6, 2026</Badge>
  <Badge color="purple" size="sm" icon="server">Ad Server</Badge>
  <Badge color="green" size="sm" icon="sparkles">New Feature</Badge>
</div>

<Note>
  **Why It's Important**

  Retailers managing premium or private audience lists now have fine-grained control over which vendors can see and activate their segments. Vendors that are not explicitly authorized will never see or be able to use restricted audiences.
</Note>

## What's New

Topsort now supports **vendor-scoped segments** — audience segments whose visibility and usability are restricted to specific vendors. This runs alongside existing global segments, which remain visible to all vendors as before.

Segment scope is determined by vendor associations:

* **Global segment**: no vendors associated → visible and usable by all vendors (unchanged behavior)
* **Vendor-scoped segment**: associated with one or more vendors → only visible and usable by those vendors

When a vendor queries available segments or attempts to activate one in a campaign, the platform validates their access in real time. Unauthorized segments are never surfaced or returned.

## How to Enable It

<Info>
  **This feature is managed by Topsort.** There is no self-service UI or public API for configuring vendor associations at this time. To set up vendor-scoped segments for your marketplace, share your segment-to-vendor mapping with your Topsort account team and we will configure it in your environment.
</Info>

## Backward Compatibility

* All existing segments remain global by default — no migration required
* Existing clients and campaigns are unaffected unless vendor scoping is explicitly applied
* A segment with zero associated vendors behaves as a global segment

## What Happens After a Vendor Is Removed

If a vendor association is removed from a segment:

* The segment immediately becomes unavailable for new campaigns for that vendor
* Existing campaigns already referencing the segment continue to run unchanged
* The vendor cannot re-select the segment in new or edited campaigns

***

Learn more in the [Audiences per Vendor knowledge base article](/en/knowledge-base/ad-platform/vendor-management/vendor-scoped-audiences) or explore the full [audience targeting overview](/en/knowledge-base/ad-platform/campaign-targeting/segments/).

<ChangelogActions />
