Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Polish documentation catalogs #1105

Merged
merged 49 commits into from
Jan 6, 2025
Merged
Show file tree
Hide file tree
Changes from 47 commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
42acac3
Improve main player article
defagos Dec 20, 2024
a3ff767
Improve playback speed article
defagos Dec 20, 2024
79ef54c
Improve subtitles and audio tracks article
defagos Dec 20, 2024
09e0ab8
Improve AirPlay article
defagos Dec 20, 2024
41a515a
Improve asset resource loading article
defagos Dec 20, 2024
e335e64
Improve Control Center article
defagos Dec 21, 2024
7b76dee
Improve FairPlay streaming article
defagos Dec 21, 2024
fdc58d1
Improve metadata article
defagos Dec 21, 2024
bcf3cc0
Improve metrics article
defagos Dec 21, 2024
f70269d
Improve formatting
defagos Dec 21, 2024
72cc2e3
Improve Picture in Picture article
defagos Dec 21, 2024
1c57e62
Improve playback article
defagos Dec 30, 2024
e61bb37
Improve state observation article
defagos Dec 30, 2024
d272cf6
Improve stream encoding and packaging advice article
defagos Dec 30, 2024
2bc2ad7
Improve tracking article
defagos Dec 30, 2024
bd25810
Better organize player APIs
defagos Dec 30, 2024
3f10150
Better organize other playback APIs
defagos Dec 30, 2024
2ee1952
Improve outlines
defagos Dec 30, 2024
0bba8e1
Improve tutorial header images
defagos Dec 30, 2024
0e03df1
Improve project creation tutorial
defagos Dec 31, 2024
9d6fdb8
Improve Control Center integration tutorial
defagos Dec 31, 2024
8b1087e
Improve layout optimization tutorial
defagos Dec 31, 2024
5ee02cf
Fix stream URL
defagos Dec 31, 2024
ec5932c
Improve AirPlay tutorial
defagos Dec 31, 2024
241ec6c
Improve Picture in Picture tutorial
defagos Dec 31, 2024
a2910f8
Improve pinch-to-zoom tutorial
defagos Dec 31, 2024
b4a1353
Round durations to nearest 5 minutes
defagos Dec 31, 2024
41a3b1e
Improve tracking progress tutorial
defagos Dec 31, 2024
92af401
Tweak times to account for reading
defagos Dec 31, 2024
d92404e
Improve visibility tracking tutorial
defagos Dec 31, 2024
8c4ebd4
Update basic user interface tutorial
defagos Jan 1, 2025
d57b97f
Improve events article
defagos Jan 1, 2025
4151281
Improve page views article
defagos Jan 1, 2025
dc88597
Improve PillarboxAnalytics main article
defagos Jan 1, 2025
19c2f06
Improve analytics setup article
defagos Jan 1, 2025
5865b2f
Improve user consent article
defagos Jan 1, 2025
b6e0685
Improve web content article
defagos Jan 1, 2025
8a78a43
Use US English style for e.g.
defagos Jan 1, 2025
5d398b5
Improve monitoring documentation
defagos Jan 1, 2025
bf46090
Improve monitoring article
defagos Jan 1, 2025
057c3d8
Improve core business article
defagos Jan 1, 2025
21e5780
Polish documentation
defagos Jan 1, 2025
4806c43
Remove superfluous tutorial step
defagos Jan 1, 2025
34c573e
Remove superfluous view builders from tutorials
defagos Jan 1, 2025
dcbb2f7
Restore links to framework documentation inside tutorials
defagos Jan 1, 2025
df4c839
Polish tutorials
defagos Jan 1, 2025
6fbaacc
Remove tutorials files
defagos Jan 1, 2025
9f216d2
Improve documentation
defagos Jan 6, 2025
aa72631
Fix typos
defagos Jan 6, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions Demo/Pillarbox-demo.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@

