# AppsFlyer PC/Console/CTV Events API

[Appsflyer](https://www.appsflyer.com/)'s platform is used by businesses to understand how users find and interact with their apps.\
Using this destination you can leverage [AppsFlyer PC/Console/CTV Events API](https://dev.appsflyer.com/hc/reference/pc-console-ctv-api-overview) to measure [first app opens](https://dev.appsflyer.com/hc/reference/post_first-open-app-platform-app-id) and [in-app events](https://dev.appsflyer.com/hc/reference/post_first-open-app-platform-app-id).

## Key features

The AppsFlyer PC/Console/CTV Events API destination provides the following key features:

* **Events structure**: our [Events reference](https://community.commandersact.com/platform-x/developers/tracking/events-reference) supports [AppsFlyer's event structure](https://dev.appsflyer.com/hc/reference/post_inapp-app-platform-app-id), meaning that your data is properly bridged to the expected fields in an optimized way.
* **Prebuilt mappings**: data mapping for event-based destinations happens automatically, which simplifies user inputs.
* **Custom events and properties**: you can freely push custom events and properties based on your specific needs.
* **Smart mapping**: data mapping can be readjusted using your datalayer defined fields.
* **Support for multi-item data**: information included in the [item](https://community.commandersact.com/platform-x/developers/tracking/events-reference#item) array is bridged to AppsFlyer.

## Destination setup

{% hint style="info" %}
Ensure your app is registered in [AppsFlyer](https://hq1.appsflyer.com/auth/login) under <mark style="color:blue;">`My Apps`</mark> .
{% endhint %}

### Configuration

<table><thead><tr><th width="300">Settings</th><th>Description</th></tr></thead><tbody><tr><td><code>Signature Secret Key</code></td><td><em><strong><code>Required</code></strong></em><br>The developer key as the signature secret key. You can find its value in the <a href="https://hq1.appsflyer.com/unified-ltv/dashboard">AppsFlyer's dashboard</a> under <mark style="color:blue;"><code>Settings</code></mark> → <mark style="color:blue;"><code>My Apps</code></mark> → click <mark style="color:blue;"><code>⋮</code></mark> next to your app → <mark style="color:blue;"><code>App settings</code></mark> → <mark style="color:blue;"><code>Dev key</code></mark> .</td></tr><tr><td><code>Application Id</code></td><td><em><strong><code>Required</code></strong></em><br>Your application identifier (app-id). You can find its value in the <a href="https://hq1.appsflyer.com/unified-ltv/dashboard">AppsFlyer's dashboard</a> under <mark style="color:blue;"><code>Settings</code></mark> → <mark style="color:blue;"><code>My Apps</code></mark> → mouse over just below your app name → click <mark style="color:blue;"><code>Copy app id</code></mark> .</td></tr><tr><td><code>Platform</code></td><td><em><strong><code>Required</code></strong></em><br>Select your platform of the measured app from the provided list: <mark style="color:blue;"><code>roku</code></mark> , <mark style="color:blue;"><code>smartcast</code></mark> , <mark style="color:blue;"><code>tizen</code></mark> , <mark style="color:blue;"><code>webos</code></mark> , <mark style="color:blue;"><code>playstation</code></mark> , <mark style="color:blue;"><code>vidaa</code></mark> , <mark style="color:blue;"><code>steam</code></mark> , <mark style="color:blue;"><code>quest</code></mark> , <mark style="color:blue;"><code>battlenet</code></mark> , <mark style="color:blue;"><code>epic</code></mark> , <mark style="color:blue;"><code>switch</code></mark> , <mark style="color:blue;"><code>xbox</code></mark> , <mark style="color:blue;"><code>nativepc</code></mark> and <mark style="color:blue;"><code>vega</code></mark> .</td></tr><tr><td><code>First Open Event Name</code></td><td><em><strong><code>Required see below</code></strong></em><br>The name of the event identifying app first opens. Default: <mark style="color:blue;"><code>first_open</code></mark> . This is required if your app does not integrate our <a href="https://doc.commandersact.com/features/sources/sources-catalog/mobile-app">mobile SDK</a>.</td></tr><tr><td><code>Device Id Mapping</code></td><td><em><strong><code>Required</code></strong></em><br>Map your device identifiers by selecting a <mark style="color:blue;"><code>type</code></mark> from the provided list, and a <mark style="color:blue;"><code>value</code></mark> . At least one entry is required.</td></tr><tr><td><code>Event Mapping</code></td><td>Change the standard mapping between AppsFlyer events and yours or add new mappings.</td></tr><tr><td><code>Param Mapping</code></td><td>Map your custom parameters by setting their field names in <code>AppsFlyer parameter</code> and adding the value in <code>Your value</code>.</td></tr></tbody></table>

## Quick reference

| Commanders Act Events                                               | AppsFlyer Events                   |
| ------------------------------------------------------------------- | ---------------------------------- |
| `achievement_unlocked`                                              | `af_achievement_unlocked`          |
| `ad_click`                                                          | `af_ad_click`                      |
| `ad_view`                                                           | `af_ad_view`                       |
| `add_payment_info`                                                  | `af_add_payment_info`              |
| `add_to_cart`                                                       | `af_add_to_cart`                   |
| `add_to_wishlist`                                                   | `af_add_to_wishlist`               |
| `app_opened`                                                        | `af_app_opened`                    |
| `sign_up`                                                           | `af_complete_registration`         |
| `view_item`                                                         | `af_content_view`                  |
| `begin_checkout`                                                    | `af_initiated_checkout`            |
| `invite`                                                            | `af_invite`                        |
| `generate_lead`                                                     | `lead`                             |
| `level_achieved`                                                    | `af_level_achieved`                |
| `view_item_list`                                                    | `af_list_view`                     |
| `login`                                                             | `af_login`                         |
| `notification_open`                                                 | `af_opened_from_push_notification` |
| <p><code>in\_app\_purchase</code><br><code>purchase</code></p>      | `af_purchase`                      |
| <p><code>submit\_rating</code><br><code>rate</code></p>             | `af_rate`                          |
| `re_engage`                                                         | `af_re_engage`                     |
| <p><code>view\_search\_results</code></p><p><code>search</code></p> | `af_search`                        |
| `share`                                                             | `af_share`                         |
| `spend_virtual_currency`                                            | `af_spent_credits`                 |
| `spent_credits`                                                     | `af_spent_credits`                 |
| `start_trial`                                                       | `af_start_trial`                   |
| `subscribe`                                                         | `af_subscribe`                     |
| `travel_booking`                                                    | `af_travel_booking`                |
| `ecommerce_purchase`                                                | `af_travel_booking`                |
| `tutorial_complete`                                                 | `af_tutorial_completion`           |
| <p><code>app\_update</code><br><code>update</code></p>              | `af_update`                        |

## Field mappings

{% hint style="info" %}
Most properties can be remapped using our "Smart Mapping" feature.
{% endhint %}

<table data-full-width="true"><thead><tr><th width="668.6685580062747">Commanders Act Properties</th><th>AppsFlyer Properties</th></tr></thead><tbody><tr><td><code>context.device.ip</code></td><td><code>ip</code> <strong>[*]</strong></td></tr><tr><td><code>Device Id Mapping</code></td><td><code>device_ids</code> <strong>[*]</strong></td></tr><tr><td><code>context.event_timestamp</code></td><td><code>timestamp</code></td></tr><tr><td><code>context.event_id</code></td><td><code>request_id</code></td></tr><tr><td><code>context.device.user_agent</code></td><td><code>user_agent</code></td></tr><tr><td><code>context.device.os.version</code></td><td><code>device_os_version</code></td></tr><tr><td><code>context.device.model</code></td><td><code>device_model</code></td></tr><tr><td><code>(context.device.ad_tracking_enabled)</code></td><td><code>limit_ad_tracking</code></td></tr><tr><td><code>user.id</code></td><td><p><code>customer_user_id</code></p><p><code>af_customer_user_id</code></p></td></tr><tr><td><code>context.app.version</code></td><td><code>app_version</code></td></tr><tr><td><code>partners.appsflyer.sharing_filters</code></td><td><code>sharing_filter</code></td></tr><tr><td><code>(event_name)</code></td><td><code>event_name</code> <strong>[1][4]</strong></td></tr><tr><td><code>value</code></td><td><code>af_revenue</code> <strong>[2][4]</strong></td></tr><tr><td><code>currency</code></td><td><code>af_currency</code> <strong>[2][4]</strong></td></tr><tr><td><code>ad_format</code></td><td><code>af_adrev_ad_type</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_city</code></td><td><code>af_city</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_class</code></td><td><code>af_class</code> <strong>[3][4]</strong></td></tr><tr><td><code>items.0.product.name</code></td><td><code>af_content</code> <strong>[3][4]</strong></td></tr><tr><td><code>items.0.id</code></td><td><code>af_content_id</code> <strong>[3][4]</strong></td></tr><tr><td><code>items.X.id</code></td><td><code>af_content_list</code> <strong>[3][4]</strong></td></tr><tr><td><code>items.length</code></td><td><code>af_quantity</code> <strong>[3][4]</strong></td></tr><tr><td><code>items.0.product.category_1</code></td><td><code>af_content_type</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_country</code></td><td><code>af_country</code> <strong>[3][4]</strong></td></tr><tr><td><code>currency</code></td><td><code>af_currency</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_date_a</code></td><td><code>af_date_a</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_date_b</code></td><td><code>af_date_b</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_departing_arrival_date</code></td><td><code>af_departing_arrival_date</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_departing_departure_date</code></td><td><code>af_departing_departure_date</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_returning_arrival_date</code></td><td><code>af_returning_arrival_date</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_returning_departure_date</code></td><td><code>af_returning_departure_date</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_description</code></td><td><code>af_description</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_dest_a</code></td><td><code>af_destination_a</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_dest_b</code></td><td><code>af_destination_b</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_dest_list</code></td><td><code>af_destination_list</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_hotel_score</code></td><td><code>af_hotel_score</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_level</code></td><td><code>af_level</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_max_rating_value</code></td><td><code>af_max_rating_value</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_num_adults</code></td><td><code>af_num_adults</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_num_children</code></td><td><code>af_num_children</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_num_infants</code></td><td><code>af_num_infants</code> <strong>[3][4]</strong></td></tr><tr><td><code>id</code></td><td><code>af_order_id</code> <strong>[3][4]</strong></td></tr><tr><td><code>payment_method</code></td><td><code>af_payment_info_available</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_hotel_area</code></td><td><code>af_preferred_neighborhoods</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_preferred_num_stops</code></td><td><code>af_preferred_num_stops</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_preferred_price_range</code></td><td><code>af_preferred_price_range</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_preferred_star_ratings</code></td><td><code>af_preferred_star_ratings</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_projected_revenue</code></td><td><code>af_projected_revenue</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_max_rating_value</code></td><td><code>af_rating_value</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_receipt_id</code></td><td><code>af_receipt_id</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_region</code></td><td><code>af_region</code> <strong>[3][4]</strong></td></tr><tr><td><code>method</code></td><td><code>af_registration_method</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.score</code></td><td><code>af_score</code> <strong>[3][4]</strong></td></tr><tr><td><code>search_term</code></td><td><code>af_search_string</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_subscription_id</code></td><td><code>af_subscription_id</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_success</code></td><td><code>af_success</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_suggested_destinations</code></td><td><code>af_suggested_destinations</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_suggested_hotels</code></td><td><code>af_suggested_hotels</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_travel_end</code></td><td><code>af_travel_end</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_travel_start</code></td><td><code>af_travel_start</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_user_score</code></td><td><code>af_user_score</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_validated</code></td><td><code>af_validated</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_achievement_id</code></td><td><code>af_achievement_id</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_coupon_code</code></td><td><code>af_coupon_code</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_customer_segment</code></td><td><code>af_customer_segment</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_deep_link</code></td><td><code>af_deep_link</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_event_end</code></td><td><code>af_event_end</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_event_start</code></td><td><code>af_event_start</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_lat</code></td><td><code>af_lat</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_long</code></td><td><code>af_long</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_new_version</code></td><td><code>af_new_version</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_old_version</code></td><td><code>af_old_version</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_review_text</code></td><td><code>af_review_text</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_tutorial_id</code></td><td><code>af_tutorial_id</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_virtual_currency_name</code></td><td><code>af_virtual_currency_name</code> <strong>[3][4]</strong></td></tr><tr><td><code>partners.appsflyer.af_duration_seconds</code></td><td><code>af_duration_seconds</code> <strong>[3][4]</strong></td></tr></tbody></table>

{% hint style="info" %}

> **\[\*]** Mandatory property.\
> \&#xNAN;**\[1]** See [Quick reference](#quick-reference) for more details on the standard mapping.\
> \&#xNAN;**\[2]** Set in the property `event_parameters` .\
> \&#xNAN;**\[3]** Set in the property `event_custom_parameters` .\
> \&#xNAN;**\[4]** This property is not present for first app opens.
> {% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.commandersact.com/features/destinations/destinations-catalog/appsflyer-pc-console-ctv-events-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
