Nextdoor CAPI
What Is Nextdoor CAPI?
Nextdoor ads are targeted advertisements on the Nextdoor platform, a social networking service for neighborhoods. These ads are designed to reach local audiences, leveraging user data to provide relevant content based on geographical location and community interests. Businesses can use Nextdoor ads to connect with nearby potential customers, promoting services, events, and offers in a trusted, community-centric environment.
Nextdoor CAPI (Conversions API) allows businesses to track and measure the effectiveness of their Nextdoor ads by directly sending conversion data from their server to Nextdoor. This integration helps improve ad targeting and performance tracking by providing more accurate and comprehensive data on user actions, such as purchases or sign-ups, ensuring that businesses can optimize their advertising strategies effectively.
Product Type: Advertising
Integration Type: Starter Kit & ID Sync
Event Source Type: Web and/or Mobile Browser
Event Scope: Full Funnel
Capabilities
- CAPI Endpoint: Integrates with the Nextdoor CAPI endpoint to send detailed event data.
- Client and Partner Identification: Enriches events with static identifiers for the partner (
metarouter) and client, ensuring each event is properly attributed. - Event Identification and Timing: Maps event-specific data, including unique event IDs and timestamps, ensuring accurate tracking of events.
- Source Information: Captures and maps the source of events, including the URL where the event occurred and the type of source (e.g., app or website).
- Comprehensive Customer Data Mapping: Utilizes complex transformations to hash and map customer data, including email, phone number, and address details, ensuring customer privacy and data integrity.
- Event-Specific Data Enrichment: Provides tailored enrichment for specific events, such as marking an
order_completedevent with a staticpurchaseidentifier.
Considerations
- Token Expiration: Your Nextdoor access token will expire in a year after it’s been generated. Please mark your calendar to update the token in the MetaRouter integration a year from when the token was generated.
Limitations
- Batching: This integration does not support batching multiple conversions in a single request.
Nextdoor Ads vs Nextdoor CAPI
- Endpoint:
https://ads.nextdoor.com/graphql/api/v1 - Filters: Reject events if the ndclid (Nextdoor Click ID) is missing.
- Event-Specific Configurations: Static string enrichments for
eventNamefor events likecart_viewed,order_completed, andsigned_up
Nextdoor CAPI:
- Endpoint:
https://ads.nextdoor.com/v2/api/conversions/track - Filters: Allow events based on their names without extra conditions.
- This means that any event with a specified name is accepted and processed.
- No additional conditions or criteria are required for these events to be allowed.
- The filter list is set to accept events simply if their names match the allowed list.
- Mappings: Use Lua scripts to hash customer information (email, phone number, address) for increased user matching
- Event-Specific Configurations
- For
order_completedevents:- Map
order_id,product_context, andorder_valuewith complex transformations - Calculate the total order value by summing product prices and adding the currency code
- Map
- For
Identity Sync
- Sync Available: Yes
- Required for Starter Kit: Yes
- Prerequisites: Requires
ndclid(Nextdoor Click ID) from the Nextdoor sync - Documentation: See Additional Nextdoor CAPI Documentation
Sync Details
- Captures the Nextdoor Click ID used for conversion attribution.
- Required to link server-side conversions to ad click interactions.
- Without this sync, conversion events may not appear in Nextdoor Ads Manager.
Starter Kit Setup Guide
1. Deploy the Nextdoor Sync
- To collect the Nextdoor Click ID (
ndclid), you must implement a Nextdoor ID Sync. - Refer to the Nextdoor – ID Sync Guide to complete the setup.
- This sync enables conversion attribution between Nextdoor ad clicks and server-side events.
2. Gather Credentials
- Apply for API access: Please follow the instructions here to apply for API access. Once granted, you will be given a Client ID that you will need to use for this integration.
- Access Token: Please follow the instructions here to obtain your Access Token.
- Pixel ID: Go to Assets > Pixels and copy your Pixel ID. This will be used as your Data Source ID in the connection file.
- Important Note: Your Nextdoor access token will expire one year after it’s generated. Please mark your calendar to update the token in the MetaRouter integration before expiration.
3. Add a Nextdoor – CAPI Integration
- From the integration library, add a Nextdoor – CAPI integration.
- Then, fill out the following Connection Parameters:
| Connection Parameter | Description |
|---|---|
ACCESS_TOKEN | Access token generated after API access approval. Expires annually. |
DATA_SOURCE_ID | The Nextdoor data source ID used to attribute conversions. Otherwise known as the Pixel ID. |
4. Configure Event Mapping
- MetaRouter provides all of the event mappings that Nextdoor – CAPI integrations typically require.
- You may add custom events, parameters, or mappings in accordance with Nextdoor’s API documentation.
5. Deploy to Pipeline
- In the Pipelines tab, add your Nextdoor – CAPI integration.
- Select the correct integration revision.
- Click Add Integration to finalize deployment.
Event Mappings
Global
Global mappings will be applied to all events. If your parameter names do not match the Expected Inputs provided, you will need to overwrite the Inputs provided with your own.
| Output Key | Description | Expected Input |
|---|---|---|
partner_id | String: A unique identifier for the MetaRouter partner. | Enrichment – metarouter |
data_source_id Required | String: The Nextdoor data source ID assigned to the advertiser. | $$DATA_SOURCE_ID$$ |
event_id Required | String: Unique identifier for the event. | messageId |
event_time_epoch Required | Integer: Timestamp of the event in Unix epoch seconds. | Expression – converts from input.timestamp |
action_source Required | String: The source of the action (e.g., app, website). | Expression – detects from app or device context |
action_source_url Required | String: The URL where the action occurred. | context.page.url |
customer.click_id Required* | String: The click ID from Nextdoor used for attribution. | context.providers.nextdoor.ndclid |
customer.email Required* | String: The hashed email address of the customer. | Expression – hashes traits.email (SHA256) |
customer.phone_number Required* | String: The hashed phone number of the customer. | Expression – hashes traits.phone (SHA256) |
customer.first_name | String: The hashed first name of the customer. | Expression – hashes traits.firstName |
customer.last_name | String: The hashed last name of the customer. | Expression – hashes traits.lastName |
customer.date_of_birth | String: The hashed date of birth (YYYYMMDD). | Expression – hashes traits.birthday |
customer.street_address | String: The hashed street address. | Expression – hashes traits.address.street |
customer.city | String: The hashed city (lowercase, no spaces). | Expression – hashes traits.address.city |
customer.state | String: The hashed state (two-letter code). | Expression – hashes traits.address.state |
customer.zip_code | String: The hashed zip/postal code. | Expression – hashes traits.address.postalCode |
customer.country | String: The hashed country (ISO-2 code). | Expression – hashes traits.address.country |
customer.client_user_agent | String: User agent string captured from the browser or app. | context.userAgent |
customer.client_ip_address | String: The client IP address (IPv4 or IPv6). | context.ip |
customer.external_id | String: An external identifier for cross-system matching. | anonymousId |
*Note: The integration requires at least one or a combination of the following parameters: hashed_email , hashed_phone and / or click_id .
Event Specific
Checkout Started
| Output Key | Description | Expected Input |
|---|---|---|
event_name Required | String: Identifies the event type as checkout initiation. | Enrichment – initiate_checkout |
custom.order_id | String: The order ID for the checkout session. | properties.order_id |
custom.product_context | Array: List of products included in the checkout. | Expression – maps from properties.products |
Product Added
| Output Key | Description | Expected Input |
|---|---|---|
event_name Required | String: Identifies the event type as add to cart. | Enrichment – add_to_cart |
custom.product_context.id | String: Product identifier added to cart. | properties.product_id |
custom.product_context.quantity | Integer: Quantity of the product added. | properties.quantity |
custom.product_context.item_price | Float: Price of the product. | properties.price |
Product Viewed
| Output Key | Description | Expected Input |
|---|---|---|
event_name Required | String: Identifies the event type as content view. | Enrichment – view_content |
custom.product_context.id | String: Product identifier viewed. | properties.product_id |
custom.product_context.quantity | Integer: Quantity of the viewed product. | properties.quantity |
custom.product_context.item_price | Float: Price of the viewed product. | properties.price |
Product Added To Wishlist
| Output Key | Description | Expected Input |
|---|---|---|
event_name Required | String: Identifies the event type as add to wishlist. | Enrichment – add_to_wishlist |
custom.product_context.id | String: Product identifier added to wishlist. | properties.product_id |
custom.product_context.quantity | Integer: Quantity of the wishlist item. | properties.quantity |
custom.product_context.item_price | Float: Price of the wishlist item. | properties.price |
Products Searched
| Output Key | Description | Expected Input |
|---|---|---|
event_name Required | String: Identifies the event type as search. | Enrichment – search |
Page
| Output Key | Description | Expected Input |
|---|---|---|
event_name Required | String: Identifies the event type as a page view. | Enrichment – page_view |
Order Completed
Output Key | Description | Expected Input |
|---|---|---|
| String: The name of the event (e.g., purchase). | Enrichment - |
| String: The order ID of the purchase. |
|
| Array: The context of the products in the order. | N/A - Expression |
| String: The value of the order. | N/A - Expression |
Required & Recommended Identifiers
These identifiers must be mapped to Nextdoor CAPI in order for successful user matching to occur. Without the minimum required IDs, any events sent to Nextdoor may not be accurately reflected in reporting.
| Attribute | Example | Sync Injector Required? |
|---|---|---|
click_id Required | 123abc456def789ghi | Yes |
email Required | SHA256 Hash (Lowercase): c624921e8d93d491b8b47cb1129d8d9d90b9b9a6e10a8db526b22a709cc0e280 | No |
phone_number Required | SHA256 Hash: 836c1b0b1f3ef6c1c41b67c5c0a05640d5d5e1bcd0339e919c2f1b8a3e54e8f2 | No |
first_name Recommended | SHA256 Hash (Lowercase): d53c6d34a40e51011d558ba0cfb46c01ba354baab6587b1b8e7dbaaa5351edc3 | No |
last_name Recommended | SHA256 Hash (Lowercase): d0b56f57fa2a8f02bcb573ad81b786cd3f1b21f004f121ac350b2ecf0d7c63b3 | No |
date_of_birth Recommended | SHA256 Hash (YYYYMMDD Format): f3b5a5e2c17ad4970cc8d7fc3e4c0f937a8f2a5789ad56b3a7803e48756c20d1 | No |
street_address Recommended | SHA256 Hash: 8f8fe511c7a6d5730f6fabb20253f4d2f481b604f9b39d6fc71acb46f8b5f44c | No |
city Recommended | SHA256 Hash (Lowercase, no spaces): 5e498e48f1dc30ad9f5e07ec3f0a20d21b4e8bcd7073dd0a8ec17d4b8baba17b | No |
state Recommended | SHA256 Hash (Lowercase two-letter ANSI abbreviation): a58f8e32e677139663be8d3b92fc6c9ff1a098f4d3d3768dc542e6e846a237f0 | No |
zip_code Recommended | SHA256 Hash (First 5 digits for U.S. zip codes): 5e884898da28047151d0e56f8dc6292773603b3c2d5dc6e40b4cc5d1dcb9f33e | No |
country Recommended | SHA256 Hash (Lowercase 2-letter ISO 3166-1 alpha-2 code): b5d4045c7de9afba8c32d0b0b44cd3ba174bff6f0062d6c1e4f7ab27c43d817d | No |
The integration requires at least one or a combination of the following parameters: customer.email, customer.phone_number, and/or customer.click_id.
Nextdoor recommends prioritizing the hashed email (customer.email) when available for highest match accuracy.
Integration Validation
To verify your Nextdoor – CAPI integration:
- Check your Nextdoor Ads Manager reporting dashboard for new conversion data.
- Conversions are tied to your live campaigns and populated from events sent through the Conversions API.
- Allow sufficient time for processing before reviewing results.
- If you do not see conversions or need validation prior to running a live campaign, please contact your Nextdoor account representative for assistance confirming event delivery and reporting setup.
Additional Nextdoor CAPI Documentation
Updated 17 days ago