# About Addressable

Addressable is the leading Web3 growth platform dedicated to revolutionizing digital marketing by bridging the gap between Web2 and Web3 and empowering Web3 companies with data-driven insights and user friendly marketing solutions to optimize strategies, enhance user acquisition, and drive sustainable growth.&#x20;

Our solution suite provides advanced tooling for user aquisition, deep funnel attribution and optimized ad spend. By collecting and processing data from all user touch points, Addressable empowers marketers with actionable insights to drive growth, increase revenue, and lower customer acquisition costs (CAC).

Our platform's innovative approach allows our clients to plan and execute their growth strategies and measure success with unparalleled accuracy and ease.&#x20;

## Discover Addressable

<table data-column-title-hidden data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Data Sources &#x26; Integrations</strong> </td><td>Find out which integrations you need to get started and leverage our advanced tools</td><td></td><td><a href="/files/Bx1rBYTzmO2Igoa4ykw3">/files/Bx1rBYTzmO2Igoa4ykw3</a></td><td><a href="/pages/WoDOkxo9fSm4Q82WM8LN">/pages/WoDOkxo9fSm4Q82WM8LN</a></td></tr><tr><td><strong>Audience Builder</strong></td><td>Create audiences you'd like to target, explore their characteristics, and track trends  </td><td></td><td><a href="/files/uKGzUa6mVZvR7ri17tg9">/files/uKGzUa6mVZvR7ri17tg9</a></td><td><a href="/pages/lKojYlVp3HiXWufNh9a7">/pages/lKojYlVp3HiXWufNh9a7</a></td></tr><tr><td><strong>Multi-Channel Targeting</strong></td><td>Launch campaigns for your target audiences, track performance and gain insights</td><td></td><td><a href="/files/e3D4hdxGfog1zF6dp9T9">/files/e3D4hdxGfog1zF6dp9T9</a></td><td><a href="/pages/bItBDr8DCKhd5LYXluVY">/pages/bItBDr8DCKhd5LYXluVY</a></td></tr><tr><td><strong>Insights &#x26; Analytics</strong></td><td>Reveal the potential behind the data with our templated dashboards</td><td></td><td><a href="/files/QLhQF1tqybKfWkgtjvmV">/files/QLhQF1tqybKfWkgtjvmV</a></td><td><a href="/pages/8TFNgnY5itO7Vkf04bJj">/pages/8TFNgnY5itO7Vkf04bJj</a></td></tr></tbody></table>


# Targeting

Addressable allows you to run campaigns across multiple channels such as social and programmatic display networks. All campaigns are created & managed under a single screen - [Campaign management page](/knowledge-base/solution-suite/targeting/managing-campaigns).

&#x20;

<figure><img src="/files/sspKvL8RXVWLBieoOgor" alt=""><figcaption><p>Multi-Channel Targeting</p></figcaption></figure>

## Campaign Creation

Regardless of where you will be running your campaign, Addressable has streamlined the campaign creation process into three main steps; network selection, campaign setup and content upload. There are, however, slight variations for each channel:&#x20;

&#x20;[Twitter (X) Ads campaign creation](/knowledge-base/solution-suite/targeting/creating-a-twitter-campaign)

[Display campaign creation](/knowledge-base/solution-suite/targeting/creating-a-display-campaign)


# Managing Campaigns

All campaigns are created and managed on a single screen. You can search and filter your campaigns by type, status, objective, and all other relevant campaign attributes. Custom columns can be added by clicking the Columns dropdown. \
Your last column layout is always saved for future sessions.<br>

<figure><img src="/files/N5SVkyWR7Gv22G9EAYsR" alt=""><figcaption><p>Campaign Manager</p></figcaption></figure>

\
Click on a campaign to drill down to its performance report. \
Learn more about [Campaign Performance](/knowledge-base/solution-suite/targeting/campaign-performance).<br>

Click on the additional actions icon<img src="/files/BFOGmm4PqE4bngyuPl9u" alt="" data-size="line">to quickly take the following actions directly from your campaign management table:&#x20;

* Open this campaign on Twitter (X) in new tab.
* Pause campaign - this will stop the corresponding network from serving your campaign.
* Start campaign - this will re-initiate a paused campaign.
* Duplicate - allows you to copy the configuration of an existing campaign onto a new one. This however does not duplicate the campaign's optimization history.&#x20;
* Delete - you can completely delete a draft campaign or campaigns that have been served by the Ads network. Deleting a campaign on the Addressable platform will deleted it from the integrated Ads network's dashboards as well.&#x20;

{% hint style="info" %}
Addressable campaigns are not editable after launch. Once we initiate the campaign on the corresponding network, any configuration changes require a new campaign creation.&#x20;
{% endhint %}

## Campaign Management Table

The following is a list of the campaign table attributes and their description:

<table><thead><tr><th width="133">Column</th><th width="365">Description</th><th>Notes</th></tr></thead><tbody><tr><td>Name</td><td>A descriptive title for your campaign</td><td>'AddressableAI' is added as a prefix to the Twitter (X) campaign name (e.g. AddressableAI_USA_Gamers)</td></tr><tr><td>Network</td><td>Twitter (X), Reddit, Display</td><td></td></tr><tr><td>Status</td><td>Pending - processing the configuration on the corresponding network.<br><br>Pending Approval (Twitter (X)) - Awaiting network's content approval<br><br>Draft - The campaign is configured but has not been 'launched' yet<br><br>Expired - The campaign has reached its 'End Date'<br><br>Exhausted - The campaign has depleted its budget<br><br>Halted (Twitter (X)) -  The campaign has been stopped by the network<br><br>Deleted - The campaign has been removed<br><br>Scheduled -  The campaign is set to launch at a future date</td><td></td></tr><tr><td>Audience</td><td>The campaign's target group</td><td>You can only set one audience per campaign</td></tr><tr><td>Creation time</td><td>Date and time of the campaign creation on the Addressable platform</td><td></td></tr><tr><td>Start time</td><td>Date and time of the campaign launch on the ads network </td><td></td></tr><tr><td>End time</td><td>Date and time of the campaign end (Exhausted or Halted)</td><td></td></tr><tr><td>Performance metrics</td><td>Impressions, Clicks, CTR, Budget etc. as reported from the ads network</td><td></td></tr></tbody></table>


# Creating a Twitter Campaign

## Overview

The Twitter (X) campaign creation process is divided between Addressable and Twitter (X); On Addressable, you configure the campaign and save it as a 'Draft'.  \
You are then redirected to your Twitter (X) Ads account, where you select/build the creative ad content within the draft campaign, and launch.

{% hint style="info" %}
Running Addressable campaigns on Twitter (X) requires an authorized X-Ads account and completing the [X integration](/knowledge-base/integrations/twitter-x-integration).&#x20;
{% endhint %}

## Twitter (X) Campaign Creation Process

{% @storylane/embed subdomain="app" linkValue="ua8rloshwade" url="<https://app.storylane.io/share/ua8rloshwade>" %}

### Stage 1: On the Addressable Platform

1. **Select your target group.**\
   Pick one of your pre-defined audience groups.&#x20;
2. **Select your campaign objective.**\
   Addressable campaigns are objective based, meaning they are optimized towards a particular goal. You can set a general goal such as maximizing your Ads reach or getting people to engage with your post. You can also select a particular event, such as website signup or app install, as your campaign goal and optimization metric.\
   \
   The list of available metrics for optimization depends on the data integrations you have set up with Addressable and the corresponding Ads networks. \
   Learn more about our [data sources and integrations](/knowledge-base/integrations/data-sources-and-integrations). <br>

<figure><img src="/files/2HcjprCJOaYhkQ6ihEBW" alt=""><figcaption><p>Campaign Objective</p></figcaption></figure>

3. **Select your funding source & define the campaign budget.** \
   You can set multiple payment means on Twitter (X) and/or with Addressable, and specify a payment method at the campaign level. \
   You can also limit the daily and total spend of your campaign.&#x20;

{% hint style="info" %}
The Addressable+ optimization engine requires a minimum of $150 daily budget in order for the campaign to generate enough data for optimal operation.&#x20;
{% endhint %}

4. **Schedule the campaign timeframe.**
5. **Select geolocations**. \
   Note, crypto ads are subject to country/state policy and will not run in locations for which you are not pre-approved by Twitter (X).&#x20;
6. **Name your campaign.** \
   Addressable will automatically add the prefix 'AddressableAI' to the campaign name. You will see this prefix on your Twitter (X) Ads account so you can easily identify Addressable managed campaigns among your other campaigns.
7. **Save as draft.** \
   Initially, your campaign will receive a 'Pending' status while it is being generated on Twitter (X). This takes a few moments, after which the status changes to 'Draft'.&#x20;
8. **Switch to X-Ads to finalize your campaign**.\
   Once the campaign status turns to 'Draft', head over to the campaign on your Twitter (X)-Ads account.  Click on additional actions ( <img src="/files/BFOGmm4PqE4bngyuPl9u" alt="" data-size="line"> ) and click on 'Go To Twitter' (  <img src="/files/zClaiIlgJ3EERYTQCTD6" alt="" data-size="line">) .\
   This will open your campaign on X-Ads in configuration mode.&#x20;

### Stage 2: On X-Ads&#x20;

1. **Create your Ad**. \
   The campaign is pre-configured for best practice settings by Addressable. \
   All that is left to do is to follow the X wizard steps to attach creatives to the 'Draft' campaign.&#x20;
