{"id":10776,"date":"2024-08-27T17:15:19","date_gmt":"2024-08-27T15:15:19","guid":{"rendered":"https:\/\/refinery89.com\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/tagged-widgets-guidelines\/"},"modified":"2024-12-17T13:03:19","modified_gmt":"2024-12-17T12:03:19","slug":"tagged-widgets-guidelines","status":"publish","type":"docs","link":"https:\/\/refinery89.com\/it\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/tagged-widgets-guidelines\/","title":{"rendered":"Tagged Widgets Guidelines"},"content":{"rendered":"<div class=\"ak-renderer-extension \" data-layout=\"default\">\n<div class=\"ak-renderer-extension-overflow-container\">\n<div class=\"_1reo1wug _18m91wug _ugi3idpf _gutmidpf\" title=\"Macro (toc)\" data-fabric-macro=\"9ccd9504-0ce4-4a35-92c7-e36fc848b6f8\" data-macro-body=\"true\" data-macro-parameters=\"{&quot;minLevel&quot;:{&quot;value&quot;:&quot;1&quot;},&quot;maxLevel&quot;:{&quot;value&quot;:&quot;6&quot;},&quot;outline&quot;:{&quot;value&quot;:&quot;false&quot;},&quot;style&quot;:{&quot;value&quot;:&quot;none&quot;},&quot;type&quot;:{&quot;value&quot;:&quot;list&quot;},&quot;printable&quot;:{&quot;value&quot;:&quot;true&quot;}}\" data-testid=\"printable-wrapper\">\n<div class=\"macro-core toc-macro conf-macro output-block\" data-numberedoutline=\"false\" data-cssliststyle=\"none\" data-headerelements=\"H1,H2,H3,H4,H5,H6\" data-hasbody=\"false\" data-macro-name=\"toc\" data-macro-id=\"9ccd9504-0ce4-4a35-92c7-e36fc848b6f8\" data-structure=\"list\">\n<ul data-testid=\"list-style-toc-level-container\">\n<li class=\"_qtt8140o\" data-testid=\"list-style-toc-item-container\"><span class=\"toc-item-body\" data-outline=\"1\"><a class=\"_1wyb3gti toc-link\" href=\"#What-is-the-R89Tag?\" data-testid=\"toc-item-body\">What is the R89Tag?<\/a><\/span><\/li>\n<li class=\"_qtt8140o\" data-testid=\"list-style-toc-item-container\"><span class=\"toc-item-body\" data-outline=\"2\"><a class=\"_1wyb3gti toc-link\" href=\"#Where-To-Add-The-R89Tag?\" data-testid=\"toc-item-body\">Where To Add The R89Tag?<\/a><\/span><\/li>\n<li class=\"_qtt8140o\" data-testid=\"list-style-toc-item-container\"><span class=\"toc-item-body\" data-outline=\"3\"><a class=\"_1wyb3gti toc-link\" href=\"#Best-Practices-When-Adding-a-R89Tag\" data-testid=\"toc-item-body\">Best Practices When Adding a R89Tag<\/a><\/span><\/li>\n<li class=\"_qtt8140o\" data-testid=\"list-style-toc-item-container\"><span class=\"toc-item-body\" data-outline=\"4\"><a class=\"_1wyb3gti toc-link\" href=\"#Example\" data-testid=\"toc-item-body\">Example<\/a><\/span>\n<ul data-testid=\"list-style-toc-level-container\">\n<li class=\"_qtt8140o\" data-testid=\"list-style-toc-item-container\"><span class=\"toc-item-body\" data-outline=\"4.1\"><a class=\"_1wyb3gti toc-link\" href=\"#Place-the-R89Tag-into-the-widget-tree.\" data-testid=\"toc-item-body\">Place the R89Tag into the widget tree.<\/a><\/span><\/li>\n<li class=\"_qtt8140o\" data-testid=\"list-style-toc-item-container\"><span class=\"toc-item-body\" data-outline=\"4.2\"><a class=\"_1wyb3gti toc-link\" href=\"#Place-the-R89Tag-into-the-scrollable-widget.\" data-testid=\"toc-item-body\">Place the R89Tag into the scrollable widget.<\/a><\/span><\/li>\n<li class=\"_qtt8140o\" data-testid=\"list-style-toc-item-container\"><span class=\"toc-item-body\" data-outline=\"4.3\"><a class=\"_1wyb3gti toc-link\" href=\"#Display-Interstitial-on-R89Tag-child\u2019s-onTap\" data-testid=\"toc-item-body\">Display Interstitial on R89Tag child\u2019s onTap<\/a><\/span><\/li>\n<\/ul>\n<\/li>\n<li class=\"_qtt8140o\" data-testid=\"list-style-toc-item-container\"><span class=\"toc-item-body\" data-outline=\"5\"><a class=\"_1wyb3gti toc-link\" href=\"#Summary\" data-testid=\"toc-item-body\">Summary<\/a><\/span><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h1 id=\"What-is-the-R89Tag?\" data-renderer-start-pos=\"2\">What is the R89Tag?<\/h1>\n<p data-renderer-start-pos=\"23\">The <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89Tag<\/code> is a widget provided by the <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89SDK<\/code> with a required <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">tag<\/code> parameter. The <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">tag<\/code> is used by the <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89SDK<\/code> to place ads where you want us to add the monetization inventory inside your app\u2019s widget tree.<\/p>\n<h1 id=\"Where-To-Add-The-R89Tag?\" data-renderer-start-pos=\"227\">Where To Add The R89Tag?<\/h1>\n<p data-renderer-start-pos=\"253\">While it is true that filling your app with ads to the brim is not the best user experience, <strong data-renderer-mark=\"true\">we recommend you add the R89Tag widgets everywhere where there is a blank space on the screen. <\/strong>Even if<strong data-renderer-mark=\"true\"> you do not want to fill them in, it is okay.<\/strong> We can manage which ones are filled and which are not from the web.<\/p>\n<h1 id=\"Best-Practices-When-Adding-a-R89Tag\" data-renderer-start-pos=\"563\">Best Practices When Adding a R89Tag<\/h1>\n<p data-renderer-start-pos=\"600\">Before adding an <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89Tag<\/code> to the app\u2019s widget tree, make sure the following<\/p>\n<ul class=\"ak-ul\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"677\">Do not overlap other <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89Tag<\/code> or other UI components.<\/p>\n<\/li>\n<li>\n<p data-renderer-start-pos=\"733\">Every blank space is a good space to place an <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89Tag<\/code> (even if you do not plan to use it).<\/p>\n<\/li>\n<li>\n<p data-renderer-start-pos=\"826\">Do not use only one <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">tag<\/code> for all of your wrappers, it will be hard to configure your monetization and change it according to your needs.<\/p>\n<\/li>\n<\/ul>\n<h1 id=\"Example\" data-renderer-start-pos=\"965\">Example<\/h1>\n<p data-renderer-start-pos=\"974\">Just before starting to put <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89Tag<\/code> widgets into your widget tree, make sure to add <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89SDK.routeObserver<\/code> to your <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">navigatorObservers<\/code> list<\/p>\n<div class=\"code-block\">\n<pre>@override\r\nWidget build(BuildContext context) {\r\n  return MaterialApp(\r\n    navigatorObservers: [\r\n      R89SDK.routeObserver,\r\n    ],\r\n    \/\/ ...\r\n  );\r\n}\r\n<\/pre>\n<\/div>\n<p data-renderer-start-pos=\"1261\">and initialize the <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89SDK<\/code> with the <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">singleTag<\/code> parameter specified <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">true<\/code> as shown below.<\/p>\n<div class=\"code-block\">\n<pre>void initializeSDK() {\r\n  R89SDK.setLogLevel(LogLevel.debug);\r\n  R89SDK.setDebug(getLocalFakeData: true);\r\n  R89SDK.initialize(\r\n    publisherId: \"TestRefinery89ID\",\r\n    appId: \"TestDemoApp\",\r\n    \/\/ if true enables the auto-configuration mode\r\n    singleTag: true);\r\n}\r\n<\/pre>\n<\/div>\n<h2 id=\"Place-the-R89Tag-into-the-widget-tree.\" data-renderer-start-pos=\"1620\">Place the <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89Tag<\/code> into the widget tree.<\/h2>\n<p data-renderer-start-pos=\"1660\">In the sample below two <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89Tag<\/code> widgets are placed in a widget tree with pre-configured <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">tag<\/code> parameters.<\/p>\n<div class=\"code-block\">\n<pre>@override\r\nWidget build(BuildContext context) =&gt;\r\n  const Column(\r\n    crossAxisAlignment: CrossAxisAlignment.center,\r\n    children: &lt;Widget&gt;[\r\n      \/\/ ...\r\n      \/\/ The banner_tag will be replaced with the banner ad.\r\n      R89Tag(tag: 'banner_tag'),\r\n      \/\/ The outstream_tag will be replaced with the video outstream ad.\r\n      R89Tag(tag: 'outstream_tag'),\r\n      \/\/ ...\r\n    ],\r\n);\r\n<\/pre>\n<\/div>\n<p data-renderer-start-pos=\"2167\">The first is named \u201c<code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">banner_tag<\/code>\u201c which will be replaced with a banner ad by the <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89SDK<\/code> when the widget is displayed, and the second is <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">\u201coutstream_tag\"<\/code> which will be replaced with a video outstream ad.<\/p>\n<p data-renderer-start-pos=\"2368\">The <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89Tag<\/code> widget has an optional <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">child<\/code> parameter. In case the child is provided, the ad will be positioned below the provided child.<\/p>\n<h2 id=\"Place-the-R89Tag-into-the-scrollable-widget.\" data-renderer-start-pos=\"2503\">Place the <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89Tag<\/code> into the scrollable widget.<\/h2>\n<p data-renderer-start-pos=\"2549\">The <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89Tag<\/code> widget can be used inside the scrollable widget as well (such as <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">ListView.builder<\/code>).<\/p>\n<div class=\"code-block\">\n<pre>@override\r\nWidget build(BuildContext context) =&gt;\r\n  ListView.builder(\r\n    itemCount: 100,\r\n    itemBuilder: (context, index) =&gt;\r\n      R89Tag(\r\n        tag: 'scroll_tag',\r\n        itemIndex: index,\r\n        child: ListTile(\r\n          leading: const Icon(\r\n            Icons.star_rounded,\r\n            color: Colors.amber,\r\n          ),\r\n          title: Text(features[index % features.length]),\r\n        ),\r\n      ),\r\n    );\r\n<\/pre>\n<\/div>\n<p data-renderer-start-pos=\"3141\">As you may notice, besides the <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">tag<\/code> parameter, the <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">itemIndex<\/code> is provided to <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89Tag<\/code>, which is used by the SDK to decide whether to display an ad for a given item position or not.<\/p>\n<p data-renderer-start-pos=\"3319\">In a more complex scenario, If <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89Tag<\/code> is used in multiple scrollable widgets on the same screen, a <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">key<\/code> parameter needs to be specified for it. The <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">key<\/code> parameter uniquely identifies the scrollable widget. Use the <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">ValueKey<\/code> to identify the name of the scrollable widget.<br \/>\nIn the sample below there are two scrollable widgets vertical and horizontal. The vertical one is a <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">SliverList<\/code> and the other is a horizontal <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">ListView<\/code> positioned at the <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">index<\/code> 3.<\/p>\n<div class=\"code-block\">\n<pre>  @override\r\n  Widget build(BuildContext context) =>\r\n    Scaffold(\r\n      body: CustomScrollView(\r\n        slivers: [\r\n          SliverList(\r\n              delegate: SliverChildBuilderDelegate(\r\n                  childCount: 40,\r\n                      (context, index) =>\r\n                  index != 3\r\n                      ? R89Tag(\r\n                      key: const ValueKey('v_scroll'),\r\n                      tag: 'infinite_scroll',\r\n                      itemIndex: index,\r\n                      child: Text(\"Item $index\"))\r\n                      : KeepAliveWrapper(\r\n                    child: SizedBox(\r\n                      height: 400,\r\n                      child: ListView.builder(\r\n                        scrollDirection: Axis.horizontal,\r\n                        itemCount: 40,\r\n                        itemBuilder: (context, index) =>\r\n                            R89Tag(\r\n                              key: const ValueKey('h_scroll'),\r\n                              tag: 'infinite_scroll',\r\n                              itemIndex: index,\r\n                              child: Text(\"Item $index\"),\r\n                            ),\r\n                      ),\r\n                    ),\r\n                  ))),\r\n        ],\r\n      ),\r\n    );\r\n<\/pre>\n<\/div>\n<p data-renderer-start-pos=\"4986\">The <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89Tag<\/code> from the vertical list has a value key <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">ValueKey('v_scroll')<\/code> and the other from the horizontal list has <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">ValueKey('h_scroll')<\/code>. Those keys are used by the <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89SDK<\/code> to separate the scrollable widgets and apply the ad placement logic separately for each of them.<\/p>\n<h2 id=\"Display-Interstitial-on-R89Tag-child\u2019s-onTap\" data-renderer-start-pos=\"5254\">Display Interstitial on <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89Tag<\/code> child\u2019s onTap<\/h2>\n<p data-renderer-start-pos=\"5300\">The <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89Tag<\/code> can display an interstitial on the child&#8217;s content tap event, and then propagate the on-tap event down to the child, so the child can handle it.<\/p>\n<p data-renderer-start-pos=\"5457\">In the example below the <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89Tag<\/code> will intercept the child&#8217;s tap event, display an interstitial, and run the child&#8217;s onTap callback when the interstitial gets closed.<\/p>\n<div class=\"code-block\">\n<pre>@override\r\nWidget build(BuildContext context) =>\r\n    const Column(\r\n      crossAxisAlignment: CrossAxisAlignment.center,\r\n      children: <Widget>[\r\n        \/\/ ...\r\n        \/\/ The button_tag will wrap the child content and intercept the on tap events on it to display an interstitial, \r\n        \/\/ and will invoke child's onTap event after the interstitial get closed.\r\n        R89Tag(\r\n            tag: 'button_tag',\r\n            child: ListTile(\r\n              \/\/ ...\r\n              \/\/ The onTap will be invoked right after the interstitial ad get closed.\r\n              onTap: () {\r\n                \/\/ This Scaffold will be displayed after the interstitial get closed.\r\n                ScaffoldMessenger.of(context).showSnackBar(const SnackBar(\r\n                    content:\r\n                    Text('This SnackBar is displayed after the interstitial get closed.')));\r\n              },\r\n            )\r\n        ),\r\n        \/\/ ...\r\n      ]\r\n      ,\r\n    );\r\n<\/pre>\n<\/div>\n<h1 id=\"Summary\" data-renderer-start-pos=\"6560\">Summary<\/h1>\n<p data-renderer-start-pos=\"6569\">As mentioned above the <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">R89Tag<\/code> can be used to display ads not only inside the widget tree but also can display intercept its child onTap events and display an interstitial, and for all of these it only needs a preconfigured <code class=\"code cc-1o5d2cw\" data-renderer-mark=\"true\">tag<\/code> as a parameter.<\/p>\n","protected":false},"featured_media":0,"parent":10739,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"","doc_tag":[],"class_list":["post-10776","docs","type-docs","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tagged Widgets Guidelines | Refinery89<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/refinery89.com\/it\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/tagged-widgets-guidelines\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tagged Widgets Guidelines | Refinery89\" \/>\n<meta property=\"og:description\" content=\"What is the R89Tag? Where To Add The R89Tag? Best Practices When Adding a R89Tag Example Place the R89Tag into the widget tree. Place the R89Tag into the scrollable widget. Display Interstitial on R89Tag child\u2019s onTap Summary What is the R89Tag? The R89Tag is a widget provided by the R89SDK with a required tag parameter. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/refinery89.com\/it\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/tagged-widgets-guidelines\/\" \/>\n<meta property=\"og:site_name\" content=\"Refinery89\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Refinery89\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-17T12:03:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/refinery89.com\/wp-content\/uploads\/2025\/08\/r89-thumbnail.png\" \/>\n\t<meta property=\"og:image:width\" content=\"200\" \/>\n\t<meta property=\"og:image:height\" content=\"200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@refinery89\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/refinery89.com\/sv\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/tagged-widgets-guidelines\/\",\"url\":\"https:\/\/refinery89.com\/sv\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/tagged-widgets-guidelines\/\",\"name\":\"Tagged Widgets Guidelines | Refinery89\",\"isPartOf\":{\"@id\":\"https:\/\/refinery89.com\/#website\"},\"datePublished\":\"2024-08-27T15:15:19+00:00\",\"dateModified\":\"2024-12-17T12:03:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/refinery89.com\/sv\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/tagged-widgets-guidelines\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/refinery89.com\/sv\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/tagged-widgets-guidelines\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/refinery89.com\/sv\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/tagged-widgets-guidelines\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/refinery89.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Flutter &#8211; Monetize App SDK Documentation\",\"item\":\"https:\/\/refinery89.com\/sv\/docs\/flutter-monetize-app-sdk-documentation\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Privat: User Guide\",\"item\":\"https:\/\/refinery89.com\/sv\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Tagged Widgets Guidelines\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/refinery89.com\/#website\",\"url\":\"https:\/\/refinery89.com\/\",\"name\":\"Refinery89\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/refinery89.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/refinery89.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/refinery89.com\/#organization\",\"name\":\"Refinery89\",\"alternateName\":\"R89\",\"url\":\"https:\/\/refinery89.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/refinery89.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/refinery89.com\/wp-content\/uploads\/2025\/08\/r89-thumbnail.png\",\"contentUrl\":\"https:\/\/refinery89.com\/wp-content\/uploads\/2025\/08\/r89-thumbnail.png\",\"width\":200,\"height\":200,\"caption\":\"Refinery89\"},\"image\":{\"@id\":\"https:\/\/refinery89.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Refinery89\/\",\"https:\/\/x.com\/refinery89\",\"https:\/\/www.linkedin.com\/company\/refinery89\/\",\"https:\/\/www.youtube.com\/@refinery89\",\"https:\/\/www.instagram.com\/refinery_89\/\",\"https:\/\/www.reddit.com\/user\/Refinery89\/\",\"https:\/\/share.google\/K8hFf3ktmUrTi1XCa\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tagged Widgets Guidelines | Refinery89","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/refinery89.com\/it\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/tagged-widgets-guidelines\/","og_locale":"it_IT","og_type":"article","og_title":"Tagged Widgets Guidelines | Refinery89","og_description":"What is the R89Tag? Where To Add The R89Tag? Best Practices When Adding a R89Tag Example Place the R89Tag into the widget tree. Place the R89Tag into the scrollable widget. Display Interstitial on R89Tag child\u2019s onTap Summary What is the R89Tag? The R89Tag is a widget provided by the R89SDK with a required tag parameter. [&hellip;]","og_url":"https:\/\/refinery89.com\/it\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/tagged-widgets-guidelines\/","og_site_name":"Refinery89","article_publisher":"https:\/\/www.facebook.com\/Refinery89\/","article_modified_time":"2024-12-17T12:03:19+00:00","og_image":[{"width":200,"height":200,"url":"https:\/\/refinery89.com\/wp-content\/uploads\/2025\/08\/r89-thumbnail.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_site":"@refinery89","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/refinery89.com\/sv\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/tagged-widgets-guidelines\/","url":"https:\/\/refinery89.com\/sv\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/tagged-widgets-guidelines\/","name":"Tagged Widgets Guidelines | Refinery89","isPartOf":{"@id":"https:\/\/refinery89.com\/#website"},"datePublished":"2024-08-27T15:15:19+00:00","dateModified":"2024-12-17T12:03:19+00:00","breadcrumb":{"@id":"https:\/\/refinery89.com\/sv\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/tagged-widgets-guidelines\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/refinery89.com\/sv\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/tagged-widgets-guidelines\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/refinery89.com\/sv\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/tagged-widgets-guidelines\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/refinery89.com\/"},{"@type":"ListItem","position":2,"name":"Flutter &#8211; Monetize App SDK Documentation","item":"https:\/\/refinery89.com\/sv\/docs\/flutter-monetize-app-sdk-documentation\/"},{"@type":"ListItem","position":3,"name":"Privat: User Guide","item":"https:\/\/refinery89.com\/sv\/"},{"@type":"ListItem","position":4,"name":"Tagged Widgets Guidelines"}]},{"@type":"WebSite","@id":"https:\/\/refinery89.com\/#website","url":"https:\/\/refinery89.com\/","name":"Refinery89","description":"","publisher":{"@id":"https:\/\/refinery89.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/refinery89.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/refinery89.com\/#organization","name":"Refinery89","alternateName":"R89","url":"https:\/\/refinery89.com\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/refinery89.com\/#\/schema\/logo\/image\/","url":"https:\/\/refinery89.com\/wp-content\/uploads\/2025\/08\/r89-thumbnail.png","contentUrl":"https:\/\/refinery89.com\/wp-content\/uploads\/2025\/08\/r89-thumbnail.png","width":200,"height":200,"caption":"Refinery89"},"image":{"@id":"https:\/\/refinery89.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Refinery89\/","https:\/\/x.com\/refinery89","https:\/\/www.linkedin.com\/company\/refinery89\/","https:\/\/www.youtube.com\/@refinery89","https:\/\/www.instagram.com\/refinery_89\/","https:\/\/www.reddit.com\/user\/Refinery89\/","https:\/\/share.google\/K8hFf3ktmUrTi1XCa"]}]}},"comment_count":0,"_links":{"self":[{"href":"https:\/\/refinery89.com\/it\/wp-json\/wp\/v2\/docs\/10776","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/refinery89.com\/it\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/refinery89.com\/it\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/refinery89.com\/it\/wp-json\/wp\/v2\/comments?post=10776"}],"version-history":[{"count":0,"href":"https:\/\/refinery89.com\/it\/wp-json\/wp\/v2\/docs\/10776\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/refinery89.com\/it\/wp-json\/wp\/v2\/docs\/10739"}],"next":[{"title":"Enable Minify with R89","link":"https:\/\/refinery89.com\/it\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/enable-minify-with-r89\/","href":"https:\/\/refinery89.com\/it\/wp-json\/wp\/v2\/docs\/12352"}],"prev":[{"title":"Initialization Types","link":"https:\/\/refinery89.com\/it\/docs\/flutter-monetize-app-sdk-documentation\/user-guide\/initialization-types\/","href":"https:\/\/refinery89.com\/it\/wp-json\/wp\/v2\/docs\/10775"}],"wp:attachment":[{"href":"https:\/\/refinery89.com\/it\/wp-json\/wp\/v2\/media?parent=10776"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/refinery89.com\/it\/wp-json\/wp\/v2\/doc_tag?post=10776"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}