# registerAvailableCampaignsHandler

Receive a callback whenever the SDK gets back the current list of available [NamiCampaign](https://docs.namiml.com/sdk-reference/namicampaignmanager/namicampaign) objects for the device. This list is personalized for the device by the Nami backend server based upon campaign filtering and priority rules.

{% tabs %}
{% tab title="Swift" %}

```swift
NamiCampaignManager.registerAvailableCampaignsHandler { campaigns in
}
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
NamiCampaignManager.registerAvailableCampaignsHandler() { availableCampaigns ->
  
}
```

{% endtab %}

{% tab title="Flutter" %}

```dart
import 'package:nami_flutter/campaign/nami_campaign.dart';
import 'package:nami_flutter/campaign/nami_campaign_manager.dart';
List<NamiCampaign> _campaigns = [];

NamiCampaignManager.registerAvailableCampaignsHandler().listen((list) {
  setState(() {
    _campaigns = list;
  });
});
```

{% endtab %}

{% tab title="React Native" %}

```c
import {NamiCampaignManager, NamiCampaign} from 'react-native-nami-sdk';

useEffect(() => {
  const subscriptionRemover =
    NamiCampaignManager.registerAvailableCampaignsHandler(
      (availableCampaigns) => {
        console.log('availableCampaigns', availableCampaigns);
        setCampaigns(availableCampaigns);
      },
    );
  return () => {
    subscriptionRemover();
  };
}, []);
```

{% endtab %}
{% endtabs %}
