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

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

Programmatic Configuration

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

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

Last updated