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

# Banner Attribution

export const LastUpdated = ({date, lang = "en"}) => {
  const translations = {
    en: "Last updated:",
    es: "Última actualización:",
    pt: "Última atualização:",
    fr: "Dernière mise à jour:",
    de: "Zuletzt aktualisiert:"
  };
  const label = translations[lang] || translations.en;
  return <>
<style>{`
.last-updated-component {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 10px 16px;
border-radius: 8px;
margin-top: 12px;
margin-bottom: 16px;
font-size: 14px;
background-color: rgba(0, 0, 0, 0.05);
border: 1px solid rgba(0, 0, 0, 0.12);
color: rgba(0, 0, 0, 0.75);
line-height: 1;
}

        .last-updated-component svg {
          flex-shrink: 0;
          vertical-align: middle;
        }

        .last-updated-component span {
          display: inline-flex !important;
          align-items: center !important;
          line-height: 1 !important;
        }

        [data-theme="dark"] .last-updated-component {
          background-color: #3a3a3a;
          border: 2px solid #888888;
          color: #ffffff;
        }

        [data-theme="dark"] .last-updated-component svg {
          stroke: #ffffff;
        }
      `}</style>
      <div className="last-updated-component">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
          <circle cx="12" cy="12" r="10" />
          <polyline points="12 6 12 12 16 14" />
        </svg>
        <span>
          <strong style={{
    fontWeight: 600
  }}>{label}</strong> 
          <time dateTime={date}>{date}</time>
        </span>
      </div>
    </>;
};

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  Banner attribution links a user's purchase to a banner they previously viewed or clicked. This helps measure the impact of your banners on conversions, even if the purchase doesn't happen immediately after the interaction.
</div>

## Format-Specific Attribution Settings

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  Banner ads, along with Native and Video ads, share the same attribution configuration. This grouping recognizes their similar role in the customer journey—building awareness and driving discovery at the top of the funnel.
</div>

### Available Attribution Models

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  1. **Last-Click Attribution**: Credits the most recent banner click before conversion
     * Best for: Direct response banner campaigns
     * Common window: 7-14 days
</div>

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  2. **Last-Impression Attribution**: Credits the most recent banner view before conversion
     * Best for: Brand awareness and discovery campaigns
     * Common window: 14-30 days
</div>

### Example Configurations

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  **Brand Awareness Campaign:**
</div>

```
Model: Last-impression
Window: 30 days
Use case: Homepage takeover banners promoting seasonal collections
```

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  **Promotional Campaign:**
</div>

```
Model: Last-click
Window: 7 days  
Use case: Flash sale banners with immediate call-to-action
```

## Attribution Methods

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  Topsort offers two main methods for attributing purchases, depending on where your banner leads:
</div>

### **1. Attributing Purchases from Product Pages (PDP/PLP)**

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  This method is for banners that link directly to a Product Detail Page (PDP) or a Product Listing Page (PLP).
</div>

#### Banner Interaction:

* **Impression (CPM Banners)**: When a banner loads on a page and is set to charge by CPM (Cost Per Mille), send a "banner impression" event to Topsort, including the resolvedBidId from the auction response.
* **Click (CPC Banners)**: If the banner is set to charge by CPC (Cost Per Click) and the user clicks it, send a "banner click" event to Topsort, using the resolvedBidId.

#### Redirecting to PDP (Product Detail Page):

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  When the user clicks the banner and is redirected to a PDP, immediately send a "product click" event to Topsort. This event must include the resolvedBidId from the banner and an `additionalAttribution` object.
</div>

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  This ensures any future purchase of that specific product is attributed to the banner.
</div>

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  Example Product Click Event for PDP:
</div>

```json theme={null}
{
  "clicks": [
    {
      "id": "...",
      "resolvedBidId": "ChAGcYkXyzR3q5UEOql7QpBd...",
      "placement": { "path": "/home/banner-destination-page" },
      "occurredAt": "2024-10-23T06:03:21.403Z",
      "opaqueUserId": "...",
      "additionalAttribution": {
        "id": "MKJY40600", // Product ID
        "type": "product"
      }
    }
  ]
}
```

#### Redirecting to PLP (Product Listing Page):

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  A "product click" event should only be sent to Topsort after the user clicks on a specific product within the listed products on the PLP. This event must also include the resolvedBidId from the banner and an additionalAttribution object (same structure as for PDP). This correctly attributes any subsequent purchase of that chosen product.
</div>

### **2. Attributing Purchases from Vendor Pages (Halo Attribution)**

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  This method, called Halo Attribution, is for banners that lead to a vendor or brand landing page, or when you want to attribute all purchases from a specific vendor after a banner interaction. It indirectly links purchases to the banner by associating them with the vendor from the original banner event. Check the [Halo Attribution](/en/knowledge-base/ad-server/attribution/halo-attribution/) article for more details.
</div>

## Attribution Window Best Practices

* **Test Different Windows**: Start with 14-30 days for impression attribution
* **Consider Your Audience**: B2B or high-value items may need longer windows
* **Seasonal Adjustments**: Extend windows during peak shopping seasons
* **Monitor Incrementality**: Compare attributed vs baseline conversions

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  By implementing these attribution methods with appropriate models and windows, you can accurately track and measure the effectiveness of your banner campaigns within Topsort.
</div>

***

<LastUpdated date="2025-11-18" />
