Modules and Placements Modules are the core building blocks of a Froomle integration. A module represents one distinct placement in a channel and page type, such as a "Continue Reading" box on an article page or a "Recommended for you" block on a home page. Module definition A module is a logical "slot" in your user experience. It is defined by three immutable dimensions that align with industry-standard tracking frameworks (such as Google Analytics 4 or Snowplow): Channel: The platform where the request originates (e.g., website, mobile app). Page Type: The logical category of the page or screen (e.g., home, article, category). Placement: A unique label for the location on that specific page/screen (e.g., sidebar, bottom). These three values determine a unique module and should not change after go-live. Changing any of them requires a new module definition in the Froomle backend. Standardized Taxonomy To ensure data consistency between your analytics platform and Froomle, we recommend using the following standardized values. Channels The channel helps Froomle understand the device constraints and user behavior patterns of different platforms. This maps to the Platform dimension in GA4 or Snowplow. Froomle Value Industry Mapping Description www GA4: Web / Snowplow: web General website traffic. www-desktop - Specific for desktop browser experiences. www-mobile - Specific for mobile browser experiences. app-ios GA4: iOS / Snowplow: mob Native iOS application. app-android GA4: Android / Snowplow: mob Native Android application. email - Outbound newsletter or email placement. Page Types The page type tells Froomle the intent of the user. This maps to the custom page_type dimension used in most professional GA4 and Snowplow implementations. Pages with _detail suffix refer to a page where a single item is displayed. Pages without _detail suffix refer to a page where a list of items is displayed. Froomle Value GA4/Snowplow equivalent Description home homepage The main entry point of the site or app. category category_page or listing A list of items belonging to one topic. article_detail article_detail or blog_post A single piece of content (news, blog, etc.). video_detail video_page or media_detail A page centered around a video player. product_detail product_detail A specific product page (for e-commerce). item_detail content_detail or item_page A generic detail page for any non-specific item type. search search_results Results from an internal site search. checkout cart or checkout Finalization of a transaction. other other or uncategorized A catch-all for pages that do not fit into the primary categories. If your team uses a dataLayer in Google Tag Manager, we recommend using the exact same page_type variable for your Froomle API requests. list_name Each module has a list_name, which is the identifier you use in recommendation requests and event tracking. It must be: Unique per placement. Stable over time. Meaningful enough to map to the placement (but not dependent on a UI label that could change). Froomle constructs list_name as channel_pageType_location_optionalText. Avoid changing optionalText after go-live. Module configuration Beyond the defining fields, a module can be configured with: Strategy (personalized, similar, topical, editor-curated). Filters and constraints. List size (number of recommendations). These settings can evolve over time without changing the list_name. Deduplication across placements If multiple modules appear on the same page, configure deduplication rules so items are not repeated across placements. This typically requires consistent list_name usage and, when needed, passing visible item IDs in the request context. Placement mapping checklist Use the checklist below when defining your placements: The placement appears in a consistent context (same channel and page type). You can provide any required context (for example, a current item or category). You can track impressions and clicks for that placement. The module name is aligned between product, engineering, and analytics. News module catalog See News modules for the default module library and usage guidance. Related topics News modules Tracking events Filters and constraints Recommendation requests