# Player Feature - Acquisition Source

{% hint style="info" %}
**Acquisition Source** is a system **Player Feature**.&#x20;

✅  This means that it has been created by FT and is available to use as part of the Singularity Model.&#x20;

🧠  Please note that system Player Features cannot be edited or deleted. If you want to make changes, you must create your own version of the Player Feature.&#x20;
{% endhint %}

## ⚙️  Feature Type

All Player Features must be connected to a Feature Type. Think of the Feature Types as the settings that define the language that we use to talk about important pieces of information. The Player Feature uses these settings and relates them to a player.

The Player Feature: **Acquisition Source** is created based on the **Feature Type: Acquisition Source**.

The **classes** and **slugs** that are required by the Player Feature, are created and defined in the Feature Type.&#x20;

{% hint style="success" %}
📚 Further reading:

[**Feature Types**](https://www.fasttrack-solutions.com/en/resources/knowledge-base/the-singularity-model/feature-types/setting-up-feature-types)

[**Setting up Player Features**](https://www.fasttrack-solutions.com/en/resources/knowledge-base/the-singularity-model/player-features/setting-up-player-features)

[**Movements**](https://www.fasttrack-solutions.com/en/resources/knowledge-base/the-singularity-model/player-features/manage-movements)
{% endhint %}

## 🚀 Objective&#x20;

The objective of the Acquisition Source Player Feature is to be able to differentiate players based on origin, whether they registered through an affiliate or not. Offering the possibility to tailor player engagement that is specific to the acquisition source.

#### Possible outcomes (Classes)

The possible outcomes (Feature Type Classes) that a player can belong to are:

* Direct&#x20;
* Affiliated

Let's look more closely at how these classes are calculated and how players can qualify to belong to a certain class 👇

## ↔  Movements

{% hint style="info" %}
Movements define the way in which players can be moved from one state to another.&#x20;

They can either be real-time movements, that occur when a real-time action occurs (such as a payment or registration), or a time-based query. Time-based queries occur at a set time of the day and evaluate the player base to determine if a player should move class.&#x20;

📚  Read more:

[**Movements**](https://www.fasttrack-solutions.com/en/resources/knowledge-base/the-singularity-model/player-features/manage-movements)

[**Real-Time Movements**](https://www.fasttrack-solutions.com/en/resources/knowledge-base/the-singularity-model/player-features/manage-movements/real-time-movements)

[**Time-Based Queries** ](https://www.fasttrack-solutions.com/en/resources/knowledge-base/the-singularity-model/player-features/manage-movements/time-based-queries)
{% endhint %}

For **Acquisition Source**, there are two Active Processes, or movements, that have been set up to manage player movements between states:

![Active Processes](https://3654650655-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MGrxN2ttYCb8JwJc2TS%2Fuploads%2FHX0FVrWv3SOZ3uPGZ52l%2FAcquisition%20Source%20-%20active%20processes.png?alt=media\&token=4f5c4fb2-44c6-446d-b98d-82c7f794cd48)

#### 1. On Registration or Login, set Affiliate Reference to either "Direct" or "Affiliated"

* This movement is a **Real-Time movement**, based on real-time player events.
* When a player **registers** or **logs in**, they will be moved to either **Direct** or **Affiliated** depending on their affiliate reference.&#x20;
* On this occasion, players will be classified according to the segment rules:
  * Players without an affiliate reference will be moved to Direct&#x20;
  * Players with an affiliate reference will be moved to Affiliated

![Players without an Affiliate Reference](https://3654650655-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MGrxN2ttYCb8JwJc2TS%2Fuploads%2FVGlVfo3JrHmMhUoaIiM2%2FAcquisition%20Source%20-%20segment%20without%20affiliate%20ref.png?alt=media\&token=0e2e6615-28aa-4b65-8aad-3d31509e1cd5)

![Players with an Affiliate Reference](https://3654650655-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MGrxN2ttYCb8JwJc2TS%2Fuploads%2FPhFInwwgRz1mpGVC84Cx%2FAcquisition%20Source%20-%20segment%20with%20affiliate%20ref.png?alt=media\&token=dfa3ea41-114d-4707-8731-47f4ba703c85)

{% hint style="info" %}
🧠  It is important to note that the segment rules will be checked in sequence and the player will be moved as soon as they match a segment.&#x20;

Therefore it is important that the segments are created ensuring that players can only belong to one segment.
{% endhint %}

![Set Affiliate Reference ](https://3654650655-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MGrxN2ttYCb8JwJc2TS%2Fuploads%2FKOH769rHmhk4a9idoR0J%2FAcquisition%20Source%20-%20set%20affiliate%20ref.png?alt=media\&token=9e609b31-6496-413c-b800-f9edba5611db)

#### 2. Evaluate Acquisition Source

* This movement is a **Time-Based Query** that is set to run at a set time of '**Everyday at 03:00 UTC**'.
* The purpose of this computation is to review all players and evaluate where they should be classified. Players will be classified based on their affiliate reference and regardless of any casino or sportsbook activity.
* The query will catch any players who did not make a deposit or log in.&#x20;
* Blocked and excluded players are also included.

![Evaluate Acquisition Source](https://3654650655-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MGrxN2ttYCb8JwJc2TS%2Fuploads%2FEYioLHUJJrgup1A2pUE5%2FAcquisition%20Source%20-%20evaluate%20affiliate%20state.png?alt=media\&token=4363cd27-7c9c-4ba9-a88c-499dcfb36ccc)

## 🧠  Queries

Most of the Player Features in the Singularity Model make use of time-based queries. Queries are good for determining states of player inactivity, something a real-time movement is unable to determine.&#x20;

Our queries are created using ClickHouse and are included in the Singularity Model for you to use.&#x20;

{% hint style="info" %}
🧠  Please note that the **slug** from the **Feature Type** **class** must match inside the query.
{% endhint %}

If you want to write your own queries, you can use the Query Editor or ask Fast Track for assistance. You can find the query editor in: **Insights & Analytics menu - Data Studio - Query Editor**.

![Evaluate Acquisition Source computation ](https://3654650655-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MGrxN2ttYCb8JwJc2TS%2Fuploads%2FQNwIPloMDSbXkS3Q1HiB%2FAcquisition%20Source%20-%20query.png?alt=media\&token=7bed48a5-8fb0-4b90-92f1-a01bf2ad8033)

## 🏁  What's Next

#### Dashboards

After some time, once the computation triggers have fired, you'll be able to see that players have now been assigned to one of the classes of Player Feature. You can see this happen in the Player Distribution dashboard inside the Player Feature:

![Player Distribution ](https://3654650655-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MGrxN2ttYCb8JwJc2TS%2Fuploads%2F4eYBGHiGOH6OkcmbxAa4%2FAcquisition%20Source%20-%20dashboard.png?alt=media\&token=0ef17f56-8b10-4e3a-a99e-83f4483950cb)

#### Segmentation

Following this, you can use **Acquisition Source** when creating segments for Activities and Lifecycles. You will be able to find **Acquisition Source** amongst the segment fields when you’re creating a segment.

![Segment fields ](https://3654650655-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MGrxN2ttYCb8JwJc2TS%2Fuploads%2F1PNhfdG3j1JwKV3JnD8U%2FAcquisition%20Source%20-%20segment%20list.png?alt=media\&token=e2658ed9-f177-44bb-b783-b66da8579c66)
