# Configuration Options

 There's a new version available!

These pages cover version 2 of our SDK, but a newer version is available. In general, we suggest that you update to the latest version to take advantage of new features and fixes.

*   Are you new to our SDKs? [Check out the latest docs.](/integrations/sdk/flutter/getting-started)
*   Otherwise, [learn about updating to the latest version](/integrations/sdk/flutter/whats-new/)

The SDK consists of a few packages. You’ll get the most value out of Customer.io when you use all our packages together, but this lets you omit packages for features you don’t intend to use.

You’ll call configuration options before you initialize the SDK with `CustomerIOConfig`. When you initialize the SDK, you can pass configuration options. In most cases, you’ll want to stick with the defaults, but you might do things like change the `logLevel` when testing updates to your app.

```dart
CustomerIO.initialize(
  config: CustomerIOConfig(
    cdpApiKey: "YOUR_CDP_API_KEY", // Required
    migrationSiteId: "YOUR_SITE_ID", // Required to migrate from a previous version
    autoTrackDeviceAttributes: true,
    region: Region.us,
    logLevel: CioLogLevel.error
  )
);
```

Option

Type

Default

Description

`cdpApiKey`

string

**Required**: the key you'll use to initialize the SDK and send data to Customer.io

`region`

`eu` or `us`

`us`

**Required if your account is in the EU region**.

`migrationSiteId`

string

**Required if you're updating from 1.x**: the credential for previous versions of the SDK. We use this key to send remaining tasks to Customer.io when your audience updates your app.

`autoTrackDeviceAttributes`

boolean

`true`

Automatically gathers information about devices, like operating system, device locale, model, app version, etc

`screenViewUse`

`All` or `inApp`

`all`

`ScreenView.all` (Default): Screen events are sent to Customer.io. You can use these events to build segments, trigger campaigns, and target in-app messages.  
  
`ScreenView.InApp`: Screen view events not sent to Customer.io. You’ll *only* use them to target in-app messages based on page rules.

`trackApplicationLifecycleEvents`

boolean

`true`

Set to `false` if you don’t want the app to send [lifecycle events](/integrations/sdk/flutter/tracking/lifecycle-events) like `Application Opened`

`logLevel`

string

`error`

Sets the level of logs you can view from the SDK. Set to `debug` or `info` to see more logging output.

`inApp.siteId`

string

Used to initialize the `inApp` package, and determines the workspace your in-app messages come from.

`push.android.pushClickBehavior`

string

`activityPreventRestart`

One of `resetTaskStack`, `activityPreventRestart`, `activityNoFlags`; determines how to handle push clicks.