/* Begin PBXFileSystemSynchronizedRootGroup section */
6FD6C9F92CD8B61A00ED6B32 /* Preview Content */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = "Preview Content"; sourceTree = "<group>"; };
6FD6CA022CD8B61A00ED6B32 /* Tutorials */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = Tutorials; sourceTree = "<group>"; };
6FD6CA0E2CD8B61A00ED6B32 /* Resources */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = Resources; sourceTree = "<group>"; };
6FD6CA7E2CD8B61A00ED6B32 /* Sources */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = Sources; sourceTree = "<group>"; };
6FD6CADF2CD8B61A00ED6B32 /* Xcode */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = Xcode; sourceTree = "<group>"; };
Expand Down Expand Up @@ -49,7 +48,6 @@
6F7A2B242A7076FA005701C7 /* Packages */,
6FD6CA7E2CD8B61A00ED6B32 /* Sources */,
6FD6CA0E2CD8B61A00ED6B32 /* Resources */,
6FD6CA022CD8B61A00ED6B32 /* Tutorials */,
6FD6C9F92CD8B61A00ED6B32 /* Preview Content */,
6FD6CADF2CD8B61A00ED6B32 /* Xcode */,
6F05B8D62887E934005D75E3 /* Products */,
Expand Down Expand Up @@ -97,7 +95,6 @@
);
fileSystemSynchronizedGroups = (
6FD6C9F92CD8B61A00ED6B32 /* Preview Content */,
6FD6CA022CD8B61A00ED6B32 /* Tutorials */,
6FD6CA0E2CD8B61A00ED6B32 /* Resources */,
6FD6CA7E2CD8B61A00ED6B32 /* Sources */,
);
Expand Down
2 changes: 1 addition & 1 deletion Demo/Sources/Model/URLMedia.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ enum URLMedia {
title: "Sacha part à la rencontre d'univers atypiques",
subtitle: "VOD - HLS",
imageUrl: "https://www.rts.ch/2024/06/13/11/34/14970435.image/16x9",
type: .url("https://rts-vod-amd.akamaized.net/ww/14970442/7510ee63-05a4-3d48-8d26-1f1b3a82f6be/master.m3u8")
type: .url("https://rts-vod-amd.akamaized.net/ww/14970442/da2b38fb-ca9f-3c76-80c6-e6fa7f3c2699/master.m3u8")
)
static let shortOnDemandVideoHLS = Media(
title: "Des violents orages ont touché Ajaccio, chef-lieu de la Corse, jeudi",
Expand Down
31 changes: 0 additions & 31 deletions Demo/Tutorials/IntegratingWithControlCenter.swift

This file was deleted.

39 changes: 0 additions & 39 deletions Demo/Tutorials/OptimizingCustomLayouts1~ios.swift

This file was deleted.

36 changes: 0 additions & 36 deletions Demo/Tutorials/OptimizingCustomLayouts2~ios.swift

This file was deleted.

41 changes: 0 additions & 41 deletions Demo/Tutorials/PinchToZoomTutorial~ios.swift

This file was deleted.

23 changes: 0 additions & 23 deletions Demo/Tutorials/SupportingBasicPictureInPicture.swift

This file was deleted.

35 changes: 0 additions & 35 deletions Demo/Tutorials/TrackingProgressTutorial~ios.swift

This file was deleted.

53 changes: 0 additions & 53 deletions Demo/Tutorials/TrackingVisibilityTutorial~ios.swift

This file was deleted.

28 changes: 14 additions & 14 deletions Sources/Analytics/Analytics.docc/PillarboxAnalytics.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,45 +4,45 @@
@PageColor(green)
}

Measure app usage according to SRG SSR requirements.
Measure app usage in compliance with SRG SSR requirements.

## Overview

The PillarboxAnalytics framework provides a toolbox to measure app usage according to SRG SSR requirements:
The PillarboxAnalytics framework provides a comprehensive toolkit for measuring app usage according to SRG SSR standards:

