PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.3.3
Presto Player v4.3.3
4.3.3 4.3.2 4.3.1 4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / src / admin / dashboard / pages / settings / integrations / GoogleAnalyticsPage.js
presto-player / src / admin / dashboard / pages / settings / integrations Last commit date
BunnyNetPage.js 2 months ago EmailCapturePage.js 2 months ago GoogleAnalyticsPage.js 2 months ago WebhooksPage.js 2 months ago YouTubePage.js 2 months ago
GoogleAnalyticsPage.js
98 lines
1 import { __ } from '@wordpress/i18n';
2 import { Container, Switch, Label, Input } from '@bsf/force-ui';
3 import SettingsPageShell from '../shared/SettingsPageShell';
4 import SectionCard from '../shared/SectionCard';
5 import ProGate from '../shared/ProGate';
6 import useSimpleSettingsPage from '../../../hooks/useSimpleSettingsPage';
7 import { OPTION_KEYS } from '../config';
8
9 const DEFAULTS = {
10 enable: false,
11 use_existing_tag: false,
12 measurement_id: '',
13 };
14
15 const isPremium = window.prestoPlayer?.isPremium ?? false;
16
17 const GoogleAnalyticsPage = ( { registerActivePage } ) => {
18 const { data, update, handleSave, isDirty, isSaving, isLoading } =
19 useSimpleSettingsPage(
20 OPTION_KEYS.googleAnalytics,
21 DEFAULTS,
22 registerActivePage
23 );
24
25 return (
26 <SettingsPageShell
27 title={ __( 'Google Analytics', 'presto-player' ) }
28 isDirty={ isDirty }
29 isSaving={ isSaving }
30 isLoading={ isLoading }
31 onSave={ handleSave }
32 >
33 <SectionCard>
34 <ProGate
35 enabled={ isPremium }
36 title={ __( 'Google Analytics', 'presto-player' ) }
37 description={ __(
38 'Send media events directly to your Google Analytics account.',
39 'presto-player'
40 ) }
41 >
42 <Container direction="column" className="gap-4">
43 <Switch
44 size="md"
45 value={ !! data.enable }
46 onChange={ ( val ) => update( { enable: val } ) }
47 label={ {
48 heading: __( 'Enable', 'presto-player' ),
49 description: __(
50 'Send analytics events to your Google Analytics account.',
51 'presto-player'
52 ),
53 } }
54 />
55
56 { data.enable && (
57 <>
58 <Switch
59 size="md"
60 value={ !! data.use_existing_tag }
61 onChange={ ( val ) => update( { use_existing_tag: val } ) }
62 label={ {
63 heading: __( 'Use existing on-page tag?', 'presto-player' ),
64 description: __(
65 "Should we use an existing Google Analytics (v4) tag? If not, we'll output one for you.",
66 'presto-player'
67 ),
68 } }
69 />
70
71 <Container.Item className="flex flex-col gap-2">
72 <Label size="sm">
73 { __( 'Measurement ID', 'presto-player' ) }
74 </Label>
75 <Input
76 size="md"
77 value={ data.measurement_id || '' }
78 onChange={ ( val ) => update( { measurement_id: val } ) }
79 placeholder="G-XXXXXXXXXX"
80 />
81 <Label size="xs" variant="help">
82 { __(
83 'Enter a Google Analytics Measurement ID, which can be found on your analytics admin page.',
84 'presto-player'
85 ) }
86 </Label>
87 </Container.Item>
88 </>
89 ) }
90 </Container>
91 </ProGate>
92 </SectionCard>
93 </SettingsPageShell>
94 );
95 };
96
97 export default GoogleAnalyticsPage;
98