---
title: Perkswall Anatomy
slug: perkswall-anatomy
icon: 🧬
docTags: 
createdAt: 2025-07-26T11:24:37.475Z
---

:::hint{type="info"}
**Who is this for:** Developers building a custom Perkswall UI who need to understand how the API response maps to the visual sections of the Perkswall.

**Outcome:** Understand the structure of the Perkswall-header, featured offers, and body-and the API response format to design a functionally complete, branded offers gallery.
:::

# Overview

MomentScience's Perkswall provides a seamless way to integrate curated offers and perks into your platform. Using the Perkswall API, you can fetch offer data and design a Perkswall that perfectly aligns with your branding and user experience goals.

This flexible solution empowers you to customize the look, feel, and behavior of the Perkswall, ensuring it blends naturally into your platform while delivering a personalized, engaging experience for your users.

## Understanding Perkswall Anatomy

This document provides an in-depth look at the Perkswall structure and how to maximize its functionality after retrieving data from the API.

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
### Perkswall Sections

**A. Perkswall Header**
The header section is customizable based on your preferences and typically showcases your brand identity. This can include an image, a specific color scheme, or custom code tailored to your design requirements.

**B. Featured Offers**
This section highlights up to three featured offers. Users can scroll through these offers, providing an engaging way to display important promotions or deals.

**C. Perkswall Body**
The body section contains a continuous list of offers. As users scroll, more offers will be loaded, displaying additional offers as they progress down the page.
:::

