{"id":10602,"date":"2022-03-15T19:45:53","date_gmt":"2022-03-15T14:15:53","guid":{"rendered":"https:\/\/payu.in\/blog\/?p=10602"},"modified":"2025-10-04T23:59:56","modified_gmt":"2025-10-04T18:29:56","slug":"how-payu-does-proactive-error-monitoring-for-mobile-sdks","status":"publish","type":"post","link":"https:\/\/payu.in\/blog\/how-payu-does-proactive-error-monitoring-for-mobile-sdks\/","title":{"rendered":"How PayU Does Proactive Error Monitoring for Mobile SDKs?"},"content":{"rendered":"\n<h2 class=\"has-medium-font-size wp-block-heading\"><strong>Background<\/strong><\/h2>\n\n\n\n<p class=\"has-normal-font-size\"><a href=\"https:\/\/payu.in\/\" target=\"_blank\" rel=\"noreferrer noopener\">PayU<\/a> provides <a href=\"https:\/\/payu.in\/payment-gateway\" target=\"_blank\" rel=\"noreferrer noopener\">payment gateway<\/a> solutions to online businesses and serves more than 5,00,000+ merchants with over 150+ payment methods. It is the preferred payment partner for e-commerce merchants, including all leading e-commerce companies and a majority of airline businesses.<\/p>\n\n\n\n<p class=\"has-normal-font-size\">PayU has a <a href=\"https:\/\/payumobile.gitbook.io\/sdk-integration\/\" target=\"_blank\" rel=\"noreferrer noopener\">host of mobile SDKs<\/a> that play a vital role in powering payments in our merchant apps. Our primary focus is to make integration on the PayU platform as simpler and seamless as possible with minimal efforts required by businesses.<\/p>\n\n\n\n<p class=\"has-normal-font-size\">Let\u2019s talk about how we built our PayU Crash Reporter SDK and integrated it into <a href=\"https:\/\/payumobile.gitbook.io\/sdk-integration\/\" target=\"_blank\" rel=\"noreferrer noopener\">all of our SDK offerings<\/a> to adopt an early repair strategy.<\/p>\n\n\n\n<h2 class=\"has-medium-font-size wp-block-heading\"><strong>Problem Statement<\/strong>&nbsp;&nbsp;<\/h2>\n\n\n\n<p class=\"has-normal-font-size\">PayU distributes SDKs via public repositories such as Maven Central Cocoa Pods, where businesses integrate them into their Apps. When a crash used to occur in our codebase, it was getting logged on the merchant\u2019s crash tools dashboard, and the same was conveyed to us later. We were not able to monitor the crashes in real-time. Debug time was high since required debug information was not always available easily from merchant dashboards. At times it was difficult for us to de-obfuscate the stack traces due to the lack of SDK version information and the corresponding mapping files.<\/p>\n\n\n\n<h2 class=\"has-medium-font-size wp-block-heading\"><strong>Exploration<\/strong><\/h2>\n\n\n\n<p class=\"has-normal-font-size\">We tried to solve this problem with multiple products available in the market like <a href=\"https:\/\/firebase.google.com\/products\/crashlytics\" target=\"_blank\" rel=\"noreferrer noopener\">Crashlytics<\/a>, <a href=\"https:\/\/www.acra.ch\/\" target=\"_blank\" rel=\"noreferrer noopener\">ACRA<\/a>, <a href=\"https:\/\/www.bugsnag.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">BugSnag<\/a>, but none of them worked out of the box for us.&nbsp;Here&#8217;s why we could not solve this problem:<\/p>\n\n\n\n<ul><li>The coexistence of multiple such solutions within a single app was technically impossible, as all of these solutions need a single unique id to be configured at the application level.&nbsp;&nbsp;<\/li><li>These products did not support Library Modules. Usage is restricted for Application-level projects only.&nbsp;&nbsp;<\/li><\/ul>\n\n\n\n<p class=\"has-normal-font-size\">We came across <a href=\"https:\/\/sentry.io\/welcome\/\" target=\"_blank\" rel=\"noreferrer noopener\">Sentry<\/a>, an open-source solution that could solve the problems mentioned above.&nbsp; Sentry has an SDK product that was able to solve our primary goal of monitoring crashes in our SDK, but it had some of its challenges as well:&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"has-normal-font-size\"><strong>Large Size:<\/strong> The size of Sentry SDK is ~1000KB as it offers a lot of other features which were not of our interest, viz.Health monitoring, NDK crash reporting, etc.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"has-normal-font-size\"><strong>Control over Data:<\/strong> We wanted tighter control over the data as the Sentry SDK was capturing a lot of data points, which was again of no interest to us. Also, the payload size was bloated because of the same.&nbsp;&nbsp;<\/p>\n\n\n\n<h2 class=\"has-medium-font-size wp-block-heading\"><strong>The Final Approach<\/strong><\/h2>\n\n\n\n<p class=\"has-normal-font-size\">We have developed our own PayU Crash Reporter SDK (using Sentry) to resolve the above problems. The PayU Crash Reporter SDK registers itself with a Global exception handler to parse the stack traces and report only those crashes which occur in PayU SDKs. High-frequency events would then get picked up into our sprint cycles or as hotfixes for proactive issue resolution, thus creating much more stable SDKs.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/payu.in\/blog\/wp-content\/uploads\/2022\/03\/PayU-Crash-Reporter-SDK-Flow-513x1024.png\" alt=\"PayU Crash Reporter SDK Flow\" class=\"wp-image-10605\" width=\"405\" height=\"807\" srcset=\"https:\/\/payu.in\/blog\/wp-content\/uploads\/2022\/03\/PayU-Crash-Reporter-SDK-Flow-513x1024.png 513w, https:\/\/payu.in\/blog\/wp-content\/uploads\/2022\/03\/PayU-Crash-Reporter-SDK-Flow-150x300.png 150w, https:\/\/payu.in\/blog\/wp-content\/uploads\/2022\/03\/PayU-Crash-Reporter-SDK-Flow.png 521w\" sizes=\"(max-width: 405px) 100vw, 405px\" \/><figcaption><em>PayU Crash Reporter SDK Flow<\/em><\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image is-style-default\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/payu.in\/blog\/wp-content\/uploads\/2022\/03\/PayU-Crash-Reporter-SDK-Dashboard-1024x320.png\" alt=\"PayU Crash Reporter SDK Dashboard\" class=\"wp-image-10606\" width=\"794\" height=\"247\" srcset=\"https:\/\/payu.in\/blog\/wp-content\/uploads\/2022\/03\/PayU-Crash-Reporter-SDK-Dashboard-1024x320.png 1024w, https:\/\/payu.in\/blog\/wp-content\/uploads\/2022\/03\/PayU-Crash-Reporter-SDK-Dashboard-300x94.png 300w, https:\/\/payu.in\/blog\/wp-content\/uploads\/2022\/03\/PayU-Crash-Reporter-SDK-Dashboard-768x240.png 768w, https:\/\/payu.in\/blog\/wp-content\/uploads\/2022\/03\/PayU-Crash-Reporter-SDK-Dashboard-1536x480.png 1536w, https:\/\/payu.in\/blog\/wp-content\/uploads\/2022\/03\/PayU-Crash-Reporter-SDK-Dashboard-2048x640.png 2048w, https:\/\/payu.in\/blog\/wp-content\/uploads\/2022\/03\/PayU-Crash-Reporter-SDK-Dashboard-1250x390.png 1250w\" sizes=\"(max-width: 794px) 100vw, 794px\" \/><figcaption><em>PayU Crash Reporter SDK Dashboard<\/em><\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"has-normal-font-size\"><strong>Size:<\/strong> It\u2019s around 40 KB, almost 1\/25th size of Sentry SDK. We were able to reduce the size by this much by removing all the bloatware.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"has-normal-font-size\"><strong>Control over Data:<\/strong> Reporting only necessary fields such as library version, transaction id, details of all of our modules present in the merchant application, along with Stack traces to ease out the debugging.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"has-normal-font-size\"><strong>Stability:<\/strong> PayU Crash Reporter is completely written in Kotlin using modern practices such as Coroutines to make network calls lighter, improving stability.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"has-normal-font-size\"><strong>Extensibility:<\/strong> PayU Crash reporter SDK has been designed in such a way that it is being used by all of our SDK offerings for Crash monitoring.&nbsp;&nbsp;<\/p>\n\n\n\n<h2 class=\"has-medium-font-size wp-block-heading\"><strong>Getting Better<\/strong><\/h2>\n\n\n\n<p class=\"has-normal-font-size\">With PayU Crash Reporter SDK integrated into all of our SDKs, we were able to provide a smooth and stable experience to all of the 150+ merchant bases.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"has-normal-font-size\">One of the recent examples is a top e-commerce player in our country, having millions of DAUs, facing a crash in our SDK during low memory in the devices, causing poor customer experience. We discovered and fixed this issue in the early release stages of the App itself with the aid of our PayU Crash reporter SDK.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"has-normal-font-size\">Apart from this, frequently occurring crashes like &#8211; Unhandled exceptions \/ NumberFormat Exceptions, IllegalArgument exceptions, NullPointer exceptions, etc., were observed during runtime by the PayU Crash Reporter SDK and were immediately fixed in the subsequent releases of respective SDKs.&nbsp;&nbsp;<\/p>\n\n\n\n<h2 class=\"has-medium-font-size wp-block-heading\"><strong>Everything You Need to Get Started<\/strong><\/h2>\n\n\n\n<p class=\"has-normal-font-size\">You can look at a variety of payments SDKs that PayU offers for a seamless payments experience &#8211; <a href=\"https:\/\/devguide.payu.in\/mobile-sdk-android\/native-otp-assist\/\" target=\"_blank\" rel=\"noreferrer noopener\">Android<\/a> <a href=\"https:\/\/devguide.payu.in\/mobile-sdk-ios\/native-otp-assist-ios\/\" target=\"_blank\" rel=\"noreferrer noopener\">iOS<\/a>.&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"has-normal-font-size\">For any integration related support, please reach out to your key account manager or write to us at <a href=\"mailto:mobile.integration@payu.in\" target=\"_blank\" rel=\"noreferrer noopener\">mobile.integration@payu.in<\/a>&nbsp;&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Background PayU provides payment gateway solutions to online businesses and serves more than 5,00,000+ merchants with over 150+ payment methods. It is the preferred payment partner for e-commerce merchants, including&#8230;<\/p>\n","protected":false},"author":46,"featured_media":10624,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1232],"tags":[1161,1162,1164,835,1163],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How PayU does Proactive Error Monitoring for Mobile SDKs?<\/title>\n<meta name=\"description\" content=\"Find out how PayU does proactive error monitoring for mobile SDKs and how PayU Crash Reporter SDK supports early repair strategy\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/payu.in\/blog\/how-payu-does-proactive-error-monitoring-for-mobile-sdks\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How PayU does Proactive Error Monitoring for Mobile SDKs?\" \/>\n<meta property=\"og:description\" content=\"Find out how PayU does proactive error monitoring for mobile SDKs and how PayU Crash Reporter SDK supports early repair strategy\" \/>\n<meta property=\"og:url\" content=\"https:\/\/payu.in\/blog\/how-payu-does-proactive-error-monitoring-for-mobile-sdks\/\" \/>\n<meta property=\"og:site_name\" content=\"PayU Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/PayUind\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-03-15T14:15:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-04T18:29:56+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/10.10.164.133\/wp-content\/uploads\/2022\/03\/Proactive-error-monitoring-for-Mobile-SDKs.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1250\" \/>\n\t<meta property=\"og:image:height\" content=\"531\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Shoaib Khan - Engineering\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@payuind\" \/>\n<meta name=\"twitter:site\" content=\"@payuind\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Shoaib Khan - Engineering\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"http:\/\/10.10.164.133\/how-payu-does-proactive-error-monitoring-for-mobile-sdks\/\",\"url\":\"http:\/\/10.10.164.133\/how-payu-does-proactive-error-monitoring-for-mobile-sdks\/\",\"name\":\"How PayU does Proactive Error Monitoring for Mobile SDKs?\",\"isPartOf\":{\"@id\":\"https:\/\/payu.in\/blog\/#website\"},\"datePublished\":\"2022-03-15T14:15:53+00:00\",\"dateModified\":\"2025-10-04T18:29:56+00:00\",\"author\":{\"@id\":\"https:\/\/payu.in\/blog\/#\/schema\/person\/1552bf840c07af8ef353b3bfee1cb948\"},\"description\":\"Find out how PayU does proactive error monitoring for mobile SDKs and how PayU Crash Reporter SDK supports early repair strategy\",\"breadcrumb\":{\"@id\":\"http:\/\/10.10.164.133\/how-payu-does-proactive-error-monitoring-for-mobile-sdks\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/10.10.164.133\/how-payu-does-proactive-error-monitoring-for-mobile-sdks\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/10.10.164.133\/how-payu-does-proactive-error-monitoring-for-mobile-sdks\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/payu.in\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Engineering Blogs\",\"item\":\"http:\/\/10.10.164.133\/category\/engineering-blogs\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How PayU Does Proactive Error Monitoring for Mobile SDKs?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/payu.in\/blog\/#website\",\"url\":\"https:\/\/payu.in\/blog\/\",\"name\":\"PayU Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/payu.in\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/payu.in\/blog\/#\/schema\/person\/1552bf840c07af8ef353b3bfee1cb948\",\"name\":\"Shoaib Khan - Engineering\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/payu.in\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c1609e57808fd845ec8cf5cbde04d556?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c1609e57808fd845ec8cf5cbde04d556?s=96&d=mm&r=g\",\"caption\":\"Shoaib Khan - Engineering\"},\"description\":\"Shoaib Khan oversees the development of web checkouts, dashboards, mobile apps, and SDKs as Head of Front-end Engineering. With over 7 years of experience in the fintech industry and a deep understanding of front-end technologies, he has the unique ability to blend technical and financial aspects of business seamlessly. He takes great pride in ensuring PayU's front-end offerings reflect the high standards of excellence it is known for.\",\"url\":\"https:\/\/payu.in\/blog\/author\/shoaib-khan\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How PayU does Proactive Error Monitoring for Mobile SDKs?","description":"Find out how PayU does proactive error monitoring for mobile SDKs and how PayU Crash Reporter SDK supports early repair strategy","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:\/\/payu.in\/blog\/how-payu-does-proactive-error-monitoring-for-mobile-sdks\/","og_locale":"en_US","og_type":"article","og_title":"How PayU does Proactive Error Monitoring for Mobile SDKs?","og_description":"Find out how PayU does proactive error monitoring for mobile SDKs and how PayU Crash Reporter SDK supports early repair strategy","og_url":"https:\/\/payu.in\/blog\/how-payu-does-proactive-error-monitoring-for-mobile-sdks\/","og_site_name":"PayU Blog","article_publisher":"https:\/\/www.facebook.com\/PayUind\/","article_published_time":"2022-03-15T14:15:53+00:00","article_modified_time":"2025-10-04T18:29:56+00:00","og_image":[{"width":1250,"height":531,"url":"http:\/\/10.10.164.133\/wp-content\/uploads\/2022\/03\/Proactive-error-monitoring-for-Mobile-SDKs.png","type":"image\/png"}],"author":"Shoaib Khan - Engineering","twitter_card":"summary_large_image","twitter_creator":"@payuind","twitter_site":"@payuind","twitter_misc":{"Written by":"Shoaib Khan - Engineering","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"http:\/\/10.10.164.133\/how-payu-does-proactive-error-monitoring-for-mobile-sdks\/","url":"http:\/\/10.10.164.133\/how-payu-does-proactive-error-monitoring-for-mobile-sdks\/","name":"How PayU does Proactive Error Monitoring for Mobile SDKs?","isPartOf":{"@id":"https:\/\/payu.in\/blog\/#website"},"datePublished":"2022-03-15T14:15:53+00:00","dateModified":"2025-10-04T18:29:56+00:00","author":{"@id":"https:\/\/payu.in\/blog\/#\/schema\/person\/1552bf840c07af8ef353b3bfee1cb948"},"description":"Find out how PayU does proactive error monitoring for mobile SDKs and how PayU Crash Reporter SDK supports early repair strategy","breadcrumb":{"@id":"http:\/\/10.10.164.133\/how-payu-does-proactive-error-monitoring-for-mobile-sdks\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["http:\/\/10.10.164.133\/how-payu-does-proactive-error-monitoring-for-mobile-sdks\/"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/10.10.164.133\/how-payu-does-proactive-error-monitoring-for-mobile-sdks\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/payu.in\/blog\/"},{"@type":"ListItem","position":2,"name":"Engineering Blogs","item":"http:\/\/10.10.164.133\/category\/engineering-blogs\/"},{"@type":"ListItem","position":3,"name":"How PayU Does Proactive Error Monitoring for Mobile SDKs?"}]},{"@type":"WebSite","@id":"https:\/\/payu.in\/blog\/#website","url":"https:\/\/payu.in\/blog\/","name":"PayU Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/payu.in\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/payu.in\/blog\/#\/schema\/person\/1552bf840c07af8ef353b3bfee1cb948","name":"Shoaib Khan - Engineering","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/payu.in\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c1609e57808fd845ec8cf5cbde04d556?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c1609e57808fd845ec8cf5cbde04d556?s=96&d=mm&r=g","caption":"Shoaib Khan - Engineering"},"description":"Shoaib Khan oversees the development of web checkouts, dashboards, mobile apps, and SDKs as Head of Front-end Engineering. With over 7 years of experience in the fintech industry and a deep understanding of front-end technologies, he has the unique ability to blend technical and financial aspects of business seamlessly. He takes great pride in ensuring PayU's front-end offerings reflect the high standards of excellence it is known for.","url":"https:\/\/payu.in\/blog\/author\/shoaib-khan\/"}]}},"_links":{"self":[{"href":"https:\/\/payu.in\/blog\/wp-json\/wp\/v2\/posts\/10602"}],"collection":[{"href":"https:\/\/payu.in\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/payu.in\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/payu.in\/blog\/wp-json\/wp\/v2\/users\/46"}],"replies":[{"embeddable":true,"href":"https:\/\/payu.in\/blog\/wp-json\/wp\/v2\/comments?post=10602"}],"version-history":[{"count":5,"href":"https:\/\/payu.in\/blog\/wp-json\/wp\/v2\/posts\/10602\/revisions"}],"predecessor-version":[{"id":10620,"href":"https:\/\/payu.in\/blog\/wp-json\/wp\/v2\/posts\/10602\/revisions\/10620"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/payu.in\/blog\/wp-json\/wp\/v2\/media\/10624"}],"wp:attachment":[{"href":"https:\/\/payu.in\/blog\/wp-json\/wp\/v2\/media?parent=10602"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/payu.in\/blog\/wp-json\/wp\/v2\/categories?post=10602"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/payu.in\/blog\/wp-json\/wp\/v2\/tags?post=10602"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}