> ## 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.

# CPA (cost-per-action) Charge Type

> Advertisers can now choose CPA Charge Type for sponsored listings so they are only charged when a conversion is attributed.

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">December 29, 2024</Badge>
  <Badge color="blue" size="sm" icon="rectangle-ad">Ad Platform</Badge>
  <Badge color="green" size="sm" icon="sparkles">New Feature</Badge>
</div>

## **Importance of CPA**

CPA provides the critical link between ad spend and actual conversion, allowing for more granular optimization and better budget allocation. This directly addresses a key advertiser need: understanding the cost of acquiring a valuable customer through their campaigns.

#### **Key Benefits**

* **ROAS Optimization:** CPA tracking allows advertisers to directly measure the return on their ad spend by understanding how much it costs to acquire a customer.
* **Performance Measurement & Comparison:** CPA provides a clear and concise metric for evaluating campaign/product performance.
* **Improved Budget Allocation:** By understanding the CPA for different products or campaigns, advertisers can allocate their budget more effectively, shifting spend towards the most profitable acquisition channels.

#### **How It Works**

**This feature will require integration changes .**

The charge is triggered whenever a reported purchase from a marketplace is attributed to a sponsored click.

**CPA Calculation:** The platform will automatically calculate CPA by dividing the total ad spend for a campaign by the number of conversions attributed to that campaign.

#### **Considerations**

* Only for sponsored listings
* Only last-click attribution is supported
* Only for campaigns with “total budget” configuration
* Ignore over spending. If a purchase happens after the total budget is consumed, the charge will not be reflexted.
* Not compatible with halo attribution.

<Frame>
  <img src="https://mintcdn.com/topsort/M3N4mDiL0uw6VdTk/images/changelog/image-3.webp?fit=max&auto=format&n=M3N4mDiL0uw6VdTk&q=85&s=b2c3c52c860b3b7be6446a1b78f05596" alt="" width="1172" height="1160" data-path="images/changelog/image-3.webp" />
</Frame>

<ChangelogActions />