:::VerticalSplitItem
![](https://api.archbee.com/api/optimize/ELjiwjWcrv0a1IejQFFAF/f8fV8ncPh46zjFttVusSQ_perkswall-anatomy-page-5drawio.png "Perkswall Sections")
:::
::::

### API Response Format

The API response includes three key components:

1. **Offers**: A list of available offers, each containing metadata like id, title, description, image, CTAs, and tracking pixels.
2. **Settings**: Configuration options for Perkswall behavior, layout, and branding.
3. **Styles**: Customization options for the visual appearance, such as text styles, colors, and button designs.

By understanding and leveraging these sections, you can create a Perkswall experience tailored to your platform's requirements.

:::hint{type="success"}
Explore Perkswall in action with our [live demo ](https://get.perkswall.com/offerwall/v2/?accountId=99e58babc94df55a\&country=us)and see how it delivers a branded, engaging way to showcase offers. The [demo ](https://get.perkswall.com/offerwall/v2/?accountId=99e58babc94df55a\&country=us)shows a basic setup, but with customization, you can optimize user experience and maximize revenue. Read on to learn how!&#x20;
:::

# Perkswall Header

The Perkswall header can be tailored to match your platform’s branding and design by configuring settings in the dashboard, which are reflected in the API responses.&#x20;

This approach provides flexibility: you can either use the API to dynamically render the header based on dashboard configurations or create a fully customized header independently, ignoring the API-provided values if desired.

## Style

The header style is defined by`styles.header.style` and supports the following options:

- `light`: A default clean white background for a minimalist appearance.
- `image`: A header with a background image. The image URL can be found in `styles.header.image`.
- `color`: A header with a static background color. The color value is returned in `styles.header.color`.
- `custom`: A fully customized header using JavaScript. The custom code is returned in the `settings.custom_head` parameter.

# Featured Offers

The featured offers functionality allows you to highlight specific offers within your Perkswall.

:::hint{type="info"}
To check if featured offers are enabled for your account, refer to the `data.settings.featured_offers` parameter:

- `true`: Featured offers are enabled for your Perkswall.
- `false`: Featured offers are disabled for your Perkswall.
:::

When enabled, the `data.settings.featured_offer_list` provides the IDs of up to three featured offers. You can use the IDs from `data.settings.featured_offer_list` to identify the corresponding offers in the `data.offers[]` array by matching them with the `data.offers[].id` field.

# Perkswall Body

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
**A. Offer Icon Image**: Displays the creative offer icon from `data.offers[].creatives[]` where `creative_type`is `icon_image`.

**B. Advertiser Name**: Displays the offer’s advertiser name, retrieved from `data.offers[].advertiser_name`.

**C. Offer Short Headline**: Displays the offer’s short headline, retrieved from `data.offers[].short_headline`.

**D. Offer Short Description**: Provides a brief offer description from `data.offers[].short_description`.

**E. Positive CTA Button**: Displays the call-to-action text, retrieved from `data.offers[].cta_yes`.

**F. Perkswallet Button**: Allows users to save the offer for later use and is displayed only if `data.offers[].perkswallet_enabled` is set to true.
:::

:::VerticalSplitItem
![](https://api.archbee.com/api/optimize/ELjiwjWcrv0a1IejQFFAF/PpZfJU2aCCche8qS9Kdmc_perkswall-anatomy-page-7drawio.png)

![](https://api.archbee.com/api/optimize/ELjiwjWcrv0a1IejQFFAF/voI_iXeZ5KflXe5hMFo1b_perkswall-anatomy-page-8drawio.png)


:::
::::

**G. Offer Hero Image**: Displays the offer's hero image, retrieved from `data.offers[].creatives[]` where creative\_type is `hero_image`.

**H. Offer Title**: Displays the full offer title, retrieved from`data.offers[].title`.

**I. Offer Description**: Provides the detailed offer description, retrieved from `data.offers[].description`.

**J. Offer Terms and Conditions:&#x20;**&#x4F;ffer's terms and conditions, retrieved from `data.offers[].terms_and_conditions`, are in HTML format (typically as an unordered list `<ul>`); render as HTML to maintain formatting—if empty, assume no specific terms apply.

### Handling CTA Buttons

**1. Positive CTA Button**

- **Text Source**: Retrieve the button text from `data.offers[].cta_yes`.
- **Action**: When the user clicks the positive CTA button, direct them to the URL specified in `data.offers[].click_url`.

**2. Negative CTA Button**

- **Note:&#x20;**&#x54;he negative CTA button `data.offers[].cta_no` is optional. Implementation is not required unless specified. If you're considering its usage, contact your account manager for guidance on its purpose.

**3. Close Button**

- **Note:&#x20;**&#x54;he close beacon `data.offers[].beacons.close` does not indicate the closure of the Perkswall and is typically not required for implementation. If you're unsure whether to use this, reach out to your account manager for clarification.

### Offer Creatives

Each offer includes a set of creative images, each serving a specific purpose. Below are the supported creative types and their recommended specifications:

- **Icon Creative&#x20;**
  - **Type**: `icon_image`
  - **Description**: Represents the offer's icon or brand logo.
  - **Expected Size**: 250 × 250 px (±10% size variation).
- **Hero Creative**
  - **Type**: `hero_image`
  - **Description**: Represents the offer in the Perkswall Featured Section. It can also be used if a larger "offer page" is implemented, providing a more detailed display of the offer.
  - **Expected Size**: 1000 × 280 px (±10% size variation).
- **Offer Creative**
  - **Type**: `offer_image`
  - **Description**: An additional image relevant to the offer.
  - **Expected Size**: Based on design requirements.
  - **Constraint**: Ensure the uploaded and received image matches the expected dimensions for optimal display.

:::hint{type="info"}
Creatives uploaded via the dashboard appear first in `data.offers[].creatives` and include a `user_id`attribute matching your ID to identify them as your uploads.
:::

### Offer Impression Pixel

The Offer Impression Pixel tracks when an offer is displayed to the user, capturing essential data for performance monitoring and analytics. It triggers when the associated creative is rendered on the user’s screen.

- **Parameter Location:** `data.offers[].pixel`
- **Type:** URL

**Usage Guidelines**

- Fire the pixel as soon as the creative becomes visible to the user.
- Ensure the pixel fires only once per impression to avoid duplicate tracking.
- Send an HTTP GET request to the URL in `data.offers[].pixel`.

# Perkswall Style

The API response includes a styles object, which defines the visual appearance and behavior of various UI components in your Perkswall. These style settings are managed through the [Perkswall integration page](https://app.momentscience.com/account/integration/perkswall) in the [dashboard](https://app.momentscience.com/account/integration/perkswall).

Any changes made to the styles settings in the dashboard are automatically reflected in your API response, ensuring consistency across your integration.

For more details on editing these settings, refer to the following demo.

:::Iframe{code="<div style=&#x22;position: relative; box-sizing: content-box; max-height: 80vh; max-height: 80svh; width: 100%; aspect-ratio: 1.524795982423101; padding: 40px 0 40px 0;&#x22;><iframe src=&#x22;https://play.momentscience.com/embed/cm5s58vpf0wq736cgxxrt68dq?embed_v=2&#x22; loading=&#x22;lazy&#x22; title=&#x22;Editing MomentScience's Perkswall Style&#x22; allow=&#x22;clipboard-write&#x22; frameborder=&#x22;0&#x22; webkitallowfullscreen=&#x22;true&#x22; mozallowfullscreen=&#x22;true&#x22; allowfullscreen style=&#x22;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&#x22;></iframe></div>"}

:::

# Perkswall Settings

The API response includes a settings object that defines your Perkswall's configuration. This object contains nested properties such as `tile_count`, `fav_icon_logo`, and other related settings.

You can specify and customize these settings directly from [the dashboard](https://app.momentscience.com/account/integration/perkswall). Changes made in the [dashboard ](https://app.momentscience.com/account/integration/perkswall)are automatically reflected in the API response, allowing for easy modification and management of your Perkswall's behavior and appearance.

To learn more about editing your settings, refer to the following demo.

:::Iframe{iframeHeight="0" code="<div style=&#x22;position: relative; box-sizing: content-box; max-height: 80vh; max-height: 80svh; width: 100%; aspect-ratio: 1.524795982423101; padding: 40px 0 40px 0;&#x22;><iframe src=&#x22;https://play.momentscience.com/embed/cm5rch01q0ukd36cgyiob58dl?embed_v=2&#x22; loading=&#x22;lazy&#x22; title=&#x22;Momentscience Demo&#x22; allow=&#x22;clipboard-write&#x22; frameborder=&#x22;0&#x22; webkitallowfullscreen=&#x22;true&#x22; mozallowfullscreen=&#x22;true&#x22; allowfullscreen style=&#x22;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&#x22;></iframe></div>"}

:::

***

📢 If you're running into any issues while going through the integration process, feel free to contact us at [help@momentscience.com](#)
