> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markifact.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Report

> Fetch TikTok Ads data based on specified metrics and dimensions

The **Get Report** node lets you fetch TikTok Ads performance data across one or more accounts using specified metrics, dimensions, and filters. This is an **AI-powered node** that can understand natural language instructions.

***

## When to Use It

Use this node to:

* Generate automated performance reports and dashboards
* Track campaign metrics and KPIs over time
* Create data-driven insights for optimization decisions
* Export data for further analysis in external tools

***

## Inputs

| Field          | Type                 | Required | Description                                     |
| -------------- | -------------------- | -------- | ----------------------------------------------- |
| **Accounts**   | Dynamic multi-select | Yes      | Select one or more TikTok Ads accounts to query |
| **Date Range** | Date range picker    | Yes      | Select date range for the report                |
| **Metrics**    | Multi-select         | Yes      | Select metrics to include in the report         |
| **Dimensions** | Multi-select         | No       | Select dimensions to segment your data          |
| **Filters**    | Rule-based filters   | No       | Add filters to refine your data                 |
| **Order By**   | Sort configuration   | No       | Set the order of results                        |
| **Limit**      | Number               | No       | Maximum number of rows to return                |
| **Options**    | Report options       | No       | Additional options for the report               |

### Filters

Filters allow you to refine your data by applying conditions to specific dimensions or metrics. **Multiple filters use AND logic** - all conditions must be met for a row to be included in the results.

#### Available Filter Operators

| Operator               | Description                     | Example Use Case                              |
| ---------------------- | ------------------------------- | --------------------------------------------- |
| **EQUALS**             | Exact match                     | Campaign name equals "Summer Sale 2024"       |
| **NOT\_EQUALS**        | Does not match exactly          | Campaign status not equals "PAUSED"           |
| **CONTAINS**           | Contains substring              | Campaign name contains "2024"                 |
| **NOT\_CONTAINS**      | Does not contain substring      | Campaign name doesn't contain "test"          |
| **IN\_LIST**           | Matches any value in list       | Placement in \["TikTok", "Pangle"]            |
| **NOT\_IN\_LIST**      | Doesn't match any value in list | Device not in \["DESKTOP"]                    |
| **REGEXP\_MATCH**      | Matches regular expression      | Campaign name matches ".*(viral\|trending).*" |
| **NOT\_REGEXP\_MATCH** | Doesn't match regex             | Campaign name doesn't match "test.\*"         |
| **GREATER\_THAN**      | Numeric greater than            | Spend > 100                                   |
| **LESS\_THAN**         | Numeric less than               | CPC \< 1.50                                   |
| **IS\_NULL**           | Field has no value              | Conversion value is null                      |
| **IS\_NOT\_NULL**      | Field has a value               | Conversion value is not null                  |

#### Filter Examples

**Example 1: High-performing active campaigns**

```
- Spend > 50 (GREATER_THAN)
- Campaign status = "ENABLE" (EQUALS)
- Impressions > 10000 (GREATER_THAN)
```

**Example 2: Video content campaigns using regex (OR logic)**

```
- Campaign name matches ".*(video|viral|content).*" (REGEXP_MATCH)
```

**Example 3: Exclude test campaigns**

```
- Campaign name does not contain "test" (NOT_CONTAINS)
- Campaign name does not contain "draft" (NOT_CONTAINS)
```

#### OR Logic with Filters

Since multiple filters use AND logic, use these approaches for OR conditions:

1. **IN\_LIST operator**: `Placement IN ["TikTok", "Pangle", "Global_App_Bundle"]`
2. **REGEXP\_MATCH operator**: `Campaign name REGEXP_MATCH ".*(video|viral|content).*"`
3. **Run separate queries**: Create different workflows for different conditions

### Options Reference

These optional settings let you format the output from TikTok Ads before passing it to other nodes.

| Option                          | Description                                                                         |
| ------------------------------- | ----------------------------------------------------------------------------------- |
| **Pretty Column Names**         | Converts column headers to Title Case (e.g. `campaignName` becomes `Campaign Name`) |
| **Add Percent Sign to Ratios**  | Appends `%` to ratio metrics like CTR or Engagement Rate                            |
| **Display Currency Symbol**     | Adds `$` or local currency symbol to monetary metrics                               |
| **Compact Numbers**             | Converts large numbers to short format (e.g. `10K` instead of `10,000`)             |
| **Pivot Dimensions as Columns** | Transforms dimension values into separate columns for easier comparison             |

***

## Output

The node returns a structured dataset with performance metrics and dimensions. The exact format depends on your configuration and the data returned from TikTok Ads.

**Typical Output Structure:**

* **Data Rows**: Performance metrics and dimensions
* **Metadata**: Account information, date ranges, and query details
* **Summary Statistics**: Total records, data freshness, execution time

