Skip to content

Commit 3ff5bba

Browse files
authored
fix: links, sdk/* selector (#153)
* fix: restore sdk placeholder navigation * fix: address sdk link review feedback
1 parent 352420b commit 3ff5bba

157 files changed

Lines changed: 1052 additions & 500 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

bun.lock

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

content/docs/advanced-paywall-creation.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: "External Paywall Creation"
44

55
<Warning>
66
The legacy editor is deprecated. Please visit the docs covering our new
7-
[editor](/paywall-editor-overview).
7+
[editor](/dashboard/dashboard-creating-paywalls/paywall-editor-overview).
88
</Warning>
99

1010
The following is only necessary if you're looking to build your own paywall website outside of Superwall. We strongly recommend using the paywall editor or templates instead.
@@ -24,7 +24,7 @@ There are seven different types of data tag:
2424
| data-pw-purchase | Either primary, secondary, or tertiary. | This relates to your primary, secondary, or tertiary product set up in the Superwall dashboard respectively. When the tagged element is tapped, it tells the SDK to initialize a purchase of the specified product. |
2525
| data-pw-open-url | A valid url. E.g.` <https://www.google.com\>.` | Normal href links do not work in a paywall. However, attaching this tag to an element opens the provided url. |
2626
| data-pw-open-deep-link | A valid deep link url. E.g. fb://profile/33138223345. | Opens a deeplink from a button on a paywall. |
27-
| data-pw-custom | A name for a custom action | When the tagged element is tapped, the SDK calls its delegate method handleCustomPaywallAction(withName:). The value you provide is passed to the function, from which you can perform custom logic. Check out [Custom Paywall Buttons](/docs/custom-paywall-events) for more. |
27+
| data-pw-custom | A name for a custom action | When the tagged element is tapped, the SDK calls its delegate method handleCustomPaywallAction(withName:). The value you provide is passed to the function, from which you can perform custom logic. Check out [Custom Paywall Buttons](/sdk/guides/advanced/custom-paywall-actions) for more. |
2828
| data-pw-skip-inner-html | true | This prevents an element's text from being edited. It tells Paywall.js to keep looking into the element's children for more data-pw-var tags. This is useful when you want to hide a whole section or edit the style of a container, rather than edit its text. |
2929

3030
Here are a few examples of what data tags look like in the webpage HTML:

content/docs/android/guides/web-checkout/linking-membership-to-iOS-app.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ description: "Handle a deep link in your app and use the delegate methods."
44
---
55

66
After purchasing from a web paywall, the user will be redirected to your app by a deep link to redeem their purchase on device.
7-
Please follow our [Post-Checkout Redirecting](/web-checkout-post-checkout-redirecting) guide to handle this user experience.
7+
Please follow our [Post-Checkout Redirecting](/android/guides/web-checkout/post-checkout-redirecting) guide to handle this user experience.
88

99
<Note>
1010
If you're using Superwall to handle purchases, then you don't need to do anything here.
1111
</Note>
1212

13-
If you're using your own `PurchaseController`, you will need to update the subscription status with the redeemed web entitlements. If you're using RevenueCat, you should follow our [Using RevenueCat](/web-checkout-using-revenuecat) guide.
13+
If you're using your own `PurchaseController`, you will need to update the subscription status with the redeemed web entitlements. If you're using RevenueCat, you should follow our [Using RevenueCat](/android/guides/web-checkout/using-revenuecat) guide.
1414

1515
### Using a PurchaseController
1616

@@ -98,4 +98,4 @@ If you aren't using a Purchase Controller, the SDK will refresh the web entitlem
9898

9999
### Redeeming while a paywall is open
100100

101-
If a redeem event occurs when a paywall is open, the SDK will track that as a restore event and the paywall will close.
101+
If a redeem event occurs when a paywall is open, the SDK will track that as a restore event and the paywall will close.

content/docs/android/guides/web-checkout/post-checkout-redirecting.mdx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ After a user completes a web purchase, Superwall needs to redirect them back to
77

88
## Post-Purchase Behavior Modes
99

10-
You can configure how users are redirected after checkout in your [Application Settings](/web-checkout-configuring-stripe-keys-and-settings#post-purchase-behavior):
10+
You can configure how users are redirected after checkout in your [Application Settings](/web-checkout/web-checkout-configuring-stripe-keys-and-settings#post-purchase-behavior):
1111

1212
### Redeem Mode (Default)
1313

@@ -49,15 +49,15 @@ You'll need to implement your own logic to handle the redirect and deep link use
4949
Whether you're showing a checkout page in a browser or using the In-App Browser, the Superwall SDK relies on deep links to redirect back to your app.
5050

5151
#### Prerequisites
52-
1. [Configuring Stripe Keys and Settings](/web-checkout-configuring-stripe-keys-and-settings)
53-
2. [Deep Links](/in-app-paywall-previews)
52+
1. [Configuring Stripe Keys and Settings](/web-checkout/web-checkout-configuring-stripe-keys-and-settings)
53+
2. [Deep Links](/android/quickstart/in-app-paywall-previews)
5454

5555
<Warning>
5656
If you're not using Superwall to handle purchases, then you'll need to follow extra steps to redeem the web purchase in your app.
5757
</Warning>
5858

59-
- [Using RevenueCat](/web-checkout-using-revenuecat)
60-
- [Using a PurchaseController](/web-checkout-linking-membership-to-iOS-app#using-a-purchasecontroller)
59+
- [Using RevenueCat](/android/guides/web-checkout/using-revenuecat)
60+
- [Using a PurchaseController](/android/guides/web-checkout/linking-membership-to-iOS-app#using-a-purchasecontroller)
6161

6262
---
6363

@@ -134,4 +134,4 @@ class SWDelegate : SuperwallDelegate {
134134
}
135135
}
136136
}
137-
```
137+
```

content/docs/android/guides/web-checkout/using-revenuecat.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ title: "Using RevenueCat"
33
description: "Handle a deep link in your app and use the delegate methods to link web checkouts with RevenueCat."
44
---
55

6-
After purchasing from a web paywall, the user will be redirected to your app by a deep link to redeem their purchase on device. Please follow our [Post-Checkout Redirecting](/web-checkout-post-checkout-redirecting) guide to handle this user experience.
6+
After purchasing from a web paywall, the user will be redirected to your app by a deep link to redeem their purchase on device. Please follow our [Post-Checkout Redirecting](/android/guides/web-checkout/post-checkout-redirecting) guide to handle this user experience.
77

88
<Note>
99
If you're using Superwall to handle purchases, then you don't need to do anything here.
1010
</Note>
1111

1212
<Warning>You only need to use a `PurchaseController` if you want end-to-end control of the purchasing pipeline. The recommended way to use RevenueCat with Superwall is by putting it in observer mode.</Warning>
1313

14-
If you're using your own `PurchaseController`, you should follow our [Redeeming In-App](/web-checkout-linking-membership-to-iOS-app) guide.
14+
If you're using your own `PurchaseController`, you should follow our [Redeeming In-App](/android/guides/web-checkout/linking-membership-to-iOS-app) guide.
1515

1616
### Using a PurchaseController with RevenueCat
1717

@@ -136,4 +136,4 @@ class SWDelegate : SuperwallDelegate {
136136

137137
The web entitlements will be returned along with other existing entitlements in the `CustomerInfo` object accessible via RevenueCat's SDK.
138138

139-
If you're logging in and out of RevenueCat, make sure to resend the Stripe subscription IDs to RevenueCat's endpoint after logging in.
139+
If you're logging in and out of RevenueCat, make sure to resend the Stripe subscription IDs to RevenueCat's endpoint after logging in.

content/docs/android/quickstart/tracking-subscription-state.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ class MyApplication : Application() {
272272

273273
## Superwall checks subscription status for you
274274

275-
Remember that the Superwall SDK uses its [audience filters](/campaigns-audience#matching-to-entitlements) for determining when to show paywalls. You generally don't need to wrap your calls to register placements with subscription status checks:
275+
Remember that the Superwall SDK uses its [audience filters](/dashboard/dashboard-campaigns/campaigns-audience#matching-to-entitlements) for determining when to show paywalls. You generally don't need to wrap your calls to register placements with subscription status checks:
276276

277277
```kotlin
278278
// ❌ Unnecessary
@@ -284,4 +284,4 @@ if (Superwall.instance.subscriptionStatus.value !is SubscriptionStatus.Active) {
284284
Superwall.instance.register("campaign_trigger")
285285
```
286286

287-
In your [audience filters](/campaigns-audience#matching-to-entitlements), you can specify whether the subscription state should be considered, which keeps your codebase cleaner and puts the "Should this paywall show?" logic where it belongs—in the Superwall dashboard.
287+
In your [audience filters](/dashboard/dashboard-campaigns/campaigns-audience#matching-to-entitlements), you can specify whether the subscription state should be considered, which keeps your codebase cleaner and puts the "Should this paywall show?" logic where it belongs—in the Superwall dashboard.

content/docs/configuring-a-paywall.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ description: "Superwall maintains a growing list of paywall templates for you to
66

77
<Warning>
88
The legacy editor is deprecated. Please visit the docs covering our new
9-
[editor](/paywall-editor-overview).
9+
[editor](/dashboard/dashboard-creating-paywalls/paywall-editor-overview).
1010
</Warning>
1111

1212
On the Superwall dashboard under **Paywalls**, click **\+ New Paywall** and select **From Template**:

content/docs/dashboard/dashboard-campaigns/campaign-rules.mdx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: "Rules allow you to decide _which users_ see a paywall."
44
---
55

66
<Warning>
7-
This page is outdated. Please visit this [one](/campaigns-audience) for the most relevant
7+
This page is outdated. Please visit this [one](/dashboard/dashboard-campaigns/campaigns-audience) for the most relevant
88
information.
99
</Warning>
1010
<iframe
@@ -36,7 +36,7 @@ description: "Rules allow you to decide _which users_ see a paywall."
3636

3737
### Adding Rules
3838

39-
Add a rule to a campaign by clicking the **Add Rule** button from within a [campaign](/docs/campaigns).
39+
Add a rule to a campaign by clicking the **Add Rule** button from within a [campaign](/dashboard/dashboard-campaigns/campaigns).
4040

4141
<Frame>
4242
![](/images/2d6a66b-Screen_Shot_2022-05-17_at_4.42.49_PM.png "Screen Shot 2022-05-17 at 4.42.49
@@ -65,15 +65,15 @@ Clicking on the condition reveals a dropdown of possible conditions which you ca
6565

6666
<Frame>![](/images/f91ba64-Screenshot_2022-12-01_at_10.55.45.png) </Frame>
6767

68-
Conditions are added to this list when data is retrieved from the SDK via registering events or setting user attributes. If a condition doesn't yet exist in the drop down, you can manually add it by referencing it with dot syntax. For example, `user.custom_parameter` would reference `custom_parameter` on the `user` object. As with [paywall text variables](/paywall-editor-variables), the following objects are all available to use:
68+
Conditions are added to this list when data is retrieved from the SDK via registering events or setting user attributes. If a condition doesn't yet exist in the drop down, you can manually add it by referencing it with dot syntax. For example, `user.custom_parameter` would reference `custom_parameter` on the `user` object. As with [paywall text variables](/dashboard/dashboard-creating-paywalls/paywall-editor-variables), the following objects are all available to use:
6969

7070
| Object | Description |
7171
| ------ | ----------------------------------------------------------------------------------------------------------------------------------- |
72-
| user | User attributes that you set via the SDK using setUserAttributes(\_:). See [Setting User Attributes](/docs/setting-user-properties) |
73-
| params | Parameters defined when [registering an event](/docs/feature-gating). |
72+
| user | User attributes that you set via the SDK using setUserAttributes(\_:). See [Setting User Attributes](/sdk/quickstart/setting-user-properties) |
73+
| params | Parameters defined when [registering an event](/sdk/quickstart/feature-gating). |
7474
| device | Device attributes that are gathered by the SDK. |
7575

76-
Additionally, you can use the following device properties: `device.minutesSince_X`, `device.hoursSince_X`, `device.daysSince_X`, `device.monthsSince_X`, and `device.yearsSince_X`, where X is the name of an event that you've [registered](/docs/feature-gating) or a [Superwall event](/docs/tracking-analytics). This gives you the days etc since the last occurrence of the event that you specify, excluding the event that triggered the paywall. For example, a campaign with an `app_open` event and the rule `device.daysSince_app_open > 3` will present a paywall on app open only if the last `app_open` event was over 3 days ago.
76+
Additionally, you can use the following device properties: `device.minutesSince_X`, `device.hoursSince_X`, `device.daysSince_X`, `device.monthsSince_X`, and `device.yearsSince_X`, where X is the name of an event that you've [registered](/sdk/quickstart/feature-gating) or a [Superwall event](/sdk/guides/3rd-party-analytics/tracking-analytics). This gives you the days etc since the last occurrence of the event that you specify, excluding the event that triggered the paywall. For example, a campaign with an `app_open` event and the rule `device.daysSince_app_open > 3` will present a paywall on app open only if the last `app_open` event was over 3 days ago.
7777

7878
### Limit
7979

content/docs/dashboard/dashboard-campaigns/campaigns-audience.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Audiences allow you to set up simple or complex filtering rules to match certain
66

77
**Another way to think of them is this: If you're wanting to create conditions, filters or certain rules or flows that must happen to show a paywall — then you create an audience for it.**
88

9-
If creating filters to show a paywall under certain conditions doesn't apply to you, then you can simply leave the default audience on — it'll match everyone who hits a [placement](/campaigns-placements).
9+
If creating filters to show a paywall under certain conditions doesn't apply to you, then you can simply leave the default audience on — it'll match everyone who hits a [placement](/dashboard/dashboard-campaigns/campaigns-placements).
1010

1111
In the audience view, you can set up filtering rules, check results of experiments and recent transactions resulting from them. All of your current audiences will show in the left-hand side of the campaign details screen:
1212

@@ -69,7 +69,7 @@ You can combine rules together, too. In the following example, if we only wanted
6969
<Frame>![](/images/campaigns-audience-combo-condition.png)</Frame>
7070

7171
#### Using user properties or placement parameters
72-
You can reference [user attributes](/sdk/quickstart/setting-user-properties) and [placement parameters](/docs/using-placement-parameters) in campaign filters. For example, if you were to set `hasLoggedCoffee` on your user, you could use that in a filter.
72+
You can reference [user attributes](/sdk/quickstart/setting-user-properties) and [placement parameters](/using-placement-parameters) in campaign filters. For example, if you were to set `hasLoggedCoffee` on your user, you could use that in a filter.
7373

7474
**Adding user properties**
7575
1. **Click** on Add Filter, and then click the **+** icon:
@@ -205,7 +205,7 @@ To change the order that Superwall evaluates audiences, simply drag and drop the
205205

206206
<Frame>![](/images/campaigns-reorder-audience.png)</Frame>
207207

208-
Remember, Superwall will check the audience at the top of the list here, and then go down one-by-one until it hits a match. These checks occur when a user hits a code path where you've registered a [placement](/campaigns-placements) or if an automatically tracked placement is triggered (i.e. something like `survey_response`).
208+
Remember, Superwall will check the audience at the top of the list here, and then go down one-by-one until it hits a match. These checks occur when a user hits a code path where you've registered a [placement](/dashboard/dashboard-campaigns/campaigns-placements) or if an automatically tracked placement is triggered (i.e. something like `survey_response`).
209209

210210
### Changing audience status
211211

@@ -289,4 +289,4 @@ Here's what that would look like when setting up the filter:
289289
**Campaign B: Placement late in onboarding**<br />
290290
And here, you'd filter by user seeds 50-99.
291291

292-
Even though these are filters that were set up across two entirely different campaigns, you can still define certain user audiences without creating custom placements for each of them. Using user seeds, you can easily compare the campaign results, too.
292+
Even though these are filters that were set up across two entirely different campaigns, you can still define certain user audiences without creating custom placements for each of them. Using user seeds, you can easily compare the campaign results, too.

content/docs/dashboard/dashboard-campaigns/campaigns-paywalled-users.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ You'll find two main sections:
1212
2. **Transactions:** Next, this displays any resulting transaction which occurred within the audience.
1313

1414
<Tip>
15-
Note that both Recent Matches and Transactions show the [placement](/campaigns-placements) which
15+
Note that both Recent Matches and Transactions show the [placement](/dashboard/dashboard-campaigns/campaigns-placements) which
1616
triggered the match or transaction. This is incredibly useful in helping you gauge which actions
1717
are resulting in conversions.
1818
</Tip>
@@ -27,7 +27,7 @@ You can click on any user to see more details about them, including the history
2727

2828
<Frame>![](/images/campaigns-exp-user-details.png)</Frame>
2929

30-
For more on viewing users, check out this [doc](/overview-users).
30+
For more on viewing users, check out this [doc](/dashboard/overview-users).
3131

3232
### Transactions
3333

0 commit comments

Comments
 (0)