> For the complete documentation index, see [llms.txt](https://docs.firework.com/firework-for-developers/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/feed-sources/discovery-feed.md).

# Discovery Feed

The Discovery Feed provides curated content from the Firework platform that learns user preferences over time. It's the most exploratory feed type, probing user preferences and recommending videos users are most likely to engage with while maintaining your app's core theme.

## Overview

Discovery Feed uses recommendation algorithms to:

* Learn what users like and dislike over time
* Suggest videos based on user engagement patterns
* Maintain app-specific constraints you configure

## Configuration Options

You can configure the following constraints for your application during registration. Work with the Firework partner success team to help with configuration:

### Available Constraints

* **Locale** - Filter videos by specific locales
* **Country** - Filter by country where video was uploaded
* **Language** - Filter by video language
* **Allow Tags** - Include videos with specific tags
* **Reject Tags** - Exclude videos with specific tags

> **Note:** If no constraints are defined, you may see international content. Constraints can be defined at registration time or configured at runtime.

## Usage

### XML Configuration

```xml
<com.firework.videofeed.FwVideoFeedView
    android:id="@+id/videoFeedView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
```

### Programmatic Configuration

```kotlin
val viewOptions = viewOptions {
    baseOptions {
        feedResource(FeedResource.Discovery)
    }
    layoutOptions {
        feedLayout(FeedLayout.GRID)
        columnCount(3)
    }
}

val videoFeedView = findViewById<FwVideoFeedView>(R.id.videoFeedView)
videoFeedView.init(viewOptions)
```

## Complete Example

```kotlin
class DiscoveryActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_discovery)
        
        val videoFeedView = findViewById<FwVideoFeedView>(R.id.videoFeedView)
        
        val viewOptions = viewOptions {
            baseOptions {
                feedResource(FeedResource.Discovery)
            }
            layoutOptions {
                feedLayout(FeedLayout.GRID)
                columnCount(3)
            }
            titleOptions {
                showFeedTitle(true)
            }
        }
        
        videoFeedView.init(viewOptions)
    }
}
```

## Important Notes

* Discovery Feed requires no parameters (it's a singleton object)
* Content is personalized based on user engagement
* Backend constraints can be configured through your Firework account
* Videos are ordered by recommendation algorithm
* User preferences are learned over time through interactions

## See Also

* [Feed Sources Overview](/firework-for-developers/android-sdk/integration-guide/feed-sources.md) - All available feed types
* [BaseOption Configuration](/firework-for-developers/android-sdk/integration-guide/configuration/base-options.md) - Detailed configuration
* [FwVideoFeedView](/firework-for-developers/android-sdk/integration-guide/configure-video-feed.md) - Video feed widget
* [Layout Options](/firework-for-developers/android-sdk/integration-guide/configuration/layout-options.md) - Feed layout configuration


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.firework.com/firework-for-developers/android-sdk/integration-guide/feed-sources/discovery-feed.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
