ShareASale
Datafly Signal delivers affiliate conversions to ShareASale (an Awin network) server-to-server. Signal calls ShareASale’s conversion tracking endpoint (sale.cfm) directly from your own infrastructure, so sales and leads are registered reliably even when ad blockers or browser tracking prevention block the traditional ShareASale pixel.
How attribution works
ShareASale credits a conversion to the referring affiliate using a click identifier. When a visitor arrives from a ShareASale affiliate link, the landing-page URL carries a ?sscid= parameter. Signal’s collector (datafly.js) captures that value and stores it as a first-party cookie on your domain. At conversion time, Signal sends it back to ShareASale as the tracking parameter so the right affiliate is credited.
If no click identifier is present, Signal falls back to sending your order ID in tracking, which lets ShareASale match the conversion against a click cookie it set earlier.
No personal data is hashed or sent to ShareASale. Attribution relies only on the click identifier and your order ID — there is no email, phone, or address in the conversion request.
Prerequisites
Find your Merchant ID
Log in to your ShareASale (Awin) merchant dashboard. Your numeric Merchant ID is shown in the top-left of the account. You will need it to configure the integration.
Confirm click capture is active
Make sure Signal’s collector is installed on every landing page so it can capture the ?sscid= parameter into a first-party cookie. ShareASale’s MasterTag performs the same job; either is sufficient as long as the click identifier is available on your domain when a conversion fires.
Configure in Signal
Configuration Fields
| Field | Required | Description |
|---|---|---|
merchant_id | Yes | Your numeric ShareASale Merchant ID. Sent as merchantID on every conversion. |
Management UI Setup
- Go to Integrations > Add Integration > ShareASale.
- Choose a variant:
- Default — registers
Order Completedas a sale andLead Generatedas a lead. - Retail — same as Default, plus per-product detail (
skulist,pricelist,quantitylist) for item-level commission rules.
- Default — registers
- Enter your
merchant_id. - Select the consent categories that apply to affiliate/marketing attribution.
- Click Save.
API Endpoint
GET https://www.shareasale.com/sale.cfm?v=datafly1.0&merchantID={merchant_id}&transtype=sale&amount={amount}&tracking={tracking}¤cy={currency}All fields travel on the URL query string — there is no request body and no API key on the conversion path. The merchant is identified by the merchantID parameter.
Parameters Signal sends
| Parameter | Source | Description |
|---|---|---|
merchantID | config | Your ShareASale Merchant ID. |
v | static | Tracking version marker (datafly1.0). |
transtype | event | sale for Order Completed, lead for Lead Generated. |
tracking | sscid / order ID | Captured ShareASale click identifier, with order ID fallback. |
amount | revenue / value | Order subtotal after discounts, before tax and shipping (two decimals). |
currency | currency | ISO-4217 three-letter currency code (e.g. USD, GBP, EUR). |
couponcode | coupon | Coupon/voucher code used, for exclusive-commission rules. |
newcustomer | new_customer | 1 for a new customer, 0 for returning. |
skulist | products (Retail) | Comma-separated product SKUs. |
pricelist | products (Retail) | Comma-separated per-unit prices, aligned with skulist. |
quantitylist | products (Retail) | Comma-separated quantities, aligned with skulist. |
Identity Signals
ShareASale does not use hashed PII. Conversions are matched purely on:
| Signal | Field | Description |
|---|---|---|
| Click ID | tracking | The ShareASale sscid value captured from the affiliate landing-page URL and stored as a first-party cookie. |
| Order ID | tracking (fallback) | Your unique order/lead reference, used when no click identifier is present. |
Send your order ID with the conversion so ShareASale can deduplicate and attribute reliably:
datafly.track("Order Completed", {
order_id: "ORD-1001",
revenue: 89.97,
currency: "USD",
coupon: "SPRING10",
new_customer: true
});Event Mapping
Default preset
| Signal event | ShareASale transtype |
|---|---|
Order Completed | sale |
Lead Generated | lead |
All other events are dropped — ShareASale only ingests conversions.
Example: Sale conversion
Datafly.js call:
datafly.track("Order Completed", {
order_id: "ORD-1001",
revenue: 89.97,
currency: "USD",
coupon: "SPRING10",
new_customer: true,
products: [
{ sku: "SKU-A", price: 29.99, quantity: 2 },
{ sku: "SKU-B", price: 29.99, quantity: 1 }
]
});Conversion request sent by Signal (Retail preset):
GET https://www.shareasale.com/sale.cfm
?v=datafly1.0
&merchantID=123456
&transtype=sale
&amount=89.97
&tracking=sas_8f1c2e... (captured sscid, or ORD-1001 as fallback)
¤cy=USD
&couponcode=SPRING10
&newcustomer=1
&skulist=SKU-A,SKU-B
&pricelist=29.99,29.99
&quantitylist=2,1ShareASale responds with HTTP 200 and a 1x1 confirmation on success.
Testing Your Integration
Trigger a test conversion
Place a test order (or fire Order Completed from the event debugger) with a unique order_id. ShareASale deduplicates by transtype + tracking, so reuse of the same order ID will be ignored.
Confirm the request in Signal
Open the Event Debugger for the ShareASale integration and confirm the outbound GET to sale.cfm carries merchantID, transtype=sale, amount, and a populated tracking value.
Verify in ShareASale
In your ShareASale merchant dashboard, check the Transaction Detail report for the conversion. Conversions with a valid click identifier are attributed to an affiliate; conversions without one appear unattributed.
The amount must be the order subtotal after discounts but before tax and shipping, formatted to two decimal places. Sending the gross total inflates affiliate commission.
Troubleshooting
| Problem | Solution |
|---|---|
| Conversions appear but are unattributed | The click identifier (sscid) was not captured. Confirm the collector is on your landing pages and that affiliate links carry ?sscid=. |
| Conversion not registering | Check merchant_id is correct and the order ID in tracking is unique — ShareASale ignores duplicates. |
| Commission amount looks wrong | Ensure amount is the discounted subtotal before tax/shipping, with two decimal places. |
| Coupon-based commission not applied | Map your coupon field so couponcode is sent on the conversion. |
| Per-product commission not applied | Use the Retail preset so skulist, pricelist, and quantitylist are sent. |
Migration from the ShareASale pixel
Once Signal is registering conversions reliably, you can remove the client-side ShareASale conversion pixel from your thank-you page. Keep the click-capture step (collector or MasterTag) so the sscid identifier is still stored on landing. This removes a client-side tag, improves page performance, and makes attribution resilient to ad blockers.