- Analytics for internal usage, gathered using [Commanders Act](https://www.commandersact.com) analytics SDK.
- Analytics for [Mediapulse](https://www.mediapulse.ch), an organization charged with collecting media consumption data in Switzerland. These measurements are forwarded using [comScore](https://www.comscore.com/) analytics SDK.
- **Internal Analytics:** Data is collected using the [Commanders Act](https://www.commandersact.com) analytics SDK.
- **Mediapulse Analytics:** [Mediapulse](https://www.mediapulse.ch), responsible for monitoring media consumption in Switzerland, receives measurements via the [comScore](https://www.comscore.com/) analytics SDK.

> Important: Proper measurements are critical. The GD ADI team or Mediapulse might reject your application or its measurements should you implement analytics incorrectly.
> Important: Proper implementation of analytics is essential. Non-compliance may result in rejection of your app or its measurements by the GD ADI team or Mediapulse.

### Measure app usage

The PillarboxAnalytics framework lets you measure application usage in two ways:
PillarboxAnalytics enables app usage measurement through two main methods:

- <doc:page-views-article>
- <doc:events-article>

> Important: Streaming measurements are automatically collected when playing SRG SSR content using the PillarboxCoreBusiness framework. Just ensure that tracking has been properly setup first. Please refer to <doc:setup-article> for more information.
> Note: Streaming data is automatically tracked when using SRG SSR content with the PillarboxCoreBusiness framework. Ensure tracking is set up correctly by referring to the <doc:setup-article> article.

### Transparency and data protection

To comply with the Swiss [New Federal Act on Data Protection (nFADP)](https://www.kmu.admin.ch/kmu/en/home/facts-and-trends/digitization/data-protection/new-federal-act-on-data-protection-nfadp.html) apps must implement some form of user consent management. Please read <doc:user-consent-article> for more information about how you can provide user consent information to the PillarboxAnalytics framework.
To comply with Switzerland’s [New Federal Act on Data Protection (nFADP)](https://www.kmu.admin.ch/kmu/en/home/facts-and-trends/digitization/data-protection/new-federal-act-on-data-protection-nfadp.html), apps must integrate a user consent management system. For implementation details, refer to the <doc:user-consent-article> article.

#### AdSupport and Identifier for advertisers (IDFA)
#### AdSupport and Identifier for Advertisers (IDFA)

The PillarboxAnalytics framework always links against [AdSupport](https://developer.apple.com/documentation/adsupport) but the [IDFA](https://developer.apple.com/documentation/adsupport/asidentifiermanager/advertisingidentifier) is never used or shared by the PillarboxAnalytics framework.
The PillarboxAnalytics framework links against [AdSupport](https://developer.apple.com/documentation/adsupport), but it does not use or share the [IDFA](https://developer.apple.com/documentation/adsupport/asidentifiermanager/advertisingidentifier).

> Important: SRG SSR apps must not implement [App Tracking Transparency](https://developer.apple.com/documentation/apptrackingtransparency). This ensures that the IDFA can never be read unintentionally.
> Important: SRG SSR apps must **not** implement [App Tracking Transparency](https://developer.apple.com/documentation/apptrackingtransparency) to ensure the IDFA remains inaccessible.

### App privacy details

When submitting an app to the App Store you must provide [App privacy details](https://developer.apple.com/app-store/app-privacy-details/) that accurately reflect which data is collected by your app and to what purpose.
When submitting an app to the App Store, provide accurate [app privacy details](https://developer.apple.com/app-store/app-privacy-details/) about data collection and usage.

To help you fill all required information Xcode organizer provides a way to generate a [consolidated privacy report for your app](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests#4239187). This report automatically contains privacy details associated with Pillarbox and its 3rd party dependencies.
Xcode Organizer can generate a [consolidated privacy report](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests#4239187), which includes data collected by Pillarbox and its third-party dependencies.

### Validation

Your application should be validated before being submitted to production, at least when significant changes to analytics are made. Please contact the GD ADI team for more information.
Before submitting your app to production, validate it, especially after significant analytics updates. Contact the GD ADI team for assistance with the validation process.

## Topics

Expand Down
18 changes: 9 additions & 9 deletions Sources/Analytics/Analytics.docc/events-article.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,23 @@
@PageColor(green)
}

Better understand how your app functionalities are used.
Gain insights into how your app’s features are being utilized.

## Overview

As a product team you need to better understand which features are popular and which ones aren't.
As a product team, understanding which features are popular and which are underutilized is essential for informed decision-making.

The ``PillarboxAnalytics`` framework provides a way to send arbitrary events so that your analysts can better understand your users and help you lead your product in the right direction.
The ``PillarboxAnalytics`` framework enables you to send custom events, allowing your analysts to better understand user behavior and guide your product strategy effectively.

> Important: Tracking must be properly setup first. Please refer to <doc:setup-article> for more information.
> Important: Ensure tracking is properly set up before proceeding. Refer to the <doc:setup-article> article for detailed instructions.

### Send events

To send a custom event simply access the tracker singleton and call ``Analytics/sendEvent(commandersAct:)``.
To send a custom event, use the tracker singleton and invoke the ``Analytics/sendEvent(commandersAct:)`` method.

> Note: Events are supported by Commanders Act only.
> Note: Events are exclusively supported by Commanders Act.

An event is described by a name and associated labels. You could for example track the action associated with a favorite button as follows:
An event consists of a name and associated labels. For example, tracking the action of a “favorite button can be achieved as follows:

```swift
Analytics.shared.sendEvent(commandersAct: .init(
Expand All @@ -31,6 +31,6 @@ Analytics.shared.sendEvent(commandersAct: .init(
))
```

For inspiration you should have a look at how [Play SRG products](https://confluence.srg.beecollaboration.com/display/SRGPLAY/Play+SRG+native+click+and+hidden+analytics+events) use events.
For inspiration, explore how [Play SRG products](https://srgssr-ch.atlassian.net/wiki/x/AAmhLw) utilize events.

> Tip: Commanders Act fields need to be properly mapped server-side. Please check our [internal wiki](https://confluence.srg.beecollaboration.com/pages/viewpage.action?pageId=13188692) for more information about available keys or contact the GD ADI team for more information.
> Tip: Commanders Act fields must be properly mapped server-side. Check our [internal wiki](https://srgssr-ch.atlassian.net/wiki/x/zIZwLw) for available keys or contact the GD ADI team for further guidance on mapping and implementation.
Loading