2. **Launch campaign.**\
   Once your campaign is launched, you can return to Addressable to track your [campaign's performance](/knowledge-base/solution-suite/targeting/campaign-performance).&#x20;


# Creating a Display Campaign

## Overview

The Programmatic Display campaign creation process is streamlined on the Addressable platform, and includes 2 simple steps:

1. Configuring the campaign parameters and targeting features (audience, objective, budget, schedule, location)
2. Uploading creatives to the Media Library, and attaching them to the campaign.

Once launched, your creatives are distributed across our global DSP partners' inventory and the campaign is dynamically optimized by the Addressable+ engine.&#x20;

{% hint style="info" %}
Running Programmatic Display campaigns requires an Addressable credit line with dedicated funds. Contact your customer success manger to set one up.&#x20;
{% endhint %}

## Display Campaign Creation Process

{% @storylane/embed subdomain="app" linkValue="5g9d6gq468av" url="<https://app.storylane.io/share/5g9d6gq468av>" %}

1. **Select your target group.**\
   Pick one of your pre-defined audience groups.&#x20;
2. **Select your campaign objective.** \
   Addressable campaigns are objective based, meaning they are optimized towards a particular goal. When you set 'Website Traffic and Actions' as your objective, you can select a particular event as your campaign's goal and optimization metric. <br>
3. **Set your budget.** \
   Cap the max spend for the campaign. Make sure you have enough funds in your Programmatic Display credit line.&#x20;
4. **Schedule the campaign duration.**
5. **Select geolocations**. &#x20;
6. **Name your Ad.**
7. **Select the media type you would like to upload** (only Banner Ads are supported at this time).
8. **Upload the campaign's media (Creatives).** You can upload multiple creatives, types & sizes to cover all platforms and real-estates.

<figure><img src="/files/XE6KHFffETquqplxoA3F" alt=""><figcaption><p>Supported Sized &#x26; Formats for Programatic Display Media</p></figcaption></figure>

7. **Provide the banner's destination URL.**
8. **Launch campaign.** \
   Once your campaign goes live, you can to track the [campaign's performance](/knowledge-base/solution-suite/targeting/campaign-performance).&#x20;


# Campaign Performance

The Campaign Performance Dashboard offers a detailed overview of each Addressable campaign. This dashboard is designed to simplify your campaign analysis process, providing a clear, aggregated view of all crucial performance metrics. The Dashboard is composed of different analytic representations to cover high level, in depth and over-time views of your campaign results:

1. [**Over-time Performance Graph**](#overtime-performance) - A visualization of your significant conversion metrics and KPIs over time, providing you with trend analysis in a comparative view.
2. [**Segment Breakdown Table**](#segment-breakdown) - A deep dive into the performance of each targeting parameter (geolocation, gender, creative, etc.) across your conversion metrics, identifying high performing segments to keep and low performing ones to exclude.
3. [**Funnel Analysis**](#funnel-analysis)  - A visualized sequence of events detailing the user's experience on the path to conversion, and revealing "leaks" causing user loss before they reach the conversion destination.

In addition to the campaign’s performance, the dashboard also provides a bird's-eye view of the campaign configuration (targeted audience, budget, geolocation, etc.) and a log of Addressable+ optimization activities available under the [Campaign Summary](#campaign-summary) tab.

## Performance Over Time&#x20;

The Performance Over Time graph provides a visualization of your KPIs in a comparative view and it is a great tool for trend comparison in order to:

* **Track the percentage of change for any metric from the previous date range**. By default the dashboard is set to a last 7 days view, and so the percentage of change is in comparison to the week before last. If you were to change the date range, the percentages will recalculate in accordance with the selected date range.&#x20;
* **Compare the trend of multiple metrics**. While each metric may be on a different scale (impressions in the thousands, conversions in the hundreds etc.), the trend comparison helps reveal  patterns of change. For example, what happens when you increase the daily budget, or when you remove an underperforming creative.&#x20;

<br>

<figure><img src="/files/sUeJLEeySuf8iv1sr2jR" alt=""><figcaption></figcaption></figure>

You may select up to 5 different metrics for trend comparison. The list of available metrics depends on the data integrations you have set up with with Addressable and the corresponding Ad networks. Learn more about our [data sources and integrations](/knowledge-base/integrations/data-sources-and-integrations).&#x20;

## Segment Breakdown&#x20;

The segment breakdown allows you to deep dive into how your targeting parameters are performing across KPIs. For instance, a segment (e.g a particular country) leading in CTR might be lagging in Engagement. This is especially useful in pinpointing segments that can be removed, and those we may want to keep and double-down on.​

<figure><img src="/files/vvzlcAqBJKpiDiQvgy3z" alt=""><figcaption></figcaption></figure>

## Funnel Analysis

Funnel analysis is used to visualize, measure, and understand key user behavior throughout the customer journey. Funnel analysis visually alerts you when something isn’t right, so you can make the necessary adjustments to keep your users on their path to conversion.

Although every business has unique goals, funnel analysis is usually implemented to:

* **Improve conversion.**\
  Funnel analysis enables you to find out what’s preventing users from reaching your goal. Each stage of the funnel poses opportunities for a smoother, more personalized journey to the end of the funnel. If there is a significant drop in users between specific funnel stages, you’ll know where to focus your efforts and further analysis.
* **Align marketing and product goals**. \
  Marketing teams typically aim to convert new users and re-engage old ones, while product teams focus on user retention. The campaign funnel analysis allows to both share insights on the full user journey, and to create a cohesive user experience starting from the Ad and continuing to the product.  If users respond well to a part of the marketing funnel, they’re more likely to stay on-board when the product funnel offers a similar value. <br>

<figure><img src="/files/ipV916SFSF2AQSyFPzl4" alt=""><figcaption><p>Funnel Analysis</p></figcaption></figure>

You can configure your funnel analysis stages by adding and arranging up to 7 metrics.  The list of available metrics depends on the data integrations you have set up with Addressable and the corresponding Ad networks. Learn more about our [data sources and integrations](/knowledge-base/integrations/data-sources-and-integrations).&#x20;

## Campaign Summary

The campaign summary tab provides a high-level view of the campaign set up and optimization activities divided into:

1. Addressable+ activity log - Here you can track the cadence and actions of our automatic optimization engine.
2. Configuration details - Here you can quickly review the campaign settings (budget, audience, geolocations, schedule, etc.)

<figure><img src="/files/9rgCMsRPvMxhVtzlamdh" alt=""><figcaption></figcaption></figure>

Keep in mind that Addressable campaigns are not editable once launched. Once we initiate a campaign, any configuration changes would require creating a new campaign, or in some cases a direct edit on the corresponding network (you may reach out to your Customer Success Manager for further details and best practices).&#x20;


# Ads Specifications

To be approved on X Ads, Programmatic Display Ads and Reddit Ads, ads must follow specific creative guidelines to ensure quality and compliance.&#x20;

These guidelines include technical creative specifications such as high-resolution images or videos that are clear, without excessive text or pixelation. Text should be concise and relevant to the audience, with any legal disclosures clearly visible.

Additionally, landing pages must align with ad content and load quickly for a seamless user experience.&#x20;

By adhering to these standards, advertisers enhance the likelihood of approval and maximize audience engagement.

## Twitter (X) Creative specifications

### Text Ad

A simple text ad, with all the elements of a standard Tweet, including likes, replies, favorites and Retweets.\
\
**Tweet copy:**  280 characters.&#x20;

{% hint style="info" %}
each link used reduces character count by 23 characters, leaving 257 characters for Twitter copy.
{% endhint %}

### Image Ad

Showcase your brand, product, or service with a single photo. Easy to create and can support multiple objectives. They can be Retweeted, replied to, and liked, and they’re marked as “Promoted”.

**Tweet copy:** 280 characters.&#x20;

**File types:** PNG and JPEG are recommended. BMP or TIFF files are not supported. GIFs uploaded will render as a static image. \
**File size:** Max 5MB

{% hint style="info" %}
each link used reduces character count by 23 characters, leaving 257 characters for Twitter copy.
{% endhint %}

### Image Ad with App Button

**Image size:** 800 x 418 pixels is recommended for 1.91:1 aspect ratio. 800 x 800 pixels is recommended for 1:1 aspect ratio.

**Aspect ratio:** 1.91:1 or 1:1

**App title:** Truncated at 200 characters. Included from app store; not customizable.

**Call to Action:** Install, Open, Play, Shop, Book, Connect, and Order

### Image Ad with Conversation Button

**Image size:** 800 x 418 pixels is recommended for 1.91:1 aspect ratio.

**Aspect ratio:** 1.91:1

**Conversation Card  (original Tweet in timeline)**

**Tweet copy:** 280 characters (same as above)

**Hashtag:** 21 characters, including the hashtag character

\
**Pre-populated user Tweet  (once user clicks on the CTA)**

**Tweet copy:** 256 characters

**Headline:** 23 characters

\
**Thank You Tweet  (after user has Tweeted out the Tweet)**

**Thank you text:** 23 characters

**Thank you URL (optional):** 23 characters

### Image Ad with Poll

**Image size:** 800 x 418 pixels is recommended for 1.91:1 aspect ratio. 800 x 800 pixels is recommended for 1:1 aspect ratio.

**Aspect ratio:** 1.91:1 or 1:1. However, 1:1 will crop to 1.91:1 in mobile timeline.

GIFs are not supported at this time.

**Tweet copy:** Polls can include up to 280 characters of Tweet copy that appear above the image.

**Poll options:** 2-4 custom poll options\
Once you’ve written your copy and added an image, you can add two to four custom poll responses to create your poll.

**Poll copy:** 25 characters each\
Each poll option can include up to a maximum of 25 characters of text (which do not count against the 280 you can include in Tweet copy).

### Image Ad with Website Button

**Image size:** 800 x 418 pixels is recommended for 1.91:1 aspect ratio. 800 x 800 pixels is recommended for 1:1 aspect ratio.

**Aspect ratio:** 1.91:1 or 1:1

**Website title length:** 70 characters. \
Please note — depending on device and app settings this description may truncate. Up to two lines of text are rendered on the card title; any text beyond that is truncated with an ellipsis. Although not guaranteed, limiting the description to 50 characters should ensure that truncation won’t occur across most devices.

**URL:** must begin with http\:// or https\://

### Standalone Image Ad

Image size: 1200 x 1200 pixels is recommended for 1:1 aspect ratio. \
1200 x 628 pixels is recommended for 1.91:1 aspect ratio. \
Larger images will be better optimized for when users click to expand images.

**Aspect ratio:** 1.91:1 or 1:1. \
Please note that the legacy composer supports any aspect ratio between 2:1 and 1:1.

### Video Ad

**Capture attention and tell a strong story with a visually engaging video ad. Video Ads allow you to showcase your brand, product or service and bring them to life through video.**&#x20;

**Tweet copy:** 280 characters.&#x20;

**Note:** each link used reduces character count by 23 characters, leaving 257 characters for Twitter copy)

**File types:** MP4 or MOV&#x20;

**File size:** 1 GB max. \
For optimal performance we strongly recommend to keep files under 30 MB.\
**Video length:** 15 seconds or less is recommended. Up to 2:20 is supported. (Select advertisers are eligible to request an increase up to 10 minutes; however, we advise videos to be 9:55 to account for a range of video files). \
**Branding:** Highly recommended throughout; if using a logo, it should be persistent in the upper left hand corner. Prominent product placement is highly recommended for driving product consideration. \
**Captions:** Closed captioning or text overlays are strongly recommended. \
**Video bitrate:** 6,000 - 10,000k (recommended 6,000k) for 1080p. 5,000k - 8,000k (recommended 5,000k) for 720p.\
**Frame rate:** 29.97FPS or 30FPS. Higher is acceptable (support up to 60FPS). If the available video has a lower frame rate don’t try to “upsample” it. \
**Audio codec:** AAC LC (low complexity) \
**Video codec recommendation:** H264, Baseline, Main, or High Profile with a 4:2:0 color space. **Thumbnail:**\
**-** Supported files: PNG or JPEG\
\- Aspect ratio: recommend matching sizing of the video\
\- Max size: 5MB \
**Looping:** Videos will loop if the video length is under 60 seconds.

### Standalone Video Ad

**Video size:** 1200 x 1200 pixels is recommended for 1:1 aspect ratio. 1920 x 1080 pixels is recommended for 16:9 aspect ratio. Larger videos will be better optimized for when users click to expand videos. \
**Aspect ratio:** 16:9 or 1:1. \
Please note that the legacy composer supports any aspect ratio between 2:1 and 1:1.

### Video Ad with Website Button

**Video size:** 800 x 450 pixels is recommended for 16:9 aspect ratio. 800 x 800 pixels is recommended for 1:1 aspect ratio.

**Aspect ratio:** 16:9 or 1:1

**Website title length:** 70 characters. \
Please note — depending on device and app settings this description may truncate. Up to two lines of text are rendered on the card title; any text beyond that is truncated with an ellipsis. Although not guaranteed, limiting the description to 50 characters should ensure that truncation won’t occur across most devices.

**URL:** must begin with http\:// or https\://

### Video Ad with App Button

**Video size:** 800 x 450 pixels is recommended for 16:9 aspect ratio. 800 x 800 pixels is recommended for 1:1 aspect ratio.

**Aspect ratio:** 16:9 or 1:1

**App title:** Truncated at 200 characters. Included from app store; not customizable.

**Call to Action:** Install, Open, Play, Shop, Book, Connect, and Order

### Video Ad with Conversation Button

**Video size:** 800 x 450 pixels is recommended for 16:9 aspect ratio.

**Aspect ratio:** 16:9

\
**Conversation Card  (original Tweet in timeline)**

**Tweet copy:** 280 characters (same as above)

**Hashtag:** 21 characters, including the hashtag character<br>

**Pre-populated user Tweet  (once user clicks on the CTA)**

**Tweet copy:** 256 characters

**Headline:** 23 characters

\
**Thank You Tweet  (after user has Tweeted out the Tweet)**

**Thank you text:** 23 characters

**Thank you URL (optional):** 23 characters

### Video Ad with Poll

**Video size:** 800 x 450 pixels is recommended for 16:9 aspect ratio. 800 x 800 pixels is recommended for 1:1 aspect ratio.

**Aspect ratio:** 16:9 or 1:1. However, 1:1 will crop to 16:9 in mobile timeline. \
GIFs are not supported at this time.

**Tweet copy:** Polls can include up to 280 characters of Tweet copy that appear above the video.

**Poll options:** 2-4 custom poll options\
Once you’ve written your copy and added your video, you can add two to four custom poll responses to create your poll.

**Poll copy:** 25 characters each\
Each poll option can include up to a maximum of 25 characters of text (which do not count against the 280 you can include in Tweet copy).

**Poll duration:** Select a time between a minimum of 5 minutes and a maximum of 7 days.

### Carousel Ad

Carousels give marketers up to 6 horizontally swipeable images or videos to showcase multiple products or promotions, advance a narrative across several visuals, and highlight the most exciting features of a product.

**Number of slides:** 2-6 (Images or Videos)

**Media size**

* **Image Carousels:** 800 x 418 pixels is recommended for 1.91:1 aspect ratio. \
  800 x 800 pixels is recommended for 1:1 aspect ratio.
* **Video Carousels:** 800 x 450 pixels is recommended for 16:9 aspect ratio. \
  800 x 800 pixels is recommended for 1:1 aspect ratio.

**Aspect ratio**

* **Image Carousels:** 1.91:1 or 1:1 image assets using a single aspect ratio within one carousel.
* **Video Carousels:** 16:9 or 1:1 video assets using a single aspect ratio within one carousel.
* For Carousels using mixed media, aspect ratios should remain consistent (1:1 image asset with 1:1 video asset).

**Link:** One web or app destination for single-destination Carousels.\
Up to six unique web destinations for multi-destination Carousels.<br>

***

## Programmatic Display Creative Specs

We are able to run a variety of Display, Video and wider channel formats upon request.\
We generally advise the below steps for best practice:

* Localized language creative where possible
* Including a clear call to action
* Do not overload the creatives with information - this needs to be restricted to keep the messaging clear
* Keep the amount of creative variant to a minimum. Several variants can help creative testing, going overboard might dilute delivery and hurt the significance of learnings/insights
* For multi product campaigns consider the use of a DCO provider - allowing for a scalable product feed and dynamic creative features

### Banners

**Desktop creative sizes:** 300x250, 336x280, 728x90, 300x600, 160x600, 970x250

**Mobile creative sizes:** 300x250, 320x100, 320x50, 320x180, 300x50, 320x480

{% hint style="warning" %}
Please Note: For Crypto aware websites such as blockchain.com, solscan.io, polyscan.io etc make sure to provide the 320x100 banner!
{% endhint %}

**File types:** .jpeg (jpg), .png, .gif or 3rd party adserved creatives \
**File size:** Initial load - 5kb. Max - 200kb\
**Animation:** Max 30 sec\
**Other:** Tablet creatives to be MRAID v1 and v2 supported

We accept raw and ad served creatives from select ad servers (AdForm, DCM, Sizmek, Flashtalking). All HTML5 creatives need to be ad served.

### Video

**File types:** .mp4, .mpg, .mov, .webm, .ogv, .mpeg, .m4v, .mkv

**Max size:** 100mb

**Sampling rate:** 40,000 Hz (Standard) or 96,000 Hz (Professional)

**Bitrate:** (Low 240P) 300-2000 kbps (1080P Full HD)

**Resolution:** 1080P (Full HD) recommended

**Video Codec:** When using teh MP4 video format - H.264 recommended

**Aspect Ratio:** 16:9 recommended, 4:3

**Recommended size:** 1920x1080px, 640x480px

**Minimum size:** 640x360px, 480x360px

***

## Reddit Ads

[See Reddit Ads Specifications](https://www.business.reddit.com/advertise/ad-types#redditAdTypes)

***

The technical ads specifications are downloadable as PDF here:<br>

{% file src="/files/InjVAsVDy0tntNj118b4" %}

{% file src="/files/25Ur6eJFZhA2UC2BxQUa" %}


# Audiences

An audience is a group of users who share common attributes (behavior, location, interest, balance and so on). Audiences are based on user activities and characteristics, as opposed to targeting parameters which define when and where to deliver a promoted post or a banner.

You can create audiences in order to:

* **Explore the characteristics and behaviors of an interest group.**
* **Target audiences across social platforms & display campaigns.**
* **Analyze campaign results based on audience groups** (for example, see which audiences your converted users fall under).

<figure><img src="/files/Xz3ofAlfOh0H1tOcpwxB" alt=""><figcaption><p>Audience Dashboard</p></figcaption></figure>

The Audience feature is composed of three parts:

1. [Audience Manager](#audience-manager) - An aggregated view of all your audiences in a single table.
2. [Audience Builder ](/knowledge-base/solution-suite/audiences/audience-builder)- A user segment builder where you create an audience by defining various rules and conditions.
3. [Audience Dashboard](/knowledge-base/solution-suite/audiences/audience-dashboard) - This is where you explore the on/off-chain characteristics of your audience.

&#x20;


# Audience Manager

This is an overview of all the audience groups you have created within a single screen. You can search, filter and sort your audiences by name, status and even the contracts the audiences are based on.<br>

Click on any audience to dive into the Audience Dashboard, where you can explore the audience’s specific on/off-chain characteristics.

<figure><img src="/files/rnhvZvkJ5BoX0vKoTzvp" alt=""><figcaption><p>Audience Manger </p></figcaption></figure>

Hover over any row to reveal the additional actions menu directly on your audience management page:

* Dashboard - redirecting you to the audience dashboard, which contains a full characteristics breakdown.
* Edit - to edit your audience parameters.
* Duplicate - allows you to copy the parameters of an existing audience into a new one, continuing to fine tune from that point.
* Rename - you can change the name of an audience at any point, including audiences that are currently used in live campaigns.
* Delete - delete an audience and remove it from the list.

## Audience Manager Table

<table><thead><tr><th width="174">Column</th><th>Description</th><th>Notes</th></tr></thead><tbody><tr><td>Name</td><td>A descriptive title for your audience</td><td>An audience does not require a unique name</td></tr><tr><td>Size</td><td>The number of wallets that met the parameters set when the audience was created</td><td></td></tr><tr><td>Social Accounts</td><td>The number of Twitter (X) handles that were 'matched' to the wallets in this audience group</td><td></td></tr><tr><td>Status (custom audience only)</td><td>Processing - Custom audience is being uploaded to Twitter.<br><br>Failed  - Custom audience upload failed.<br><br>Too Small - Custom audience is too small to target on Twitter. <br><br>Ready - Custom audience is ready for targeting on Twitter.</td><td></td></tr><tr><td>Contracts</td><td>The smart contracts that were used to build the audience</td><td></td></tr><tr><td>Last modified</td><td>Date and time of the most recent audience edit</td><td></td></tr><tr><td>In Campaign </td><td>Indication that an audience that has been used for a targeted ads campaign (regardless of the campaign's status)</td><td></td></tr><tr><td>Twitter Expiration (custom audience only)</td><td>The date of expiration of a custom audience on Twitter (X)</td><td></td></tr></tbody></table>


# Audience Builder

## Overview

The Audience builder provides the tools and context to identify a group of users sharing common on-chain and off-chain attributes. The builder is composed of two parts:

**The audience definition widget** - Allowing you to create a segment group by selecting a set of conditions:

* Smart contracts they interacted with, and/or
* Out-of-the-box proprietary categories they belong to, and/or
* A set of behavioral and situational filters to further optimize the audience.

**Targeting insights (right hand) panel -** calculated in real time, the audience's reach potential when targeted on the ad network, their overall buying power, and geo-distribution.

<figure><img src="/files/uJlj3aaUGavXtUgG5VlC" alt=""><figcaption></figcaption></figure>

## Audience Creation Process <a href="#audience-creation-step-by-step" id="audience-creation-step-by-step"></a>

1. **Name your audience** (mandatory) - Give your audience group a descriptive name that will help you recognize it later.
2. **Define the audience group - Select** the smart contract(s) they interact with, or an Addressable pre-built category reflecting a common behavior or user characteristic (e.g. power traders, strategy gamers).
3. **Optimize your audience group - F**urther define your audience by adding conditions to include: <br>
   * Specific blockchains
   * Last blockchain activity - use this to create a cut-off date to only include users who have been active on-chain after a certain date.
   * Balance - you can chose to filter out users based on the value of assets they hold in their wallets at the time of audience creation.
   * Coin - you can further refine your audience by defining specific token/s they should be holding (at the time of the audience creation).
   * NFT assets - use this to filter users who have a particular asset and number of units.<br>
4. **Save.** Once saved, you can select this audience for targeting when you create a campaign, visit the audience dashboard for insights and analytics, track the audience’s impact on your business and industry within your dashboards.

{% @storylane/embed subdomain="app" linkValue="qcfovs2ftqwo" url="<https://app.storylane.io/share/qcfovs2ftqwo>" %}

## Targeting Recommendations <a href="#targeting-recommendations" id="targeting-recommendations"></a>

During the audience creation process, Addressable offers similarity based recommendations for each selected contract. Unlike simple similarity recommendations such as “users who bought X, also bought Y”, Addressable’s algorithm considers similarities between contracts as well as similarities between users (wallets) to identify corresponding behavioral patterns. Therefore, users of your selected contract, are not necessarily users of the offered contract, but their on-chain behavior is similar in pattern and purpose.

<figure><img src="/files/PLyhDnsIh8VfuQUfCzKN" alt=""><figcaption><p>Contract Recommendations</p></figcaption></figure>

Each time you select a particular contract, Addressable’s recommendation engine, calculates its similarity to all other on-chain addresses and offers the top most similar contracts as recommendations.


# Audience Dashboard

The Audience Dashboard is where you explore the characteristics of any audience. These include on-chain attributes such as wallet balance distribution, last on-chain activity and assets held by this group of users.\
\
The dashboard also includes off-chain characteristics, such as Twitter (X) influencers the users in this group are following, and fields of interest they exhibit on social networks.

<figure><img src="/files/9hHHf7TjSZ5uEi2iUWW2" alt=""><figcaption><p>Audience Dashboard</p></figcaption></figure>

The Audience dashboard is generated for each saved Audience and updates every time you reload the dashboard page.&#x20;

## Dashboard Chart Breakdown

<table><thead><tr><th width="155">Element</th><th>Description</th><th>Notes/Clarifications</th></tr></thead><tbody><tr><td>Wallets</td><td>Number of wallets that have interacted with the selected smart contracts comprising the audience group</td><td></td></tr><tr><td>Social Accounts</td><td>The number of Twitter (X) handles that were 'matched' to the wallets in this audience group</td><td></td></tr><tr><td>Balance</td><td>The current aggregated value of holdings for this group of wallets</td><td></td></tr><tr><td>Top Locations</td><td>The geo-distribution of 'matched' social accounts across the world </td><td></td></tr><tr><td>Wallet last Activity</td><td>Distribution of the last time these wallets were active on-chain</td><td></td></tr><tr><td>Wallet Balance distribution</td><td>A pie chart distribution of wallets according to the value of assets they hold at the time of audience creation</td><td></td></tr><tr><td>Top Tokens/Top NFTs</td><td>A distribution of tokens and NFTs that these users are currently holding in their wallets</td><td></td></tr><tr><td>Top followed influencers &#x26; businesses </td><td>Popular Twitter (X) influencers followed by the users in this audience</td><td>Based on the wallets that were 'matched' to social profiles</td></tr><tr><td>Topics &#x26; interests</td><td>Identified interests and/or self attestations of users from this audience on Twitter (X)</td><td>Based on the wallets that were 'matched' to social profiles</td></tr></tbody></table>

## **Uploading an Audience to Twitter (X)**

You can upload any audience group created on Addressable as a Custom Audiences to your Twitter (X) ads account. This allows you to create specific user groups that can be used for retargeting, exclusion, and/or expansion of paid-ads campaigns.

<figure><img src="/files/uUVgoDxE8zfRRceh15Wy" alt=""><figcaption></figcaption></figure>

When you upload a Custom Audience, there's an initial processing period (that can take up to 48 hours), where Twitter (X) validate internal parameters for every user in this group (such as when they were last active on Twitter (X) and wether or not they opted in/out of ads on the platform).\
This allows Twitter (X) to then serve your ads to the validated accounts.

It is possible that not all of the users in your Custom Audience will pass the internal validation process. That is why you may notice that the final Custom Audience size is smaller than your originally uploaded list.\
If there are less than 100 users that pass the validation process, the audience will receive an "Audience too small" status. In these cases, Twitter (X) makes the Custom Audience unavailable for targeting to align with the user privacy policy.

## **Using a Custom Audience on Twitter (X)**&#x20;

To target or exclude the users in your Custom Audience, navigate to the Audiences module within the Targeting section of the campaign form on Twitter (X). After selecting include/exclude, search or browse the List dropdown to find the specific audience that you need.\
As a reminder, only audiences with the 'Ready' status in the Audiences Manager will be available here.

<figure><img src="/files/W4v7zKqXe2hS9kOaR9Kb" alt=""><figcaption><p>Using Custom Audiences</p></figcaption></figure>

Once you’ve done adding your Custom Audiences, complete the remaining campaign setup steps and launch!

&#x20;

## **Audience Summary**

To review your audience configuration or check the status of an audience upload to Twitter (X), switch over the the Summary tab. Here you will find your selected categories, smart contracts and/or any filter conditions that were set for this segment. \
You will also see the history and status of this audience upload to Twitter (X).

<figure><img src="/files/OwDYr1qIX0xj3Tqdx07j" alt=""><figcaption></figcaption></figure>


# Insights & Analytics

Addressable's dashboard templates provide ready-to-use, customizable tools to quickly access the insights needed to enhance marketing strategies and drive results.&#x20;

The template gallery provides a selection of out-of-the box dashboards. Simply click on 'Request a Dashboard', and we will customize the selected template to your business and particular points of interest.&#x20;

<figure><img src="/files/eOvhV2wur7i4bP5kq4FM" alt=""><figcaption></figcaption></figure>


# How Attribution Works

The Addressable Attribution Engine is designed to determine the most relevant marketing channel for each tracked user interaction. It processes data from multiple sources, resolves identities across platforms, and classifies traffic into predefined channels using structured rules and prioritization.&#x20;

This document outlines the logic of the engine and explain how it works.

### Identity Resolution

Addressable employs various tracking methods to monitor user sessions and the events they perform on your website. If individual user tracking is not permitted due to cookie policies or similar restrictions, Addressable calculates a user fingerprint using technical attributes and assigns it to an individual user or group.

The engine resolves user identities across multiple platforms and sessions by using unique identifiers and clustering them to create an AddressableID for the user or group. This process ensures accurate attribution of user interactions, even when they span multiple sessions or devices.

Identity data is carefully mapped to maintain consistent tracking of users. Parameters such as session duration and bounce rate are constructed, enabling the interface to display all events at a distinct user level.

<mark style="color:red;">**Note:**</mark> In case tracking is prohibited by your organization policy, please contact your account manager for adjusting the above behavior.

### Traffic Classification

The engine classifies each interaction into one of the predefined marketing channels based on UTM parameters, referrer information, and campaign data ([See how classification works](/knowledge-base/solution-suite/insights-and-analytics/marketing-channels-classification))

* **Direct Traffic**: Identified when no UTM parameters or referrer data is present.
* **Display Advertising**: Recognized through specific UTM parameters or using internal mapping in case Addressable Display campaign was used.
* **Paid Social**: Includes traffic from social platforms like X and Reddit, identified via UTM parameters and platform-specific identifiers.
* **Organic Search**: Traffic from search engines without paid advertising.
* **Paid Search:** Traffic from search engines that is a part of a paid campaign with a UTM Term parameter.
* **Referrals**: Traffic from external domains that act as referrers.
* **Email Marketing**: Traffic originating from email campaigns.
* **Other Campaigns**: Captures traffic not fitting the above categories but containing UTM parameters.

Custom logic ensures that traffic misclassified initially (e.g., due to missing UTM parameters) is reassigned to appropriate channels based on referrer data and context.

<mark style="color:red;">**Note:**</mark> Customers are responsible for ensuring the correct setup of UTM parameters for accurate tracking and channel mapping. Misclassifications may occur if UTM parameters are used incorrectly.

<mark style="color:red;">**Note:**</mark> To accurately map X campaigns created through the system to the Paid Social category, customers must use the correct UTM parameters as recommended by the system during campaign generation.

### **Prioritization and Attribution Logic**

The engine applies a **first-touch attribution model** with prioritization rules to determine the most impactful channel for each interaction:

* Channels are ranked by relevance (e.g., Paid Social, Display, Paid Search prior to Direct Traffic).
* For each user session, the first interaction from a high-priority channel is selected as the attributed channel.
* If multiple channels are eligible in a single session, the first channel in selected resolve ties.&#x20;

In a typical scenario, a user will have multiple sessions, with each session potentially attributed to a different channel. For example, the user journey begins with encountering the brand's landing page during an Organic Social campaign or Organic Search. This often prompts the user to visit the website to learn more about the brand.

However, purchases rarely occur during the first session. Instead, users are likely to return directly to the website in a subsequent session or through another interaction, such as a Display brand awareness campaign or an affiliate referral, before completing their purchase.

Multiple touch-points play a critical role in guiding users down the funnel, and our attribution engine accounts for this behavior. The engine uses a **first-touch attribution approach** within a 30-day window, classifying the channel through which Addressable first tracked the user.

For example, if a user views a **Display** Ad as part of a brand awareness campaign, visits the website **Directly** without taking any action, and then re-engages a week later by clicking on an **Organic Social** tweet on X, connecting their wallet, and completing a purchase, our attribution engine attributes the conversion to the **Display** channel.

This approach ensures that the initial point of contact, which plays a crucial role in driving user awareness and engagement, is recognized in the attribution model.

### **Attribution Outputs**

The final output of the engine includes detailed attribution metrics for each user interaction:

* **Attributed Channel**: The primary marketing channel responsible for driving the interaction.
* **UTM Parameters**: Campaign, source, medium, and term details associated with the session.
* **Referrer**: The external site or platform that directed the user to the interaction.
* **Campaign Details**: Specific information about the campaigns, including platform and creative identifiers.

These outputs enable marketers to analyze performance and optimize their campaigns effectively.


# Marketing Channels Classification

## What are marketing channels?

Your website or app traffic can originate from various sources. Our Marketing Overview report can help you understand your website traffic sources. To better understand this, it is common to categorize these sources into eight marketing channels:

### **Direct Traffic**

Traffic that comes from users entering a website’s URL directly into their browser, accessing it via saved bookmarks, or clicking a direct link from outside the browser (e.g. Microsoft Word or an app).\
Direct traffic often indicates awareness or affinity for the website, making these visitors among the most loyal and engaged.\ <mark style="color:red;">**Note**</mark><mark style="color:red;">**:**</mark> This metric helps assess a website’s brand strength in terms of awareness and demand.

### **Referrals**

Traffic sent from one website to another via a direct link. This includes visits from affiliates, content partners, direct media buying, or news coverage.\
Websites receiving significant referral traffic often have strong affiliate strategies or substantial media exposure.\ <mark style="color:red;">**Note:**</mark> Use the referral drill-down in our product to identify which affiliates are driving traffic to your website.

### **Organic Search**

Traffic from unpaid (organic) search engine results, such as Google.\
Websites generating substantial organic search traffic are likely optimizing for high search rankings (SEO). These visits often come from high-intent users, with engagement rates significantly above average.

### **Paid Search**

Traffic from search ads on platforms like Google or Bing.\
Websites with significant paid search traffic are investing in advertising to enhance brand awareness and reach relevant audiences. Paid search campaigns target high-intent users, often resulting in higher conversion rates.\ <mark style="color:red;">**Note:**</mark>  Use the paid search drill-down in our product to see which keywords drive the most traffic to your website.

### **Email Marketing**

Traffic originating from email clients (e.g., Gmail, Yahoo) when users click on links in emails. For instance, traffic from the referring domain "gmail.com" is categorized as email traffic.\
Websites with substantial email traffic likely maintain a loyal customer base engaged via mailing lists.

### **Display Advertising**

Traffic generated from display or video ads served through known ad platforms like DoubleClick or AdForm. Websites with high display ad traffic are leveraging ad budgets to increase brand visibility and attract relevant users.\ <mark style="color:red;">**Note:**</mark>  Use the display channel drill-down in our product to identify campaigns driving high-quality traffic to your site.

### **Organic Social**

Traffic from non-paid social media interactions, such as clicks on shared links or content posted on platforms like X or Reddit.\
Websites with consistent organic social traffic likely have a loyal and engaged community. This traffic is often driven by viral content, such as articles, memes, or images.\ <mark style="color:red;">**Note:**</mark>  Use our Marketing Overview report to analyze which social networks drive the most traffic and what type of users engage with your organic social posts.

### **Paid Social**

Traffic from paid ads on social media platforms like X or Reddit.\ <mark style="color:red;">**Note:**</mark> Use our paid social drill-down to identify campaigns that drove relevant users to your site. Analyze audience performance and optimize campaigns for better results.

## How does Addressable classify channels?

Addressable classify marketing channels using the following technical attributes:

### **Urchin Tracking Module (UTM) Parameters**

UTM parameters are five types of URL parameters used by marketers to track the performance of online marketing campaigns across various traffic sources and publishing platforms.

The parameters are:

<table data-header-hidden><thead><tr><th width="204"></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Parameter</strong></td><td><strong>Purpose</strong></td><td><strong>Example</strong></td></tr><tr><td><strong>utm_source</strong></td><td>Identifies the source of the traffic (e.g., the site or platform) and is a required parameter.</td><td><code>utm_source=google</code></td></tr><tr><td><strong>utm_medium</strong></td><td>Indicates the type of link used, such as cost-per-click (CPC) or email.</td><td><code>utm_medium=cpc</code></td></tr><tr><td><strong>utm_campaign</strong></td><td>Specifies a product promotion or strategic campaign.</td><td><code>utm_campaign=spring_sale</code></td></tr><tr><td><strong>utm_term</strong></td><td>Tracks search terms associated with the campaign.</td><td><code>utm_term=running+shoes</code></td></tr><tr><td><strong>utm_content</strong></td><td>Identifies what was clicked to navigate to the site, such as a banner ad or text link.</td><td><code>utm_content=logolink</code> or <code>utm_content=textlink</code></td></tr></tbody></table>

### **Referrer**

A referrer is the URL of the web page a user visited immediately before navigating to the current page. In simpler terms, it indicates the source or origin of the traffic that brought a visitor to a specific page.

While UTM parameters must be defined manually by the user, the referrer is automatically populated by the browser and provides information about the originating website.

For example, if you search for something on Google and click on one of the organic results, the referrer will be "Google," but there will be no UTM parameters included.


# Metrics Glossary

This page provides a detailed overview of the key metrics tracked and analyzed within the Addressable platform. These metrics offer insights into user behavior, marketing performance, and technical attributes related to your campaigns and traffic.

### Categories of metrics

Our metrics are divided into six categories:

1. **Marketing**: Metrics focused on campaign performance and marketing channel attribution (e.g. "Conversion Rate", "Marketing Channel").
2. **User Attributes**: Metrics related to user demographics and engagement (e.g. "Is Engaged Session", "Country").
3. **Technical Attributes**: Metrics capturing technical details of user sessions (e.g. "Platform", "Browser Type").
4. **Web3**: Metrics specific to blockchain interactions (e.g. "Wallet Address", "Blockchain Name").
5. **Attribution Fields**: Metrics from the mid-attribution engine that identify traffic sources and campaign parameters (e.g. "First Session Source",  "Session Referrer").
6. **Addressable Pixel Custom Properties:** Metrics defined by you as properties for custom events in Google Tag Manager using our pixel. (See [Custom Events](/knowledge-base/event-tracking/addressable-pixel#custom-events) for further details)

### Description of metrics

<table><thead><tr><th width="259">Metric Name</th><th width="492">Description</th></tr></thead><tbody><tr><td>Connected Wallets</td><td>Number of users who connected their wallet in the selected date range as automatically identified by the pixel. </td></tr><tr><td>Conversions</td><td>Number of converted users within the selected date range. Visit Event Manager screen to review what qualifies as a conversion event.</td></tr><tr><td>Conversion Rate</td><td>Number of converted users divided by the total engaged users who visited during the selected date range.</td></tr><tr><td>Engaged Users</td><td>Number of users who visited your website or app and interacted with your content for at least 30 seconds, excluding identified bots. </td></tr><tr><td>Domain</td><td>The domain name of your visited website on which the pixel is installed.</td></tr><tr><td>URL Path</td><td>The specific path of the URL visited on the domain.</td></tr><tr><td>Event Name</td><td>The name of the event triggered during the session as configured in Google Tag Manager and tracked by the pixel.</td></tr><tr><td>Session Referrer</td><td>The source of traffic (e.g., referring domain) for the session, categorized under attribution fields.</td></tr><tr><td>Language</td><td>The detected language of the user, categorized under user attributes.</td></tr><tr><td>Browser Type</td><td>The type of browser used during the session, categorized as a technical attribute.</td></tr><tr><td>OS</td><td>The operating system of the user's device, categorized as a technical attribute.</td></tr><tr><td>Device Family</td><td>The type of device used (e.g. Desktop, Mobile, Tablet), categorized as a technical attribute.</td></tr><tr><td>Country</td><td>The country of origin of the user, categorized under user attributes.</td></tr><tr><td>First Session Source (utm_source)</td><td>The source (e.g., Google, Facebook) of the user's first session, as captured by UTM source parameter.</td></tr><tr><td>First Session Medium (utm_medium)</td><td>The type of traffic (e.g., CPC, organic) for the user's first session, as captured by UTM medium parameter.</td></tr><tr><td>First Session Campaign (utm_campaign)</td><td>The campaign name associated with the user's first session, as captured by UTM campaign parameter. Note that Addressable internal campaigns are stated under the "campaign name" metric.</td></tr><tr><td>First Session Searched Term (utm_term)</td><td>The search term used by the user to arrive at the website during their first session, as captured by UTM term parameter.</td></tr><tr><td>Session Ad Content (utm_content)</td><td>The specific ad content clicked during the session, as captured by UTM content parameter.</td></tr><tr><td>Blockchain</td><td>The blockchain network (e.g., Ethereum, Polygon) associated with the user's wallet as extracted by the pixel.</td></tr><tr><td>Is Conversion</td><td>Indicates whether the session resulted in a conversion event.</td></tr><tr><td>First Session Marketing Channel</td><td>The marketing channel associated with the user's first session, categorized under attribution fields.</td></tr><tr><td>Is Engaged Session</td><td>Indicates whether the session met engagement criteria, where the user interacted with your content for at least 30 seconds, excluding identified bots.</td></tr><tr><td>Marketing Channel</td><td>The attributed marketing channel for the session, categorized under marketing.</td></tr><tr><td>Source (utm_source)</td><td>The attributed source of the traffic for the user, categorized under marketing.</td></tr><tr><td>Medium (utm_medium)</td><td>The attributed medium of the traffic for the user (e.g., CPC, organic), categorized under marketing.</td></tr><tr><td>Campaign (utm_campaign)</td><td>The attributed campaign of the traffic for the user, categorized under marketing.</td></tr><tr><td>Searched Term (utm_term)</td><td>The attributed search term for the user, categorized under marketing.</td></tr><tr><td>Referrer</td><td>The referring URL attributed to the user, as determined by the attribution engine, categorized under marketing.</td></tr><tr><td>Display Inventory Domain</td><td>The domain of the website hosting the display ad, categorized as a technical attribute.</td></tr><tr><td>URL Query String</td><td>The query string parameters in the URL visited, categorized as a technical attribute.</td></tr><tr><td>Addressable Campaign Name</td><td>The name of the campaign within Addressable, categorized under marketing.</td></tr><tr><td>Is Wallet Owner</td><td>Indicates whether the user owns a blockchain wallet, even if not connected to your website, categorized under user attributes.</td></tr><tr><td>Social Network</td><td>The social network platform (e.g., Twitter, Facebook) associated with the session traffic source, categorized under marketing.</td></tr><tr><td>Wallet Provider</td><td>The wallet provider used by the user, (e.g MetaMask, Fantom) , categorized under Web3.</td></tr><tr><td>Advertiser Network</td><td>The advertising platform (e.g., Adform, Google) responsible for driving the user, categorized as a technical attribute.</td></tr><tr><td>Addressable Campaign ID</td><td>The unique identifier of the campaign within Addressable, categorized as a technical attribute.</td></tr><tr><td>Is Wallet Connected</td><td>Indicates whether the user's wallet was connected during the attribution window, categorized under marketing.</td></tr><tr><td>Display Banner</td><td>The banner used in a display ad, categorized as a technical attribute.</td></tr><tr><td>Platform</td><td>The platform used (e.g., desktop, mobile) during the session, categorized as a technical attribute.</td></tr></tbody></table>

<mark style="color:red;">**Note:**</mark> Trends are calculated by comparing your selected timeframe to the preceding timeframe.


# User Radar

See how your user base is changing so you can spot opportunities and issues early.

### User Radar

User Radar gives you a single place to understand who your users are and how they’re interacting with your product. It combines high-level trends with a detailed list of individual users so you can move smoothly from “what’s happening?” to “who is driving this?”

Use User Radar when you want to answer questions like:

* How is my user base changing over time?
* Which types of users are most active or most valuable?
* Who are the users behind a specific trend, spike, or issue?

User Radar is made up of two main sections: **User Overview** and **User Profiles**.

#### User Overview

The **User Overview** shows an aggregated view of your users.

It gives you a clear, high-level picture of:

* How many users you have and how that’s changing over time
* Key behavior and engagement metrics (for example, activity, conversions, or feature usage)
* How different user groups compare to each other, based on the filters you choose

This is the best place to start when you want to spot patterns, monitor trends, or quickly check the health of your user base before drilling into specific users.

<a href="/pages/dNyREu7xCap71CEizdtM" class="button primary" data-icon="chart-line">Go to User Overview</a>

#### User Profiles

The **User Profiles** section is a table of individual users.

Each row represents a single user and typically includes:

* Core identifiers (such as user ID, wallet, or email)
* Key attributes (for example, country, device, or plan)
* Activity summaries (such as first seen, last seen, and basic engagement)

You can search, sort, and filter this table to find specific users or groups of users that match your criteria. This is useful when you want to:

* Investigate the users behind a spike or drop seen in the User Overview
* Look up a specific user to understand their history and behavior
* Build or refine segments based on real user patterns

<a href="/pages/yv9CVfrpX0YmaWEsyNDh" class="button primary" data-icon="table">Go to User Profiles</a>

### Functionality Overview

#### Save As Audience

On top of the Summary and Profile tab, you'll see a button called "Save As Audience", this button unlocks retargeting and prospecting for your users. When you save an audience, you have created a list of wallets that are ready for ads and insights.

To create an audience, apply some filters and have at least 100 total wallets and saving will be enabled.

A new audience can take up to 60 seconds to create, but once created, you can use this Audience in a new campaign to target these users and their lookalikes. You can also click the Audience name from the Audience page to see everything about this segment of users. Additional stats, what topics they're actively engaging on Twitter about, what holding they have, and what communities they're in.


# User Overview

Gain insights on the enriched user profiles to enable precise retargeting, deeper insights, and understand your highest value users.

The User Overview in User Radar provides an aggregated view of your users, including who they are, how they are behaving, and how those behaviors change over time. This helps you identify patterns, monitor shifts, and make informed decisions without checking multiple reports.

There are two major sections one called "All Users" and another called "Known-Wallet Users". As described on the page in the helpful little `(i)` icons, **All Users** is defined as any users that has visited your platform, no matter if they have a wallet or not, if they're known or anonymous. This is in contrast to the **Known-Wallet Users**, which is only users who have either (a) connected their wallet to your platform or (b) are known within the Addressable network and visited your website.

### Understanding 'User Status' <a href="#user-status-def" id="user-status-def"></a>

You will see the concept of **New, Current, Returning** (and sometimes Inactive) spread throughout User Radar. It's helpful to remember the defintion can be slightly different depending it's location.

If you're looking at a the KPI Cards, then we are saying the user was New or Returning within the selected time period (the date selector). Where as on the graph, we are saying a user was New on that specific day (or week, month, etc).

Additionally, all status are evaluated starting the day you set up your Addressable Pixel. Therefore no one who has visited your platform prior to the set up date can have any status other than 'New' on their first visit.

{% hint style="success" %}
There are helpful `(i)` info icons spread throughout the page, that dynamically to explain to you exact what you're looking at.
{% endhint %}

**Example Breakdown** (for those who want to get nerdy):

If you select a timeframe of the "Last 90 Days" in the date picker, you've only had Addressable set up for the *last 75 day*, then we'd consider every single user as 'New'. You can easily over come this by shortening the timeframe to 30 days or less.

You might find some users are marked as returning in the chart, but there's no value in the KPI, this is a great example of how a user status changes every day and the KPI charts choose the first known status within the selected time period.

**User Status Definition**

<table><thead><tr><th width="198.63067626953125">User Status</th><th>KPI Card</th><th>Graph View</th></tr></thead><tbody><tr><td>New</td><td>Unique users whose first visit in this period was their first-ever visit.</td><td>Users visiting your site for the first time on this day/week/etc.</td></tr><tr><td>Returning</td><td>Unique users who visited during this period after more than 30 days with no visits.</td><td>Users who visited on this day/week/etc. after more than 30 days with no visits.</td></tr><tr><td>Current</td><td>n/a</td><td>Users who visited on this day/week/etc. and also had a visit within the last 30 days.</td></tr></tbody></table>

{% hint style="info" %}
**By default,** the **Activity Window** is set to **30 days**, but can be changed as needed.

This setting should reflect how long you expect a user should be active for before becoming inactive. As well as at what point they're considered returning.&#x20;

You can edit it by selecting "**Configure Window**" at the top (or Configure in the tooltip)
{% endhint %}

## Dashboard Overview

### **All Users** Section <a href="#h_d4beb6072e" id="h_d4beb6072e"></a>

All Users means any users who is considered anonymous or has an identified or connected wallet. This means, if they have a wallet or not, and if that address is known or not. This is all users and visitors who the Addressable Pixel has seen on your platform.

### KPI Cards

* **Unique New Users**
  * Unique users whose **first visit in this period** was their **first-ever visit** seen by the Addressable Pixel.&#x20;
  * Remember, a user can visit multiple times, thus be multiple statuses in the Chart, but a single status here in the KPIs.
  * See [deep dive](https://app.gitbook.com/o/R6LgKrAXjHdPJpmEkhzt/s/lmvdGU0ER07OAwIyiroz/~/edit/~/changes/265/solution-suite/user-radar/user-overview#user-status-def) into User Status for more info.
* **Unique Returning Users**
  * Unique users who visited during this period after more than 30 days with no visits. This is based on the customizable Activity Window, see callout below.
  * See [deep dive](https://app.gitbook.com/o/R6LgKrAXjHdPJpmEkhzt/s/lmvdGU0ER07OAwIyiroz/~/edit/~/changes/265/solution-suite/user-radar/user-overview#user-status-def) into User Status for more info.
* **Conversions / Revenue**
  * Depending if you have [Revenue configured](/knowledge-base/event-tracking/addressable-pixel), you will see the Total Revenue within the time period selected, otherwise we will show you the total number of conversions.
  * We also will show you the number of users who contributed to those conversion or revenue events.
* **Identified Buying Power**
  * This is the total sum of the wallet balances in USD for all of the Known-Wallet Users who have visited within the time period selected.
  * We also show the average wallet balance based on that total.

### Users By User Status Graph

This is a chart that shows user who had an activity on a given day (or week, month, etc) and the User Status of that user. See [deep dive](https://app.gitbook.com/o/R6LgKrAXjHdPJpmEkhzt/s/lmvdGU0ER07OAwIyiroz/~/edit/~/changes/265/solution-suite/user-radar/user-overview#user-status-def) into User Status for more info.

* **All Users**
  * Count of any user who visited on a given day. This includes all users (and visitors): wallet, without wallet, known, and anonymous.
* **Revenue**
  * Total revenue for a given day from any user (all users) who completed an event resulting in revenue. As you'd expect, you need to have [Revenue configured](/knowledge-base/event-tracking/addressable-pixel).
  * While the user status are the same defintion, this graph shows dollar amounts from those groups.

<br>

### Known-Wallet Users Section <a href="#h_d4beb6072e" id="h_d4beb6072e"></a>

Known-Wallet Users means a user (a) who connected their wallet to your platform or (b) was identified by the Addressable’s Wallet Match. These are users who we know the wallet of and therefore can fully enrich across web2 and on-chain.

#### Users by Primary Country

This graph shows the percentage of wallet-known users by their primary country only. The primary country is the most frequented country we've seen this user connect from.

#### Users with Suspicious Activities

This graph shows of all the Known-Wallet users that visited your platform, the percentage of wallet-known users that show activities considered suspicious.

It will always show 100%. If you see select bars that are disabled (grayed out), this is due to a lower data point and avoids misleading visuals.

In order to be considered a **Suspicious Activities**, the user has been identified as a suspicious because (a) they have connect >=30 different wallets, (b) When a wallet is tagged as Phishing or Scam by Etherscan or (c) When a wallet is tagged by OFAC's Sanctions List (via Etherscan)

#### Users by Cohorts

This graph shows the percentage of wallet-known users in each cohort by popularity. The full list of cohort tags and their definitions can be found on [the User Profiles page](https://app.gitbook.com/o/R6LgKrAXjHdPJpmEkhzt/s/lmvdGU0ER07OAwIyiroz/~/edit/~/changes/265/solution-suite/user-radar/user-profiles#cohort-def).

As a reminder, a single user can have multiple cohorts and therefore can be counted multiple times in the percentages.

#### Users by Balance Distribution

Percentage of wallet-known users by their wallet balance group

* $0 (No Balance)
* $0 - $1K
* $1K - $10K
* $10K - $100K
* $100K - $1M
* \>$1M (Whale)

{% hint style="info" %}
*Note: Any icon or tag for Whale, is derived from the user's wallet balance being in the `>$1M` group..*
{% endhint %}

#### Recently Converted Users

List of the latest users (up to 10) who converted and is ordered by most recent conversion event. You can click any user to be brought to their full profile on the User Profile page.

#### Top Converters

Leaderboard of the top converted users (up to 10) and is ordered by most conversion events. You can click any user to be brought to their full profile on the User Profile page.

#### Top Revenue Makers

Leaderboard of the top revenue-generating users (up to 10) and is ordered by most conversion events. You can click any user to be brought to their full profile on the User Profile page.

<br>


# User Profiles

See user profiles that are enriched with on-chain and off-chain data, enabling precise retargeting and deeper wallet insights

User Radar shows all known-wallet users that have **visited** your platform and either (a) their wallet is known by Addressable or (b) they connected to your platform. User Radar enables precise retargeting and re-engagement of your most valuable users.

**Each user profile is enriched** by Addressable with both off-chain data captured from your platform (such as country, language, and campaign details) and on-chain data (including top holdings, blockchain type, and wallet age), providing deeper insight into wallet behaviors and characteristics across multiple channels.

## Overview of Page

### Known-Wallet Users <a href="#h_d4beb6072e" id="h_d4beb6072e"></a>

Each column has a definition that can be viewed by either hovering the the info icon (a circle with an `i` in it) on the table, under the Field name when selecting a filter, or by pressing the "Columns" button.

#### All Column & Profile Views

**Some columns are not in the table** by defaul&#x74;**,** but can be made visible in one of two ways:

1. Click on the Addressable ID for that row and a sidebar will open showing all the info for that user
2. Click on Columns on the top right of the table, check what you're interest in, and add it into the table

#### **Note on Columns** Definitions

There are definitions for every column and most major components baked into the page. Therefore some columns excluded from this page.

**To see the definition:** When you see a column name in the table or the column picker popup, there's an info icon (`i` with a circle around it) that you can hover on to see the full description.

#### Group By Function & Defaults

By default, the '**Group By' is set to Profile Stages** — see definitions below. You can remove this behavior or change it to a different column by selecting the dropdown menu.

#### **`Profile Stages` Column**

The Profile Stage indicates how much is known about a profile and whether their wallet is known to you.

<table><thead><tr><th width="236.1982421875">Profile Stage</th><th>Description</th></tr></thead><tbody><tr><td>Identified Profile</td><td>The user’s wallet is know by Addressable, but they haven’t connected their wallet on your platform, so their wallet address is not shared with you.</td></tr><tr><td>Connected Profile</td><td><p>The user connected their wallet directly on your platform,</p><p>so their wallet address is available to you.</p></td></tr></tbody></table>

#### **`User Status` Column**

Where the user is as of *Today* in the active lifecycle of your platform.

<table><thead><tr><th width="196.66690063476562">User Status (Table)</th><th>Description</th></tr></thead><tbody><tr><td>New</td><td>As of today, the user’s visit is their <strong>first-ever</strong> on your platform</td></tr><tr><td>Returning</td><td>As of today, the user recently came back after more than 30 days with no visits. </td></tr><tr><td>Current</td><td>As of today, the user’s last visit was within the last 30 days.</td></tr><tr><td>Inactive</td><td>As of today, the user hasn’t visited in over 30 days.</td></tr></tbody></table>

{% hint style="info" %}
**By default,** the **Activity Window** is set to **30 days**, but can be changed as needed.

This setting should reflect how long you expect a user should be active for before becoming inactive. As well as at what point they're considered returning.&#x20;

You can edit it by selecting "**Configure Window**" at the top (or Configure in the tooltip)
{% endhint %}

#### **`Suspicious Activities` Column**

Whether or not this User Profile was seen doing suspicious activities.

<table><thead><tr><th width="222.7393798828125">Activity</th><th>Description</th></tr></thead><tbody><tr><td>No Suspicious Activities</td><td>The user profile has no activities that match any of the below and therefore is considered to be not suspicious.</td></tr><tr><td>Suspicious Activities</td><td>The user has been identified as a suspicious because (a) they have connect >=30 different wallets, (b) When a wallet is tagged as Phishing or Scam by Etherscan or (c) When a wallet is tagged by OFAC's Sanctions List (via Etherscan)</td></tr></tbody></table>

#### **`Wallet Domain` Column**

If the wallet has a NFT domain associated with it, we will present it in the table under Wallet and in filters list under Wallet Domain. We support the following services:

* **ENS** (Ethereum)
* **Base Name Service** (Base)
* **SpaceID** (Binance & Arbitrum)
* **Unstoppable Domains** (Polygon)
* **Freenames** (Polygon)

#### **`Cohorts` Column** <a href="#cohort-def" id="cohort-def"></a>

Cohort tags highlight an wallet's average activity overtime. The tags are applied when averages meet established thresholds and could change with time. All of these must be true at least once in the last 30 days.

| Tag                           | Description                                                                                                                                 |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| Swapper                       | When a wallet has a high number of Swap-based transactions on a specific chain.                                                             |
| Loan Taker or Borrower        | When a wallet has a high number of Loan-based transactions on a specific chain.                                                             |
| Staker                        | When a wallet has a high number of Staking-based transactions on a specific chain.                                                          |
| L2 Users                      | When a wallet has a high number of transactions on Layer 2.                                                                                 |
| Liquidity Provider            | When a wallet has a high number of Liquidity-based transactions on a specific chain.                                                        |
| Bridge User                   | When a wallet has a high number of Bridge-based transactions on a specific chain.                                                           |
| Developer                     | Holders of NFT associated with developers, such as ETH Denver, Developers Guild, etc.                                                       |
| Airdrop Farmer Bots           | When the same user has connect at least 30 different wallets.                                                                               |
| DAO Voter                     | When a wallet history show that they have voting transactions                                                                               |
| Frequent Conferences Attender | When a wallet has minted at least 3 POAP NFTs                                                                                               |
| Long Term Asset Holder        | When a wallet has a holding that's >50% of their ERC-20 tokens longer than the token's average (Stablecoin excluded)                        |
| High Volume Trader            | When a wallet that exceeded $100,000 in weekly trading volume for at least 25% of weeks since first transaction till now for the last year. |
| CEX Users                     | When a wallet has received funds from CEX (Centralized Exchanges)                                                                           |
| Phishing/Scam                 | When a wallet is tagged as Phishing or Scam by Etherscan                                                                                    |
| Sanctioned/Blocked            | When a wallet is tagged by OFAC's Sanctions List (via Etherscan)                                                                            |
| Quester                       | When a wallet has made >=5 quest events in the last 2 years with platforms such as Galxe, Layer3, QuestN, or Rabbithole                     |
| Memecoin Early Adopter        | When a wallet has interacted with at least 5 memecoins within a week of a coin’s launch                                                     |
| Gambler                       | When a wallet has withdrawn funds from Stake, Shauufle, or Rollbit (on Ethereum) and sign bets on Polymarket (on Polygon)                   |
| Gambling High Roller          | When a wallet has withdrawn >$50K USD from Stake, Shauufle, or Rollbit (on Ethereum) and sign bets on Polymarket (on Polygon)               |

If you have any additional questions, please let us know.<br>


# Data Sources & Integrations

Addressable ingests and processes data across all user touch points to include:

1. [**Engagement data**](/knowledge-base/integrations/data-sources-and-integrations/engagement-data-tracking) **from your sites and apps**. Addressable supports a variety of methods to collect, process and present engagement data to best suite your business needs and set up (website, mobile and server to server APIs).&#x20;
2. [**Performance data**](/knowledge-base/integrations/data-sources-and-integrations/performance-data-tracking) **from your social and programatic campaigns.** Connect your Ad networks to allow Addressable to generate paid campaigns, track their performance over time and automatically optimize them to drive your goals.
3. **Full on-chain data of 7 EVM compatible blockchains**; Avalanche, Arbitrum, Optimism, Polygon, Etherium, Base, Binance Smart Chain.&#x20;

Together, these sources of data are the basis for user behaviour analysis & insights, market share, opportunities and trends, campaign optimization and impactful targeting.

<figure><img src="/files/sVF1LSUjoefFoYeN17Rm" alt=""><figcaption><p>Data Sources &#x26; Integrations</p></figcaption></figure>


# Engagement Data Tracking

This document outlines the different methods we utilize to collect, process, and store website and application engagement data.

{% hint style="info" %}
While we support a range of ingestion methods, we strongly recommend you install the Addressable pixel or Server to Server API for both efficiency and ease of integration.
{% endhint %}

## **Website Tracking Methods**

### Installing the Addressable pixel

The Addressable pixel allows you to track Web 2 activity, such as page views, signups, wallet connect events etc. and to associate these with blockchain actions such as conversions. Simply put, it enables a full Web2 **›** Web3 user funnel view, to better understand the impact of your marketing efforts.<br>

* [Addressable pixel installation via Google Tag Manager ](/knowledge-base/event-tracking/addressable-pixel#addressable-pixel-gtm)\
  Ideal when you are already using GTM and have limited development resources
* [Addressable pixel installation using a website code](/knowledge-base/event-tracking/addressable-pixel#addressable-pixel-website-code) \
  Ideal when you prefer to manage and report your first party data directly

### Installing the Ad Network Pixel or API

When you have an Ad network pixel or API installed (either Twitter (X) or Reddit) that report events back to the Ad network, Addressable will collect these events when they are attributed (by the network) to an Addressable campaign.\
Once collected, you will be able to leverage them within the Addressable platform.

Keep in mind, that while such events can be leveraged for targeting and optimization purposes using the Addressable platform, unlike the Addressable pixel they cannot be used to provide a full attribution funnel since they are only received for campaigns you launch on the network using Addressable.

***

## Mobile Application Tracking Methods

### Integrating your MMP&#x20;

If you are using one of our supported Mobile Measurement Partners, you can share with Addressable your installs as well as significant in-app events to build a full Web2-App-Web3 funnel view & maximize Addressable's targeting and optimization capabilities.<br>

* [AppsFlyer Integration](/knowledge-base/integrations/appsflyer-integration)
* Singular Integration (ask your Customer Success Manager)

### Installing the Ad Network mobile tracking

When you have an Ad network mobile conversion tracking installed (either Twitter (X) or Reddit) and report events back to the network, Addressable will collect these events when they are attributed (by the network) to an Addressable campaign. \
Once collected, you will be able to leverage them within the Addressable platform.

\
Keep in mind, that while such events can be leveraged for targeting and optimization purposes using the Addressable platform, unlike the Addressable pixel they cannot be used to provide a full attribution funnel since they are only received for campaigns you launch on the network using Addressable.

***

## Server to Server Tracking Methods

### Implementing Addressable's Events API (Server to Server)

Addressable’s Conversions API is a secure server-to-server solution that enable you to share your user engagement and conversion event data with the Addressable platform when you cannot implement a website code, and when your user funnel is fragmented across multiple platforms.

* [Addressable Event Tracking (Server-to-Server) API](/knowledge-base/event-tracking/addressable-event-api/events-api-reference)\
  Use this when you have a complex customer journey that include user engagement across 3rd party platforms (e.g. Telegram/Discord chatbot, Mobile sandboxed WebApp, Telegram Game, Discord).

&#x20;


# Performance Data Tracking

Connecting your Ad network account with Addressable provides you with the ability to:

* Configure and manage paid campaigns directly from your Addressable account.
* Target your Addressable audiences within the Ad network.
* Leverage Addressable's optimization engine to auto-optimize your campaigns in accordance with your objectives.
* Gain insights and advanced analytics about your audiences and their user journeys.

Addressable has quick and easy integrations for the following networks:

* [Twitter (X) Ads Integration](/knowledge-base/integrations/twitter-x-integration)
* [Reddit Ads Integration](/knowledge-base/integrations/reddit-integration)


# Import Wallet List

A guide for uploading wallet lists to Addressable

## Overview

Using **Import Wallet List** users can upload their own wallet lists directly through the interface. Uploaded lists will be immediately available in the **Audience Builder** for targeting.&#x20;

## How to upload a file

1. Navigate to the **Wallet List Upload** section.
2. Click on **Upload File** and select your **CSV, XLS, or XLSX** file.
3. The system will validate the file based on the above requirements.
4. Upon successful upload, the wallet list will be available in **Audience Builder** for targeting.

<figure><img src="/files/GnBo1iLXi1Fx40DlFlOe" alt=""><figcaption></figcaption></figure>

## **File Requirements**

{% hint style="info" %}
Refer to the **bekow file template** for correct formatting:&#x20;
{% endhint %}

{% code title="sample\_wallet\_list.csv" lineNumbers="true" %}

```csv
0x000cD27F10dFFAC73201258EAA3925c0452051A0
0x1B3d2f8C345A1A67F8E2d5E4A3E905A2D1C2A71E
0x2E59FF8c41E87B0FcD6A27eF3E1C5A1c3D02E42F
0x3F5CE5FBFe3E9af3971dD833D26BA9b5C936f0bE
0x4A5fF8bBA2f6D4E5C785e6c8D1A5E9A3F52bA0B6
0x5b6E54fF28B5B6a9C8B3d2E6F8C7D4A3B6A1A8C2
0x6C7A3F5bE8D3C2B6A1F4E5D8B3C2F8A7D4B6A5E9
0x7D8B3C2F5E6A7D4B6A1F8C7A3F5E8D3C2B6A1F4
0x8E9A3F5B6A7D4B6A1F8C7A3F5E8D3C2B6A1F4E5
0x9F5E8D3C2B6A1F4E5D8B3C2F8A7D4B6A5E9A3F5
```

{% endcode %}

#### **Supported File Formats**

* CSV, XLS, or XLSX
* Max File Size: 50MB
* Max Wallets per File: 500K

#### **Supported Addresses**

* Only EVM-compatible wallet addresses are supported (e.g., `0x000cD27F10dFFAC73201258EAA3925c0452051A0`).
* ENS addresses are not supported.
* Smart contract addresses will be ignored.
* Addresses from unsupported chains will be ignored.

#### **File Structure**

* The file **must not contain headers**.
* **Only the first column** will be searched for wallet addresses.

### **Handling Errors**

* If there are errors in the file, a warning icon (triangle) will appear.
* Hover over the triangle to **download the error log**.
* The error log will specify:
  * Row number where the issue occurred
  * Input received
  * Reason for the error (error message)
* If the file contains **both valid and invalid addresses**, the upload status will be marked as **"Incomplete"**.
* **Download the error log** to review and correct any issues.

***

### **Create Audiences**

To create a new audience out of an existing list, press the "create as audience" button

* When saving an audience, **only wallets from supported chains are stored**.
* This means you may see **fewer addresses** in **Audience Builder** than were originally uploaded.

Wallet lists appear in the on-chain categories section in the Audience Builder:

<figure><img src="/files/eKn9lNhcoqvFl743Hs0C" alt=""><figcaption></figcaption></figure>


# Twitter (X) Integration

When you integrate your Twitter (X) Ads account with Addressable, you can leverage Addressable audiences, optimization engine, insights and analytics to maximize the impact of your Twitter (X) paid ads. \
This integration enables you to:&#x20;

1. Target your Addressable audiences on Twitter (X).
2. Configure and manage Twitter (X)-Ads campaigns directly from your Addressable account.
3. Leverage Addressable's optimization engine to auto-optimize your campaign in accordance to your objective.
4. Gain insights and advanced analytics about your audience and their user journeys.

## Pre-requisites

Your X-ads account needs to be authorised by Twitter (X) to run paid ads campaigns.\
If your X account is halted, or you are experiencing difficulties in getting your account authorised and/or getting approved for particular geo-locations, contact our account team for assistance.

{% hint style="info" %}
if you have a legacy Twitter (X) Business Ads account, please refer to the [#twitter-x-business-integration-guide](#twitter-x-business-integration-guide "mention")
{% endhint %}

## Twitter (X) Integration Guide

1. Log in to your Twitter (X) Ads account
2. Select 'Edit access to account' from the drop-down menu located at the top right corner of the screen
3. Click 'Add access'
4. Enter @addressableid in the left hand input field, select 'Ad Manager' in the right hand drop-down menu, select the "can compose promotable tweets" box and save changes
5. Copy your Ads Manager account number, located below your account name
6. Log into your Addressable account
7. Select the Campaign tab **›** Launch new campaign **›** X campaign
8. Enter your account number in the dedicated field and click 'Connect'

{% @storylane/embed subdomain="app" linkValue="v9yk8bxi76uy" url="<https://app.storylane.io/share/v9yk8bxi76uy>" %}

## Twitter (X) Business integration guide

1. Log into your Twitter (X) Ads account
2. Click your Handle name **›** Business settings&#x20;
3. Go to Collaborator tab > People
4. Click 'Invite people'
5. Select the 'Employee' permission level&#x20;
6. Enter <adrsbl@addressable.io> **› I**nvite
7. Once Addressable accepts the invite and is approved by Twitter (X) it is added to your Twitter (X) business account, but this entry must receive a role
8. Go to Accounts tab **› A**ds accounts **›** Add
9. Assign Addressable the 'Campaign Manager' role **›** Save
10. Copy the account ID
11. Log into your Addressable account
12. Select the Campaign tab **›** Launch new campaign **›** X campaign
13. Enter your account number in the dedicated field and click 'Connect'


# Reddit Integration

Crypto businesses stand to gain significantly from Reddit's paid ads due to the platform's depth,  community framework, and user engagement. There are approximately 20k  highly engaged communities with 35M Redditors seeking and sharing crypto information and participating in various crypto discussions - offering an ideal environment for interactive and effective advertising. \
\
When advertising on Reddit, crypto businesses can tap into a passionate user base, ensuring their messaging resonates with a highly relevant and interested audience, fostering engagement and growth.&#x20;

## Leveraging Addressable on Reddit

When you integrate your Reddit advertising account with Addressable, you can leverage Addressable audiences, optimization, insights and analytics to maximize the impact of your Reddit paid ads.&#x20;

## Reddit Integration Guide

{% @storylane/embed subdomain="app" linkValue="cgpxl8scd3vz" url="<https://app.storylane.io/share/cgpxl8scd3vz>" %}

1. Log into your Reddit Ads account
2. Select 'Account **›** Members' from the Dashboard drop down menu
3. Enter <adrsbl@addressable.io> in the invite email field
4. Assign Addressable the 'Creator' permission level and click 'Invite'


# AppsFlyer Integration

When you integrate your AppsFlyer account, you can report Install events as well as other significant in-app events, to Addressable and leverage our campaign optimization, retargeting and advanced analytics.&#x20;

{% @storylane/embed subdomain="app" linkValue="0zbydhm5wszr" url="<https://app.storylane.io/share/0zbydhm5wszr>" %}


# Addressable Pixel

**In this guide, you'll learn how to set up the Addressable Pixel using the Google Tag Manager or JavaScript SDK.**

The Addressable Pixel lets you track key actions on your website—like page views, signups, and wallet connections—and connect them to blockchain activity such as on-chain conversions.

***

### Enabled By The Pixel

By setting up the Addressable Pixel and Custom Events, the following features become available *depending your plan:*

* **Campaign Manager** – Understand visitor behavior, calculate ROAS, revenue tracking, and attribute conversions to your Paid Campaigns.
* **User Radar** — Understand your users, enriched with Web2 attribution and Web3 on-chain activities.
* **Marketing Report** – Understand the effectiveness of all your marketing efforts, even if it's not through Addressable.

***

## <mark style="background-color:yellow;">Getting Started</mark>

### Configuration Options

There are two primary ways to configure your Pixel:

* **Google Tag Manager (GTM)** – A quick and easy install method (*Recommended*) — [Go to Page](/knowledge-base/event-tracking/addressable-pixel/pixel-via-google-tag-manager-gtm)
* **JavaScript Snippet (JS)** – For adding the pixel directly to your website — [Go to Page](/knowledge-base/event-tracking/addressable-pixel/pixel-via-javascript-sdk-js)
* **Help Me Decide** — If you're unsure, keep on reading — [Jump to Section](#help-me-decide)

{% hint style="danger" %}
Not&#x65;**:** Using **both integrations** **together**, in any capacities, is **not supported** or recommended.
{% endhint %}

***

### Help Me Decide

#### When to use Google Tag Manager (GTM)

Use this option if any of the following are true (and is recommended):

* You're already using Google Tag Manager
* Your team has limited development resources
* You want a fast and non-technical installation
* [Go to Page](/knowledge-base/event-tracking/addressable-pixel/pixel-via-google-tag-manager-gtm)

#### When to use the Javascript SDK (JS)

Use this option if any of the following are true:

* You’re not using Google Tag Manager
* You already have other tracking code set up in your codebase
* You want full control over how and where the pixel is deployed
* [Go to Page](/knowledge-base/event-tracking/addressable-pixel/pixel-via-javascript-sdk-js)

If you're still not sure, please contact customer support

{% hint style="warning" %}
**If you have a downloadable app** — such as an iOS, Android, or Desktop — please contact us for additional help. Recommendations for these configurations are reviewed on a case by case to ensure accurate tracking within the Addressable Platform.
{% endhint %}

***

## Troubleshooting

If you run into issues, we're here to help. Here are some common issues and tools to help you along. If you still need anything, feel free to reach out.

### **Content Security Policy (CSP)**

* If you have a **CSP** set up, you must also [add us to your policy](/knowledge-base/event-tracking/addressable-pixel/content-security-policy-csp) for our domains.

### View Event Logs

This is only helpful if you're tech-savvy and running into issues.

* You can see a live feed of event's logged by the Pixel every \~60 seconds.
* This is also where you can access the [Troubleshoot Tool](https://app.addressable.io/data-sources/addressable-pixel/raw) as well.
* *You can log back into **Addressable**, click on **Data Sources**, click on **View Events** under Addressable Pixel, and go to the* [***Raw Events***](https://app.addressable.io/data-sources/addressable-pixel/raw) *tab.*

*Otherwise,* contact customer support *for help!*


# Pixel via Google Tag Manager (GTM)

In this guide, you'll learn how to set up the Addressable Pixel using Google Tag Manager using the Addressable Template.

{% hint style="danger" %}
**Using the previous version of the template?**

If you're still using the older Addressable Pixel template (prior to Apr 15th 2026), see our [Migration Guide](/knowledge-base/event-tracking/addressable-pixel/pixel-via-google-tag-manager-gtm/google-tag-manager-template-migration-guide) to upgrade. Additionally, the [previous setup guide](/knowledge-base/event-tracking/addressable-pixel/pixel-via-google-tag-manager-gtm/deprecated-pixel-via-google-tag-manager) is still available.
{% endhint %}

***

## Enabled with the Addressable Pixel

Once set up, the following features become available:

* **User Insights** — Insights into each of your users
* **Clear Reporting** — In-Depth marketing & funnel reports
* **Campaign Details** — Detailed attribution for paid campaigns

***

## <mark style="background-color:yellow;">Getting Started — Required</mark>

The following steps will walk you through setting up the base pixel on your website or platform. This will enable attribution and additional insights for each of your users. If you need any help, please let us know.

{% hint style="info" %}
If you don't have Google Tag Manager set up yet, please refer to [Google's docs](https://support.google.com/tagmanager/topic/14598735?hl=en\&sjid=14600134600964648548-NA) before continuing or consider another [implementation path](https://addressable.gitbook.io/knowledge-base/event-tracking/addressable-pixel).
{% endhint %}

### Settings up the Base Pixel

{% stepper %}
{% step %}

#### Get your Pixel ID

*First, we need to get your Pixel ID for the next step*

**Follow These Steps:**

1. Log into **Addressable** and click **Data Sources**
2. Select [**Addressable Pixel**](https://app.addressable.io/data-sources/addressable-pixel/events) then click on **Connect**
3. Copy the **Pixel ID** for the third step
4. Either keep this page open or paste the ID somewhere else

{% hint style="info" %}
Your Pixel ID is a 32-character code (e.g. `a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4`).

You can always find it in **Data Sources > Addressable Pixel > Connect**.
{% endhint %}
{% endstep %}

{% step %}

#### Add the Community Template

*Second, we need to add the official* [*Community Template*](https://tagmanager.google.com/gallery/#/owners/addressableid/templates/addressable-gtm-template) *for the Addressable Pixel.*

**Follow These Steps:**

1. Log into [**Google Tag Manager**](https://tagmanager.google.com/)
2. Select the correct **Account/Container**
3. On the left sidebar, click on **Templates**
4. Under **Tag Templates**, click the **Search Gallery** button
5. Click on the **Magnifying Glass** icon (Search icon) on the top right of the side panel
6. Search for *`Addressable Pixel`* and select it
7. Click the **Add to workspace** button
8. Click the **Add** button
   {% endstep %}

{% step %}

#### Configure the template and publish

*Third, we need to configure the newly added template.*

**Follow These Steps:**

1. *Back to Google Tag Manager, aka the tab from Step 2*
2. On the left sidebar, click on **Tags**
3. Then click on **New** button
4. Click **Tag Configuration** and select **Addressable Pixel** from the "Custom" section
5. Paste your **Pixel ID** from Step 1
6. Make sure the following is set:
   1. Do not rename yet — it'll ask you when you save
   2. Under **Tracking Mode**, keep **PageView (default)** selected
7. Click **Triggering** (scroll down) and select **All Pages** under "Choose a trigger"
8. Click Save
9. In the Rename **Tag popup**, enter `Addressable - Page View` — This is *not required.*
10. Go back to **Overview** on the left sidebar
11. Click **Submit** on the top right (blue button)
12. Give the release a clear name, such as `Added Addressable Pixel`
13. Click **Publish** on the top right (blue button)
14. *Note: If your platform has **Content Security Policy** (CSP), you will need to* [***configure our domains***](https://addressable.gitbook.io/knowledge-base/event-tracking/addressable-pixel/content-security-policy-csp) *as well — If you're unsure, we're happy to help.*
    {% endstep %}
    {% endstepper %}

{% hint style="success" %}
**Congratulations** :tada:

You successfully set up Page View and Wallet Connect events in Addressable.

*Please allow up to 24 hours for these events to show up in our platform or troubleshooter.*
{% endhint %}

### Debugging Details

**This is only helpful if you're tech-savvy and running into issues.**

* You can see a live feed of events logged by the Pixel every \~60 seconds.
* This is also where you can access the [**Troubleshoot Tool**](https://app.addressable.io/data-sources/addressable-pixel/raw) as well.

  *NOTE: There is a 24 hour delay for the tool to show data in our system as completed.*
* *You can log back into **Addressable**, click on **Data Sources**, click on **View Events** under Addressable Pixel, and go to the* [***Raw Events***](https://app.addressable.io/data-sources/addressable-pixel/raw) *tab.*

***

## <mark style="background-color:yellow;">Custom Events & Revenue Tracking — Recommended</mark>

After setting up the base pixel, we recommend setting up **additional events** to better understand how users interact with your website or platform. Events enable more of your Addressable dashboard by helping you measure meaningful user actions, identify drop-off points, and track conversions more precisely across your funnel.

**Understanding Event Types**

Beyond the base PageView, there are three types of events you can set up. Think of them as three buckets:

<table><thead><tr><th width="199.95172119140625">Type</th><th width="296.141357421875">What It Is</th><th>Example</th></tr></thead><tbody><tr><td><strong>Key Events</strong></td><td>Any notable action a user takes that signifies early progress toward your business goals. These help you understand behavior and measure engagement across your funnel.</td><td>"Started Signup", "Downloaded App", "Viewed Pricing Page"</td></tr><tr><td><strong>Conversion Events</strong></td><td>The 1–3 end-goal actions that mean a user hit a business goal. These are what you'd use to measure campaign success.</td><td>"Completed Registration", "Submitted Lead Form", "Completed Swap"</td></tr><tr><td><strong>Revenue Events</strong></td><td>Financial transactions you want to track — dollars (or tokens) in the platform. Always treated as conversions.</td><td>"Purchase", "First Time Deposit", "Deposit"</td></tr></tbody></table>

{% hint style="info" %}
**How these build on each other:** Key events track progress. Conversions track success. Revenue tracks money. Start with key events, add conversions for the actions that matter most, and layer in revenue tracking when you need ROAS and ROI data.

Not sure which events to set up? Your Addressable team can help you identify the right ones for your funnel.
{% endhint %}

#### <mark style="background-color:yellow;">Wallet Connect Event (User Defined)</mark>

Use this when you want to explicitly track wallet connections from your own UI — for example, when a user connects via your app's wallet connect flow.

{% hint style="warning" %}
Basic wallet connect events are **already tracked automatically** when the PageView pixel is installed. This suggested event is for when you want to track wallet connections from your own connect flow, with the specific wallet address and chain ID that you have access to.
{% endhint %}

{% stepper %}
{% step %}

#### Configure a Wallet Connect event

**Follow These Steps:**

1. Log into [**Google Tag Manager**](https://tagmanager.google.com/)
2. Select the correct **Account/Container**
3. Go to **Tags > New**
4. Click **Tag Configuration** and select **Addressable Pixel** from the "Custom" section
5. Enter your **Pixel ID**
6. Under **Tracking Mode**, select **Event Tracking**
7. Under **Choose Event Tracking Type**, select **Suggested Events**
8. Under **Event Type**, select **Wallet Connect (User Defined)**
9. Enter the **Wallet Address** — use a GTM variable (click the brick icon) to dynamically pass the user's wallet address
10. Enter the **Chain ID** — the EVM chain ID (e.g. `1` for Ethereum Mainnet, `137` for Polygon)

{% hint style="info" %}
We use the [EIP-155](https://eips.ethereum.org/EIPS/eip-155) standard for chain IDs. You can find a list of chain IDs at [chainlist.org](https://chainlist.org/).
{% endhint %}

11. Set the appropriate **Trigger** for when this event should fire
12. Click **Save** and name the tag (e.g. `Addressable - Wallet Connect`)
13. Click **Submit** and then **Publish**
    {% endstep %}
    {% endstepper %}

### <mark style="background-color:yellow;">Setting up Key Events & Conversion Events</mark>

Custom events let you track any action that matters to your funnel using a name you define. These are great for tracking specific steps or milestones that don't fit the suggested events.

{% stepper %}
{% step %}

#### Configure a custom event

**Follow These Steps:**

1. Log into [**Google Tag Manager**](https://tagmanager.google.com/)
2. Select the correct **Account/Container**
3. Go to **Tags > New**
4. Click **Tag Configuration** and select **Addressable Pixel** from the "Custom" section
5. Enter your **Pixel ID**
6. Under **Tracking Mode**, select **Event Tracking**
7. Under **Choose Event Tracking Type**, select **Custom**
8. Enter your **Event Name** — choose an explicit and memorable name, as this is exactly what you'll see in the Addressable dashboard

{% hint style="warning" %}
**Important:** The event name you enter here will be the exact name shown in the Addressable dashboard. Choose something clear and consistent.
{% endhint %}

9. If this event represents a meaningful completion in your funnel, check **Mark as conversion event**

   > **When should I mark something as a conversion?**
   >
   > A conversion is any action that represents meaningful progress, completing a signup, making a purchase, submitting a lead form, or reaching a key milestone. If you'd use it to measure campaign success, it's probably a conversion.
10. Optionally, expand **Additional Event Properties** to send extra context with the event
    1. Click **Add Row** to define each property
    2. **Property Name** → Use a clear name, such as "plan\_type" or "referral\_source"
    3. **Property Value** → Select a dynamic variable defined in GTM using the brick icon
11. Set the appropriate **Trigger** for when this event should fire
12. Click **Save** and name the tag (e.g. `Addressable - Started Checkout`)
13. Click **Submit** and then **Publish**
    {% endstep %}
    {% endstepper %}

### <mark style="background-color:yellow;">Setting up Revenue Tracking</mark>

Revenue events let you track financial transactions — purchases, deposits, swaps — and tie them back to campaigns, users, and attribution. This enables ROI tracking, user-level revenue, ROAS for campaigns, and more in your Addressable dashboard.

{% hint style="info" %}
Revenue events are **always treated as conversions**. You don't need to check a separate conversion box, it's automatic.
{% endhint %}

#### Suggested Revenue Events

The template includes three pre-built revenue event types:

| Event Type                   | When to Use                                                           |
| ---------------------------- | --------------------------------------------------------------------- |
| **Purchase**                 | One-time payments, trades, or purchases                               |
| **First Time Deposit (FTD)** | A user's first deposit — commonly used in gaming, DeFi, and exchanges |
| **Deposit**                  | Any subsequent deposit after the first                                |

For other revenue events (swaps, withdrawals, custom transactions), select **(Custom Revenue Tracking)** and define your own event name.

#### Supported Transaction Types

Each revenue event requires a **Transaction Type**, which determines what additional fields are needed:

<table><thead><tr><th width="200">Transaction Type</th><th width="250">Example Use Case</th><th>Required Fields</th></tr></thead><tbody><tr><td>United States Dollar (USD)</td><td><ul><li>Payments</li><li>Trading</li></ul></td><td><ul><li>Unique Transaction Identifier</li><li>Transaction Amount</li></ul></td></tr><tr><td>Token Contract (Non-Native)</td><td><ul><li>Stablecoin payments</li><li>DeFi interactions</li></ul></td><td><ul><li>Unique Transaction Identifier</li><li>Transaction Amount</li><li>Chain ID</li><li>Token Contract Address</li></ul></td></tr><tr><td>Native Token</td><td><ul><li>Value transfer between wallets</li><li>Staking</li></ul></td><td><ul><li>Unique Transaction Identifier</li><li>Transaction Amount</li><li>Chain ID</li></ul></td></tr><tr><td>Foreign Currency Exchange</td><td><ul><li>Converting EUR to USD</li></ul></td><td><ul><li>Unique Transaction Identifier</li><li>Transaction Amount</li><li>USD Exchange Rate (Spot Rate)</li></ul></td></tr></tbody></table>

{% stepper %}
{% step %}

#### Configure revenue tracking

**Follow These Steps:**

1. Log into [**Google Tag Manager**](https://tagmanager.google.com/)
2. Select the correct **Account/Container**
3. Go to **Tags > New**
4. Click **Tag Configuration** and select **Addressable Pixel** from the "Custom" section
5. Enter your **Pixel ID**
6. Under **Tracking Mode**, select **Event Tracking**
7. Under **Choose Event Tracking Type**, select **Suggested Events**
8. Under **Event Type**, select one of the following:
   * **Purchase** — for one-time payments or trades
   * **First Time Deposit** — for a user's first deposit
   * **Deposit** — for subsequent deposits
   * **(Custom Revenue Tracking)** — for any other revenue event (you'll also enter a custom **Event Name**)
9. Select the **Transaction Type** that matches your use case (see table above)
10. Fill in the required fields:
    * **Unique Transaction Identifier** — A unique string for each transaction (e.g. a blockchain tx hash, order number, or internal ID). This ensures each transaction is processed only once.
    * **Transaction Amount** — The total value of the transaction
11. Fill in any additional fields based on your transaction type:
    * **Chain ID** — The EVM chain ID (shown for Token Contract and Native Token types)
    * **Token Contract Address** — The smart contract address of the token (shown for Token Contract type only)
    * **USD Exchange Rate (Spot Rate)** — The exchange rate at the time of transaction (shown for Foreign Currency Exchange only)

{% hint style="info" %}
Use GTM variables (click the brick icon) to dynamically pass values like transaction amount, transaction ID, and chain ID from your website's dataLayer.
{% endhint %}

12. Set the appropriate **Trigger** for when this event should fire
13. Click **Save** and name the tag (e.g. `Addressable - Purchase`)
14. Click **Submit** and then **Publish**

{% hint style="warning" %}
After setting up revenue tracking, contact your Addressable Customer Service representative to ensure your revenue events are properly configured on our end.
{% endhint %}
{% endstep %}
{% endstepper %}

#### Validate Your Configuration

For proper funnel configuration, we recommend configuring at least:

1. A **PageView** tag (the base pixel, firing on All Pages)
2. At least one **Event Tracking** tag marked as a conversion

You can validate events are coming in through our dashboard, by selecting Data Sources then [Addressable Pixel](https://app.addressable.io/data-sources/addressable-pixel/events) then click on View Events then click Raw Events.

### <mark style="background-color:yellow;">Setting up User Properties</mark>

User Properties let you attach additional data to a user's profile — such as their internal User ID, wallet address, email, or social handles. This enriches the identity data in your Addressable dashboard beyond what the pixel automatically detects.

{% hint style="info" %}
User Properties don't fire as events in your funnel. They enrich the user's profile so you can identify and understand them better across the platform.
{% endhint %}

#### Suggested User Properties

The template includes pre-built property types that Addressable automatically recognizes:

| Property            | What It Is                               |
| ------------------- | ---------------------------------------- |
| **User ID**         | Your platform's internal user identifier |
| **Wallet Address**  | The user's blockchain wallet address     |
| **Email Address**   | The user's email                         |
| **X Handle**        | The user's X (Twitter) handle            |
| **Telegram Handle** | The user's Telegram handle               |

#### Using Suggested Properties

{% stepper %}
{% step %}

#### Configure suggested user properties

**Follow These Steps:**

1. Log into [**Google Tag Manager**](https://tagmanager.google.com/)
2. Select the correct **Account/Container**
3. Go to **Tags > New**
4. Click **Tag Configuration** and select **Addressable Pixel** from the "Custom" section
5. Enter your **Pixel ID**
6. Under **Tracking Mode**, select **User Properties**
7. Under **User Property Name**, select **Suggested**
8. In the table, click **Add Row**:
   * **Property Name** → Select from the dropdown (e.g. User ID, Wallet Address, Email Address)
   * **Property Value** → Use a GTM variable (click the brick icon) to dynamically pass the value
9. Add as many rows as needed — you can send multiple properties at once
10. Set the appropriate **Trigger** for when this should fire (e.g. when a user is logged in)
11. Click **Save** and name the tag (e.g. `Addressable - User Properties`)
12. Click **Submit** and then **Publish**
    {% endstep %}
    {% endstepper %}

#### Using Custom Properties

If you need to send properties not included in the suggested list, select **Custom** under **User Property Name** and define your own key-value pairs in the table.

The steps are the same as above, except you'll type in your own **Property Name** (e.g. "membership\_tier", "signup\_source") instead of selecting from a dropdown.


# Google Tag Manager Template - Migration Guide

This guide covers how to upgrade from the previous Addressable Pixel template (v1) to the new version in Google Tag Manager. The process typically takes 10–15 minutes.

{% hint style="info" %}
For the full setup guide for the new template, see [Pixel via Google Tag Manager (GTM)](https://addressable.gitbook.io/knowledge-base/event-tracking/addressable-pixel/pixel-via-google-tag-manager-gtm). For the previous version's documentation, see [Legacy (v1)](https://addressable.gitbook.io/knowledge-base/event-tracking/addressable-pixel/pixel-via-google-tag-manager-gtm/legacy-v1).
{% endhint %}

## Before You Start

### When did it change

The template was released and updated on **Apr 15th, 2026**. If you installed the template prior, you will need to do this migration, otherwise you can skip to the [proper docs](/knowledge-base/event-tracking/addressable-pixel/pixel-via-google-tag-manager-gtm).

### What changed

The new template replaces the old **Standard/Custom** event selector with three **Tracking Modes**:

* **PageView** — Same as before, tracks page views and automatic wallet connects
* **Event Tracking** — Suggested events (Registration, Wallet Connect, Purchase, FTD, Deposit) and custom events with built-in revenue fields
* **User Properties** — New capability for enriching user profiles (User ID, wallet, email, social handles)

### What to expect

When you accept the template update in GTM:

* The template fields update to the new version
* Existing tags will show the new fields, but previous values (event name, conversion checkbox, object properties) will be cleared
* You will need to reconfigure each tag

Your **Pixel ID**, **triggers**, and **historical data in Addressable** are not affected.

## Migration Steps

{% stepper %}
{% step %}

#### Document your existing tags

Open GTM and go to **Tags**. Most setups have 2–5 Addressable Pixel tags. For each one, record the following:

* **Tag name** in GTM
* **Standard** or **Custom** under Event Name
* **Event name** (e.g. PageView, Lead, Purchase, Subscribe, or a custom name)
* Whether **Mark as conversion event** was checked
* Any **Object Properties** (name/value pairs)
* The **Trigger** assigned to the tag

A screenshot of each tag works fine.
{% endstep %}

{% step %}

#### Map your old tags to the new template

Use the table below to understand how your existing configuration maps to the new template:

<table><thead><tr><th width="250">Old Template (v1)</th><th width="50"></th><th>New Template</th></tr></thead><tbody><tr><td>Standard → PageView</td><td>→</td><td>Tracking Mode: <strong>PageView (default)</strong></td></tr><tr><td>Standard → Lead</td><td>→</td><td>Tracking Mode: <strong>Event Tracking</strong> → Custom → Event Name: "Lead"</td></tr><tr><td>Standard → Purchase</td><td>→</td><td>Tracking Mode: <strong>Event Tracking</strong> → Suggested Events → <strong>Purchase</strong></td></tr><tr><td>Standard → Subscribe</td><td>→</td><td>Tracking Mode: <strong>Event Tracking</strong> → Custom → Event Name: "Subscribe"</td></tr><tr><td>Custom → (any name)</td><td>→</td><td>Tracking Mode: <strong>Event Tracking</strong> → Custom → Event Name: (same name)</td></tr><tr><td>Custom → with conversion checked</td><td>→</td><td>Tracking Mode: <strong>Event Tracking</strong> → Custom → (same name) + check <strong>Mark as conversion event</strong></td></tr><tr><td>Custom → with Object Properties for revenue</td><td>→</td><td>Tracking Mode: <strong>Event Tracking</strong> → Suggested Events → <strong>Purchase</strong>, <strong>FTD</strong>, or <strong>Deposit</strong> (with built-in revenue fields)</td></tr><tr><td><em>No equivalent</em></td><td>→</td><td>Tracking Mode: <strong>User Properties</strong> (new capability)</td></tr></tbody></table>

{% hint style="info" %}
If you were previously using Object Properties to send revenue data (transaction ID, amount, etc.), switch to the **Suggested Events** revenue types in the new template. The fields are now built in — no need to manually type property names.
{% endhint %}
{% endstep %}

{% step %}

#### Accept the template update

{% hint style="warning" %}
**Do not publish after this step.** Accept the update, then reconfigure your tags in Step 4 before publishing. Publishing before reconfiguring will cause your live tags to send events without the correct configuration.
{% endhint %}

Follow These Steps:

* Log into [**Google Tag Manager**](https://tagmanager.google.com/)
* Select the correct **Account/Container**
* You should see a notification bar at the top indicating a template update is available — click **View**
* Click on the **Addressable Pixel** entry
* Review the changes, then click **Accept update**

If you don't see the update notification, go to **Templates** on the left sidebar, find **Addressable Pixel** under Tag Templates, click on it, and check for an update prompt.
{% endstep %}

{% step %}

#### Reconfigure each tag

Using your notes from Step 1 and the mapping from Step 2, update each tag:

* Go to **Tags** on the left sidebar
* Click on the tag to edit it
* Your **Pixel ID** should still be populated
* Set the correct **Tracking Mode** and fill in the fields according to the mapping table
* Verify the **Trigger** is still correctly assigned
* Click **Save**

Alternatively, you can delete the old tags and create new ones from scratch using the [setup guide](https://addressable.gitbook.io/knowledge-base/event-tracking/addressable-pixel/pixel-via-google-tag-manager-gtm). The result is the same.
{% endstep %}

{% step %}

#### Test and publish

Once all tags are reconfigured:

* Use GTM's **Preview mode** to verify each tag fires correctly
* Go back to **Overview** on the left sidebar
* Click **Submit** on the top right (blue button)
* Give the release a clear name, such as `Migrated to Addressable Pixel v2`
* Click **Publish** on the top right (blue button)
  {% endstep %}

{% step %}

#### Validate in Addressable

After publishing, verify events are flowing correctly:

* Log into **Addressable** and click **Data Sources**
* Click **View Events** under Addressable Pixel
* Go to the [**Raw Events**](https://app.addressable.io/data-sources/addressable-pixel/raw) tab
* Confirm your events are showing up with the correct names and properties

{% hint style="success" %}
Once validated, your migration is complete. Please allow up to 24 hours for events to fully populate in the dashboard.
{% endhint %}
{% endstep %}
{% endstepper %}

## Common Questions

<details>

<summary>Will I lose historical data?</summary>

No. Historical event data in Addressable is not affected. The template change only affects how future events are sent.

</details>

<details>

<summary>Can I use the old and new template at the same time?</summary>

No. GTM allows one version of a community template per workspace. Accepting the update applies to all tags using the template.

</details>

<details>

<summary>I already accepted the update without documenting my tags.</summary>

Your tags still exist — they just have empty configurations. Go to GTM's **Version History** (under Admin) to view previous published versions and see what your tags looked like before the update.

</details>

<details>

<summary>Do I need to change my Pixel ID?</summary>

No. Your Pixel ID stays the same. The new template validates the format more strictly (32-character hex string), but existing valid IDs are unaffected.

</details>

<details>

<summary>I was sending revenue data using Object Properties.</summary>

Use the new **Suggested Events** revenue types (Purchase, FTD, Deposit, or Custom Revenue Tracking). The template now has dedicated fields for Transaction ID, Amount, Chain ID, Token Contract Address, and Exchange Rate. See the [Revenue Tracking section](https://addressable.gitbook.io/knowledge-base/event-tracking/addressable-pixel/pixel-via-google-tag-manager-gtm#setting-up-revenue-tracking) in the setup guide.

</details>


# DEPRECATED: Pixel via Google Tag Manager

{% hint style="danger" %}
This is the legacy version. If you're not using the previous version (prior to Apr 15th 2026), then please view the latest version, which can be [found here](/knowledge-base/event-tracking/addressable-pixel/pixel-via-google-tag-manager-gtm).
{% endhint %}

## Enabled with the Addressable Pixel

Once set up, the following features become availabl&#x65;*:*

* **User Insights** — Insights into each of your users
* **Clear Reporting** — In-Depth marketing & funnel reports
* **Campaign Details** — Detailed attribution for paid campaigns

***

## <mark style="background-color:yellow;">Getting Started —</mark> <mark style="background-color:yellow;"></mark>*<mark style="background-color:yellow;">Required</mark>*

### Set up the Base Pixel

The following steps will walk you through setting up the base pixel on your website or platform. This will enable attribution and additional insights for each of your users. If you need any help, please let us know.

<mark style="background-color:yellow;">**— Step 1 —**</mark>

*First, we need to get your Pixel ID for the next step*

**Follow These Steps:**

1. Log into **Addressable** and click **Data Sources**
2. Select [**Addressable Pixel**](https://app.addressable.io/data-sources/addressable-pixel/events) then click on **Connect**
3. Copy the **Pixel ID** for the third step
4. Either keep this page open or paste the ID somewhere else

#### <mark style="background-color:yellow;">**— Step 2 —**</mark>

*Second, we need to add the official* [***Community Template***](https://tagmanager.google.com/gallery/#/owners/addressableid/templates/addressable-gtm-template) *for the Addressable Pixel.*

**Follow These Steps:**

1. Log into [**Google Tag Manager**](https://tagmanager.google.com/)
2. Select the correct **Account/Container**
3. On the left sidebar, click on **Template**
4. Under **Tag Templates**, click the **Search Gallery** button
5. Click on the **Magnifying Glass** icon (Search icon) on the top right of the side panel
6. Search for *`Addressable Pixel`* and select it
7. Click the **Add to workspace** button
8. Click the **Add** button

<mark style="background-color:yellow;">**— Step 3 —**</mark>

*Third, we need to configure the newly added template.*

**Follow These Steps:**

1. *Back to Google Tag Manager, aka the tab from Step 1*
2. On the left sidebar, click on **Tags**
3. Then click on **New** button
4. Click **Tag Configuration** and select **Addressable Pixel** from the "Custom" section
5. Paste your **Pixel ID** from Step 1.
6. Make sure the following is set:
   1. Do not rename yet — it'll ask you when you save
   2. Make sure to keep "Standard" and "Pageview" selected under Event Name
   3. Leave "Mark as conversion event" as unchecked (do not check)
7. Click **Triggering** (scroll down) and select **All Pages** under "Chose a trigger".
8. Click Save.
9. In the Rename **Tab popup**, enter `Addressable - Page View`  — This is n*ot required.*
10. Go back to **Overview** on the left sidebar
11. Click **Submit** on the top right (blue button)
12. Give the release clear name, such as `Added Addressable Pixel`
13. Click **Publish** on the top right (blue button)
14. *Note: If your platform has **Content Security Policy** (CSP), you will need to* [***configure our domains***](https://addressable.gitbook.io/knowledge-base/integrations/addressable-pixel/configure-content-security-policy-csp) *as well — If you're unsure, we're happy to help.*

{% hint style="success" %}
**Congratulations** :tada:

You successfully set up Page View and Wallet Connect events in Addressable.

*Please allow up to 24 hours for these events to show up in our platform.*
{% endhint %}

### Debugging Details

(*Advanced)* This is only helpful if you're tech-savvy and running into issues.

* You can see a live feed of event's logged by the Pixel every \~60 seconds.
* This is also where you can access the [Troubleshoot Tool](https://app.addressable.io/data-sources/addressable-pixel/raw) as well.
* *You can log back into **Addressable**, click on **Data Sources**, click on **View Events** under Addressable Pixel, and go to the* [***Raw Events***](https://app.addressable.io/data-sources/addressable-pixel/raw) *tab.*

***

## <mark style="background-color:yellow;">Custom Events & Revenue —</mark> <mark style="background-color:yellow;"></mark>*<mark style="background-color:yellow;">Advanced</mark>*

For those who want additional insights and information within the Addressable Pixel, we allow you to set up and track Custom Events as well as Revenue.

Custom events enable more in your Addressable dashboard by helping you measure meaningful user actions, identify drop-off points, and track conversions more precisely across your funnel.

**Jump to:**

* [Custom Events](#to-custom-events)
* [Revenue Reporting](#configure-revenue-reporting)

### Setting up Custom Events <a href="#to-custom-events" id="to-custom-events"></a>

After setting up the Addressable Pixel, we recommend setting up **custom events** to better understand how users interact with your website or platform.

{% hint style="info" %}
It's recommended to define at least one custom event as a **conversion event** to get deeper insight on those who complete the most impactful events.
{% endhint %}

#### **Follow These Steps:**

1. Log into [**Google Tag Manager**](https://tagmanager.google.com/)

2. Select the correct **Account/Container**

3. Go to **Tags > New**, and give your tag a descriptive name (such as "Addressable - Signing Up")

4. Click **Tag Configuration** and select **Addressable Pixel** from the "Custom" section.

5. Enter your **Pixel ID** — which can be found in Addressable by selecting Data Sources then [Addressable Pixel](https://app.addressable.io/data-sources/addressable-pixel/events) then click on Connect.

6. Under **Event Name**, select **Custom**.

7. **Name** your custom event — such as "Signing Up", "Booking a Demo", or "Completing a Purchase"

   <div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p>Important: This will be the name that you will see in the Addressable Dashboard</p></div>

8. If the event is a **conversion**, check the corresponding box.

   > **What is an conversion event?**
   >
   > Any meaningful action that represents progress in your funnel. This can be events such as completing a signup, making a purchase, or submitting a lead form. These events are often used to measure the success of your campaigns or optimize ad targeting.

9. Optionally, add **Properties** for added context
   1. Below the event type and name, you’ll see an **Object Properties** section.
   2. Click **Add Row** to define each property:
      1. **Property Name** → Use a clear name, such as "Amount" or "Transaction ID"
      2. **Property Value** → Select a dynamic variable defined in GTM using the brick icon.
   3. For more information on GTM's properties, see [Google's docs](https://support.google.com/tagmanager/topic/7679384?visit_id=638899367178956050-2888154303\&rd=1).

10. Click **Save**

11. Click **Submit** and then **Publish**

{% hint style="danger" %}
Reminder: You do **not** need to manually configure a 'Wallet Connect' event — these events are tracked automatically when the pixel is installed across all pages.
{% endhint %}

#### Validate Your Configuration

For proper funnel configuration, please configure at least two events:

1. Standard **Page View** event.
2. At least one **Custom Event** with Conversion checked.

You can validate events are coming in through our dashboard, by selecting Data Sources then [Addressable Pixel](https://app.addressable.io/data-sources/addressable-pixel/events) then click on View Events then click Raw Events.

***

### Configure Revenue Reporting <a href="#to-revenue-reporting" id="to-revenue-reporting"></a>

Enabling Revenue Reporting enables ROI tracking, User-level revenue, ROAS for campaigns, and more.

{% hint style="warning" %}
**Revenue tracking is sent using Custom Events** and follow similar steps to any other event set up.

Events with revenue enabled still function the same as any other customer event but have this added feature. As such, a single event can serve a dual purpose for funnel tracking and revenue tracking.
{% endhint %}

#### Supported Transaction Type Examples

When configuring a custom event, you can send additional Properties, which Google Tag Manager calls "Object Properties". These are simply additional context sent along the event when it fires.

<table><thead><tr><th width="166.4183349609375">Transaction Type</th><th width="256.2535400390625">Example Use Case</th><th>Required "Object Properties"</th></tr></thead><tbody><tr><td>USD</td><td><ul><li>Payments</li><li>Trading</li></ul></td><td><ul><li>Unique Transaction Identifier</li><li>Transaction Amount</li></ul></td></tr><tr><td>Token</td><td><ul><li>Stablecoin payments</li><li>DeFi interactions</li></ul></td><td><ul><li>Unique Transaction Identifier</li><li>Transaction Amount</li><li>Network/Chain ID</li><li>Token Contract Address</li></ul></td></tr><tr><td>Native Token</td><td><ul><li>Value transfer between wallets</li><li>Staking</li></ul></td><td><ul><li>Unique Transaction Identifier</li><li>Transaction Amount</li><li>Network/Chain ID</li></ul><p></p></td></tr><tr><td>Foreign Currency Exchange</td><td><ul><li>Converting EUR to USD</li></ul></td><td><p></p><ul><li>Unique Transaction Identifier</li><li>Transaction Amount</li><li>USD Exchange Rate (at time of transaction)</li></ul></td></tr></tbody></table>

#### **Follow These Steps:**

1. Log into [**Google Tag Manager**](https://tagmanager.google.com/)
2. Select the correct **Account/Container**
3. Go to **Tags > New**, and give your tag a descriptive name (such as "Addressable - Signing Up")
4. Click **Tag Configuration** and select **Addressable Pixel** from the "Custom" section.
5. Enter your **Pixel ID** — which can be found in Addressable by selecting Data Sources then [Addressable Pixel](https://app.addressable.io/data-sources/addressable-pixel/events) then click on Connect.
6. Under **Event Name**, select **Custom**.
7. **Name** your custom event — such as "Signing Up", "Booking a Demo", or "Completing a Purchase"

   <div data-gb-custom-block data-tag="hint" data-style="success" class="hint hint-success"><p>Important: This will be the name that you will see in the Addressable Dashboard</p></div>
8. If the event is a **conversion**, check the corresponding box. It's safe to assume it is.
9. Add the revenue **Properties** for added context:
   1. Below the event type and name, you’ll see an **Object Properties** section.
   2. Click **Add Row** to define each property:
      1. **Property Name** → Use a clear name, such as "Amount" or "Transaction ID"
      2. **Property Value** → Select a dynamic variable defined in GTM using the brick icon.
10. Click **Save**
11. Click **Submit** and then **Publish**
12. Contact Addressable for final validation and configuration.

{% hint style="warning" %}
Don't forget to contact your Customer Service representative to ensure your revenue events are properly configured and everything is set up on our end.
{% endhint %}


# Pixel via Javascript SDK (JS)

**In this guide, you'll learn how to set up the Addressable Pixel using the Javascript SDK.**

{% hint style="warning" %}
If you already have *Google Tag Manager (GTM)* set up, consider that [implementation path](/knowledge-base/event-tracking/addressable-pixel/pixel-via-google-tag-manager-gtm) as well.
{% endhint %}

## Enabled with the Addressable Pixel

Once set up, the following features become availabl&#x65;*:*

* **User Insights** — Insights into each of your users
* **Clear Reporting** — In-Depth marketing & funnel reports
* **Campaign Details** — Detailed attribution for paid campaigns

***

## <mark style="background-color:yellow;">Getting Started —</mark> <mark style="background-color:yellow;"></mark>*<mark style="background-color:yellow;">Required</mark>*

### Set up the Base Pixel

The following steps will walk you through setting up the base pixel on your website or platform. This will enable attribution and additional insights for each of your users. If you need any help, please let us know.

#### <mark style="background-color:yellow;">**— Step 1 —**</mark>

*First, we need to get your Pixel ID for the next step*

**Follow These Steps:**

1. Log into **Addressable** and click **Data Sources**
2. Select [**Addressable Pixel**](https://app.addressable.io/data-sources/addressable-pixel/events) then click on **Connect**
3. Copy the **Pixel ID** for the third step
4. Either keep this page open or paste the ID somewhere else

#### <mark style="background-color:yellow;">**— Step 2 —**</mark>

*Second, we need to add the official* [*Community Template*](https://tagmanager.google.com/gallery/#/owners/addressableid/templates/addressable-gtm-template) *for the Addressable Pixel.*

**Follow These Steps:**

1. Copy the **JavaScript Base Snippet** below.
2. Paste the script inside the `<head>` tag
   1. Importantly, this code needs to fire on **every page** across the website, app, and landing pages.
3. Replace `REPLACE_PIXEL_ID_HERE` (Line 12) with your actual **Pixel ID** from Step 1.
4. If your platform has **Content Security Policy** (CSP), you will need to [**configure our domains**](https://addressable.gitbook.io/knowledge-base/integrations/addressable-pixel/configure-content-security-policy-csp) as well — *If you're unsure, we're happy to help.*

{% hint style="warning" %}
**Once installed**, the base pixel will automatically trigger a **Page View** and Wallet events on every page the script loads on. There's **no need** to track them manually.
{% endhint %}

#### **JavaScript Snippet**

{% tabs %}
{% tab title="JavaScript" %}
{% code lineNumbers="true" %}

```javascript
<!-- Addressable Pixel base code -->
<script>
!function(w, d){
    w.__adrsbl = {
        queue: [],
        run: function(){
            this.queue.push(arguments);
        }
    };
    var s = d.createElement('script');
    s.async = true;
    s.src = 'https://tag.adrsbl.io/p.js?tid=REPLACE_PIXEL_ID_HERE';
    var b = d.getElementsByTagName('script')[0];
    b.parentNode.insertBefore(s, b);
}(window, document);
</script>
<!-- End Addressable Pixel base code -->
```

{% endcode %}
{% endtab %}
{% endtabs %}

{% hint style="success" %}
**Congratulations** :tada:

You successfully set up Page View and Wallet Connect events in Addressable.

*Please allow up to 24 hours for these events to show up in our platform.*
{% endhint %}

### Debugging Tools

* You can see a live feed of event's logged by the Pixel every \~60 seconds.
* This is also where you can access the [Troubleshoot Tool](https://app.addressable.io/data-sources/addressable-pixel/raw) as well.
* *You can log back into **Addressable**, click on **Data Sources**, click on **View Events** under Addressable Pixel, and go to the* [***Raw Events***](https://app.addressable.io/data-sources/addressable-pixel/raw) *tab.*

***

## <mark style="background-color:yellow;">Custom Events & Revenue —</mark> <mark style="background-color:yellow;"></mark>*<mark style="background-color:yellow;">Advanced</mark>*

For those who want additional insights and information within the Addressable Pixel, we allow you to set up and track Custom Events as well as Revenue.

Custom events enable more in your Addressable dashboard by helping you measure meaningful user actions, identify drop-off points, and track conversions more precisely across your funnel.

**Jump to:**

* [Custom Events](#to-custom-events)
* [Revenue Reporting](#to-revenue-reporting)

### Setting up Custom Events <a href="#to-custom-events" id="to-custom-events"></a>

After setting up the Addressable Pixel, we recommend setting up **custom events** to better understand how users interact with your website or platform.

{% hint style="info" %}
It's recommended to define at least one custom event as a **conversion event** to get deeper insight on those who complete the most impactful events.
{% endhint %}

#### **Code Syntax**

{% tabs %}
{% tab title="JavaScript" %}

```javascript
window.__adrsbl.run(event_name, is_conversion, properties)
```

{% endtab %}
{% endtabs %}

Parameters:

* `event_name` *(string)* — A clear name of the event, displayed in Addressable
* `is_conversion` *(boolean) —* Set to `true` if the event is a conversion; otherwise `false`&#x20;
* `properties` *(optional array of objects)* — Additional details and context about the event

#### Tips for Each Parameter

* **Event Name:** This is a clear name of the event that will be displayed in the Addressable Dashboard — for example `"signup"` or `"download_app"` .
* **Conversion Events:** A conversion event is any meaningful action that represents progress in your funnel—such as completing a signup, starting a checkout, making a purchase.
* **Optional Properties:** Each property is defined as an object with the keys of `name` and `value`. You can define up to 6 properties per event.

{% hint style="danger" %}
Reminder: You do **not** need to manually configure a 'Wallet Connect' event — these events are tracked automatically when the pixel is installed across all pages.
{% endhint %}

#### Code Examples

This sends a **purchase** event, marks it as a **conversion**, and includes two properties:

```
window.__adrsbl.run('purchase', true, [
    { "name": "transaction", "value": "VAC123D432" },
    { "name": "amount", "value": 50 }
]);
```

This sends a **downloaded app** event that is **not** a conversion, and one property without a value:

```
window.__adrsbl.run('downloaded_app', false, [
  { "name": "cta_location", "value": "navbar" }
]);
```

This sends a **primary click** event, marks it as a **conversion**, and did not include any properties:

```
window.__adrsbl.run('primary_click', true, '');
```

#### Validate Configuration

For proper funnel configuration, please configure at least two events:

1. Standard **Page View** event.
2. At least one **Custom Event** with `is_conversion` set to true.

You can validate events are coming in through our dashboard, by selecting Data Sources then [Addressable Pixel](https://app.addressable.io/data-sources/addressable-pixel/events) then click on View Events then click Raw Events.

***

### Configure Revenue Reporting <a href="#to-revenue-reporting" id="to-revenue-reporting"></a>

Enabling Revenue Reporting enables ROI tracking, User-level revenue, ROAS for campaigns, and more.

{% hint style="warning" %}
**Revenue tracking is sent using Custom Events** and follow similar steps to any other event set up.

Events with revenue enabled still function the same as any other customer event but have this added feature. As such, a single event can serve a dual purpose for funnel tracking and revenue tracking.
{% endhint %}

#### Supported Transaction Type Examples

When configuring a custom event, you can send additional Properties that include what's needed to configure Revenue Reporting. These are simply additional context sent along the event when it fires.

Revenue must be reported in **one of the** **four types of transaction amounts**, each of which have thier benefits, but generally the USD is the recommended pathway.

**The Four (4) Options for Transactions:**

<table data-card-size="large" data-view="cards" data-full-width="true"><thead><tr><th>Transaction Type</th><th>Example Use Case</th><th>Required Properties"</th><th>Code Examples</th></tr></thead><tbody><tr><td><strong>USD</strong> (Recommended)</td><td><ul><li>Payments</li><li>Trading</li></ul></td><td><ul><li>Unique Transaction Identifier</li><li>Transaction Amount</li></ul></td><td><pre class="language-javascript"><code class="lang-javascript">window.__adrsbl.run('purchase', true, [
  { "name": "transaction_id", "value": "VAC123D432" },
  { "name": "transaction_amount", "value": 50 }
]);
</code></pre></td></tr><tr><td><strong>Foreign Currency Exchange</strong></td><td><ul><li>Converting EUR to USD</li></ul></td><td><p></p><ul><li>Unique Transaction Identifier</li><li>Transaction Amount</li><li>USD Exchange Rate (at time of transaction)</li></ul></td><td><pre class="language-javascript"><code class="lang-javascript">window.__adrsbl.run('exchange', true, [
  { "name": "transaction_id", "value": "VAC123D432" },
  { "name": "transaction_amount", "value": 150 },
  { "name": "exchange_rate", "value": "0.870132" }
]);
</code></pre></td></tr><tr><td><strong>Native Token</strong></td><td><ul><li>Value transfer between wallets</li><li>Staking</li></ul></td><td><ul><li>Unique Transaction Identifier</li><li>Transaction Amount</li><li>Network/Chain ID</li></ul><p></p></td><td><pre class="language-javascript"><code class="lang-javascript">window.__adrsbl.run('transfer', true, [
  { "name": "transaction_id", "value": "VAC123D432" },
  { "name": "transaction_amount", "value": 150 },
  {" name": "network_id", "value": "8453" }
]);
</code></pre></td></tr><tr><td><strong>Contract Token</strong></td><td><ul><li>Stablecoin payments</li><li>DeFi interactions</li></ul></td><td><ul><li>Unique Transaction Identifier</li><li>Transaction Amount</li><li>Network/Chain ID</li><li>Token Contract Address</li></ul></td><td><pre class="language-javascript"><code class="lang-javascript">window.__adrsbl.run('payment', true, [
  { "name": "transaction_id", "value": "VAC123D432" },
  { "name": "transaction_amount", "value": 100 },
  { "name": "network_id", "value": "8453" },
  { "name": "token_address": "0x0000000000000000000000000000000000000000" }
]);
</code></pre></td></tr></tbody></table>

#### **Follow These Steps:**

1. Follow the same steps as setting up a [custom event](#config-custom-event).
2. When it comes to defining Parameters, include the correct ones (from table).
3. Contact Addressable for final validation and configuration.

{% hint style="warning" %}
Don't forget to contact your Customer Service representative to ensure your revenue events are properly configured and everything is set up on our end.
{% endhint %}


# Content Security Policy (CSP)

If your website uses a Content Security Policy (CSP), you’ll need to allow Addressable’s scripts and images to load properly.

{% hint style="success" %}
**When Is This Needed**

Use this if:

* You have CSP headers configured on your site
* You see blocked requests in the browser console related to `adrsbl.io` or `adform.net`&#x20;
  {% endhint %}

### Required CSP Directives

To support Addressable and Adform tracking, update your CSP to include the following domains:

#### **For scripts:**

```
script-src
  https://*.adrsbl.io
  
script-src-elem
  https://*.adrsbl.io
  
connect-src
  https://*.adrsbl.io
```

#### **For images:**

```
img-src
  https://*.adrsbl.io
  https://*.adform.net;
```

These rules ensure the Addressable Pixel and Adform integrations function correctly without CSP-related errors.

{% hint style="warning" %}
If your policy uses a `default-src` directive with `'none'`, make sure to explicitly allow these sources in the appropriate directives above.
{% endhint %}


# Additional Steps for Single Page Application (SPA)

If your website is a Single-Page Application or Progressive Web App, you may need one additional step so PageView events are tracked on client-side navigations.

This can apply to websites built with frameworks like **React**, **Next.js**, **Vue**, **Nuxt**, and **Angular** — specifically when the site uses client-side routing where the URL changes without a full page reload.

{% hint style="success" %}
**When Is This Needed**

Use this if:

* Your website uses client-side routing
* The URL changes without a full page reload
* You see the first pageview but not subsequent soft navigations
  {% endhint %}

### Why This Happens

The Addressable Pixel tracks a **PageView** when the page loads. On SPAs, most navigations happen without a full reload, so only the first pageview is captured automatically.

To track subsequent page changes, you need to trigger a **PageView** on each route change.

{% hint style="warning" %}
Make sure the **URL updates first** and the **PageView fires second**. This ensures Addressable records the correct `page_url` for the new page.

Also be careful not to send duplicate pageviews — this can happen if multiple triggers fire on the same route change, or if both GTM and JavaScript are sending the same event.
{% endhint %}

***

## Google Tag Manager (GTM)

Use this section if your Addressable Pixel is installed through **Google Tag Manager**.

### Follow These Steps

The standard **All Pages** trigger only fires on full page loads. You need an additional trigger for soft navigations.

1. Log into [**Google Tag Manager**](https://tagmanager.google.com/)
2. Select the correct **Account/Container**
3. Go to your existing **Addressable Pixel** tag configured for **PageView**
4. Add an additional trigger such as **History Change** or a custom `dataLayer` event
5. Make sure the trigger fires only once per route change
6. Use **Preview** mode to verify the tag fires correctly on soft navigations
7. **Submit** and **Publish**

{% hint style="warning" %}
If you are using GTM, do not also add a separate JavaScript implementation for the same pixel. Using both together is not supported and may result in duplicate events.
{% endhint %}

***

## JavaScript SDK (JS)

Use this section if your Addressable Pixel is installed using the **JavaScript SDK**.

### Follow These Steps

After each client-side route change, fire:

```javascript
window.__adrsbl.run('PageView', false);
```

Note: Make sure the URL has already updated before calling this. For example:

```javascript
history.pushState({}, '', '/swap');
window.__adrsbl.run('PageView', false);
```

{% hint style="danger" %}
Please **do not** manually send a **PageView** for the **initial page load** as the base pixel ***already*** handles that. This method should only be used for soft navigations after the first load.
{% endhint %}


# Addressable Event API

**In this guide, you'll learn how to set up the Event Tracking or Postback using the Events API.**

The Addressable Event API lets you track key actions on your platform—like page views, signups, and first time deposit—and set up proper attribution with or without the Addressable Pixel.

***

### Enabled By The Event API

By setting up the Addressable Events API, the following features become available *depending your plan:*

* **Campaign Manager** – Understand visitor behavior, calculate ROAS, revenue tracking, and attribute conversions to your Paid Campaigns.
* **User Radar** — Understand your users, enriched with Web2 attribution and Web3 on-chain activities.
* **Marketing Report** – Understand the effectiveness of all your marketing efforts, even if it's not through Addressable.

***

## <mark style="background-color:yellow;">Getting Started</mark>

Within this section you'll find a easy to follow guide and multiple detailed reference documents for the API and attribution setup.

**Step-by-Step (Recommended)**\
Follow this guide for step-by-step instructions — [Go to Guide](/knowledge-base/event-tracking/addressable-event-api/postback-event-api-setup-guide)

**Additional Reference:**

* Event API Docs — [Go to Page](/knowledge-base/event-tracking/addressable-event-api/events-api-reference)
* Event API Attribution Doc — [Go to Page](/knowledge-base/event-tracking/addressable-event-api/event-api-attribution)


# Postback Event API Setup Guide

Track events with Addressable's server-to-server postback

Addressable’s Events API is a modern **server-to-server postback**: your backend reports key funnel events (page\_views, signups, wallet connects, purchases, etc.) so they can be attributed to campaigns and used for optimization.

## <mark style="background-color:yellow;">Choose Setup Path</mark>

#### **Path A (Recommended):** Addressable Pixel + Postback API

* Use this if you can install the Addressable Pixel on your site.
* This is the recommended setup for campaign attribution and is the easiest to maintain.

#### **Path B (No Pixel At All):** Postback API only

* Only use this if you **do not have** a pixel set up on your Addressable account.
* Some organizations have compliance policies that restrict tracking pixels.
* If you have a true “no pixel” policy, follow the S2S-only setup.

> **Important**: Only use Path B if the Pixel is not installed at all and cannot be installed.&#x20;

***

## <mark style="background-color:yellow;">Path A (Recommended):</mark>

If you’re using both the Pixel and the Events API, follow this path.

**Process Overview**

1. Install the Addressable Pixel (Page View is automatic)
2. Capture the browser id `___adrsbl_nonce` and store it with your user record
3. Send Events API postbacks with `properties.user_id = ___adrsbl_nonce` for attribution

### Step-by-Step

#### <mark style="background-color:yellow;">**— Step 1 —**</mark>

**Install the Addressable Pixel**

First you must install the Pixel (via GTM or JS) on your website or platform, using [this guide](https://addressable.gitbook.io/knowledge-base/integrations/addressable-pixel). Once installed, the Pixel manages sessions and user IDs on-site.

#### <mark style="background-color:yellow;">**— Step 2 —**</mark>

**Capture Addressable's ID for Users**

The Addressable Pixel creates a browser-side identifier stored in local storage:

* Key: `___adrsbl_nonce`

Read it on page load (or early in the session):

```js
const adrsblNonce = window.localStorage.getItem("___adrsbl_nonce");
```

> Debug: If `adrsblNonce` is `null`, confirm the Pixel is loading and firing on that page.

#### <mark style="background-color:yellow;">**— Step 3 —**</mark>

**Store the nonce with your user record (backend)**

When you know who the user is (login, signup, wallet connect, etc.), persist:

* your internal identifier (user id / wallet / etc.)
* the latest `adrsblNonce` you saw for them

**Example flow:** (frontend → backend)

```js
await fetch("/api/identify-addressable", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    userId: "<your-internal-user-id-or-wallet>",
    addressableUserId: adrsblNonce
  })
});
```

#### <mark style="background-color:yellow;">**— Step 4 —**</mark>

**Send postbacks via the Events API (Server-to-Server)**

#### A. Endpoint + parameters

* Endpoint: `https://tag.adrsbl.io/events/prod_standard_stage/p.png`
* Query params:
  * `is_conversion=true|false`
  * `data` = base64-wrapped JSON payload

{% hint style="info" %}
NOTE: Requests must be **URL-encoded**.
{% endhint %}

#### B. Required attribution field (Pixel + API join)

In your `data` JSON, include:

```json
"properties": [
  { "name": "user_id", "value": "<___adrsbl_nonce value>" }
]
```

This “join key” allows Addressable to attribute server-side events to the same user sessions the Pixel observed. ([Addressable](https://addressable.gitbook.io/knowledge-base/apis/events-api-server-to-server/attribution-with-addressable-pixel-recommended))

#### C. Required headers

Include these headers:

* `Content-Type: application/json` (mandatory) ([Addressable](https://addressable.gitbook.io/knowledge-base/apis/events-api-server-to-server))
* `X-Forwarded-For: <user original IP>` (mandatory) ([Addressable](https://addressable.gitbook.io/knowledge-base/apis/events-api-server-to-server))
* `Accept-Language` / `User-Agent` (optional but recommended: pass the user’s original values) ([Addressable](https://addressable.gitbook.io/knowledge-base/apis/events-api-server-to-server))

#### D. Use the Events API Example – Recommended

The Events API docs include a ready-to-use code example showing the correct encoding and request format.\
The only “Pixel + API” requirement is that your `properties` includes `user_id` with the stored nonce value.

#### <mark style="background-color:yellow;">**— Step 5 —**</mark>

**While this is optional, it is recommended. Include revenue parameters for ROAS and deduplication.**

{% hint style="info" %}
When possible send the revenue events over the Pixel, if that's not possible, this will help you set it up using an API event call.
{% endhint %}

If you want ROAS + deduplication support, include revenue-related parameters such as:

* `transaction_amount_usd`
* `transaction_unique_id`&#x20;

Next Step: [Follow the guide by scroll down to Revenue Reporting](#revenue-reporting).

***

## <mark style="background-color:yellow;">Path B (No Pixel At All):</mark>

This is for organizations with a true “no pixel” policy.

**Process Overview**

1. Generate/choose a persistent unique user identifier (`user_id`)
2. Send a server-side `page_view` event that includes UTMs and `ViewID`
3. Send funnel + conversion events using the same `user_id`
4. (Optional) Include revenue parameters for ROAS + deduplication

**Overview Callout**

In this setup, **you** must provide what the Pixel would normally provide:

* a persistent `user_id`
* a `page_view` (site visit) event
* tracking parameters (UTMs + `ViewID`) so Addressable can attribute post-click and post-view

### Step-by-Step

#### <mark style="background-color:yellow;">**— Step 1 —**</mark>

**Use a persistent unique user id**

Each user must have a unique identifier that persists for at least \~30 days so Addressable can correlate multiple events to the same user.

**Examples:**

* internal user id
* wallet address
* anonymous user id stored in your system

> In Path B, `user_id` is **your** identifier. (In Path A, `user_id` is reserved for the nonce join.)

#### <mark style="background-color:yellow;">**— Step 2 —**</mark>

**Send `page_view` via S2S and include tracking parameters**

{% hint style="danger" %}
Without the Pixel, it is this **`page_view`** server-side event that **enables attribution** calculations.
{% endhint %}

#### Post-click attribution (UTMs)

When a user clicks an ad, UTMs like `utm_campaign`, `utm_source`, `utm_medium`, `utm_content`, and `clickID` should be captured from the page URL and reported with the `page_view` event. ([Addressable](https://addressable.gitbook.io/knowledge-base/apis/events-api-server-to-server/attribution-without-the-addressable-pixel))

#### Post-view attribution (ViewID)

When a user views (but doesn’t click) an ad, a unique `ViewID` is provided. When the user later visits/acts, include:

* `user_id`
* the original `ViewID` ([Addressable](https://addressable.gitbook.io/knowledge-base/apis/events-api-server-to-server/attribution-without-the-addressable-pixel))

#### Where do these go in the Events API payload?

The Events API provides a `properties` array for key/value parameters. ([Addressable](https://addressable.gitbook.io/knowledge-base/apis/events-api-server-to-server))\
In “no pixel” mode, include your tracking params in `properties` (examples):

```json
"properties": [
  { "name": "user_id", "value": "<your persistent user id>" },
  { "name": "utm_campaign", "value": "<value>" },
  { "name": "utm_source", "value": "<value>" },
  { "name": "utm_medium", "value": "<value>" },
  { "name": "utm_content", "value": "<value>" },
  { "name": "clickID", "value": "<value>" },
  { "name": "ViewID", "value": "<value>" }
]
```

> You don’t need every field every time — but whatever tracking params exist for that session should be included on the `page_view`. ([Addressable](https://addressable.gitbook.io/knowledge-base/apis/events-api-server-to-server/attribution-without-the-addressable-pixel))

#### <mark style="background-color:yellow;">**— Step 3 —**</mark>

**Send funnel events + conversions via S2S**

Report funnel events via the S2S API (examples include): `page_view`, `button_click`, `sign_up`, `wallet_connect`, `conversion`.

Use:

* `is_conversion=true` for conversion events
* `is_conversion=false` for everything else

{% hint style="warning" %}
Always include the same persistent `user_id` so events chain together.
{% endhint %}

#### <mark style="background-color:yellow;">**— Step 4 —**</mark>

**While this is optional, it is recommended. Include revenue parameters for ROAS and deduplication**

If you want ROAS + deduplication support, include revenue-related parameters such as:

* `transaction_amount_usd`
* `transaction_unique_id`&#x20;

Next Step: [Follow the guide by scroll down to Revenue Reporting](#revenue-reporting).

***

## <mark style="background-color:yellow;">Revenue Reporting</mark>

Enabling Revenue Reporting unlocks ROI tracking, user-level revenue, ROAS for campaigns, and more in your Addressable dashboard. Revenue reporting applies to **both Path A and Path B**. Regardless of your setup, include revenue properties on any conversion event where a financial transaction occurs.

{% hint style="info" %}
Revenue events are usually sent as conversions. Therefore it's generally recommended to set `is_conversion=true` on any event that includes revenue properties.
{% endhint %}

#### Supported Transaction Types

Revenue must be reported using **one of the four transaction types** below. Choose the one that matches your transaction model — USD is recommended for most use cases.

<table data-card-size="large" data-view="cards" data-full-width="true"><thead><tr><th>Transaction Type</th><th>Example Use Case</th><th>Required Properties</th><th>Code Example</th></tr></thead><tbody><tr><td><strong>USD</strong> (Recommended)</td><td><ul><li>Payments</li><li>Trading</li></ul></td><td><ul><li>Unique Transaction Identifier</li><li>Transaction Amount</li></ul></td><td><pre class="language-json" data-line-numbers data-expandable="true"><code class="lang-json">"properties": [
    { "name": "transaction_id", "value": "VAC123D432" },
    { "name": "transaction_amount", "value": 50 }
]
</code></pre></td></tr><tr><td><strong>Foreign Currency Exchange</strong></td><td><ul><li>Converting EUR to USD</li></ul></td><td><ul><li>Unique Transaction Identifier</li><li>Transaction Amount</li><li>USD Exchange Rate (at time of transaction)</li></ul></td><td><pre class="language-json" data-line-numbers data-expandable="true"><code class="lang-json">"properties": [
    { "name": "transaction_id", "value": "VAC123D432" },
    { "name": "transaction_amount", "value": 150 },
    { "name": "exchange_rate", "value": "0.870132" }
]
</code></pre></td></tr><tr><td><strong>Native Token</strong></td><td><ul><li>Value transfer between wallets</li><li>Staking</li></ul></td><td><ul><li>Unique Transaction Identifier</li><li>Transaction Amount</li><li>Network/Chain ID</li></ul></td><td><pre class="language-json" data-line-numbers data-expandable="true"><code class="lang-json">"properties": [
    { "name": "transaction_id", "value": "VAC123D432" },
    { "name": "transaction_amount", "value": 150 },
    { "name": "network_id", "value": "8453" }
]
</code></pre></td></tr><tr><td><strong>Contract Token</strong></td><td><ul><li>Stablecoin payments</li><li>DeFi interactions</li></ul></td><td><ul><li>Unique Transaction Identifier</li><li>Transaction Amount</li><li>Network/Chain ID</li><li>Token Contract Address</li></ul></td><td><pre class="language-json" data-line-numbers data-expandable="true"><code class="lang-json">"properties": [
    { "name": "transaction_id", "value": "VAC123D432" },
    { "name": "transaction_amount", "value": 100 },
    { "name": "network_id", "value": "8453" },
    { "name": "token_address", "value": "0x0000000000000000000000000000000000000000" }
]
</code></pre></td></tr></tbody></table>

These properties are included in the data JSON payload alongside your other event fields — no separate request needed.

{% hint style="warning" %}
After setting up revenue tracking, contact your Addressable Customer Service representative to ensure your revenue events are properly configured on our end.
{% endhint %}

***

## Troubleshooting

#### Events are received, but attribution is missing

* **Path A:** confirm `properties` includes `{ "name":"user_id", "value":"<___adrsbl_nonce>" }` exactly.
* **Path B:** confirm your `page_view` includes `user_id` + UTMs and/or `ViewID` when present.

#### You’re not sure which path you’re on

* If the Pixel is installed and you can read `___adrsbl_nonce`, you’re on **Path A**.
* If Pixel cannot be installed due to policy, you’re on **Path B**.


# Events API - Reference

The Event's API, also know as the S2S (Server-to-Server) API is used in place of Pixel tracking when there's a 3rd party platforms/applications.

In complex use cases, where the user journey includes 3rd party platforms/applications (e.g. Telegram chatbot, Mobile Sandboxed WebApp, Discord, Telegram games), the best way to report on user engagement and conversion events is directly from your server to your Addressable account using a secure API.&#x20;

## Request Structure

The Addressable API has a request structured with the following fields:

* An endpoint url: <https://tag.adrsbl.io/events/prod_standard_stage/p.png>
* Three parameters:
  1. `is_conversion`\
     Use `is_conversion=true`, When you wish to designate an event as a conversion event for it to be recognized as such across all counters that track attributed conversions in our product. \
     Use `is_conversion=false` for all other events.\ <mark style="color:red;">**Note:**</mark>**&#x20;You can have multiple conversion events with this attribute set to true**

  2. `data`\
     `data` is a base64-wrapped JSON parameter that contains event metadata according to the table below.

<table data-full-width="true"><thead><tr><th width="246">Parameter Name</th><th>Is Mandatory</th><th width="132.8">Type</th><th width="349">Value</th><th>Usage</th></tr></thead><tbody><tr><td><code>tid</code></td><td><strong>Mandatory</strong></td><td>String</td><td>Addressable pixel ID which can be found under 'Settings' in your Addressable account.</td><td>For associating events with your tenant</td></tr><tr><td><code>page_url</code></td><td><strong>Mandatory</strong></td><td>String</td><td>The page URL that generated the event can also be represented simply as a string.</td><td>For tracking users as they move between different pages of your website / funnel.</td></tr><tr><td><code>event_name</code></td><td><strong>Mandatory</strong></td><td>String</td><td>The name of the event as you’d like it to be displayed on our platform</td><td>For identifying user events that lead to actions</td></tr><tr><td><code>timestamp</code></td><td><strong>Mandatory</strong></td><td>Int</td><td>Timestamp of the event in UTC</td><td>Ability to filter by time</td></tr><tr><td><code>timezone_name</code></td><td><strong>Mandatory</strong></td><td>String</td><td>User reported timezone for time offset calculation.<br>E.g America/New_York</td><td>Ability to filter by the user's time</td></tr><tr><td><code>timezone_offset</code></td><td><strong>Mandatory</strong></td><td>Int</td><td>The number of seconds in which the user timezone is offset from UTC time.</td><td>Ability to filter by the user's time</td></tr><tr><td><code>referrer</code></td><td>Optional</td><td>String</td><td>The page URL which referred to the page that generated the event. It may be an empty string.</td><td>For makreting channel drilldown, to understand where the traffic is coming from</td></tr><tr><td><code>address</code></td><td>Optional</td><td>String</td><td>The wallet address of the tracked user if known to you on the page where the event was triggered.</td><td>A wallet address is one of the identifiers used to track user events within your system. Addressable also enriches wallets with on-chain data, offering a comprehensive view of your users.</td></tr><tr><td><code>chain_id</code></td><td>Optional</td><td>String</td><td>If the blockchain ID is known to you on the page where the event was triggered, please specify it here.<br>For example, for the Ethereum chain, send "0x1".</td><td>Ability to filter by blockchain and track user actions on various blockchains</td></tr><tr><td><code>extension_provider</code></td><td>Optional</td><td>String</td><td>Name of wallet provider if known to you when the event is triggered.<br>E.g “MetaMask”.</td><td>The ability to filter by wallet provider is available on our interface.</td></tr><tr><td><code>properties</code></td><td>Optional</td><td>List of Jsons</td><td>See below for instructions on how to utilize the properties field.</td><td></td></tr></tbody></table>

Based on the table above, a request could be formulated in the following manner:

<details>

<summary>Typical Request Example</summary>

<https://tag.adrsbl.io/events/prod\\_standard\\_stage/p.png?is\\_conversion=false\\&data=eyJ0aWQiOiAiPHlvdXIgdGlkIGdvZXMgaGVyZT4iLCAiZXZlbnRfbmFtZSI6ICJleGFtcGxlX2V2ZW50IiwgInBhZ2VfdXJsIjogInRlbGVncmFtIiwgInJlZmVycmVyIjogImh0dHBzOi8vdC5tZSIsICJ0aW1lc3RhbXAiOiAxNzIzMzQ0NjQ4LCAidGltZXpvbmVfbmFtZSI6ICJBbWVyaWNhL05ld19Zb3JrIiwgInRpbWV6b25lX29mZnNldCI6IDI0MCwgImV4dGVuc2lvbl9wcm92aWRlciI6Ik1ldGFNYXNrIiwgImFkZHJlc3MiOiAiMHgwMDBjRDI3RjEwZEZGQUM3MzIwMTI1OEVBQTM5MjVjMDQ1MjA1MUEwIiwgImNoYWluX2lkIjogIjB4YTRiMSIsICJleHRlbnNpb25fcHJvdmlkZXIiOiAiTWV0YU1hc2siLCAicHJvcGVydGllcyI6IFt7Im5hbWUiOiAidXNlcl9pZCIsICJ2YWx1ZSI6ICJ1dWlkLXZhbHVlLWdvZXMtaGVyZSJ9LCB7Im5hbWUiOiAicGFyYW0yIiwgInZhbHVlIjogInZhbHVlMiJ9LCB7Im5hbWUiOiAicGFyYW0zX25vX3ZhbHVlIn1dfQ%3D%3D>

</details>

{% hint style="info" %}
Requests sent to our servers must be URL-encoded. Refer to [how URL encoding works](https://www.urlencoder.io/learn/) for more detailed information.
{% endhint %}

{% hint style="info" %}
Include`"Content-Type": "application/json"` header in the request when sending it.
{% endhint %}

3. Request Headers\
   Please use the following headers to pass user information to our servers. Refer to the table below:

<table data-full-width="true"><thead><tr><th>Header</th><th>Is Mandatory</th><th>Value</th><th>Usage</th></tr></thead><tbody><tr><td>Content-Type</td><td><strong>Mandatory</strong></td><td>application/json</td><td>For proper functioning of server-to-server API</td></tr><tr><td>Accept-Language</td><td>Optional</td><td>Use the original user's Accept-Language header and not your server's header</td><td>For drilldown and filtering based on user attributes: i.e languages</td></tr><tr><td>User-Agent</td><td>Optional</td><td>Use the original user's User-Agent header and not your server's header</td><td>For drilldown and filtering on user's OS type, Browser Type, Platform etc.</td></tr><tr><td>X-Forwarded-For</td><td><strong>Mandatory</strong></td><td>User original IP address</td><td>extract country information for each session. In compliance with GDPR and SOC2 regulations, IP addresses are retained for no more than one week. Country data, once extracted, is stored per user_id for your breakdown use.</td></tr><tr><td>X-Requested-With</td><td>Optional</td><td>User mobile referrer app</td><td>For drilldown and filtering - identification of the user orgin app before landed on your app (mobile referrer)</td></tr></tbody></table>

## **Event Properties**

In the context of utilizing the Addressable Pixel, our software manages the definition of user sessions and user IDs.\
Conversely, the responsibility for managing S2S events lies with you.

To improve your comprehension of user behavior, make use of the `properties` field to record key/value parameters that aid in understanding user behavior. This field comprises a list of JSON objects, where each key/value pair represents a specific property and its corresponding value.\
Refer to the example below for guidance on accurate properties reporting:

{% code lineNumbers="true" %}

```json
"properties": [{"name": "customer", "value": "mycustomer"},
               {"name": "username", "value": "Billy Bob"},
               {"name": "free_plan"}]
```

{% endcode %}

In the example provided, three parameters were established. The first two parameters consist of both a name and a value, while the third parameter only includes a name.

## **Proper Attribution**

These events will be reported independently&#x20;

## **Code Example**

Please refer to the following Python code snippet demonstrating how to generate a request to our servers:

{% code overflow="wrap" lineNumbers="true" fullWidth="true" %}

```python
import json
import base64
import requests

data = json.dumps({"tid": "<your tid goes here>",
                   "event_name": "example_event",
                   "page_url": "https://app.example.com/test-tomer?a=1&b=2&c=3",
                   "referrer": "https://app.example.com/",
                   "timestamp": 1730538892,
                   "timezone_name": "America/New_York",
                   "timezone_offset": 240,
                   "extension_provider":"MetaMask",
                   "address": "0x000cD27F10dFFAC73201258EAA3925c0452051A0",
                   "chain_id": "0xa4b1",
                   "properties": [{"name": "user_id", "value": "uuid-value-goes-here"},
                                  {"name": "param2", "value": "value2"},
                                  {"name": "param3_no_value"}]}

params = {"data": base64.b64encode(data.encode())}

headers = {
    "Content-Type": "application/json",
    "Accept-Language": "en-US,en;q=0.9",
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36",
    "X-Forwarded-For": “1.1.1.1”,
    "X-Requested-With": "io.metamask"}

url = 'https://tag.adrsbl.io/events/prod_standard_stage/p.png?is_conversion=false'
res = requests.get(url, params=params, headers=headers)
```

{% endcode %}

&#x20;For technical assistance and troubleshooting, contact us at <support@addressable.io>&#x20;

&#x20;

\ <br>


# Event API Attribution

In order to have proper attribution after setting up the Events API, you need to do additional steps. There's a start-to-finish walkthrough that can be [found here](/knowledge-base/event-tracking/addressable-event-api/postback-event-api-setup-guide), otherwise **continue** to understand only the steps required to set up attribution after the Event API has been configured.

### Path to Attribution Set up

#### **(1) Recommended**: Addressable Pixel + Postback API

* Use this if you can install the Addressable Pixel on your site.
* This is the recommended setup for campaign attribution and is the easiest to maintain.
* Next steps: [Follow the guide](/knowledge-base/event-tracking/addressable-event-api/event-api-attribution/attribution-with-addressable-pixel-recommended)

#### **(2) Fallback**: Postback API only (No Pixel)

* Only use this if you **do not have** a pixel set up on your Addressable account.
* Some organizations have compliance policies that restrict tracking pixels.
* If you have a true “no pixel” policy, follow the S2S-only setup.
* Next steps: [Follow the guide](/knowledge-base/event-tracking/addressable-event-api/event-api-attribution/attribution-without-the-addressable-pixel)


# Attribution with Addressable Pixel (Recommended)

Some customers use **both** the **Addressable Pixel** (for on-site tracking) and the **Events API** (for off-chain ingestion, backend events, or events from 3rd-party apps). In that setup, you need to include a specific user identifier in your Events API payload so Addressable can correctly attribute those server-side events to the same user sessions the Pixel observed.

{% hint style="info" %}
*If you're using both the Pixel and API, it is generally **always recommended** to follow this guide.*
{% endhint %}

### When is this needed

Use this guide if:

* You already have the [**Addressable Pixel**](/knowledge-base/event-tracking/addressable-pixel) installed on your website (via GTM or JS).
* You also send events through the [**Events API**](/knowledge-base/event-tracking/addressable-event-api/events-api-reference).
* You are running campaigns with Addressable.
* You need like Campaign Attribution for the Event sent by the **Events API**.

### Overview of Needs

The Addressable Pixel creates a browser-side identifier stored in local storage at:

* Key: `___adrsbl_nonce`

To connect Events API events to Pixel-tracked sessions, you will:

1. Read `___adrsbl_nonce` from local storage on the frontend.
2. Store that value alongside your internal user identifier (user id, wallet address, etc.).
3. Send it with every Events API call as an event property \[see [api docs](https://addressable.gitbook.io/knowledge-base/apis/events-api-server-to-server)]:
   * `properties: [{ "name": "user_id", "value": "<___adrsbl_nonce value>" }]`

That “join key” allows Addressable to attribute server-side events to users who visited your website from campaigns (post-view and post-click where supported).

### Getting Started

<mark style="background-color:yellow;">**— Step 1 —**</mark>

**Read `___adrsbl_nonce` on page view (frontend)**

Add a small snippet that runs on page load (or at least before you plan to associate the user with your backend identity):

```js
const adrsblNonce = window.localStorage.getItem("___adrsbl_nonce");
// Store this somewhere safe for a given user in your backend flow (see Step 2)
```

> ✅ Tip: If `adrsblNonce` is `null`, confirm the Pixel is loading and firing on that page.&#x20;

<mark style="background-color:yellow;">**— Step 2 —**</mark>

**Store the nonce alongside your user record (backend)**

When you know who the user is (login, signup, wallet connect, etc.), persist:

* your internal identifier (internal id / wallet)
* the latest `adrsblNonce` you saw for them

A common pattern is to send the nonce to your backend on logged-in pageview:

```js
await fetch("/api/identify-addressable", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    userId: "<your-internal-user-id-or-wallet>",
    addressableUserId: adrsblNonce
  })
});
```

<mark style="background-color:yellow;">**— Step 3 —**</mark>

**Include it in every Events API call (properties → user\_id)**

The Events API supports an optional `properties` field that is a **list of JSON objects**. Each property uses `name` and `value`. ([addressable.gitbook.io](https://addressable.gitbook.io/knowledge-base/apis/events-api-server-to-server))

Add this property to your Events API `data` payload:

```json
"properties": [
  { "name": "user_id", "value": "<addressableUserId from ___adrsbl_nonce>" }
]
```

That’s it — once the same `user_id` is present on Events API events, Addressable can connect them back to Pixel sessions for campaign attribution. ([addressable.gitbook.io](https://addressable.gitbook.io/knowledge-base/apis/events-api-server-to-server))

### Example Payload

Below is an example `data` JSON (before base64 encoding) showing the `properties` format:

```json
{
  "tid": "<your pixel id>",
  "event_name": "signup",
  "page_url": "https://example.com/signup",
  "referrer": "https://example.com/",
  "timestamp": 1730538892,
  "timezone_name": "America/New_York",
  "timezone_offset": 240,
  "properties": [
    { "name": "user_id", "value": "c96043..." },
    { "name": "another_example", "value": "yes_it_is" }
  ]
}
```

For full request structure details (endpoint, headers, base64 encoding, etc.), refer to the [Events API docs](/knowledge-base/event-tracking/addressable-event-api/events-api-reference).

### Notes & constraints

* `properties` is optional, but required for this attribution join.
* If you’re also sending other properties, keep them in the same list (Addressable properties are simple name/value objects).
* (Pixel JS SDK) properties are name/value objects, and there’s a practical cap on how many you should send per event (keep it tight).
* If you'd like to also send your internal user id, please send `internal_user_id` and reverse `user_id` for this usage.
*

### Troubleshooting

* **`___adrsbl_nonce` is missing**
  * Confirm the Pixel is installed correctly and firing on that page.
* **Events show up, but still not attributed**
  * Verify the Events API `properties` includes `{ "name": "user_id", "value": "<nonce>" }` exactly.
  * Confirm you’re storing and reusing the same nonce value for that user (not generating your own replacement).


# Attribution Without the Addressable Pixel

Some organizations have compliance policies that restrict the use of tracking pixels. If your organization enforces a no-pixel policy - read the below.

### What If You Can't Install the Addressable Pixel?

This guide outlines how to achieve attribution and campaign optimization without using the Addressable pixel.

### Goal

To enable campaign performance tracking and wallet intelligence **without** installing the Addressable pixel, customers can leverage **server-to-server (S2S) event reporting**. This method allows Addressable to:

* Attribute users to campaigns
* Optimize performance based on funnel events
* Maximize Return on Ad Spend (ROAS)

### Requirements for S2S Attribution

To ensure accurate tracking and attribution, the customer should:

1. **Use a persistent unique user identifier**\
   Ensure each user has a unique ID that persists for at least 30 days. This allows Addressable to correlate multiple events to the same user.
2. **Report funnel events via the S2S API**\
   Events may include: `page_view` (or site visit), `button_click` , `sign_up` , `wallet_connect` , `conversion`
3. **Include tracking parameters in each event**\
   Send the following metadata alongside each event: `user_id` , URL parameters (e.g., UTMs, `ViewID`)
4. **Include revenue-related parameters**\
   For ROAS calculation and deduplication: `amount` , `transaction_hash` , `tokens_transferred` or `currency_exchanged`&#x20;

***

### Attribution Overview

Attribution is divided into two categories: **post-click** and **post-view**.

**Post-Click Attribution**

Triggered when a user clicks an ad.

* UTM parameters such as `utm_campaign`, `utm_source`, `utm_medium`, `utm_content`, and `clickID` are generated.
* These parameters should be captured in the page URL and reported back to Addressable via the S2S API on the `page_view` event.

**Post-View Attribution**

Triggered when a user views (but does not click) an ad.

* The ad sends UTM parameters along with a unique `ViewID`.
* When the user later engages with the website, the event should include both:&#x20;
  * The `user_id`
  * The original `ViewID`

This enables Addressable to match the ad view to the user and attribute the action accordingly.

***

####


# Audience Anywhere API

This API retrieves user audience information for your social logins, enabling you to offer enhanced personalized experiences to your customers across touch points.

Here are some of the main benefits of using Audience Anywhere:

* **Fine tune your landing pages with personalized messaging**: Use audience data (e.g. user belongs to 'Degens') to customize your content with a particular message.
* **Offer personalized incentives and rewards**: Use audience data (e.g. user is in a 'Tier One' audience) to customize rewards based on user's LTV.&#x20;

Currently, the Audience Anywhere API only supports Twitters social login. \
To receive a key and direct the API calls to a particular audience, contact our customer success team. &#x20;

### How does it work?

This API queries whether an individual twitter \[hashed] ID belongs to a particular Addressable audience.&#x20;

Each query returns an empty or populated 'audience\_ids' list. This list provides the IDs of your selected target audience that the user belongs to (at the time of the query).&#x20;

***

### Base URL

`https://api.adrsbl.io/v1`

### Authentication header

* `x-api-key: your_api_Key` (required): Your API key for authentication.

### Endpoints

#### Get Audience Information

**Request**

```bash
curl -X 'GET' \
  'https://api.adrsbl.io/v1/audience_anywhere?social_login=twitter&hashed_user_id=xxxxx' \
  -H 'accept: application/json' \
  -H 'x-api-key: YOUR_API_KEY'
```

* **Method**: GET
* **Endpoint**: /audience\_anywhere
* **Query Parameters**:
  * `social_login` (required): The social login for which you want to retrieve audience information. \
    Currently supports Twitter (X) only.
  * `hashed_user_id` (required): The social login's hashed user ID for which you want to fetch audience information. \
    In the Twitter (X) case, use SHA256 of the Twitter ID (not the handle).

**Response**

The API responds with a JSON object containing a list of one or more audience IDs for which your user belongs to. When the list is returned populated, it means that the queried user was found as belonging to your  pre-determined target audience group (among others). \
When the list is returned empty, it means that the queried user does not belong to your target audience group.&#x20;

Example:&#x20;

```json
{
  "audience_ids": [
    // Empty audience id list
  ]
}
```

```json
{
  "audience_ids": [
    // "622ac0dc9efdd9f9fca6c01a"
  ]
}
```

#### Error Responses

* 401 Authorization Error
* 403 Forbidden: Invalid API key or authentication failure
* 404 Not Found: The requested resource was not found
* 500 Internal Server Error: An unexpected error occurred on the server

### Rate Limiting

This API has rate limiting of 10 calls per second.&#x20;


# Wallet Intelligence API

Addressable's cutting-edge Wallet Intelligence API seamlessly links on-chain wallet data to off-chain identities, enabling powerful insights across seven blockchain platforms. With unique clustering capabilities, it identifies multiple wallet addresses belonging to single users, unlocking critical use cases like conversion tracking, fraud detection, competitive analysis, and personalization. Built for real-time decision making at scale, our API helps you gain a deeper understanding of user demographics and transaction histories to drive smarter decisions and enhance security.

## API Versioning

{% hint style="info" %}
You are currently viewing documentation for Wallet Intelligence API v1
{% endhint %}

### Base URL Format

All API endpoints are versioned using a URL path prefix. Please ensure you are using the correct version in your requests.

```
https://data-api.app.addressable.io/v1/
```

## Authentication

In order to successfully request data from the Wallet Intelligence API, you must first acquire two things:

1. API Key
2. Bearer Token

Please reach out to your Addressable partner for your API Key.

You can acquire your Bearer Token programmatically, using your Username, Password and the Token URL.

Here is a Python code snippet demonstrating how to generate your Bearer Token using these three pieces of information.

```python
import requests
generate_token_url = 'https://data-api.app.addressable.io/v1/generate_token'
params = {'username': '<your username goes here>', 'password': '<your password goes here>'}
token_response = requests.get(generate_token_url, params=params)
token = token_response.json()['token']
```

{% hint style="info" %}
Once issued, your Bearer Token is valid for 60 minutes (1 hour)
{% endhint %}

## Request Structure

Once you have acquired your API Key and Bearer Token, you are ready to request data from the Wallet Intelligence API.

All the data available through the API can be requested through the `/wallets` endpoint using the `address` parameter.

Here is a Python code snippet demonstrating how to submit a request for an `address` using your API Key and Bearer Token.

```python
headers = {'x-api-key' : '<your api key goes here>', 'Authorization': f'Bearer {token}'}
params = {'address': '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'} # Vitalik.eth address!
wallet_api_url = 'https://data-api.app.addressable.io/v1/wallets?address={address}'
response = requests.get(wallet_api_url, params=params, headers=headers)

print(response.json())
```

## Response Structure

A successful request to the API will return wallet addresses from various supported chains along with a comprehensive package of insights specific to those wallet addresses.

| **Field**                      | **Type**              | **Description**                                                                                                                                                                                                                            |
| ------------------------------ | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `address`                      | string                | The blockchain wallet address                                                                                                                                                                                                              |
| `chain_id`                     | integer               | Unique identifier of the blockchain associated with the wallet address                                                                                                                                                                     |
| `user_agent_os`                | array\<string>        | Operating systems used by this wallet address for transactions                                                                                                                                                                             |
| `platforms`                    | array\<string>        | Device or software platforms this wallet address interacted with in the last 30 days                                                                                                                                                       |
| `social_platforms`             | array\<string>        | Social networks the wallet address user interacted with in the last 30 days                                                                                                                                                                |
| `primal_country_iso2`          | string                | Two-letter country code (ISO 3166-1 alpha-2) representing the primary location of wallet activity in the last 30 days                                                                                                                      |
| `web2_marketing_sources`       | array\<string>        | Attributed marketing channels and referrers of wallet’s interactions tracked by Addressable. Please see [How Attribution Works](https://addressable.gitbook.io/knowledge-base/solution-suite/insights-and-analytics/how-attribution-works) |
| `wallet_name`                  | string                | Web3 domain name (if any) associated with this wallet address                                                                                                                                                                              |
| `tags`                         | array\<string>        | Profile segments assigned to the wallet based on activity patterns                                                                                                                                                                         |
| `min_ts_ice`                   | integer               | Unix timestamp of the wallet’s first blockchain transaction                                                                                                                                                                                |
| `max_ts_ice`                   | integer               | Unix timestamp of the wallet’s last blockchain transaction                                                                                                                                                                                 |
| `min_ts_out`                   | integer               | Unix timestamp of the wallet’s first outgoing transaction                                                                                                                                                                                  |
| `max_ts_out`                   | integer               | Unix timestamp of the wallet’s last outgoing transaction                                                                                                                                                                                   |
| `min_ts_in`                    | integer               | Unix timestamp of the wallet’s first incoming transaction                                                                                                                                                                                  |
| `max_ts_in`                    | integer               | Unix timestamp of the wallet’s last incoming transaction                                                                                                                                                                                   |
| `min_ts_tot`                   | integer               | Unix timestamp of the first transaction among min\_ts\_ice, min\_ts\_in, min\_ts\_out                                                                                                                                                      |
| `max_ts_tot`                   | integer               | Unix timestamp of the last transaction among max\_ts\_ice, max\_ts\_in, min\_ts\_out                                                                                                                                                       |
| `activity_hours_7_days`        | map\<string, integer> | Hourly aggregation of wallet activity over the last 7 days                                                                                                                                                                                 |
| `activity_hours_30_days`       | map\<string, integer> | Hourly aggregation of wallet activity over the last 30 days                                                                                                                                                                                |
| `transactions_7_days`          | integer               | Total number of transactions in the last 7 days                                                                                                                                                                                            |
| `transactions_30_days`         | integer               | Total number of transactions in the last 30 days                                                                                                                                                                                           |
| `transactions_3_months`        | integer               | Total number of transactions in the last 3 months                                                                                                                                                                                          |
| `transactions_year`            | integer               | Total number of transactions in the last 12 months                                                                                                                                                                                         |
| `daily_transactions`           | map\<string, integer> | Daily aggregation of wallet transactions per day over the last 30 days (t0 = Today minus 30)                                                                                                                                               |
| `top_holdings_erc20`           | array\<object>        | Account balance data of the wallet's top 10 ERC20 holdings by amount\_usd                                                                                                                                                                  |
| `top_holdings_nft`             | array\<object>        | Account balance data of the wallet's top 10 NFT holdings by amount                                                                                                                                                                         |
| `number_of_erc20_tokens`       | integer               | Total count of ERC20 tokens held by the wallet                                                                                                                                                                                             |
| `number_of_erc721_tokens`      | integer               | Total count of ERC721 tokens (NFTs) held by the wallet                                                                                                                                                                                     |
| `number_of_erc1155_tokens`     | integer               | Total count of ERC1155 tokens held by the wallet                                                                                                                                                                                           |
| `total_balance_usd`            | number                | Total USD holdings of wallet                                                                                                                                                                                                               |
| `top_traded_dapps_yesterdays`  | array\<object>        | List of top 10 decentralized applications the wallet transacted with yesterday                                                                                                                                                             |
| `primary_country`              | string                | Full name of the country where most wallet activity originated in the last 30 days                                                                                                                                                         |
| `all_countries`                | array\<string>        | List of all countries where wallet activity was detected in the last 30 days                                                                                                                                                               |
| `languages`                    | array\<string>        | List of languages associated with the wallet user's activity in the last 30 days                                                                                                                                                           |
| `platforms_30_days`            | map\<string, integer> | Number of days with at least one activity per platform in the last 30 days                                                                                                                                                                 |
| `social_platforms_30_days`     | array\<string>        | Social platforms with at least one interaction in the last 30 days                                                                                                                                                                         |
| `first_seen_channel`           | string                | First marketing or interaction channel observed for this wallet in the last 30 days                                                                                                                                                        |
| `first_seen_domain`            | string                | First web domain the wallet was observed interacting with in the last 30 days                                                                                                                                                              |
| `last_seen_channel`            | string                | Most recent channel the wallet was observed interacting with in the last 30 days                                                                                                                                                           |
| `last_seen_domain`             | string                | Most recent web domain the wallet was observed interacting with in the last 30 days                                                                                                                                                        |
| `platform_percentages_30_days` | map\<string, number>  | Distribution of wallet activity across platforms by percentage in the last 30 days                                                                                                                                                         |
| `wallet_age_in_days`           | integer               | Age of the wallet in days since its first transaction                                                                                                                                                                                      |
| `top_traded_dapps_30_days`     | array\<object>        | List of top 10 decentralized applications the wallet transacted with in the last 30 days                                                                                                                                                   |
| `wallet_providers`             | array\<string>        | List of wallet providers associated with this address                                                                                                                                                                                      |
| `days_since_last_activity`     | integer               | Number of days elapsed since the wallet's most recent activity                                                                                                                                                                             |

### Object Structures

#### **`top_holdings_erc20` Object**

| **Field**      | **Type** | **Description**    |
| -------------- | -------- | ------------------ |
| `name`         | string   | Token name         |
| `amount`       | number   | Token quantity     |
| `symbol`       | string   | Token symbol       |
| `amount_usd`   | number   | Token value in USD |
| `erc_standard` | string   | ERC token standard |

#### **`top_holdings_nft` Object**

| **Field**      | **Type**       | **Description**                  |
| -------------- | -------------- | -------------------------------- |
| `name`         | string         | NFT collection name              |
| `amount`       | integer        | Number of NFTs held              |
| `symbol`       | string         | Collection symbol                |
| `token_id`     | array\<string> | List of specific token IDs held  |
| `erc_standard` | string         | ERC token standard (721 or 1155) |

#### **`top_traded_dapps` Object**

| **Field**        | **Type** | **Description**                                            |
| ---------------- | -------- | ---------------------------------------------------------- |
| `address`        | string   | Contract address of the decentralized application          |
| `name`           | string   | Name of the decentralized application                      |
| `n_transactions` | integer  | Number of transactions with this decentralized application |

### Sample Response

{% code lineNumbers="true" fullWidth="true" %}

```json
{
    "wallets":
    [
        {
            "address": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
            "chain_id": 1,
            "user_agent_os":
            [
                "Android",
                "Chrome OS",
                "Linux",
                "Mac OS X",
                "Windows",
                "iOS"
            ],
            "platforms":
            [
                "Desktop",
                "Mobile"
            ],
            "social_platforms":
            [
                "Twitter",
                "Youtube"
            ],
            "primal_country_iso2": "GB",
            "web2_marketing_sources":
            [
                "Organic Search - www.google.com",
                "Organic Social - X Embedded Link",
                "Referrals - dappradar.com",
                "Referrals - warpcast.com",
                "Referrals - etherscan.io",
                "Organic Social - X Profile Click",
                "Organic Social - www.youtube.com",
                "Organic Search - keep.google.com",
                "Referrals - www.abs.xyz",
                "Organic Search - www.google.com.hk",
                "Referrals - my.soniclabs.com"
            ],
            "min_ts_ice": 1443722885,
            "max_ts_ice": 1743196403,
            "min_ts_out": 1443722885,
            "max_ts_out": 1743008555,
            "min_ts_in": 1443428683,
            "max_ts_in": 1743357071,
            "min_ts_tot": 1443428683,
            "max_ts_tot": 1743357071,
            "activity_hours_7_days":
            {
                "00": 0,
                "01": 0,
                "02": 0,
                "03": 0,
                "04": 0,
                "05": 0,
                "06": 0,
                "07": 0,
                "08": 0,
                "09": 0,
                "10": 0,
                "11": 0,
                "12": 0,
                "13": 0,
                "14": 0,
                "15": 0,
                "16": 0,
                "17": 1,
                "18": 0,
                "19": 0,
                "20": 0,
                "21": 1,
                "22": 0,
                "23": 0
            },
            "activity_hours_30_days":
            {
                "00": 0,
                "01": 0,
                "02": 2,
                "03": 1,
                "04": 9,
                "05": 1,
                "06": 2,
                "07": 0,
                "08": 0,
                "09": 0,
                "10": 0,
                "11": 0,
                "12": 0,
                "13": 1,
                "14": 0,
                "15": 0,
                "16": 0,
                "17": 1,
                "18": 0,
                "19": 1,
                "20": 0,
                "21": 1,
                "22": 0,
                "23": 0
            },
            "transactions_7_days": 2,
            "transactions_30_days": 19,
            "transactions_3_months": 90,
            "transactions_year": 313,
            "daily_transactions":
            {
                "t0": 0,
                "t1": 0,
                "t2": 0,
                "t3": 1,
                "t4": 0,
                "t5": 1,
                "t6": 0,
                "t7": 0,
                "t8": 0,
                "t9": 0,
                "t10": 0,
                "t11": 0,
                "t12": 0,
                "t13": 12,
                "t14": 0,
                "t15": 0,
                "t16": 0,
                "t17": 0,
                "t18": 1,
                "t19": 0,
                "t20": 0,
                "t21": 0,
                "t22": 0,
                "t23": 0,
                "t24": 0,
                "t25": 0,
                "t26": 0,
                "t27": 0,
                "t28": 0,
                "t29": 1
            },
            "top_holdings_erc20":
            [
                {
                    "name": "Baby Neiro",
                    "amount": 2147483647,
                    "symbol": "BabyNeiro",
                    "amount_usd": 15328926.06622459,
                    "erc_standard": "ERC20"
                },
                {
                    "name": "WhiteRock",
                    "amount": 2147483647,
                    "symbol": "WHITE",
                    "amount_usd": 7255534.168699433,
                    "erc_standard": "ERC20"
                },
                {
                    "name": "MOO DENG",
                    "amount": 2147483647,
                    "symbol": "MOODENG",
                    "amount_usd": 1048154.3710938414,
                    "erc_standard": "ERC20"
                },
                {
                    "name": "Dai Stablecoin",
                    "amount": 317203.0,
                    "symbol": "DAI",
                    "amount_usd": 317201.66872744757,
                    "erc_standard": "ERC20"
                },
                {
                    "name": "Dohrnii",
                    "amount": 5000.0,
                    "symbol": "DHN",
                    "amount_usd": 172832.61326892662,
                    "erc_standard": "ERC20"
                },
                {
                    "name": "OMGToken",
                    "amount": 123647.0,
                    "symbol": "OMG",
                    "amount_usd": 26081.66511706053,
                    "erc_standard": "ERC20"
                },
                {
                    "name": "ETHEREUM IS GOOD",
                    "amount": 250000000,
                    "symbol": "EBULL",
                    "amount_usd": 23262.436501323155,
                    "erc_standard": "ERC20"
                },
                {
                    "name": "Ethereum Name Service",
                    "amount": 1144.0,
                    "symbol": "ENS",
                    "amount_usd": 18297.508978340375,
                    "erc_standard": "ERC20"
                },
                {
                    "name": "USD Coin",
                    "amount": 12999.0,
                    "symbol": "USDC",
                    "amount_usd": 12999.921602012299,
                    "erc_standard": "ERC20"
                },
                {
                    "name": "laikaCTO",
                    "amount": 200000000,
                    "symbol": "laika",
                    "amount_usd": 7355.141016908444,
                    "erc_standard": "ERC20"
                }
            ],
            "top_holdings_nft":
            [
                {
                    "name": "Ethereum Name Service",
                    "amount": 424,
                    "symbol": "ENS",
                    "token_id":
                    [
                        "74481930497801679782979805597155678018362992166714802362506889922792265996967",
                        "40854335592281779147368291490257069102316565960635416178454141923169517258473",
                        "66080057564383363079578701704521412678991955510031339909001493531937345034165",
                        "...",
                        "51462145666241207470964329999130427189030214946591225485456513185798772029146",
                        "104091194179714615977240274011438909631792641773420468905005880127643596822864",
                        "58724798076055449282850230595171994771009527170557920842071621498584953790324",
                        "43944039825831553872908122188214684205530071693640052903619886398974524619490"
                    ],
                    "erc_standard": "ERC721"
                },
                {
                    "amount": 39,
                    "token_id":
                    [
                        "2275",
                        "2703",
                        "...",
                        "8178",
                        "7795",
                        "6682",
                        "6561",
                        "8999",
                        "6004"
                    ],
                    "erc_standard": "ERC721"
                },
                {
                    "name": "POAP",
                    "amount": 19,
                    "symbol": "The Proof of Attendance Protocol",
                    "token_id":
                    [
                        "114",
                        "144",
                        "...",
                        "5313",
                        "5314"
                    ],
                    "erc_standard": "ERC721"
                },
                {
                    "name": "Soulda",
                    "amount": 11,
                    "symbol": "SOULDA16",
                    "token_id":
                    [
                        "2575",
                        "2585",
                        "...",
                        "7258",
                        "7600"
                    ],
                    "erc_standard": "ERC721"
                },
                {
                    "name": "Art Blocks",
                    "amount": 7,
                    "symbol": "BLOCKS",
                    "token_id":
                    [
                        "265000506",
                        "...",
                        "268000057"
                    ],
                    "erc_standard": "ERC721"
                },
                {
                    "name": "Uniswap V3 Positions NFT-V1",
                    "amount": 5,
                    "symbol": "UNI-V3-POS",
                    "token_id":
                    [
                        "112161",
                        "...",
                        "953024"
                    ],
                    "erc_standard": "ERC721"
                },
                {
                    "amount": 4,
                    "token_id":
                    [
                        "190",
                        "192",
                        "191",
                        "193"
                    ],
                    "erc_standard": "ERC721"
                },
                {
                    "amount": 4,
                    "token_id":
                    [
                        "3775",
                        "1315",
                        "191",
                        "3941"
                    ],
                    "erc_standard": "ERC721"
                },
                {
                    "amount": 3,
                    "token_id":
                    [
                        "2174",
                        "3209",
                        "2173"
                    ],
                    "erc_standard": "ERC721"
                },
                {
                    "name": "1337 skulls",
                    "amount": 2,
                    "symbol": "1337skulls",
                    "token_id":
                    [
                        "375",
                        "6444"
                    ],
                    "erc_standard": "ERC721"
                }
            ],
            "number_of_erc20_tokens": null,
            "number_of_erc721_tokens": null,
            "number_of_erc1155_tokens": null,
            "total_balance_usd": null,
            "top_traded_dapps_yesterdays":
            {},
            "primary_country": "United Kingdom",
            "all_countries":
            [
                "South Korea",
                "Thailand",
                "...",
                "Malaysia",
                "Indonesia",
                "Israel"
            ],
            "languages":
            [
                "English",
                "Croatian",
                "Polish",
                "French",
                "Spanish",
                "Korean",
                "Japanese",
                "Arabic"
            ],
            "platforms_30_days":
            {
                "desktop": 13
            },
            "social_platforms_30_days":
            [],
            "platform_percentages_30_days":
            {
                "desktop": 1.0
            },
            "first_seen_channel": "Referrals",
            "first_seen_domain": "warpcast.com",
            "last_seen_channel": "Referrals",
            "last_seen_domain": "warpcast.com",
            "tags":
            [
                "Liquidity Provider",
                "Swapper"
            ],
            "wallet_name": null
        },
        "..."
	]
}
```

{% endcode %}


