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

# Getting Started

> Install the Gameball React Native SDK into your app

The Gameball Android and iOS package, enables you to use the show Gameball customer profile in your app, track app customer events, integrate referrals and display Gameball in-app push notifications.

## Installation

Follow the below steps to start installing react native SDK package to your app

* Install package using npm

```bash theme={null}
npm install --save react-native-gameball
```

* Install prerequisite packages using npm

```bash theme={null}
npm install react-native-modal react-native-push-notification-popup
```

react-native-modal and react-native-push-notification-popup packages are required to use Gameball package.

Fetch API is used for network communications, conversion of response to JSON is needed in order to read the response `res => res.json()`

## Initialization

In order to use Gameball SDK, apply the below step to the **main JS file (index or app)**.

**Import Gameball Widget**

```javascript theme={null}
import {GameballWidget} from 'react-native-gameball';
```

**Initialize Gameball Widget**

```javascript theme={null}
GameballWidget.init({api, lang, shop, platform, deepLinks})
```

## Widget Parameters Description

<ParamField body="api" type="string" required>
  The API key of the Client account
</ParamField>

<ParamField body="lang" type="string">
  The language that the SDK should be initialized with (based on the Client's configuration)
</ParamField>

<ParamField body="shop" type="string">
  Store name with myshopify.com domain. Used if your app is a mobile app for a Shopify store connected to Gameball
</ParamField>

<ParamField body="platform" type="string">
  The platform you application used:

  * `Shopify`
  * `Salla`
  * `any`
</ParamField>

<ParamField body="deeplinks" type="string[]">
  Array of deep links for the application
</ParamField>

<Note>
  You may also check the sample project here to view full implementation.
</Note>

## Profile Languages

For websites with multiple languages, how you can change **Gameball** widget language based on active website language. **Gameball** supports multiple languages for the customer profile widget. The widget language can be changed based on your customer's active language on the website.

<Info>
  Learn how you can configure the languages on your Gameball account through this [article](https://help.gameball.co/en/articles/3464234).
</Info>

### Supported Languages & Codes

<Expandable title="Supported languages and their codes">
  | Language                      | Code  |
  | ----------------------------- | ----- |
  | English                       | en    |
  | Arabic                        | ar    |
  | French                        | fr    |
  | Spanish                       | es    |
  | German                        | de    |
  | Portuguese                    | pt    |
  | Polish                        | pl    |
  | Italian                       | it    |
  | Hungarian                     | hu    |
  | Chinese (Traditional, Taiwan) | zh-tw |
  | Dutch                         | nl    |
  | Swedish                       | sv    |
  | Norwegian                     | no    |
  | Danish                        | dk    |
  | Japanese                      | ja    |
</Expandable>

In order to show the correct language of the widget based on the active language on the website, you just need to use the language code inside the `lang` variable in the code snippet.

## Next Steps

* [Initialize Gameball Customer Profile](/installation-guides/v2/react-native/initialize-profile)
* [Track Customer Events](/installation-guides/v2/react-native/track-events)
