Nextdoor CAPI
Datafly Signal sends conversions to the Nextdoor Conversions API server-to-server.
This entry and Nextdoor Ads send the same requests to the same API. Install one, not both.
Why route Nextdoor CAPI through Datafly Signal
- Conversions survive ad blockers and tracking prevention. A browser tag served from an advertising domain is blocked outright for part of your traffic, and Safari’s ITP shortens the cookies it can set. Signal sends the conversion from your own server, so the conversions Nextdoor optimises against are not filtered by the browser.
- Click identifiers are captured and replayed. Signal captures the click ID first-party when the visitor lands and attaches it to later conversions.
- One consent decision governs every destination. Nextdoor is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.
- No vendor tag on the page. Removing it removes its page weight and its independent access to your visitors.
Prerequisites
Generate an access token
In Nextdoor Ads Manager generate a Conversions API access token. It expires after about a year.
Find your data source ID
The data source ID (the pixel ID) identifies your events and deduplicates them against the Nextdoor pixel.
Configure in Signal
Configuration Fields
| Field | Required | Description |
|---|---|---|
advertiser_id | No | Not sent: Nextdoor deprecated client_id (the NAM advertiser ID) on the Conversions API. Retained for reference. |
access_token | Yes | Conversions API access token generated in Nextdoor Ads Manager, sent as a Bearer token. Tokens expire after about a year. |
conversion_id | No | Not used: the Conversions API has no conversion ID field. Retained for existing integrations. |
data_source_id | Yes | Your Nextdoor pixel ID, sent as data_source_id on every event; Nextdoor rejects an event without it and uses it to deduplicate against the pixel. |
Management UI Setup
- Go to Integrations > Add Integration > Nextdoor CAPI.
- Choose a preset: Default (
default), Retail (ecommerce), Lead Generation / Local Services (lead_gen), Insurance (insurance). - Fill in the fields above and click Save.
Request format
POST https://ads.nextdoor.com/v2/api/conversions/track
Authorization: Bearer <access token>
{"event_name": "purchase", "event_id": "evt-1", "event_time_epoch": 1758500000,
"action_source": "website", "action_source_url": "https://shop.example.com/checkout/done",
"data_source_id": "<pixel ID>", "partner_id": "datafly",
"customer": {"email": "<SHA-256>", "phone_number": "<SHA-256>", "first_name": "<SHA-256>",
"last_name": "<SHA-256>", "external_id": "crm-user-9", "click_id": "<ndclid>",
"client_ip_address": "203.0.113.9", "client_user_agent": "Mozilla/5.0 ..."},
"custom": {"order_value": "GBP259.99", "order_id": "ORD-1001",
"product_context": [{"id": "SKU_1", "quantity": 2, "item_price": 120}]}}event_name, event_id, event_time_epoch, action_source, data_source_id and customer are required; website events also need action_source_url and customer.client_user_agent, and purchases custom.order_value (ISO currency followed by the amount).
Event Mapping
| Signal event | Vendor event | Presets |
|---|---|---|
page | page_view | Default, Retail, Lead Generation / Local Services, Insurance |
view_item | view_content | Default, Retail |
add_to_cart | add_to_cart | Default, Retail |
begin_checkout | initiate_checkout | Default, Retail |
purchase | purchase | Default, Retail, Insurance |
generate_lead | lead | Default, Lead Generation / Local Services, Insurance |
sign_up | sign_up | Default, Lead Generation / Local Services |
search | search | Retail |
add_to_wishlist | add_to_wishlist | Retail |
subscription_started | subscribe | Lead Generation / Local Services |
get_quote | initiate_checkout | Insurance |
quote_completed | lead | Insurance |
Event names are Nextdoor’s supported conversion events.
Identity
Email, phone, first name and last name are sent only as SHA-256 hashes (trimmed and lowercased; the phone as ten digits without the country code, as Nextdoor documents). IP address and user agent are sent unhashed, as Nextdoor requires. external_id is your user_id. The Nextdoor click ID (ndclid) is sent when captured.
Consent
Nextdoor is an advertising destination and requires marketing consent by default.
Troubleshooting
| Problem | Solution |
|---|---|
401 Unauthorized | The access token has expired (about a year); generate a new one. |
400 Bad Request | Check the pixel ID setting; data_source_id is required on every event. |
Blueprint
The Nextdoor CAPI blueprint version is 0.9.0. It was last reviewed against the vendor’s documentation on 2026-09-22.