34 articles: 

How to create an Abicart article (Internal)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/how-to-create-an-abicart-article
>  Log in to Abicart   Click on your name and choose “my shops” Choose the shop “Textalk” with the ID 64110 (if you don’t have the option, you will have to be invited to it first) In the left menu click on “catalogue” and choose “products” In the upper right corner, click on “New product” Fill in the Product name (=Article header/title) in the Swedish lane and click in the translation button On the right side under “categorization” click into the text field “Add product category” and type “Internal”; choose the correct path and press on “add” Click “Add” right underneath your name so save the page Skip the introductory text and scroll down to the description Scroll to the preferred language and paste the article text Adjust the formatting and add images  Formating  Adjust headlines to align to other pages Use Heading 3 for main headlines  Use Heading 4 for the next level and so on  Include an extra space before new headlines  Include images Hint: If you want to add content from a Google Docs into Abicart that includes images, click on “File” → “Download” → “Web Page (.html, zipped)” ; like this you will easily be able to upload the images to Abicart Click on the images icon, then on the icon next to source Click on the folder Prenly → then Prenly Manuals Internal or choose the folder that suits  Drag and drop the image files (you can add all images add once) into the folder  Double click on the image you want to add to the article  Remove the value under “height” and replace the value under width with a percentage (80% chosen for most of the articles in "internal) Press Save Make sure to include a space after the image  

Internal test article (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/internal-test-article
> 

JS Bridge - Internal (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/js-bridge
>  What is JS Bridge?  A common problem when adding a custom tab with non-Prenly content has been that this content resides on a separate web page and cannot communicate with the Prenly content. To solve that challenge, we've created an API called JS Bridge that can be used to provide your users with a seamless app experience. What is it used for? / What are its functions?  When you implement JS Bridge on your web page, the web pages in your custom tabs will be able to communicate directly with the Prenly part of the app. For the login, this means that the user only needs to login once, whether it is from the Prenly section or from your custom web content tabs. Even users' consent settings will be synchronized between Prenly and your web application. Through JS Bridge, users can also play audio found on your custom pages directly in our built-in audio player. For the user, the experience becomes an integrated app that can offer several different services, for example the latest news, other customized web content, an online store or a crossword portal. Technical details  JS Bridge - JavaScript API specification Public API: JavaScript functions that the web page may run Functions Login Trigger a login flow in the app. prenlyApp.login(): Promise<UserDataJwt|RequestError> Logout Trigger a logout flow in the app. prenlyApp.logout(): Promise<UserDataJwt|RequestError> Show no access alert Triggers show no access alert flow in the app. prenlyApp.showNoAccessAlert(): Promise<void> Get user JWT Retrieve information about the user as a Jwt. prenlyApp.getUserJwt(): Promise<UserDataJwt|RequestError> Get user consent Retrieve the current consent that the user granted, or null if no CMP is used. prenlyApp.getUserConsent(): Promise<UserConsent|null|RequestError> Play pause audio Add audio to native player and start playing or pause it if it is playing. prenlyApp.playPauseAudio(AudioData): Promise<void|RequestError> Add or remove audio from queue Add/remove audio to native audio queue. prenlyApp.queueDequeueAudio(AudioData): Promise<void|RequestError> Get audio status Retrieve status of audio initialized by the SDK. prenlyApp.getAudioStatus(AudioId): Promise<AudioStatus|RequestError> Show user consent dialog Triggers show consent dialog flow in the app. prenlyApp.showUserConsentDialog(): Promise<void|RequestError> Event listeners Start listening prenlyApp.on(EventType, (current: Object, previous?: Object) => void): void Stop listening To stop a single listener, the reference to the callback handler function used as argument in prenlyApp.on must be included: prenlyApp.off(EventType, handler): void To stop listening to all events for a type within the prenlyApp instance: prenlyApp.off(EventType): void Events Types Type Data Description userConsentChange UserConsent Triggers when the user consent changes. userLogin UserDataJwt Triggers when the user logs in. userLogout UserDataJwt Triggers when the user logs out. audioStatusChange AudioStatus Triggers when the status of audio initialized by the SDK is changed. Callback Parameter Description Parameter 1 The response object of the current event. Parameter 2 The response object of the previous event, or undefined when no previous event exists. Example prenlyApp.on('userConsentChange', (data: UserConsent) => { // ... }); Request/Response data UserDataJwt {   jwt: string; } UserConsent {   cmp: string;   prenly_purpose_grants?: {     functional: boolean;     analytical: boolean;     marketing: boolean;   };    tc_string?: string;   cmp_purpose_grants?: { [purpose: string]: boolean };   cmp_vendor_grants?: { [vendor: string]: boolean }; } AudioId {   id: string; } AudioData {   id: string;   audio_url: string;   image_url?: string;   title: string;   description: string;   duration: number;  // in seconds } AudioStatus {   id: string;   status:      | 'playing'      | 'paused'      | 'loading';   queued: boolean; } RequestError {   code:      | 'rejected'      | 'feature_disabled'      | 'login_failed'      | 'logout_failed'      | 'play_pause_audio_failed'      | 'queue_dequeue_audio_failed';   message?: string; } Internal message interface The communication layer interface between JavaScript and the native apps. Types overview Type Kind Public interface prenly_login request login() prenly_logout request logout() prenly_get_user_jwt request getUserJwt() prenly_show_no_access_alert request showNoAccessAlert() prenly_get_user_consent request getUserConsent() prenly_play_pause_audio request playPauseAudio(AudioData) prenly_get_audio_status request getAudioStatus(AudioId) prenly_show_user_consent_dialog request showUserConsentDialog() prenly_queue_dequeue_audio request queueDequeueAudio(AudioData) prenly_on_user_consent_change event userConsentChange prenly_on_user_login event userLogin prenly_on_user_logout event userLogout prenly_on_audio_status_change event audioStatusChange Requests A two-way-communication initialized from the website. A request consists of an object with the following properties: { type: string, requestId: string, data?: object } The native app then send the object back in response including the new data object: { type: string, requestId: string, data: object } Request data Type Request data Response data prenly_login - UserDataJwt      prenly_logout - UserDataJwt prenly_get_user_jwt - UserDataJwt prenly_get_user_consent - UserConsent prenly_play_pause_audio AudioData - prenly_queue_dequeue_audio AudioData - prenly_get_audio_status AudioId AudioStatus prenly_show_no_access_alert - - prenly_show_user_consent_dialog - - Error handling In order for requests to trigger the reject function of the client Promise, an error object should be included in the response: { type: string, requestId: string, error: RequestError } Example Get user consent request: {   type: 'prenly_get_user_consent',   requestId: 'some-random-id' } Get user consent response: {   type: 'prenly_get_user_consent',   requestId: 'some-random-id',   data: {     cmp: 'some-cmp-provider',     prenly_purpose_grants: {       functional: true,       analytical: true,       marketing: false     },     cmp_vendor_grants: {       some_vendor_1: true,       some_vendor_2: false     }   } } Events A one-way-communication initialized from the native app and picked up by the listener on the website. An event consists of an object with the following properties: { type: string, data: object } Event data Type Response data prenly_on_user_consent_change UserConsent prenly_on_user_login UserDataJwt prenly_on_user_logout UserDataJwt prenly_on_audio_status_change AudioStatus Example On user consent change event: {   type: 'prenly_on_user_consent_change',   data: {     cmp: 'some-cmp-provider',     prenly_purpose_grants: {       functional: true,       analytical: true,       marketing: false     },     cmp_vendor_grants: {       some_vendor_1: true,       some_vendor_2: false     }   } } How is JS Bridge implemented? - What actions are needed from us? Activate JS Bridge in Superadmin:  In clients PWS, click the Ninja → Applications Choose Application and click Edit Scroll down and click the box next to Js Bridge, and Save. Supply the customer with this documentation .  How is JS Bridge implemented? - What actions are needed from the customer? To allow your custom web content to communicate with the Prenly app, follow these steps: 1. Install the JS Bridge Library JS Bridge is a custom-built JavaScript library that needs to be installed on the webpage displayed in the Prenly app. Visit GitHub and npm to find instructions on the installation.  https://github.com/Textalk/prenly-js-bridge/ https://www.npmjs.com/package/prenly-js-bridge 2. Notify us to activate the feature Once the JS Bridge is added to your page, let us know—we’ll activate the integration on the Prenly side to complete the setup. 3. Use JS Bridge Once installed, you can use the JavaScript functions provided by the library to interact with the Prenly app. For example:     •    Trigger login sync     •    Share consent settings     •    Use the in-app audio player for media on your page For a complete list of the actions currently supported by JS Bridge, please see our technical specification. Related Links https://support.prenly.com/p/applications/custom-tabs-and-js-bridge/a/integration-between-prenly-and-web-pages-in-the-app-for-a-unified-app-experience/2539/1530789/54941177   https://github.com/Textalk/prenly-js-bridge/   

Cookiebot - Internal (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/cookiebot-internal
>  What is Cookiebot? Cookiebot was acquired by Usercentrics in 2023. It is a third-party consent management platform (CMP) and can be seen at Politiken and Jyllands-Posten . What is it used for? / What are its functions? Cookiebot is used only in the web reader of JP/Politiken. Technical details For IOS and Android please use Usercentrics. To view the Cookiebot CMP dialog use Incognito mode or reopen the dialog with the link to “Cookie settings” at the bottom of the web reader’s start page. We have been given access to JP/Politiken’s Cookiebot admin but we do not have our own test account. How is Cookiebot implemented? - What actions are needed from us?  Add Cookibot to the web reader Note: From September 2024 the “Cookiebot CMP” module has to be enabled in Superadmin in the application settings, to be selectable in Workspace. In Prenly Workspace click on the Ninja and select Applications. In Prenly Superadmin choose Application → edit; scroll down and click the checkbox for Cookiebot → click save. This can be done by the customer in Prenly Workspace. Create a consent module Go to Workspace Select customer Go to Settings -> Consent dialog Create a new Select Cookiebot and give it a name Add the Domain Group Id Save Add the consent module to the web reader Go to Workspace Select customer Select Applications Select the application Go to Consent dialog Select the correct dialog for the web client How is Cookiebot implemented? - What actions are needed from the customer?  The customer needs to have an agreement with Cookiebot and access to the Cookiebot admin. They are also responsible for configuring the cookies detected by Cookiebot to ensure they are correctly linked to their purposes. Related Links Example consent dialog Politiken Example connection of consent dialog to Application Politiken Cookiebot Website Startpage Politiken Startpage Jyllands-Posten 

Didomi - Internal (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/didomi-internal
>  What is Didomi? Didomi is a third-party consent management platform (CMP) used by Bonnier. It handles the user consent and makes sure that customers are compliant with the privacy and cookie laws. What is it used for? / What are its functions?  As Didomi is a third-party it can be used as CMP by any customer. The Didomi CMP is displayed to the user at the first session, where the user can either give consent to all, reject all - or personalize the settings.  The CMP settings are stored on the device or browser and can be changed at any time by the user.  In the web reader there is a link at the bottom of the start page to access the “Cookie settings”. In the native apps the link to “Integrity settings” is located in the Settings menu. The CMP settings control what is stored on the device and what is sent to third parties. Technical details  Testing Didomi  Didomi has given us a test account with customer-id AnnnLFH4 so it is possible to log in to the Didomi admin and test the features.  As of April 2024, these colleagues have access to our Didomi test environment: Testing in the web reader can be done with Chrome Inspector. For native apps our developers can build special debug apps with a debug menu where it is possible to check which features are enabled and disabled. Testing the user flow in any web browser can be done by using “privacy mode”. Testing the user flow in native apps is best done by making a clean install of the app. The Didomi CMP dialog can be found on for example Expressen and in the Expressen tidning apps for IOS and Android. How are custom tabs implemented? - What actions are needed from us? Add Didomi to the Prenly clients The Didomi SDK has to be added when the IOS and Android apps are built. Information on how to add Didomi SDK is available in Git. In addition Prenly Workspace has to be configured to display the correct dialog and respect the user’s consent settings. For the web, the only configuration needed is done in Prenly Workspace. From September 2024 the “Didomi CMP” module has to be enabled in Superadmin in the application settings, to be selectable in Workspace. In Prenly Workspace click on the Ninja and select Applications. In Prenly Superadmin choose Application → edit; scroll down and click the checkbox for Cookiebot → click save. Set up Didomi in Prenly Workspace This requires you to create a consent module and then add the consent module to the client. Create a consent module Go to the customer’s Workspace. Go to Settings -> Consent dialogs Create a new consent dialog Give it an understandable name Select Module type: Didomi Add the API key (required) Add the Notice ID if needed Make sure the purpose and vendor mapping is correct. Configure the Consent requirements according to the customer’s need Save Example:  https://content.textalk.se/admin/customers/161/consent/13 Add the consent module to the client Go to the customer’s Workspace Go to Applications -> Select application Go to Consent Dialog Select the correct dialog from the dropdown menu of each client Save Example: https://content.textalk.se/admin/customers/161/applications/531/consent How are custom tabs implemented? - What actions are needed from the customer? The customer needs an agreement with Didomi. They need to set up their consent notices and configure the vendor list. This is nothing we can instruct or give support about.  The customer then has to enter the Api key into a consent module in Prenly Workspace. Depending on if the user is using Didomis “old flow” or “new flow” the procedure in Didomi admin is different. The “new flow” was launched in 2023. In the “old flow” the target domain and the app bundle name had to be entered in Didomi admin, to make sure that the consent notices showed up in the correct app or web site. In the “new flow” there is instead a “ notice id ” for each consent notice, and this notice id has to be added to Prenly Workspace. With the “new flow” target domain or app bundle name can no longer be set in the Didomi admin, so “notice_id” is required for the client to display the correct consent notice. Didomi’s “New flow”.  Api key and notice id required to create a Didomi CMP consent dialog in Prenly. Didomi’s “Old flow”. Only Api key was required.  The target domain and target app was configured in Didomi admin. Related Links Didomi Website Expressen Startpage External contacts Didomi: support@didomi.io     antoine.vie@didomi.io     stefan.santer@didomi.io   laurent.werner@didomi.io 

Prenly CMP - Internal (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/prenly-cmp
>  What is Prenly CMP?  CMP stands for Consent management platform. Prenly CMP is a built-in consent management tool designed to help our customers comply with privacy regulations, such as GDPR and similar laws. Its primary purpose is to manage user consent for the collection of cookies and personal data. What is it used for? / What are its functions?  According to new digital laws all web pages and Android / iOS apps must have a consent dialog for the collection of cookies and other personal data. It is very important that the customer understands that they are the ones being the “data controller”,  and therefore are the ones legally responsible for this. The Prenly customers are responsible for informing their users about the data collected from the reader's device and the purpose of the collection. This can be done by creating a CMP module in Prenly Workspace. “Prenly CMP” is only one of the supported modules. The user has the right to deny that the software stores data (for example cookies, or data stored in the native apps, or on the server). Within EU, two laws state this from different perspectives: GDPR states that it is not allowed to store personal data without a reason, if it is not necessary for the service to function properly.  The ePrivacy Directive (“cookie law”) states that it is not allowed to store data on the users device (cookies other ways to store data), without first informing the user and allowing them to deny it. There are some exceptions, well covered in other documentation. Note that the CMP feature gives the customer the possibility to comply with both laws. How is the CMP implemented? - What actions are needed from us? The consent dialog is managed in Prenly Workspace by a user with the “owner” role. A consent dialog configuration can be used in multiple applications owned by the customer. The instructions on how to create a CMP module are found on the support page . In PWS: Go to settings → consent dialog Click “new” Prenly CMP is the standard preset; the language can be changed here  Click “create” Name, Title and content can be edited  “For user analysis” and “for marketing” should be toggled off Go to Applications → consent dialog Connect the consent dialog to all applications  Click save During the onboarding process the customer success team adds the CMP module to the clients applications. The setting for user analysis and marketing are being deactivated, since it is the customers choice to activate them.  When using statistical modules like Matomo, Google analytics, Prenlytics etc If you use Prenly CMP as a consent dialog and integrate for example Matomo, you can decide what level of data to send from the web and app users. The default setting is that no data at all is sent from the web and app when the user has not given their consent. However, if you want all data to be sent for later filtering wherever the data ends up, you can set the data to be sent even from those users who have not given consent. Doing this is most probably only legal according to GDPR if the customer sends the data within their own company, which is possible only if they use a self-hosted system that receives the data (like a Matomo server installation, an endpoint to receive Prenlytics data or a server-side GTM container). In these cases, you can choose to send data completely anonymously or including user-id. You are then responsible for filtering the data later in accordance with the law. This should be avoided when using Matomo cloud. This setting is made in Prenly Workspace, in the Prenly CMP module. If under "Basic tracking with Matomo" you select "Do not require consent", the data will be sent anonymously - without user-id - for those users who have not given consent to be analyzed. If under "Individual tracking with Matomo" you select "Do not require consent", all data including user-id will be sent also for those users who have not consented to be analyzed. This allows you to receive all the data to your own data warehouse for filtering. Other supported CMP modules (Didomi, Cookiebot, Usercentrics) have similar settings for the consent requirement. How is the CMP implemented? - What actions are needed from the customer? The customer is responsible for providing a CMP, writing the consent dialog and informing their clients about the data they process or track, including its purpose. Our customer (as the data controller) should inform their users about: What  sub-processors (third-party companies, like Textalk Media AB) process personal data on behalf of the customer  Why and how each such sub-processor processes data. The types of processing the customer does, either themself or by their sub-processors. The processing that Textalk Media does on behalf of the customer is explained in the DPA. The customer must themself know what other processing is made and why. All this must according to GDPR be described in the CMP texts or in the privacy policy. ) Defining the specific purposes why data is being collected (e.g., analytics, marketing, functional data), to allow users to give partial consent, which is required in GDPR.  Specifying in text for each such purpose what it includes (for example what sub-processors are used) and what data processing might be done if they give consent to the purpose. That a DPA exists between the customer and all the sub-processors, including Textalk Media AB. Note: The standard text when creating the Prenly CMP is in English. The buttons in the consent dialog will translate to the application language, however the dialog text needs to be provided by the customer in the suitable language.  What data is being processed?  “Processing” personal data as d refined by GDPR, means basically any operation on personal data, like collecting, storing, watching. using, or deleting it. Under GDPR, personal data includes any information identifying or relating to an individual, even small or encrypted pieces like names or passwords. Prenly processes data primarily to ensure service functionality, such as storing IP addresses, device identifiers, and cookies. Depending on configuration, statistical data requiring user consent may also be processed. Prenly respects CMP choices, ensuring no consent-dependent processing occurs until the user submits their preferences. Public Application For public applications, basic processing include: IP addresses : Stored for up to 30 days, used for tracking data traffic, preventing hacking attempts, troubleshooting technical errors, and protecting against viruses or unauthorized use. Device information : This includes device type, screen size, operating system, browser information Unique identifier for native apps (Android/iOS): If the user accesses the service via a native app, a unique identifier is stored to help with troubleshooting, adapting content, enabling in-app purchases, and sending push notifications. This identifier is deleted when the app is uninstalled Session information : Cookies or similar technologies are used to generate a visit ID that groups interactions into sessions. This ID does not include personal data but helps with session continuity Application Requiring Login: For login-based applications, Prenly may process personal data to manage subscriptions and secure access, including: User ID, customer number, login credentials (name and password), and email address. Subscription details (e.g., product codes). Optional personal data like phone numbers, postal addresses, or social security numbers (configurable by the customer). Temporary passwords (“tokens”) for login sessions. By default, user tracking requires consent, and user IDs are excluded from contextual data if consent is denied. Customers can adjust this logic in Prenly Workspace based on legal requirements. Tracking Statistical modules Prenly supports a number of statistical modules to perform user-specific identifiers to collect information that allows monitoring activities or behaviors for specific users over time. Both public and logged-in applications may track. Tracking is normally only made with the user’s consent, but there may be exceptions since there are cases where the customer legally may do some kinds of tracking without consent (these legal aspects/decisions is something that the customer is responsible for deciding). Event model Tracking is made by continuously triggering “metric events” as long as the user consumes the e-paper. Each event comes with some information, called “attributes”, that explains what the user did, like opening an article or stopping to play a podcast episode. Some of the data collected is event-specific data , with details like which article was opened, what podcast episode was closed etc. Some of the data collected is contextual data to provide insights into user interactions. This includes: Technical environment (e.g., device details, screen size, OS information) Session details (visit IDs, which group interactions into visits) User consent preferences (if applicable, collected through the CMP) Exporting data Some statistical modules export data to external servers, such as customer-hosted servers, Google, or third-party providers. Legal notes: Even if personal data (e.g., IP address or user ID) is anonymized or deleted after processing, it still falls under GDPR. Data sent outside the EU/EEA or to third parties typically requires explicit user consent. Specific modules: Matomo : Configured to export data to external servers. Open-source setups can anonymize data, but personal data like IP addresses may still be sent. GTM/Google Analytics: Data is generally sent to Google unless a customer uses a self-hosted GTM server. Prenlytics: Typically exports data to external servers. Processing personal data in a custom tab If the Prenly app is showing an external web page like the customer’s website (in a native app custom tab) as a single-page application (SPA), the Prenly software will NEVER process personal data processed within the custom tab. So if that website has integrated GA, Snoobi or other tracking scripts - it is kept within the custom tab and will never reach the native app. Note that Prenly do NOT know or are responsible for tracking or other personal data processing that takes place within a custom tab.  To help the customers build their site to be placed in the  custom tab, we should recommend them to use our JS Bridge software. With that software, they can access the consent that the user made in the native app, and act accordingly. Is a CMP needed for a public app? Yes, a CMP should be implemented even for public apps. According to GDPR, personal data (such as IP addresses and device identifiers) is always processed, regardless of whether it’s essential for system functionality. This means customers are required to inform users about this data processing. Implementing a CMP ensures compliance with regulations like GDPR by clearly informing users about what data is collected, why it’s processed, and providing them with the choice to consent or decline data collection. Related links: https://wiki.prenly.com/user-analytics/collecting-data     https://wiki.prenly.com/en/user-analytics/contextual-data https://wiki.prenly.com/en/user-analytics   https://support.prenly.com/p/applications/create-a-cmp-module/a/create-a-cmp-module/2539/693083/32483509   

Sourcepoint - Internal (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/sourcepoint-internal
>  What is Sourcepoint? Sourcepoint is a third-party consent management platform (CMP) used by Schibsted. It handles the user consent and makes sure that customers are compliant with the privacy and cookie laws. What is it used for? / What are its functions?  Schibsted has made a special integration for their web readers where Sourcepoint has been combined with their proprietary tracking tool Pulse. As Sourcepoint is a third-pary it can however be used as CMP by any customer. The Sourcepoint CMP is displayed to the user at the first session, where the user can either give consent to all, reject all - or personalize the settings.  The CMP settings are stored on the device or browser and can be changed at any time by the user.  In the web reader there is a link at the bottom of the start page to access the “Cookie settings”. In the native apps the link to “Integrity settings” is located in the Settings menu. The CMP settings control what is stored on the device and what is sent to third parties. Technical details  Testing Sourcepoint Sourcepoint has been reluctant to give us a test account, and we have not had any access to the Sourcepoint platform - but at Schibsted the Sourcepoint team (Richard Beaumont) has been helpful. If any other customer than Schibsted wants to use Sourcepoint they should give us access to the Sourcepoint admin interface in order to better understand how it works and what can be configured. As of March 2024, if any other customer wants to use Sourcepoint it has to be investigated whether the Schibsted implementation can be re-used.  Testing in the web reader can be done with Chrome Inspector. For native apps our developers can build special debug apps with a debug menu where it is possible to check which features are enabled and disabled. Testing the user flow in the web browser can be done by using “privacy mode”. Testing the user flow in native apps is best done by making a clean install of the app. In March 2024 the Sourcepoint dialog can be found on eSvD and in the eSvD apps for IOS and Android. How are custom tabs implemented? - What actions are needed from us? Add Sourcepoint to web reader Note: From September 2024 the “Sourcepoint CMP” module has to be enabled in Superadmin in the application settings, to be selectable in Workspace. In Prenly Workspace click on the Ninja and select Applications. In Prenly Superadmin choose Application → edit; scroll down and click the checkbox for Cookiebot → click save. This instruction is for Schibsted: First you have to create a Consent module in Prenly Workspace. Then you have to attach this consent module to the web client of the application. Create the Consent module for web Open Prenly Workspace Open customer Schibsted Click Settings in the left navigation menu Click Consent dialogs Click New Select “Sourcepoint web (Pulse)” and give it a descriptive name. Enter the required values into the fields: Base endpoint (without trailing slash), Property ID, Group PM Id. Connect the consent module to the web client Go to Applications Select the correct application Add the module to the web client Note: The field “Property Href” is not mandatory but can be filled in if you want to test the dialog on another domain than the application’s real domain, e.g. during the test phase. Add Sourcepoint to native apps To add Sourcepoint to native apps the SDK has to be added to the apps, the consent module has to be configured in Workspace, and the consent module has to be connected to the client in Workspace. You also have to connect a Pulse statistics modules in Superadmin to the IOS and Android clients configured with Sourcepoint purpose IDs, in order to pass the consent values to the Pulse reporter. Add the SDK to the apps The Sourcepoint SDK has to be added to the app. Instructions for that are available in Github. Create the Consent module for ios / Android Open Prenly Workspace Open customer  Click Settings in the left navigation menu Click Consent dialogs Click New Select “Sourcepoint” and give it a descriptive name Add the necessary information Example: eSvD Add the Consent module to the app clients in Workspace Open Prenly Workspace Open customer Go to Applications Select the Application Select Consent dialog Connect the correct module to the IOS and Android clients Example: eSvD   How are custom tabs implemented? - What actions are needed from the customer? The customer needs an agreement with Sourcepoint. They then need to send us all the information required for the configurations. AccountID PropertyID PropertyHref Privacy Manager ID PurposeIDs For Schibsted there is a configuration sheet with the necessary variables: Schibsted Norge - Prenly Related links: Sourcepoint Website Github Instructions Configuring Analytics reporters Feature documentation on sourcepoint External contacts Sourcepoint: Melanie Deneau   melanie@sourcepoint.com Schibsted: Richard Beaumont  richard.beaumont@schibsted.com   At Textalk, Hasancan (ios) and Dan (Android) have been working with the implementation. 

Usercentrics - Internal (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/usercentrics-internal
>  What is Usercentrics? Usercentrics is a third-party consent management platform (CMP) used by JP/Politiken in their IOS and Android apps from 2023. What is it used for? / What are its functions?  Usercentrics asks users for consent, stores the consent settings and handles the logic for enabling and disabling features. The Usercentrics dialog is displayed the first time when a user opens the app. It can be reopened from the Settings menu in IOS and Android apps. Usercentrics in action can be seen in the apps Politiken e-avis, Jyllands-Posten e-avis, Ekstra Bladet e-avis. Technical details  We have had access to JP/Politiken’s instance of Usercentrics, but we do not have our own test account.  The implementation of Usercentrics in IOS and Android is prepared to be used by any customer. How are custom tabs implemented? - What actions are needed from us? Add Usercentrics SDK to the apps SDK should be added when building the apps. Go to Github for reference Create the consent module in Workspace Note: From September 2024 the “Usercentrics CMP” module has to be enabled in Superadmin in the application settings, to be selectable in Workspace. In Prenly Workspace click on the Ninja and select Applications. In Prenly Superadmin choose Application → edit; scroll down and click the checkbox for Cookiebot → click save. Go to Workspace Select customer Go to Settings -> Consent Create New Choose Usercentrics and name it Add the necessary information Save ( Politiken can be used as reference) Add the consent module to the app clients Go to Workspace Select customer Select applications Select application Go to Consent dialog Select the correct dialog for each client Save ( Politiken can be used as reference) How are custom tabs implemented? - What actions are needed from the customer? The customer needs an agreement with Usercentrics. They have to invite us to their Usercentrics admin. (this is not really necessary, but it helps if we need to troubleshoot the integration) The customer will have to set up the configurations in Usercentrics admin, including the Data Processing services (DPS). They will have to provide us with the necessary information to connect Usercentrics with Prenly (configuration ID and template IDs). The configuration ID is the mapping between Usercentrics and Prenly. The consent notice is created in Usercentrics and a Prenly app must know which consent banner to display, and therefore this ID is used as a connection between Usercentrics and Prenly. The Data Processing services (DPS) in Usercentrics are created for each purpose or vendor, so the user can decide whether to give consent for e.g. Statistics, Marketing etc. Normally there are three “categories”: Functional, Analytical and Marketing set up in Usercentrics. Multiple vendors can be added to each purpose category. Google Analytics and Matomo are likely sorted into Analytical, and Youtube into Marketing. This categorization is up to the customer to decide. To enable users to control Prenly features from the Usercentrics dialog the DPS “template ids” have to be added to Prenly Workspace. So if a user chooses to not give consent to Analytical -> Google Analytics in the CMP dialog, the Prenly app has to disable this feature for this user. The “template id” defines the mapping between Usercentrics setting and Prenly features.   Related links: Usercentrics Website Contact persons Usercentrics: julius.schulze@usercentrics.com JP/Politiken: Morten.K.Sorensen@jppol.dk ,  Helene.F.Saaboll@jppol.dk 

Custom fonts - Internal (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/custom-fonts-internal
>  What are Custom Fonts?  It is now possible for the customer to integrate custom fonts into the article mode, as well as in the overall app in order to align their content with their branding. What is it used for? / What are its functions?  If the customer decides to implement the font in the article mode, they can choose to have their content displayed in their custom font(s). The customer can supply us with one or several fonts the reader can then choose from. If the customer chooses to implement custom fonts in the whole app, this will affect all and only native components. This means that the startpage, archive, settings, my content, as well as the Prenly CMP dialog will be displayed in the custom font. External web pages, CMP dialogs from third party suppliers like Usercentrics, or external login pages will not have that custom font. If no custom font is implemented the default font is Lato. This applies for the overall app, the replica and the article reading mode.  Technical details  There is no limit to how many fonts can be added. There are examples of customers that implemented up to 15 fonts.  The custom fonts should be decided on and collected before building the apps. After the custom fonts have been implemented, the apps need to be updated.  The supported file types are .ttf and .otf for both app providers and .ttc in addition for Android. How is the custom font implemented? - What actions are needed from us? Custom font for article For every font the customer would like to integrate, ask for the following versions:  Regular (they can decide which one represents the regular font for them)  Bold Italic BoldItalic A user can change the user-preferred font-family in the Article reading mode via the Aa menu. Custom font for the app  All the fonts variants above, plus Black  SemiBold  It is possible to choose a different font for the overall app as used for the article.  Supply Helpdesk with the font variants sent by the customer as well as the order and default font, so they can implement the request, when building the apps.  After implementing the fonts for the native apps, the web app can also be set to the chosen custom font: In Superadmin click on applications → choose the web application → click on “edit” Scroll down to “Base font” and change the font for the overall web application and or the articles  How is the custom font implemented? - What actions are needed from the customer? Custom font for article The customer needs to supply us with the fonts mentioned above. If the customer decides to implement several custom fonts, they have to decide in which order the fonts should be displayed and which one should be the default option.  By standard the following fonts are included in Prenly: Arial Avenir Next Baskerville Georgia Lato Open Dyslexic Open Sans Verdana In addition to their custom fonts the customer can choose to include one, several or all of the above-mentioned standard fonts for their readers to choose from.  Custom font for app  The customer only needs to supply us with the custom font variants mentioned above. 

Custom tabs - Internal (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/custom-tabs-internal
>  What are Custom Tabs?  Custom tabs are a feature that allows you to create a personalized menu within your app. This means customers can add specific links or functionalities that are important for their users, such as external links, cookie and privacy policies. Each menu item can be customized with different icons, making it easy for users to identify and navigate to the desired section. What is it used for? / What are its functions?  Custom tabs let you add links in your app's menu to connect your webpage with your e-paper. This means readers can access up-to-date news, play games like sudoku, check event calendars, or view any content you choose—all without leaving the app. How many can be added: Both iOS and Android support adding more tabs than five. When adding more than five tabs, only the first four will be visible on the main menu, the other will be hidden under the tab “more”. Note: if the setting “Title page” is activated in PWS, it will take one of the available spots. Archive, Settings, My content and the Startpage are mandatory tabs, however can be renamed.  Be aware of: Login - the custom tab can require the reader to login "again" to access the content. Consent - CMP dialogues might have  to be approved "twice". One connected to the app, one connected to the external URL in the custom tab. Login - when using Prenly Remote API: If a reader opens the app and logs in, the reader does not need to log in again to read articles in a custom tab. If a reader logs in only in the custom tab to read articles, they will not be logged in to the app and will then need to log in again to read the e-paper. Technical details  App Version Requirements: Android: 11.6.0 iOS: 10.9.0 How are custom tabs implemented? - What actions are needed from us? During onboarding the custom tab is added by HelpDesk when building the native apps. Make sure to have all the information about the custom tabs ready before building the app.  You can edit how you want your menu to look at any time. To manage the menu in Prenly Workspace, follow these steps: Log in to the Prenly Workspace account. Go to "Applications". Select the application for which you want to manage the menu. Click on "Menu" on the right. Choose "Menu Settings for iOS and Android". Manage your menu by drag and drop, add menu items, or edit existing content. To see update: → iOS: Kill and re-open the app → Android: Go to the Start page, force refresh, kill and re-open the app Adding Menu Options Click on "Add Menu Option". Choose External Link (you can also select Podcast if you have this feature in your agreement). Enter a name. Choose an icon (note that some icons are only available in specified releases). Click on "Add". Drag the item to the desired position. Changing the Icon or Name of a Menu Item: Click on the bar or choose Edit. Enter a name, select an icon, and click "Update". Changing the Order of Menu Items: Click on a bar and hold down the mouse button. Drag the item to the desired position. Removing Menu Items: Click on the three dots and select Delete to remove a menu item that you have added. System links cannot be deleted. Guidelines to Avoid Issues with Future App Updates Never create links to a page where users can subscribe. Apple does not allow displaying links or references to Google or Android. How are custom tabs implemented? - What actions are needed from the customer? During the onboarding process, the onboarding team will ask the client for: the URL to be used the name of tab the icon the client would like to use Related links: https://support.prenly.com/p/applications/menu-settings-for-the-app-custom-tabs/a/menusettings-for-the-app-custom-tabs/2539/1493211/53334903 

Menu web app - Internal  (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/menu-web-app-internal
>  What is the menu web app?  The menu in Prenly’s web application is the primary navigation interface that readers see, allowing them to direct them to various locations. It is now possible to create your own menu in the Web app, you can e.g. add external links, cookie and privacy policies and choose from a number of different icons for your menu items. You can edit your menu at any time. What is it used for? / What are its functions?  Customization: Add menu items like external links, favorites, podcasts, title pages, or user-selected titles; add them in a preferred order  Technical details  /  How is the menu in the web app implemented? - What actions are needed from us? Log in to your Prenly Workspace account. Navigate to “Applications,” select the desired app, and access “Web Menu Settings” under the “Menu” option. Adding Menu Items: Click “Add menu selection” and choose the type (e.g., external link, favorites, podcasts, title page, or user-selected titles). Configure the item’s name, icon, URL (for external links), and visibility settings. Customizing Layout: Arrange menu items using drag-and-drop functionality. The “Search” icon and up to two other icons can appear in the top row, with remaining items grouped under the menu icon. The “Login” button is fixed below the main menu and cannot be moved. Editing and Deleting: Use the three-dot menu to edit item names, icons, or other details. Non-default items can be deleted; default items are locked and marked with a padlock. Save all changes to apply updates to the web app menu. How is the menu in the web app implemented? - What actions are needed from the customer? Information we need from the client The URL to be used Name of tab Icon Related Links Support page  

Google Analytics - Internal (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/google-analytics-internal
>  What is Google Analytics?  Google Analytics is a powerful web analytics tool provided by Google that tracks and reports on user interactions across websites and apps. It collects data about how users engage with digital content, providing valuable insights into user behavior, traffic sources, and engagement levels. This helps businesses understand their audience, optimize user experiences, and make data-driven decisions to improve overall performance. What is it used for? / What are its functions?  Reader Engagement Tracking: Understand how readers interact with newspapers and magazines on all applications, including which articles or issues they engage with the most. Audience Insights: Gain demographic and interest data on readers, helping publishers tailor content to audience preferences. Subscription and Reader Activity Tracking: Measure actions such as sign-ups, reading frequency, and content downloads to understand how effectively the platform engages and retains readers. Content Performance Analysis: Identify popular topics, articles, or publications, allowing publishers to focus on content that resonates with readers. Custom Reporting: Create specialized reports for different publications, segments, or specific reader journeys to better understand and serve each audience group. Technical details  Once the statistics have been activated, Google will usually take 12-24 hours to allow Analytics to start aggregating your statistical data. Afterwards, you can follow your users in real-time and see your users' use of your e-paper. In order for Prenly to transfer the data to Analytics the readers must have given consent for user analysis. How is Google Analytics implemented? - What actions are needed from us? Provide the customer with this documentation: Get started with statistics  To activate GA in the web reader we have to: Copy a code snippet from the Firebase console’s web client Create a Statistics module in Superadmin Paste the code from Firebase into that module Attach the Statistics module to the web client. The native apps already have Firebase SDK included, but you have to go into the Firebase project settings and connect the Firebase client to the customer’s Google Analytics account. Additional tasks might be added if the customer chooses to use our service to assist them in the setup.  How is Google Analytics implemented? - What actions are needed from the customer? The client will use/create a Google Analytics account and contact Helpdesk directly to activate it. Create a Google Analytics account via google.com/analytics - Select Get started today to create an account or to sign in to your current account Provide us with the name(s) of the person(s) who will be the official owner(s) of the data associated with this e-paper. These individuals will be the designated owners within the underlying Firebase project (Firebase is a Google platform used for data and analytics). To be aware:  The person(s) listed as data owners must have a Google Account that is linked to the Google Analytics account you’re using for this e-paper. The Google Account should also have edit rights to the Google Analytics account, so they can make necessary adjustments or view data as needed. Once the statistics have been activated, Google will usually take 12-24 hours to allow Analytics to start aggregating your statistical data. Afterwards, you can follow your users in real-time and see your users' use of your e-paper. If you don’t see data after 24 hours: In order for Prenly to transfer the data to Analytics the readers must have given consent for user analysis.  Related Links: How to configure Analytics - Enhanced measurement Custom definitions / Event parameters How to export statistical data  How to select a specific e-solution app if you have more than one property available Google Analytics Dashboard for our customers 

Matomo - Internal (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/matomo-internal
>  What is Matomo?  Matomo is an open-source statistics platform that tracks and reports traffic. Matomo has a focus on security and privacy for publishers who want to avoid sharing data with a third party, and is a popular alternative to other analytics tools such as Google Analytics. It can either be downloaded for free to install on your own service (on-premise) or used as a cloud solution for a fee. What is it used for? / What are its functions?  In Prenly, Matomo is used to track how users interact with the e-paper on both web and mobile platforms. It records events such as when a user opens a page or article, clicks on links, and other actions. This information provides detailed insights into user behavior, helping our customers to identify which content resonates most with their audience. Technical details  The Prenly Reader applications send analytics data to the Matomo server using tools provided by Matomo (SDKs).  For the web version, Prenly uses Matomo’s JavaScript SDK to track user interactions like page views and clicks, sending this data directly to the server. For the mobile apps ( Android and iOS ), Matomo’s open-source SDKs are used. These SDKs must be integrated into the app’s program code, requiring developers to update, recompile, and release new versions of the app through the app stores. Tracking on mobile devices will only begin once the updated apps are live and being used by readers.  Metric events The updated available and planned events can be found here: https://wiki.prenly.com/en/user-analytics/events   How is the statistic function implemented? - What actions are needed from us? Onboarding: Provide the client with this documentation: https://support.prenly.com/p/statistics/matomo-for-statistics/a/using-matomo-for-statistics/4083/1010389/40323023   Ask for the following credentials:  Server address  Site ID Make sure the customer adds the dimensions correctly Helpdesk: Matomo needs to be integrated into the native apps to function The following configuration parameters need to be set up in Prenly Workspace. First a Statistic module has to be created: In Superadmin on customer level click on “add” next to “Statistics modules” Then, this module has to be added to the web client of the application Site ID and server address need to be added here  How is the statistic function implemented? - What actions are needed from the customer? There are two options for handling tracking data with Matomo: 1. Use a Matomo server  The customer sets up a Matomo server (either on-premise or hosted externally, e.g., by matomo.org or a third-party provider). Prenly sends tracking data to the Matomo server, which collects the data through its built-in API and allows the customer to view and analyze the data through Matomo’s web tool. 2. Implement a custom tracking endpoint The customer builds their own API endpoint to receive tracking data directly from Prenly Reader apps. The endpoint must conform to Matomo’s tracking API specification (e.g., support GET/POST methods and use /matomo.php in the URL). The customer processes, stores, or forwards the data as needed. Server address The customer needs to set up and send us the server address, on which they have installed Matomo. Can be something like https://matomo.domain.com, i.e. unique to your setup. Site ID  Matomo allows the measurement of multiple websites with a single server, assigning each site a unique site ID (website ID). To locate the site ID, navigate to Measurables (or Websites) > Manage in Matomo. The site ID is listed in the left column of the table displaying all configured websites. Custom dimensions For accurate data tracking in Matomo, a set of custom dimensions must be defined for the site to capture additional metadata sent with each event. These dimensions allow tracking specific user actions, such as interactions with titles, articles, or notifications.  1: application_slug 2: title_slug 3: title_uid 4: publication_slug 5: publication_uid 6: publication_date 7: page_number 8: part_slug 9: article_slug 10: article_uid 11: article_name 12: article_external_id 13: section_slug 14: external_url 15: push_notifications_enabled 16: push_notification_uid 17: push_notification_sent_at 18: message_title 19: message_body The dimensions must be configured in the exact order provided (1 to 19) to ensure correct tracking. Matomo only offers five dimensions in the basic version, so the customer must follow Matomo's instructions to increase the number of dimensions. If the customer does not define these dimensions, it will lead to losing out on critical tracking data and actionable insights. All must be defined as "action dimensions", not "visit dimensions". Action dimensions track data during specific user actions rather than over entire sessions. It is recommended to create a separate “site” in Matomo specifically for the e-magazine to avoid mixing its traffic with other websites. However, the same site ID can be used across all three platforms of the e-paper (web, iOS, and Android). CMP The customer also needs to add a consent dialog within PWS   Matomo and consent If you use Prenly CMP as a consent dialog, you can decide what level of data to send from the web and app users. The default setting is that no data at all is sent from the web and app when the user has not given their consent. However, if you want all data to be sent for later filtering in your own system or Matomo, you can set the data to be sent even from those users who have not given consent. In these cases, you can choose to send data completely anonymously or including user-id. You are then responsible for filtering the data later in accordance with the law. If you use Matomo cloud, this should be avoided. This setting is made in Prenly Workspace, in the Prenly CMP module. If under "Basic tracking with Matomo" you select "Do not require consent", the data will be sent anonymously - without user-id - for those users who have not given consent to be analysed. If under "Individual tracking with Matomo" you select "Do not require consent", all data including user-id will be sent also for those users who have not consented to be analysed. This allows you to receive all the data to your own data warehouse for filtering. Related Links: https://support.prenly.com/p/statistics/matomo-for-statistics/a/using-matomo-for-statistics/4083/1010389/40323023 https://wiki.prenly.com/en/user-analytics/events https://wiki.prenly.com/en/user-analytics/exporting-data/matomo-analytics https://developer.matomo.org/api-reference/tracking-api 

Pulse - Internal (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/pulse-internal
>  What is Pulse? Pulse is Schibsted's proprietary platform for tracking user behavior in web and native apps. Schibsted has closely linked Pulse to Sourcepoint, a third-party platform for managing consent settings. What is it used for? / What are its functions?  It’s fully created and owned by Schibsted and is currently not used by any other customer. It is used throughout many Schibsted web sites across multiple countries. Pulse is included since 2023 in the Swedish Prenly apps Aftonbladet and eSvD.  From April 2024 it will be included in the Norwegian Prenly apps VG, Aftenposten, Bergens Tidende, Stavanger Aftenblad and Magasin+. Technical details  For the web reader Schibsted has combined Pulse and Sourcepoint into one javascript repository. For the native apps there are two separate SDKs:  Pulse SDK (created by Schibsted) and Sourcepoint SDK (owned by a third-party provider) As of March 2024, only the two events “replica_page_open” and “article_open” are sent to Pulse.  Testing Pulse  At Textalk we have no access to Pulse’s database or visualization tools. We just ensure that our apps send events according to the schemas defined by Schibsted.  For the web it is easy to use the Chrome inspector to verify that the events are dispatched with the correct parameters. For native apps it is more challenging. Our developers can include Schibsted’s own testing tool - Unicorn - in separately built debug apps. In Unicorn it is possible to verify each event and all of its parameters including the consent settings. How is Pulse implemented? - What actions are needed from us? How to add Pulse to web reader To add Pulse to the web reader you first need to create the statistics module. Then you have to add the statistics module to the web client. Create the Statistics module Follow these steps to create the statistics module: Go to Superadmin Select the customer Schibsted Scroll down to Statistics modules Click on Add Select type: Pulse Type a clear name Fill in the necessary fields: client ID, Realm, Commnon subscription name Go down and enter the purpose IDs. Save. When the module is created you have to add it to the web client. Add the Statistics module to the Web client Go to Applications Select the application Select the Web client Add the Statistics module to the Web client Add Pulse to native apps: IOS + Android You have to add the Pulse Statistics modules to the IOS and Android clients in Superadmin. This is to pass the Sourcepoint purpose IDs to the Pulse reporter.   When building the apps you have to add Pulse SDK to the project. Pulse SDK is created by Schibsted.  Then you have to configure the ClientID and the Common subscription name. This is documented in GitHub. For reference the configuration for eSvd can be studied. How is Pulse implemented? - What actions are needed from the customer? When a new app is created, we need to have these configuration values from the customer to include Pulse: Client ID Realm Common subscription name We also need the CMP Purpose IDs to forward the consent values to Pulse. In Sweden’s titles we have ids for all purposes. In Norway’s titles purpose ids are only used for Advertisement. Related links: Example from Aftenposten Statistics module Web client settings 

Kilkaya - Internal (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/kilkaya-internal
>  How the e-magazine is measured with Kilkaya for Medietall.no In Norway, traffic on most websites and e-magazines is measured by Medietall.no - where the number of users is reported weekly on their public site. Go to medietall.no and select "Trafiktall" https://medietall.no/?liste=trafikktall&r=TRAFIKKTALL There you can select "eAvis" to get weekly figures on most Norwegian e-newspapers. Kilkaya (https://www.kilkaya.com/) is basically a real-time tool for measuring news sites and dashboards for newsrooms - but it is also the technical supplier of measurement data to Medietall.no. Our contact person at Kilkaya is Alexander Lidén Pettersson (aleksander@kilkaya.com). For websites, Kilkaya normally uses a script to send data from the client. However, for Prenly, in collaboration with Kilkaya, we chose not to implement the script in all our platforms. Instead, data is sent from our backend directly to Kilkaya's server. We send a server call to Kilkaya from our backend every time a release is downloaded. Using that data, Kilkaya can calculate the number of unique weekly users and send the numbers to Medietall.no. How to set up measurement to Kilkaya/Medietall for a Norwegian e-magazine (Live examples to study can be found on " Mentor medier " and " Schibsted ") Go to the customer in Prenly Workspace Go to Settings -> Integrations Select New integration -> Kilkaya There you should enter "Kilkaya API endpoint" and "Installation ID " All Norwegian e-newspapers currently (2024) use the same values: API endpoint for medietall.no: https://cl-eu5.k5a.io InstallationID for medietall.no : 607d77e46bf6b242026472c2 Note! Some smaller Norwegian e-magazines (e.g. Trav & Galop) do not send to Medietall but instead to topplisten.fagpressen.no - then a different installation ID and endpoint should be used: InstallationID: 60ae49163984713a036f5c02 Endpoint: https: //cl.k5a.io Then you should link the integration to one or more applications. Press the plus sign and add the application id. Save. Done. Kilkaya uses the e-magazine domain to filter the traffic and pass on the correct numbers to Medietall. The customer needs to inform Kilkaya that measurement from Prenly is set up. Examples of e-newspaper domains are: "eavis.dagsavisen.no" and "eavis.vl.no" Also for the native apps the domain name is sent. Until the redesignation of the domain has been done, the measurement cannot be tested, which has previously led to some confusion.   Note that this integration can also be used to send data to a different endpoint than Kilkaya's, for example the customer's own data warehouse. Then an external endpoint needs to be specified. The data received will use the Kilkaya format. Trello card on the development of Prenly's integration with Kilkaya: h ttps://trello.com/c/fom MFZhD https://trello.com/c/tVIzaju4 

Podcast - Internal (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/podcast-internal
>  What is Prenly’s Podcast feature?  From 2024, it is possible to show and play podcasts in Prenly's e-paper apps.  What is it used for? / What are its functions?  Keeps visitors in the e-paper app for longer, as they will be able to listen to audio content in addition to reading newspapers and magazines. Convenient way to access audio content in the context of the e-paper instead of having to go to external services where podcasts are available. Visitors can continue listening to podcasts in the e-paper app while simultaneously reading the newspaper, visiting other apps, or taking their device with them on a walk or trip. Technical details  The podcast features work on the web in all major browsers, in the iOS app from app version 12.5.0 and in the Android app from app version 12.0.6. Once your podcast is added to Prenly, its content is automatically updated when new episodes are published. This does not happen in real time, but may take a number of minutes due to caching in different systems, as is the case when updates are sent to other podcast services. Each podcast channel has its own rss feed. You cannot store or upload podcast files or audio files in Prenly. You need to make sure that your audio files and your podcast file are hosted on your own server or with a podcast host, such as Podbean, Libsyn, Buzzsprout or others. How is Podcast implemented? - What actions are needed from us? Ask the customer for their RSS feed or find it online, for instance on castos .  Activate Podcast in Superadmin In clients PWS, click the Ninja → Applications Choose Application and click Edit Scroll down and click the box next to Podcasts, and Save. (You might have to activate Podcasts in Ninja → Prenly Super Features) Add Podcast Channel in PWS In clients PWS, go to the Application → Podcasts Click add Podcast channel Enter RSS-feed URL from here → Add You will be able to control access if you want to restrict access to subscribers only. Once you have added the podcast channels you want, turn the switch at the top of the page to "On". Add Podcast component in PWS Go to Start page and add Podcast component How is Podcast implemented? - What actions are needed from the customer? Supply us with the RSS feed  Once the podcast feature is enabled for the customer’s application they can themselves add and organize podcasts in Prenly Workspace that will be available to users in all three platforms: web, iOS and Android. Related Links: Support Page Loom Find a Podcast Feed Example: https://e-avis.politiken.dk/   

Prenly Remote API - Internal (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/prenly-remote-api-internal
>  What is Prenly Remote API?  Prenly Remote API creates a real-time connection between Prenly and the publisher's own login system, as it allows publishers to integrate their own authentication and authorization systems with Prenly’s platform. When a user logs into the e-magazine, a query is sent to the publisher's system to verify the user and check rights. The answer is stored in Prenly in order to keep the user logged in. Prenly sends a new query to the publisher's system at certain intervals to check the user's rights.  Per-publication access With the new development the remote API now also enables per-publication access.  Definitions: Authentication​ is the process of someone trying to prove who he or she is. Normally, this is made by providing some credentials such as a username and a password. Authorization​ is the process of deciding what resources a known user has access to. For Prenly this is normally a user wanting to read a newspaper. An ​API​ (application program interface) is a set of routines, protocols and tools to handle interaction between different systems or parts of systems. What is it used for? / What are its features?  Custom Authentication: It allows publishers with existing login systems to use their own user credentials (e.g., username and password) for accessing the Prenly e-newspaper. This means that user management, such as account registration and password recovery, can remain within the publisher’s system. Real-Time Authorization and Access Control: Through the API, publishers can perform real-time checks to confirm a user’s subscription status, granting immediate access to the e-newspaper if the user is verified as a subscriber. Flexible Integration: The API allows publishers to implement specific web services that Prenly can call to verify credentials, check permissions, and retrieve user subscription data. This integration is adaptable to various scenarios, including server-to-server authentication and OAuth2 setups. Api authentication: Prenly ensures secure communication with the publisher’s system by requiring authentication credentials for each request. Depending on the integration type, this may involve shared secrets and client credentials Integration Methods Variant 1: External OAuth2 login form hosted on your web page The API supports OAuth2 for single sign-on (SSO), enabling integration with third-party identity providers and allowing readers to sign in through a single interface for multiple services. Note that the Remote api is used in a different way when it is a submodule to OAuth2. This represents a different implementation flow. The Prenly Remote API and OAuth2 can work together but have different roles. The Remote API is used to access and manage data on the Prenly platform, while OAuth2 ensures secure and easy sign-ins. With OAuth2, the API supports single sign-on (SSO), letting readers log in through one interface for multiple services using third-party identity providers. When the Remote API is used as part of OAuth2, it works differently, focusing on handling logins and validating access rather than direct data access. This shows how the Remote API adjusts to fit the chosen setup. Variant 2: Prenly built-in login form - login credentials are validated by your system By implementing specific API endpoints, publishers can manage user logins and subscription-based access directly through their existing systems, ensuring seamless integration with Prenly’s applications. The application has the Remote api authority , which means we will login users via the customer's system, sending username and password there. Prenly will fetch subscriptions from that system. This is the most common variant chosen by the customer. This integration is especially suitable for publishers who already have a login system on their site. Variant 3: Variant 3: Prenly built-in login form - login credentials are validated by Prenly The application has the Prenly authority , so login accounts are handled by Prenly, but fetching subscriptions is made with external api requests. The customer can themselves build this api with which we will ask for subscription information. Usernames and passwords are securely stored and verified within Prenly's technical environment, while your system provides Prenly with subscription information to ensure that only subscribers can access protected content. This option is suitable when you have users with subscription information in your own system, but lack a system to handle login accounts. The login process for readers will be the same as when using the CSV file. They will have to create an account in Prenly. Then their account will have to be activated.  Per-publication access Readers can be given access to only a limited amount of the content instead of all publications. This solution makes it possible to give access to a larger period, as well as single purchases.  It also ensures readers maintain access to publications they were entitled to during their subscription period, even after the subscription ends. Technical details  Common Remote API functionality  If a product code exists in productCodes, the user gets access to all publications in that package. {  "uid": "string",  "customerNumber": "string",  "email": "string",  "givenName": "string",  "familyName": "string",   "productCodes" : [    "string"  ],  "metaData": {    "favoriteTitleSlugs": [      "string"    ],    "marketingCloudSubscriberKey": "string"  } } Limited Product List If a product code exists in limitedProductList, the user gets access only to publications with a publication date between the validFrom and validTo dates. "limitedProductList" : [        {            "productCode": "string",            "validFrom": "date",            "validTo": "date"        }    ] Trusting Prenly requests Prenly sends a secret key in all requests. The key is known only by Prenly and your system. For all API requests, you should check that the provided key matches the expected key. You can also open up your endpoints for certain IP addresses only. Requests from Prenly are currently done from ​192.121.104.8,​ ​192.121.104.199​ or ​192.121.104.201.​ Allow for a RESTish behaviour Prenly requests are currently med with HTTP POST, but the API should not be limited to use any http methods for future endpoint expansion. In API responses, HTTP status codes are used to inform Prenly about the result. You must be able to respond with different HTTP status codes, for successful requests as well as for data errors, runtime errors and unexpected server errors. Request parameters are currently passed as JSON in the request body. All endpoints are currently responding with JSON in the response body. How is the Remote API implemented? - What actions are needed from us? Supply the customer with the documentation and ask them which variation they choose to implement. Based on this decision request the corresponding credentials from them.  The first step after receiving the credentials is to test the integration details with the test account provided.  In PWS:  Create a new integration  Click on settings → Integrations → Select custom remote API → click add Fill in the information received by customer In Superadmin: Create an authority  On Customer level → scroll down to Authorities → click add  Then connect the authority to the application On Application level scroll down to “Authority” and click on edit Select the authority created previously    How is the Remote API implemented? - What actions are needed from the customer? Prenly requires publishers to implement their API endpoints according to a specification provided by us. This approach ensures compatibility with the Prenly platform, simplifies troubleshooting  and allows us to maintain and develop a single integration standard. The customer should follow the documentation received from Onboarding to set up the Remote API. The customer should test their setup based on this documentation and the credentials with the Remote API tester before sending them to Onboarding. Helpdesk will also test the API when completing the process on our side. When completed they need to send us the following credentials based on which variant they chose to implement:  Credentials we always need from customer/supplier A shared (secret) key  Product codes to authorise access Test account with an active subscription, hello@prenly.com The length (in minutes) that fetched user data should be cached in Prenly (recommendation = 30 minutes)  Variant 2: The readers will login using customer accounts Remote URL to an endpoint authenticating a user by login credentials Remote URL to an endpoint authorizing a user unique user ID (UID) URL to create account URL to forgot password  URL to “missing subscription”  URL to delete account (if native and create account)  Variant 3: The readers will login using Prenly accounts Remote URL to an endpoint authorizing a user by e-mail address Remote URL to an endpoint authorizing a user by customer number URL to "missing subscription" URL to delete account (if native and create account) Per-publication access Defining Periods If a user has access to 10 consecutive issues, one period will be sent, not 10 individual ones. If there are gaps in access (e.g., 10 consecutive issues, a gap, then 5 more issues), send two periods. For a single-issue purchase, send the period as a single day. Why Periods? Using periods reduces system load and enhances performance by avoiding the handling of hundreds or thousands of individual dates. Handling Ongoing and Expired Subscriptions If the subscription has a known end date, include it in the API call (e.g. validTo: 2024-12-31 ). If the subscription is ongoing, use one of the following: Provide an arbitrary future date (e.g validTo: 2099-12-31 ), or leave the end date empty ( validTo as null or left blank), indicating no defined end date yet. When a subscription ends or a user stops purchasing new publications: send an updated period with a defined end date. Related Links Prenly login for dummies Snabbguide Testing your Prenly remote API Prenly Remote API Authority Support Page Onboarding Page ApiDoc 

Custom Tabs - Different options to include a website in the e-paper custom tab (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/different-options-for-including-a-website-in-the-e-papers-custom
>  What options does the customer have? Ordinary (Traditional) Website  SPA (RSS feed - cannot be offered at this point) Summary Feature Traditional Website Single Page Application (SPA) Navigation Full-page reload on every click Smooth transitions, no page reloads Performance Slightly slower due to frequent reloading Faster after initial load, optimized experience Technical Expertise Needed None – easy to implement Requires developer knowledge of JavaScript User Experience May feel less seamless compared to an app-like interface Smooth, app-like interactions Best for Static pages, simple integrations Dynamic content, news updates, interactive features Drawbacks Less smooth, might need adjustments for a better mobile experience Requires JavaScript support, can be complex to develop Examples Vestnik, Kleine Kniffe HSS - eVBL, Svenska Epoch Times   What do all options have in common? To implement any of the options below, we’ll need a URL to add in Prenly Workspace. Please note: The page must not include any links, buttons, or content that could lead to a purchase or subscription page. This includes messaging or references about signing up, subscribing, or pricing. Also, if viewed on an Apple device, the page cannot mention Google, Android, or related services - and vice versa, pages viewed on Android devices should not reference Apple or iOS. When setting up the external link (the Prenly Workspace term for the custom tab) in Prenly Workspace, the customer needs to set a name for the tab, select a tab icon, and provide the URL. If the web page (the URL) does not provide its own navigation functionality for the reader to back/forward, then it is recommended to enable “Browser navigation”. This would add a small navigator at the bottom of the page and above the menu bar on iOS devices. Commonly, ordinary websites do not provide this but, commonly, a SPA variant will. When embedding an external web page in a custom tab it is isolated from the rest of the app. This means that page menus, engagement tracking, cookie usage or similar are not shared with the rest of the e-paper app. In other terms, the customer must create their own menu, if needed, on their page for the current custom tab view. Link behaviour Since the webpage is HTML, link behavior is determined by the target attribute set on the anchor tag element (the link) to mimic a traditional web browser. If no target is specified the app will try to “open the link” in the current view (same WebView). Any non “_blank” targets will be treated as a default link and open in the current view. If the target is “_blank” the app will try to open a new browser tab/WebView tab and follow the link. An SPA will commonly control the links to keep the user “within the app” where it is common not to provide any target attributes. Commonly, _blank targets are low or non-existent as it would mean the user “leaves” the “app feel” provided by the SPA. HTTP Headers HTTP headers are additional information exchanged between your browser (or app) and a website to guide how requests and responses are handled. They are part of the HTTP protocol and are managed automatically by browsers, servers, or frameworks. Every webpage interaction includes request and response headers. There are three Prenly custom HTTP headers a customer can use to help identify the device and user status, allowing tailored content for each user, where each custom HTTP header needs to be enabled: "X-Prenly-Client-Type": Specifies the client type (“android” or “ios”) based on the app making the request. This helps the server deliver platform-specific assets and debug platform-specific issues, or simply render the content differently per platform. "X-Prenly-Is-Logged-In": “1” if the user is logged in, “0" if not. It can be used to control access to protected content. "X-Prenly-Logged-In-User-Id": Contains the user ID if the login system allows it and has been approved. This requires special approval as it exposes GDPR-sensitive data. If enabled, this supports rendering personalised content, or other actions that require the user’s ID. JS Bridge Since the external link is considered separate/isolated from the app there are circumstances when the external link custom tab needs to “access” information from the e-paper app, for example, what consent the user gave. To “bridge” the boundary between the custom tab and the app the customer will need JS Bridge .  On this page, you can see an example of how to use the JS Bridge: https://jsbridgedemo.tiiny.site/  You can also find the documentation here: https://github.com/Textalk/prenly-js-bridge  Ordinary Website  What is it?  On traditional websites, navigation triggers a full page reload for each click, refreshing the browser to display new content. This happens because the browser requests a new HTML document (a ‘document request’) to display an updated view. What are the benefits?  This is the easiest way to include the customer’s website in their apps. The URL to the page already exists and the customer can simply add it in a new external link in the app.  What are the drawbacks? Every click reloads the entire page, which can feel slow and interrupt the flow compared to the smooth experience of a SPA. If the landing page isn’t mobile-friendly, it might come across as cluttered, hard to navigate, or out of sync with the app’s look and feel. Traditional websites lack the dynamic, app-like interactions/feel that SPAs offer, making them less ideal for news articles or content that updates frequently. In which case do we recommend clients use it? Low technical expertise: This option is ideal for customers without technical knowledge or a developer on hand. Simple content integration: If the goal is to display static or additional information (e.g., contact details, event pages) rather than interactive features or frequent updates, a traditional website is sufficient. Quick implementation: When a fast and straightforward solution is needed, adding an existing webpage to the app can save time and effort. Examples of clients who are using it Slovenian: Vestnik  German: Kleine Kniffe Swedish: Hifi & Musik Danish: Indre Mission / Impuls Finnish: Viisas Raha Dutch: Fonk Magazine   SPA  What is it?  SPA (Single Page Application) allows seamless navigation by dynamically fetching and displaying new content without reloading the page (i.e. by the web browser making a document-type network request). Unlike traditional websites, which use navigation events to load new pages, SPAs use transition events to update content within the same page. A SPA commonly uses a dedicated  GUI (Graphical User Interface) with buttons or menus to navigate between “pages”. Each rendered page is rendered by the client (web browser) instead of rendered by the server for a traditional page. Content is fetched from the server,CMS, to be rendered “on the fly” by the web browser ensuring new articles appear without manual updates affording a more app-like user experience. In short, an SPA is dynamically rendered by the web browser. What are the benefits?  SPAs update content on the same screen without switching to a new page, offering a smooth, intuitive experience similar to mobile apps.  After the initial load, SPAs can feel faster since they fetch only new data instead of reloading the entire page, making them ideal for frequently updated content like news.  Developers have full control over rendering, turning raw data into user-friendly visuals efficiently, reducing processing, and ensuring responsive performance. What are the drawbacks? SPAs rely on JavaScript, which can cause compatibility issues with outdated browsers when the SPA relies on a specific Web API, for example social sharing, requiring developers to add fallback code and in turn increases complexity.  Rendering occurs in the user’s web browser on their device, where the web browser commonly processes raw data (e.g., JSON) and downloads large files upfront, making the initial load slower than traditional websites. This process also consumes more battery and processing power, affecting mobile devices or older hardware. However, after setup, SPAs tend to respond faster as no additional page loads are needed. In which case do we recommend clients use it? When the goal is to create a seamless, responsive design similar to a mobile app. Ideal for content with the latest news or live updates where content refreshes dynamically. Suitable for clients with a developer who can handle JavaScript-heavy projects and how to optimize for different devices and browsers. Examples of clients who are using it HSS - eVBL Svenska Epoch Times - Epoch Times   RSS feed  What is it?  An RSS (Really Simple Syndication) Feed is a standardiszed format for delivering regularly updated content, such as news or blog posts. To use an RSS feed, you need an RSS player, which reads the feed and displays the content. The appearance and navigation experience depend on the specific RSS player being used.  What are the benefits?  An RSS feed is easy to set up and suited for delivering simple, automated content updates with minimal effort.  What are the drawbacks? The design and user experience rely entirely on the RSS player, offering limited control and customisation over how the content is displayed or interacted with. Compatibility with different RSS players can vary, and some features may not work universally. Why can we currently not implement RSS feeds? An RSS feed is structured XML data, not a standard web page. Since our custom tabs require a direct URL, an RSS feed cannot be displayed without additional processing. To make an RSS feed readable in a custom tab, it would need to be converted into an HTML page.  We do not currently offer an RSS player. This means that RSS feeds cannot be displayed in a custom tab without being transformed into a readable web page. However, if you can convert your RSS feed into a readable URL, we are happy to implement it. FAQ How long would you estimate it takes to build a SPA? The time required depends on the developer’s experience and the complexity of the SPA. In general, building a basic SPA can take around 1–3 development days, with design, development, and testing. Can we display ads? Yes, you have full control over the content displayed in your custom tab. The only restriction is mentioning Apple or Google, as this could result in the app being rejected during the review process. What is the recommended number of menus in a SPA for the best user experience? When adding a menu bar within the SPA to allow readers to switch between different pages, consider how many menus are really needed. Since the SPA is embedded in an app that already has multiple tabs, an overly detailed menu can feel cluttered. To keep it user-friendly, we recommend keeping the menu minimal and focused. Do external links from our articles automatically open in a web browser, or does it depend on our own hyperlink settings? The link behavior is depending on the target attribute. If you do not specify a target attribute, or set it as (_self) the app will treat it as the default target behaviour, which means that the link will be opened within the current view. Can we force certain pages to open in a web browser instead of in the app, for example by using target="_blank"? Yes, this is possible. By setting the target attribute to _blank, the app will attempt to open the link in a new browser tab or WebView. However, in SPAs, this is not commonly used, as it breaks the seamless “in-app” experience that SPAs are designed to provide. Do I need to implement a refresh function for article pages in the mobile app when users scroll down? We recommend adding a refresh or reload function to ensure the page updates properly as users scroll down.  

Infosoft - Internal (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/infosoft-internal
>  What is InfoSoft?  InfoSoft is a solution for identity (subscribers/members) management and payments. An API is implemented between InfoSoft and Prenly - to use this follow the instructions below. InfoSoft are using Azure ADB2C (OAuth2) Supplier : InfoSoft Documentation : NA   How is the integration implemented? - What actions are needed from us? Supply InfoSoft with the following credentials:  Please add the following Redirect URI:s, and send to InfoSoft: Web: **web app URL**/authorization/auth-code (for both login and logout) iOS Login: **BundleID**://auth/oauth2-authorization-code/login-with-code iOS Logout: **BundleID**://auth/oauth2-authorization-code/logout Android Login: **Package name**://auth/oauth2-authorization-code/login-with-code Android Logout: **Package name**://auth/oauth2-authorization-code/logout Order the credentials we need from the contact person that our customer supplies us with or from the contacts below. Intercom macro available Add customer in cc When received, add item to HD card.   How is the statistic function implemented? - What actions are needed from InfoSoft?  OpenID configuration or domain OAuth2 Client ID OAuth2 Client Secret Product codes to authorise access Test account with an active subscription, hello@prenly.com URL to the open id configuration (will deliver bullets below), or; Issuer Authorisation endpoint Token endpoint Logout authorisation endpoint ID token public keys endpoint (URL with public keys to validate ID tokens) S4 Tenent ID Username for the userclaims endpoint (basic auth) Password for the userclaims endpoint (basic auth) Application ID for the userclaims endpoint   Intercom checklist Headline: INTEGRATION - InfoSoft To set up the integration, we will request credentials directly from InfoSoft shortly. For now, there is nothing you need to do.   Contact person thomas.sundback@infosoft.no 

FAQ (Integrations)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/integrations/faq
>  MATERIAL Big archive : If it’s a big FTP it can crash the FTP → ask Kenny if the amount is ok; 59GB was ok last time, depends on how much is already on the FTP —> might be that they would have to split it up, so they have to wait for our go How to set the earliest archive date:  Go to Superadmin Applications —> click on the application  Click on edit (next to the Application name)  Scroll down to Archive datepicker earliest date APPLICATION  Testing Internal testing:  Internal testing does not require the app to be accepted (by Google/Apple) For iOS: We need the invited users to accept an invitation before we can invite them to test the app For Android: The invited users can access testing directly by clicking the link. Custom tabs: Is it possible to add an email address in a custom tab? → Not possible, needs to be an actual URL (alternative: you can write a digital edition in prenly; you can create a banner (mailto link is possible) We can only display what is included in a link, if the pictures are not fetched in the feed, we cannot display them  We need the Https protocol; when you copy the url/when adding it there needs to be the https url in it Can we rename the „more“ button? —> No, it is not possible to rename the more button Review process  Google PDF on the verification process for Developer Account Possible to update after build with only new review: Android - all things related to the store: New name in Play (new review, no change in the binary) New description in Play (new review, no change in the binary) New screen shots in Play (new review, no change in the binary) New prices IAP (new review, no change in the binary) Possible to update after build but requires new review due to changes in the binary: iOS - all changes Android - all changes related to the app: New name in unit, new app icon (change in binary = new review) TTS on or off (change in binary = new review) Possible to update after build but requires new review due to changes in the binary and a new version: iOS - new version is required if the app already has the latest version and needs to be updated (same version can be reused if not released) Android - new version is required if the app already has the latest version and needs to be updated (same version can not be reused if the binary is uploaded, even if not released) What can lead to rejection in the review process? / Which tasks have to be completed before HD can build the apps  The tabs don't need an app update so that is perfectly fine to add later, however they should be included in the review, otherwise there might be some issues with later updates. While the app is in review changes to the apps/custom tabs can lead to rejection  PURCHASE Links to purchases - e.g. banner on home page that leads to a website where the opportunity to purchase can be easily found. Info text about purchases that can be found elsewhere Info about purchases in the descriptive text of the app Links for “subscription missing” at login LINKS Apple: Link to Android Google: Link to iOS CONTENT Too few issues published No cover images on editions (only happens when customer made own digital editions directly in Prenly and did not upload image) FEATURES Features that are claimed to be in the app are not found during review, like: Text-to-speech OTHER Age rating (must be present when app is sent for review) Category (must be present when app is sent for review) News text missing for News category App Privacy not specified Test account missing INTEGRATION  Remote API The customer needs to inform us, which “slug” should give access to which title  We don’t have a specific error code that indicates the user exists but is currently blocked. At the moment, there’s also no way to display a message to the user.  We send requests using the Content-Type “application/x-www-form-urlencoded”. In return, we need a response in “application/json” format. For simple format checks, you can use this test page: https://remoteapi.prenly.com/ . CSV file If you use email as customer id, you need a separate (second) email column, so that when you sign up as a reader, the account will automatically be connected  Oauth2 Redirect URLs: How to find BundleID for iOS and package name for Android Go to Superadmin Applications Scroll down to clients and click on the iOS / Android application In “Settings see: google_package_name": "com.prenly.vestnik" or  "apple_bundle_id": "com.prenly.vestnik" Fill the bundle ID / product name into the URL in the Trello code TOOLS PWS Language in PWS: Start and archive and settings are depending on the language on the device —> but in PWS chose menu and change text for start and settings and so on and then it won’t change Intercom Add contact in Intercom: All users —> Create user —> Create new —> Name & email —> Company name; Customer true; User tags English 

Tools (Onboarding)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/onboarding/tools
>  These tools are specifically used when working with Prenly Prenly Workspace (PWS) The tool used for administration of a customers e-platform. Is also used by customers themselfes for banners, push notifications, interstitials and more. content.textalk.se . . . . . . . . . . Website prenly.com . . . . . . . . . . Webapplications For customers during and after onboarding process: onboarding.prenly.com For customers (manuals): support.prenly.com Status update: status.prenly.com Create secret password to customer (like Privnote) secrets.prenly.com Application Strings (images) content.textalk.se/api/super/application/application-strings/new?application_id=2649 . . . . . . . . . . Webarch (WA) Content conversion and where customers upload PDFs for reading mode Webarch . . . . . . . . . . Google Docs Onboarding sends link in start-up email: Text and graphics from customers Handover from sales to onboarding . . . . . . . . . . FTP - demo for Prenly usage ftp.content.textalk.se användare: textalk_demo lösen: demo123 . . . . . . . . . . Latest issue URL + Cover image generator  Link . . . . . . . . . . DUNS number   like an international organisation number During enrolment both Apple and Google require a DUNS number from the customer. Depending on market, we can order the DUNS number for our customers: https://www.dnb.com/contact-us-page.html "Dun & Bradstreet Owned Markets" = order for free "Worldwide Network Partners" = paid through 3rd parties Order DUNS number here: -   Sweden -   Norway -  Finland Sometimes customers with organization names including "ä, ö, å, ü" will need an additional confirmaton from DUN & Bradstreet to get manually verified by Apple. They can find the contact details here . . . . . . . . . . . 

Applications - iOS (Onboarding)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/onboarding/applications-ios-google
>  Login to Apple Developer Account For access to customers Apple Developer Accounts Apple Create an Apple Developer Account https://onboarding.prenly.com/p/applikation/apple-developer/a/svenska/2245/283445/12139267 Screenshots / AppStore iPhone = 1242x2688 pixlar PNG iPhone = 1242x2208 pixlar PNG iPad = 2048x2732 pixlar PNG App Icons https://developer.apple.com/design/human-interface-guidelines/ios/icons-and-images/app-icon/ Apple Bundle Display Name There is no limitation of maximum characters from Apple.  However, the number of characters visible depends on the size of the character e.g.  www  vs.  iii. The display name no longer than 15 characters should be alright.    Apple Support Developer Support Page / Contact US:  https://developer.apple.com/contact/#!/topic/SC1101/subtopic/30006/solution/select  (  https://developer.apple.com/contact/topic/select  ) App Store / App Reviews:  https://developer.apple.com/app-store/review/ Developer Account Help / Team Management / Certificates:  https://help.apple.com/developer-account/ DUNS Support Submit case dun&bradstreet:  https://support.dnb.com/?CUST=APPLEDEV Support mail:  applecs@dnb.com TestFlight - Download the app TestFlight - Follow the instuctions via email from Apple - When the app is started, follow the introduction steps - Log in to read --> Settings --> Log in 

Material - Routing to Webarch (Onboarding)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/onboarding/material
>  PDF, IDML/XML For customers providing PDFs, IDML, XML that are to be routed to Webarch from FTP, use this template for setup. Material Flow Template 

Data Processing Agreement (DPA) (Onboarding)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/onboarding/data-processing-agreement-dpa
>  Agreements found here: Link System used for signing:   OneFlow  Mandatory appendix: Security measures Prenly reading services Optional appendix  (should only be attached if service is used) : Google Analytics Prenly Remote API TULO ConnectID SPiD Förteckning Underbiträden 

Media Support (Onboarding)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/onboarding/media-support
>  Media Support (press subsidy/government assistance) Sweden Sve : Presstöd var ett ekonomiskt bidrag från staten till tidningar, främst dagspress. Sedan 1 februari 2019 har det ersatts med mediestöd som även omfattar nätpublikationer. Syftet med de svenska press- och mediastöden är att främja mångfald och konkurrens inom dagspressen. Eng : Press support was a financial contribution from the state to newspapers, mainly daily press. Since 1 February 2019, it has been replaced with media support, which also includes online publications. The purpose of the Swedish press and media support is to promote diversity and competition within the daily press. https://www.mprt.se/stod-till-medier/nytt-mediestod-2024/ https://www.mprt.se/ 

Trademark (Onboarding)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/onboarding/trademark
>  Textalk does not offer trademark advise, however, when it comes to nameing an android or iOS application we can provide this:  "Trademarking an app name is similar to trademarking any other product or service. A "normal" trademark can indeed apply to apps as well. In most cases, you'll want to register your trademark with the appropriate government agency in the country where you want to protect your app name.When it comes to the app stores, both Apple and Google have their own policies regarding app names. You'll want to ensure that your app name complies with their guidelines. However, registering your app name as a trademark can offer additional legal protection beyond the app stores." 

Email Templates (Onboarding)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/onboarding/email-templates
>  Start up Meeting Hi,Thank you for your time today! Here is a summarise of what we went through. MATERIAL Supply us with the issues belonging to the archive - year xxxx - xxxx. Make sure that the publish date is added in the name, ex: yourpaper_20230101.pdf Send us the material via FTP, WeTransfer or Sprend. INTEGRATION CSV  - To create a login for readers you send us a CSV-file via FTP containing your subscriber register. When a reader tries to login a check is done towards the register (CSV-file) which decides if access is granted or not. Details here:  Create and send a CSV-file. When the file is made it is this FTP that is used: FTP Host:  ftp.content.textalk.se Username: xxxx Password: xxxx Prenly Remote API  - since you have a login for readers, My Pages or similar, Remote API can be a possibility. The new applications will then be connected to an existing subscriber register that will grant or deny access. Requirements specification and documentation here:  Prenly Remote API APPLICATION • Create an Apple Developer Account:  Guide • In the Apple-guide step 2, you should look up your DUNS-number. I've found the one that belongs to you: xx. Use this number when it's requested in step 3.  • Create a Google Developer Account:  Guide • Fill out this form:  Text and graphics Let me know if you have any questions :) Talk soon!   CNAME Hi, To use the URL you have wished for the webapplication - follow the steps below: 1. Ask your webb/IT-manager to perform a C-NAME record for the chosen URL  xxx.xxxxx.com  towards  xxxxx.prenly.com . 2. Observe that it must be a C-NAME that is made, not a REDIRECT. 3. Let us know when it's done and we will finish the action in our end. A tip is to add the new URL as a link from your website, leading to the new web application, so readers easily can find it! :)   Create an account Hi, The first time a reader uses the new e-paper app an account is created. This is how it's done: VIA MOBILE APPLICATION When the app is first used a couple of introduction steps are displayed to get the reader familiar with the interface and functions. After this the start page is displayed - from here it is possible to click "Login" (Settings --> Login) or click any issue of the magazine to get to the login box. VIA WEB APPLICATION Click on "LOGIN" from the start page or any issue of the magazine to get to the login box. THE LOGIN BOX • Click the link "Create account". • Fill in an e-mailaddress and password and click the blue button "Create Account". • An activation e-mail is sent to the chosen e-mailaddress. Go to the address and check the inbox (also look in trash if necessary). • Click on the button "Confirm account" in the e-mail. The following steps only apply if the chosen e-mailaddress was not registered when the subscription was bought. • In the next step, choose "Connect account to subscription". • Fill in the subscription number below "Add subscription". • Click the button "Register". READING Now it's done and the paper can be read via a smartphone, tablet or computer - as an ordinary paper or in a reader friendly mode by clicking an article. In the reading mode the font, size and background colour can be changed. It is also possible to press play and listen to the paper.   Add in-app purchases - Scenario 1 Hi, To add in-app purchases in the mobile applications we need some information and added functions to your developer accounts. Everything that is needed is listed below. Price/s for in-app purchases: Do you want in-app for single copies, subscriptions or both? Price for a copy/subscription? See price list and state the wished prices in an email back to us. https://docs.google.com/spreadsheets/d/1PeJ9gv-MJDFSsZS-ZdFRpFTPcRTgd68JHHOXPM_c6pQ/edit?usp=sharing Add to your developer accounts: APPLE Accept Apples agreement for in-app purchases in the Apple Developer Account. Found in the Agreements section after login. GOOGLE Create a service and merchant account. Guide for creating a service account:  https://support.prenly.com/p/apple-android/android-create-service-account/a/how-to-create-a-service-account-for-google-play/2595/489219/25791547 Guide for creating a merchant account:  https://support.google.com/googleplay/android-developer/answer/7161426?hl=en   Add in-app purchases - Scenario 2 Hi, To add in-app purchases in the mobile applications we need some information and added functions to your developer accounts. Everything that is needed is listed below. Price/s for in-app purchases: Do you want in-app for single copies, subscriptions or both? Price for a copy/subscription? See price list and state the wished prices in an email back to us. https://docs.google.com/spreadsheets/d/1PeJ9gv-MJDFSsZS-ZdFRpFTPcRTgd68JHHOXPM_c6pQ/edit?usp=sharing Add to your developer accounts: APPLE Accept Apples agreement for in-app purchases in the Apple Developer Account. Found in the Agreements section after login. GOOGLE Create a service account Guide:  https://support.prenly.com/p/apple-android/android-create-service-account/a/how-to-create-a-service-account-for-google-play/2595/489219/25791547 

Translations (Onboarding)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/onboarding/translations
>  PO EDITOR Tool: Poeditor Process: Make translations in Poeditor, then copy the translated words (english) into the Slack channel #prenly-translations to notify the developers.  

Systems (Onboarding)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/onboarding/systems
>  Organization  Trello Project management, planning, to do's. The board with all Prenly Customer Success Customers Shared board for Team Customer Success Shared board with sales Shared board with Help Desk, add tasks to HD here The board for incoming graphics (Forms) The board with all the Circle cards COMMUNICATION Google Workspace Calendar, company calendar and email. Drive for sharing documents. Meet for video meetings. workspace.google.com Slack Internal chat communication. Workspace name: textalk.slack.com Discord Internal Voice Communication, especially with Helpdesk. Server name: Textalk Group Intercom Customer emails & chat, mostly run by Helpdesk. Newsletters Intercom MANAGEMENT OF AGREEMENTS OwnCloud Storage of agreements, signed with customers - new agreements no longer added. owncloud.textalk.se OneFlow Signed service agreements between Sales and customers. Signed DPAs between Textalk and customers. sign into OneFlow una.aleksic@oneflow.com +46 720 285 615 MARKETING Brand Assets 

Price list (Onboarding)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/onboarding/price-list
>  Find all current prices   here . 

Google Developer Account - Validating the organizations website (Onboarding)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/onboarding/google-developer-account-validating-the-organizations-website
>  How to validate the organizations website In Google Play Console you will see this banner:   Click on " View details " and you will see the following view:    Click on “ Go to Search Console ” In Google Search Console under Domain fill in your company domain (e.g. prenly.com).   You will see something like this:    Google wants you to prove that you own the mentioned domain by adding a special code to your domain’s settings (this is called a DNS TXT record). Here’s how to do it: Log in to Your Domain Registrar  Go to the website where you purchased or manage your domain (e.g., GoDaddy, Namecheap, Cloudflare, or a similar service). Log in using your account credentials. Go to Your DNS Settings  Once logged in, find the DNS settings or Zone Editor for your domain. It’s often located in a section called Manage Domains or DNS Management. Look for something like “Edit DNS Records” or “Zone File Settings”.   Add the TXT Record  Record Type: Select TXT (as shown in the screenshot, this is the record type Google is asking for). Host/Name: Some registrars require you to enter @ (this represents the root domain). Others might ask you to leave it blank or enter your full domain name. Value/Text: Copy the exact TXT value from the screenshot: google-site-verification=xyz Paste this into the Value or Text field. Save the Record  Once you’ve entered the details, click Save or Update. The TXT record is now added to your domain’s DNS settings.   Verify in Google Search Console  Go back to Google Search Console. Click the Verify button at the bottom of the screen. Tip: If on Google Search Console you see graphs and data, that indicates that the txt record has been successful. Verify in Google Play Console  In Google Play in the banner showing “Finish setting up your developer account” click on “view details”  Click on “verify website” If this leads you to your account details, scroll down to your organisation's website and click on the button “...”  Check if the banner on the Google Play Console startpage disappeared Important Notes DNS changes may take some time (up to 48 hours) to update across the internet. If verification doesn’t work immediately, wait a few hours and try again. If you don’t know where your domain is registered or managed, contact the person or team responsible for setting up your website. 

How to add content to Prenly's internal bot - Internal (Onboarding)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/onboarding/how-to-add-content-to-prenlys-internal-bot-internal
> All articles that are included in the internal category are being collected under this link.  On the web page right click and choose "save as" to download the file to your computer. Upload this txt document to Chat GPT.  Why it is done this way:  Chat GPT only allows 20 files to be uploaded in total  Any new articles added to this category in Abicart, as well as any changes to pre-existing articles will be fetched automatically; we only need to add one file 

Applications - Google (Onboarding)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/onboarding/applications-google
>  Login to Google Play Console For access to customers Google Developer accounts Google Play Console Create an Google Developer Account https://onboarding.prenly.com/p/applikation/google-developer/a/english/2245/283461/52376945   Screenshots / Google Play Phone = 1440x2880 pixlar Tablet = 800x1280 pixlar Tablet = 2560x1600 pixlar App Icons https://developer.android.com/distribute/google-play/resources/icon-design-specifications Android App Display Name There is no limitation of maximum characters from Google.  However, the number of characters visible depends on the size of the character e.g.  www  vs.  iii. Typically, around 10–12 characters will display well on most devices before it gets cut off with an ellipsis (…).  Apple Support Developer Support Page / Contact Contact: https://developers.google.com/business-communications/business-messages/support/contact  Play Console Help: https://support.google.com/googleplay/android-developer?sjid=13019780863326060588-EU#topic=3450769 App review process: https://developers.google.com/workspace/marketplace/about-app-review Testen  - Testing apps on Android is done through the Google Play Console - The customer will receive a link that lets them install the app. - The tester needs to use a Google account (e.g. a Gmail address). 

Customer examples (Onboarding)
http://textalkwebsite.shop.abicart.se/en/support/user-manuals/prenly/internal/onboarding/customer-example
>  Web Application Nice start page - magazine:  SE - Maskinentreprenörerna i Sverige AB - Maskinentreprenören   SE - Stiftelsen Expo - Expo   NO - Schibsted Media - Magasin+  DK - Danmarks Jægerforbund - Magasinet Jæger  DK - Haveselskabet - Magasinet Haven   DE - HellasProducts GmbH - Griechenland Zeitung   Nice start page - newspaper:  SE - HSS Media - Vasabladet DK - JP/Politikens Hus - Politiken   DE - Staatsanzeiger für Baden-Württemberg GmbH und Co kg - Staatsanzeiger E-Paper User preferred title:  SE - DP Direkt Press Tidningsförslag AB - Mitt i  SE - Bonnier News - Lokaltidningen (Skåne)   EN / CN - Market Intelligence Ltd - Asiafruit   Customization:  FI - Helsingin Seurakuntayhtymä - Kirkko ja Kaupunki   Banners / Ads:  SE - Asarums Hunddagis AB - Succé   SE - Bonnier News - Örnsköldsviks Allehanda Extra   Podcast:  SE - Ljuskultur - Ljuskultur   DK - JP/Politikens Hus - Politiken   FI - Helsingin Seurakuntayhtymä - Kirkko ja Kaupunki   EN - Market Intelligence Ltd - All Applications; Example: Eurofruit Abicart Purchase: SE - Lysekilsposten - Lysekilsposten   SE - Proletären - Proletären   SE - Västerbygden - Tidningen Västsverige   NO - Trav og Galopp AS - Trav og Galopp - Nytt  CMP - Didomi:  SE - Bonnier News - Gefle Dagblad   CMP - Cookiebot: DK - JP/Politikens Hus - Jyllands-Posten   CMP - Sourcepoint:  SE - Schibsted - eSvD (Svenska Dagbladet) https://esvd.svd.se/   Sound: …?  Mobile Application Custom tab - SPA: FI - HSS Media - Vasabladet “eVBL”: SPA Link DK - Herning Folkeblad - “Herning Folkeblad”: SPA Link DE - Staatsanzeiger für Baden-Württemberg GmbH und Co kg - “Staatsanzeiger E-Paper”  Custom icon:  FI - Helsingin Seurakuntayhtymä - “Kirkko ja kaupunki” Custom font:  FI - Helsingin Seurakuntayhtymä - “Kirkko ja kaupunki” JS Bridge:  DK - Herning Folkeblad - “Herning Folkeblad” CMP - UserCentrics: DK - JP/Politikens Hus - Jyllands-Posten - “Jyllands-Posten Nyheder”  In App purchases: DE - Medienhaus Lüneburg - Landeszeitung “LZ/WA ePaper”