Can be passed to:

* AI nodes like **Analyze Data** or **Structured Output**
* Export nodes (e.g., Google Sheets)
* Email or Slides nodes

***

## Credit Cost

* **Cost per run**: 1 credit per account

***

## Example Setup

```plaintext theme={"dark"}
Scheduler (Daily 8 AM) →
Get Report →
AI Analysis →
Google Slides Report →
Slack Notification
```

**Configuration Example:**

* **Date Range**: Last 7 days
* **Metrics**: Impressions, Clicks, Cost, Conversions
* **Dimensions**: Campaign Name, Date
* **Filters**: Impressions > 0 (only active campaigns)
* **Limit**: 1000 rows

***

## FAQs

<Accordion title="How do I combine filters with OR logic?">
  Multiple filters always use **AND logic** (all conditions must be true). For OR logic, use:

  **Option 1: IN\_LIST operator**

  ```
  Placement IN ["TikTok", "Pangle", "Global_App_Bundle"]
  ```

  **Option 2: REGEXP\_MATCH operator**

  ```
  Campaign name REGEXP_MATCH ".*(video|viral|content).*"
  ```

  **Option 3: Run separate workflows**
  Create different Get Report nodes for different conditions, then combine the data downstream.
</Accordion>

<Accordion title="What's the difference between CONTAINS and REGEXP_MATCH?">
  * **CONTAINS**: Simple substring search. `Campaign name CONTAINS "video"` finds any campaign with "video" anywhere in the name
  * **REGEXP\_MATCH**: Advanced pattern matching. `Campaign name REGEXP_MATCH "^video.*"` finds campaigns that START with "video"

  Use CONTAINS for simple text searches, REGEXP\_MATCH for complex patterns or OR conditions.
</Accordion>

<Accordion title="Why are my filters not working?">
  Common filter issues:

  * **Case sensitivity**: "Video" ≠ "video". Use CONTAINS or regex for flexible matching
  * **Data type mismatch**: Don't use text operators on numeric fields
  * **Field availability**: Not all dimensions/metrics support all filter operators
  * **Syntax errors**: Check regex patterns for proper escaping
</Accordion>

<Accordion title="What happens if I select multiple TikTok Ads accounts?">
  The data will be **aggregated across all selected accounts** into a single dataset.\
  If you'd like to break it out by account, add the `account_name` or `account_id` dimension to segment results per account.
</Accordion>

<Accordion title="Why am I missing conversions?">
  Conversion data might lag behind the UI due to the **conversion window**.\
  For example, with a 30-day window, conversions can change long after the click date.\
  Compare data only **after the window closes** to ensure accuracy.
</Accordion>

<Accordion title="Why is my data different from the TikTok Ads UI?">
  Data discrepancies can occur due to:

  * **Reporting delays**: TikTok Ads data can take up to 24-48 hours to finalize
  * **Attribution windows**: Different attribution models may show different results
  * **Filters**: Check if you have different filters applied in the UI vs API
  * **Status changes**: Status fields may not reflect recent changes (see status FAQ below)
</Accordion>

<Accordion title="Why is my report returning no data?">
  Common causes of empty results:

  * **Date range**: The selected period may have no activity
  * **Filters**: Your filters may be too restrictive
  * **Account status**: Campaigns may be paused or inactive
  * **Metrics compatibility**: Some metric/dimension combinations aren't supported
  * **Account access**: You may lack permissions for specific campaigns
</Accordion>

<Accordion title="Why are some metrics showing as zero?">
  Zero values can indicate:

  * **No activity**: The campaigns genuinely had no performance for those metrics
  * **Conversion tracking**: Conversion metrics require proper tracking setup
  * **Dimension compatibility**: Some dimensions don't work with certain metrics
  * **Attribution**: Different attribution models may show different values
</Accordion>

<Accordion title="My previously connected account stopped working - what happened?">
  This is likely due to TikTok's authentication system:

  * **Single Access Token**: TikTok only issues one access token per user/app
  * **Account Deselection**: When connecting a new account, you may have accidentally deselected an existing one
  * **Solution**: Reconnect to TikTok and ensure ALL accounts you want access to are checked in the authentication dialog
  * **Prevention**: Always verify all desired accounts are selected during TikTok's authentication flow
</Accordion>

<Accordion title="I need a business account to connect - how do I verify this?">
  To connect to TikTok Ads, you need:

  * **TikTok Business Account**: Personal accounts cannot be used for advertising data
  * **Proper Permissions**: The account must have access to the advertising data you want to report on
  * **Authentication**: Follow TikTok's business authentication flow
  * **Verification**: Ensure you're logging in with business account credentials, not personal account
</Accordion>
