---
title: Content types
slug: experience/content-types
description: Learn how to configure content-aware events based on the content type of your content with this comprehensive document. Discover the runtime determination of content types and how they are essential in tracking key templates. The document covers all possi
docTags: 
createdAt: 2023-05-16T07:32:11.000Z
---

## Getting started

A subset of content-aware events are based on the <font color="#3b9f0f">content_type</font> of the affected content. These events are documented with their *tracking key templates* at [Action events](docId:8rrA4o7Vzdaw13Y-JOqEk) and [View events](docId\:mIXE5-IjKbR47eUmMdyga), but not with their possible occurrences.

A *tracking key template* itself includes a placeholder for the <font color="#3b9f0f">content_type</font>. The <font color="#3b9f0f">content_type</font> is determined at runtime (e.g. in the app) and used instead of the placeholder in the respective *tracking key template*.&#x20;

The <font color="#3b9f0f">content_types</font> are described in the following paragraph [Content types](docId\:Tz-lFYAgszxfBnSpzmiWQ). An example for finding and configuring a corresponding event is described in the paragraph [Content type based event](docId\:Tz-lFYAgszxfBnSpzmiWQ).

## Content types

The content type can have the following values:

- <font color="#2166ae">**issue**</font>****
- ****<font color="#2166ae">**post**</font>****
- ****<font color="#2166ae">**bundle**</font>

All content that is available in an app, for example, is assigned to one of these <font color="#3b9f0f">content_types</font>. The <font color="#3b9f0f">content_types</font> are passed for the placeholders in th&#x65;*&#x20;tracking key template* uppercased before they are used for tracking.&#x20;

For example, "<font color="#2166ae">**issue**</font>" becomes "<font color="#3b9f0f">**ISSUE**</font>".

## Content type based event

In order to configure a <font color="#3b9f0f">content_type</font> based event, three steps are necessary.

- What usecase to track and how to find your event
- How to find which <font color="#3b9f0f">content_type</font> your content has
- How to create a corresponding entry in your **tracking\_config.json**

### Example

*Step 1: What usecase to track and how to find your event*

As an example, a user's tap on the bookmark button of an issue in the storefront of an app should be tracked. This is an action event and the corresponding event documentation can be found [here](docId:8rrA4o7Vzdaw13Y-JOqEk).

The event consists of the following *tracking key template:*
STOREFRONT\_\<<font color="#3b9f0f">content_type</font>>\_BOOKMARK\_ADD\_CLICKED

*Step 2: How to find which&#x20;*<font color="#3b9f0f">*content_type*</font>*&#x20;your content has*

This step depends on how your content comes to your app. For this example we assume that the user taps on bookmark button for an issue. So that case results in a <font color="#3b9f0f">content_type</font> "<font color="#3b9f0f">ISSUE</font>".

*Step 3: How to create a corresponding entry in your **tracking\_config.json***

Now we simply replace the placeholder "<font color="#3b9f0f">content_type</font>" within the tracking key template by "<font color="#3b9f0f">ISSUE</font>" and then get the final tracking key:&#x20;

**STOREFRONT\_ISSUE\_BOOKMARK\_ADD\_CLICKED**

Now compose your event configuration and add it to your **tracking\_config.json**. So your event configuration may look as follows:

:::CodeblockTabs
Code sample

```json
"STOREFRONT_ISSUE_BOOKMARK_ADD_CLICKED": {
  "templates": {
    "action": "issue_bookmark_add_clicked"
  },
  "parameters": {
    "view": "{{VIEW}}",
    "issue_id": "{{ISSUE_ID}}",
    "issue_name": "{{ISSUE_NAME}}",
    "issue_categories": "{{ISSUE_CATEGORIES}}",
    "issue_tags": "{{ISSUE_TAGS}}",
    "issue_purchasable": "{{ISSUE_PURCHASABLE}}",
    "issue_purchased": "{{ISSUE_PURCHASED}}",
    "issue_product_id": "{{ISSUE_PRODUCT_ID}}",
    "publication_id": "{{PUBLICATION_ID}}",
    "publication_name": "{{PUBLICATION_NAME}}"
  }
}
```
:::

:::hint{type="info"}
Note:

The code sample above is used for **Firebase**. Depending on your tracking service that configuration may differ.
:::





