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

Leftover Deploy - February 23, 2023 #4896

Merged
merged 62 commits into from
Feb 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
50a394c
BD-1911
lydia-xie Feb 15, 2023
db33807
Hightouch Personliaztion API uodates
KellieHawks Feb 17, 2023
4b607f7
Add use case text
lydia-xie Feb 17, 2023
d7e6dce
Update standard_integration.md
davidbielik Feb 21, 2023
a0ce538
Update standard_integration.md
josh-mccrowell-braze Feb 21, 2023
56edda0
Update standard_integration.md
josh-mccrowell-braze Feb 21, 2023
f84338c
Fix alias links
KellieHawks Feb 21, 2023
57d9df6
Merge pull request #4881 from braze-inc/deploy_fix
lydia-xie Feb 21, 2023
ddb3566
Add images
lydia-xie Feb 21, 2023
2cd8d1c
Merge pull request #4847 from braze-inc/BD-1911
bre-fitzgerald Feb 21, 2023
29b7912
Update feature_flags.md
davidbielik Feb 21, 2023
be6cf90
Update feature_flags.md
davidbielik Feb 21, 2023
ba06697
Merge pull request #4875 from braze-inc/davidbielik-patch-1
josh-mccrowell-braze Feb 22, 2023
f52c098
wip
davidbielik Feb 22, 2023
0648fed
Merge pull request #4883 from braze-inc/davidbielik-patch-2
josh-mccrowell-braze Feb 22, 2023
71789c7
Finessed manual code removal
josh-mccrowell-braze Feb 22, 2023
0e37ba0
Phrase partnership docs
KellieHawks Feb 22, 2023
174ff64
Follow up for email edits
lydia-xie Feb 22, 2023
c0d28e9
Merge pull request #4888 from braze-inc/lx/email_followup
bre-fitzgerald Feb 22, 2023
39e09cb
Merge pull request #4887 from braze-inc/kh/phrase
lydia-xie Feb 22, 2023
7238548
Add user lookup page
bre-fitzgerald Feb 22, 2023
d60b97d
Add to segments page
bre-fitzgerald Feb 22, 2023
5cf503a
Add to campaigns and Canvas
bre-fitzgerald Feb 22, 2023
7ff76a6
Update _docs/_user_guide/message_building_by_channel/push/push_primer…
josh-mccrowell-braze Feb 22, 2023
4891600
Apply suggestions from code review
josh-mccrowell-braze Feb 22, 2023
8ef87a5
Update push_primer_messages.md
josh-mccrowell-braze Feb 22, 2023
b945a80
Add to landing page
bre-fitzgerald Feb 22, 2023
6dd1e81
Merge pull request #4886 from braze-inc/BD-1834
josh-mccrowell-braze Feb 22, 2023
95591dc
Merge pull request #4889 from braze-inc/BD-1926
lydia-xie Feb 22, 2023
169f5ef
Update integration.md
tonypitkinbraze Feb 22, 2023
5c5c165
Update hightouch.md
KellieHawks Feb 22, 2023
137ab9b
Update hightouch.md
KellieHawks Feb 22, 2023
326d507
Update hightouch_personalization_api.md
KellieHawks Feb 22, 2023
8294528
Apply suggestions from code review
KellieHawks Feb 22, 2023
b089891
Merge pull request #4870 from braze-inc/kh/hightouch2
bre-fitzgerald Feb 22, 2023
90bf549
wip
davidbielik Feb 22, 2023
68e8f95
Specify that daily recurring intelligent timing campaigns don't track…
mattdisipio Feb 22, 2023
f21052e
Updated a few other appboy references
josh-mccrowell-braze Feb 22, 2023
a33f0fd
Merge pull request #4890 from braze-inc/tonypitkinbraze-patch-1
josh-mccrowell-braze Feb 22, 2023
2cd2bfb
wip
davidbielik Feb 22, 2023
f4f2ce5
Apply suggestions from code review
KellieHawks Feb 22, 2023
80ff1a4
Merge pull request #4892 from braze-inc/task/intelligent-timing-recur…
KellieHawks Feb 22, 2023
174372c
Fix typo
bre-fitzgerald Feb 23, 2023
804237d
Merge pull request #4894 from braze-inc/bre-fitzgerald-patch-2
lydia-xie Feb 23, 2023
0ba7112
wip
davidbielik Feb 23, 2023
4e3c6af
wip
davidbielik Feb 23, 2023
18524e6
wip
davidbielik Feb 23, 2023
9a286a7
BD-1932
bre-fitzgerald Feb 23, 2023
3459a8e
Merge pull request #4895 from braze-inc/BD-1932
lydia-xie Feb 23, 2023
ed252e5
Edits
josh-mccrowell-braze Feb 23, 2023
7e7ccef
Update _docs/_developer_guide/platform_integration_guides/web/push_no…
davidbielik Feb 23, 2023
c667a90
Update _docs/_developer_guide/platform_integration_guides/web/push_no…
davidbielik Feb 23, 2023
97e1a02
wip
davidbielik Feb 23, 2023
3a75c27
Style edits, broke into more steps
josh-mccrowell-braze Feb 23, 2023
70e3f92
Merge branch 'safari-web-push' of https://github.com/braze-inc/braze-…
josh-mccrowell-braze Feb 23, 2023
792f671
Whoops CSS
josh-mccrowell-braze Feb 23, 2023
0b4345a
Images
josh-mccrowell-braze Feb 23, 2023
4bb3bc2
wip
davidbielik Feb 23, 2023
e536502
wip
davidbielik Feb 23, 2023
f43546a
Merge pull request #4885 from braze-inc/safari-web-push
josh-mccrowell-braze Feb 23, 2023
ee615d4
branch docs
bkasman95 Feb 23, 2023
87ff00a
Merge pull request #4897 from braze-inc/branch-update
KellieHawks Feb 23, 2023
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
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ By default, Content Card views will automatically respond to Dark Theme changes

To override this behavior, override the `values-night` values in `android-sdk-ui/src/main/res/values-night/colors.xml` and `android-sdk-ui/src/main/res/values-night/dimens.xml`.

[36]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.appboy.models.cards/-card/get-extras.html
[36]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.braze.models.cards/-card/extras.html
[40]: {{site.baseurl}}/developer_guide/platform_integration_guides/android/advanced_use_cases/font_customization/#font-customization
[42]: https://github.com/Appboy/appboy-android-sdk/blob/master/android-sdk-ui/src/main/res/values/styles.xml
[44]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.braze.ui.contentcards.handlers/-i-content-cards-update-handler/index.html
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ To fully customize the network error behavior, you can extend the [`ContentCards
[53]: https://github.com/Appboy/appboy-android-sdk/blob/master/android-sdk-ui/src/main/java/com/braze/ui/contentcards/adapters/ContentCardAdapter.kt
[54]: https://github.com/Appboy/appboy-android-sdk/blob/master/android-sdk-ui/src/main/java/com/braze/ui/contentcards/ContentCardsFragment.kt
[50]: https://github.com/Appboy/appboy-android-sdk/blob/master/android-sdk-ui/src/main/java/com/braze/ui/contentcards/adapters/EmptyContentCardsAdapter.kt
[36]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.appboy.models.cards/-card/extras.html
[36]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.braze.models.cards/-card/extras.html
[44]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.braze.ui.contentcards.handlers/-i-content-cards-update-handler/index.html
[45]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.braze.ui.contentcards/-content-cards-fragment/set-content-card-update-handler.html
[46]: https://github.com/Appboy/appboy-android-sdk/blob/v11.0.0/android-sdk-ui/src/main/java/com/appboy/ui/contentcards/handlers/DefaultContentCardsUpdateHandler.java
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ Content Cards have a maximum size limit of 2 KB for content you enter in the Bra
{% endalert %}

[1]: {{site.baseurl}}/user_guide/message_building_by_channel/content_cards/customize/#customization-approaches
[36]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.appboy.models.cards/-card/#-2118252107%2FProperties%2F-1725759721
[36]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.braze.models.cards/-card/#-2118252107%2FProperties%2F-1725759721
Original file line number Diff line number Diff line change
Expand Up @@ -189,15 +189,15 @@ You can manually log or set a Content Card as "dismissed" to Braze for a particu

If a card is already marked as dismissed, it cannot be marked as dismissed again.

[7]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.appboy.models.cards/-card/log-click.html
[8]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.appboy.models.cards/-card/log-impression.html
[55]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.appboy.models.cards/-card/is-control.html
[57]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.appboy.models.cards/-card/index.html#-1644350493%2FProperties%2F-1725759721
[29]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.appboy.models.cards/-card/index.html
[30]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.appboy.models.cards/-banner-image-card/index.html
[31]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.appboy.models.cards/-captioned-image-card/index.html
[32]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.appboy.models.cards/-text-announcement-card/index.html
[41]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.appboy.models.cards/-short-news-card/index.html
[7]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.braze.models.cards/-card/log-click.html
[8]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.braze.models.cards/-card/log-impression.html
[55]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.braze.models.cards/-card/is-control.html
[57]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.braze.models.cards/-card/index.html#-1644350493%2FProperties%2F-1725759721
[29]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.braze.models.cards/-card/index.html
[30]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.braze.models.cards/-banner-image-card/index.html
[31]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.braze.models.cards/-captioned-image-card/index.html
[32]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.braze.models.cards/-text-announcement-card/index.html
[41]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.braze.models.cards/-short-news-card/index.html
[2]: https://developer.android.com/guide/components/fragments.html
[3]: https://developer.android.com/guide/fragments#Adding "Android Documentation: Fragments"
[4]: https://appboy.github.io/appboy-android-sdk/kdoc/braze-android-sdk/com.braze.ui.contentcards/-content-cards-fragment/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Check out our [help documentation][8] for push best practices.

## Registering for push

Use [Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging/) (FCM) to register for push. For a full sample of using Firebase with the Braze Android SDK, see our [Firebase push sample app](https://github.com/Appboy/appboy-android-sdk/tree/master/samples/firebase-push).
Use [Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging/) to register for push. For a full sample of using Firebase with the Braze Android SDK, see our [Firebase push sample app](https://github.com/Appboy/appboy-android-sdk/tree/master/samples/firebase-push).

### Step 1: Enable Firebase

Expand Down Expand Up @@ -139,7 +139,11 @@ If you are migrating from using GCM to using Firebase with Braze, visit the [GCM

### Step 4: Set Your Firebase credentials

First, you must locate your Firebase server key and sender ID in the [Firebase developers console][58]. Select your Firebase project and go to **Settings > Cloud Messaging** and copy the Server Key and Sender ID:
{% alert warning %}
The **Legacy** Cloud Messaging API server key is required to configure Android Push in Braze. Using the Firebase Cloud Messaging API (V1) credentials will not allow you to send push notifications.
{% endalert %}

First, you must locate your Cloud Messaging API server key and sender ID in the [Firebase developers console][58]. Select your Firebase project, go to **Settings > Cloud Messaging**, and copy the **Cloud Messaging API (Legacy) Server Key** and **Sender ID**:

![The Firebase platform under "Settings" and then "Cloud Messaging" will display your server ID and server key.][80]

Expand All @@ -148,11 +152,11 @@ If Cloud Messaging API is disabled, click on the three dots to enable the API in
{% endalert %}
![The Cloud Messaging API can be enabled by clicking on the three dots on the right.][79]

You need to input your Firebase Server Key and Sender ID into the Braze dashboard:
Input your Cloud Messaging API (Legacy) server key and sender ID into the Braze dashboard:

1. On the **Settings** page (where your API keys are located), select your Android app.
2. Enter your Firebase Server Key in the **Firebase Cloud Messaging Server Key** field, under the push notification settings section.
3. Enter your Firebase Sender ID in the **Firebase Cloud Messaging Sender ID** field, under the push notification settings section.
2. Enter your Cloud Messaging API (Legacy) server key in the **Firebase Cloud Messaging Server Key** field, under the push notification settings section.
3. Enter your Cloud Messaging API (Legacy) sender ID in the **Firebase Cloud Messaging Sender ID** field, under the push notification settings section.

![][16]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,10 @@ If you wish to unsubscribe a user, you can do so by calling `braze.unregisterPus
Recent versions of Safari and Firefox require that you call this method from a short-lived event handler (e.g., from a button click handler or soft push prompt). This is consistent with [Chrome's user experience best practices](https://docs.google.com/document/d/1WNPIS_2F0eyDm5SS2E6LZ_75tk6XtBSnR1xNjWJ_DPE) for push registration.
{% endalert %}

### Step 3: Configure Safari push {#safari}
### Step 3: Configure Safari push (optional) {#safari}

{% alert info %}
Safari 16 on macOS 13 or later uses modern push standards, and this step is no longer required. If you want to support older macOS Safari versions, this step is required.
{% alert important %}
This step is no longer required as of Safari 16 on macOS 13. Only complete this step if you want to support older macOS Safari versions.
{% endalert %}

If you wish to support push notifications for Safari on Mac OS X, follow these additional instructions:
Expand All @@ -75,6 +75,12 @@ If you wish to support push notifications for Safari on Mac OS X, follow these a
- In the Braze dashboard, on the **Settings** page (where your API keys are located), select your Web app. Click **Configure Safari Push** and follow the instructions, uploading the push certificate you just generated.
- When you call `braze.initialize`, supply the optional `safariWebsitePushId` configuration option with the website push ID you used when generating your Safari push certificate. For example `braze.initialize('YOUR-API-KEY', {safariWebsitePushId: 'web.com.example.domain'})`

## Safari Mobile push {#safari-mobile}

Safari 16.4+ on iOS and iPadOS supports web push for apps that have been [added to the homescreen][add-to-homescreen] and have a [Web Application Manifest][manifest-file] file. Once you have completed the steps to integrate web push notifications, you can provide support for mobile push for Safari as well.

To support mobile Safari web push, follow our [guide here][safari-mobile-push-guide].

## Soft push prompt

A soft push prompt (also known as a "push primer") helps optimize your opt-in rate when it comes to asking for permission.
Expand Down Expand Up @@ -127,3 +133,6 @@ Braze's service worker file will automatically call `skipWaiting` upon install.
[27]: {{site.baseurl}}/assets/img_archive/web_push2.png
[28]: {{ site.baseurl }}/developer_guide/platform_integration_guides/web/push_notifications/alternate_push_domain
[push-primer]: {{ site.baseurl }}/developer_guide/platform_integration_guides/web/push_notifications/soft_push_prompt/
[add-to-homescreen]: https://support.apple.com/guide/iphone/bookmark-favorite-webpages-iph42ab2f3a7/ios#iph4f9a47bbc
[manifest-file]: https://developer.mozilla.org/en-US/docs/Web/Manifest
[safari-mobile-push-guide]: {{site.baseurl}}/developer_guide/platform_integration_guides/web/push_notifications/safari_mobile_push/
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
---
nav_title: Safari Mobile Web Push
article_title: Safari Mobile Web Push
platform: Web
channel: push
page_order: 5
page_type: reference
description: "Learn how to integrate web push on your iOS and iPad Safari browsers."
search_rank: 3
---

# Safari Mobile Web Push (iOS and iPadOS)

[Safari v16.4][safari-release-notes] supports mobile web push, which means you can now re-engage mobile users with push notifications on iOS and iPadOS.

This article will guide you through the steps required to set up mobile push for safari.

## Integration steps

First, please read and follow our standard [web push integration guide][web-push-integration]. The following steps are only required to support web push on Safari for iOS and iPadOS support.

### Step 1: Create a Mmanifest file {#manifest}

A [Web Application Manifest][manifest-file] is a JSON file that controls how your website is presented when installed to a user's home screen.

For example, you can set the background theme color and icon that the [App Switcher][app-switcher] uses, whether it renders as full screen to resemble a native app, or whether the app should open in landscape or portrait mode.

Create a new `manifest.json` file in your website's root directory, with the following mandatory fields.

```json
{
"name": "your app name",
"short_name": "your app name",
"display": "fullscreen",
"icons": [{
"src": "favicon.ico",
"sizes": "128x128",
}]
}
```

The full list of supported fields can be found [here][manifest-file].

### Step 2: Link the manifest file {#manifest-link}

Add the following `<link>` tag to your website's `<head>` element pointing to where your manifest file is hosted.

```html
<link rel="manifest" href="/manifest.json" />
```

### Step 3: Add a service worker {#service-worker}

Your website must have a service worker file that imports the Braze service-worker library, as described in our [web push integration guide][service-worker].

### Step 4: Add to homescreen {#add-to-homescreen}

Unlike major browsers like Chrome and Firefox, you are not allowed to request push permission on Safari iOS/iPadOS unless your website has been added to the user's homescreen.

The [Add to Homescreen][add-to-homescreen] feature lets users bookmark your website, adding your icon to their valuable homescreen real estate.

![An iphone showing options to bookmark a website and save to the homescreen][add-to-homescreen-img]{: style="max-width:40%"}

### Step 5: Show the native push prompt {#push-prompt}
Once the app has been added to your homescreen you can now request push permission when the user takes an action (such as clicking a button). This can be done using the [`requestPushPermission`][requestPushPermission] method, or with a [no-code push primer in-app message][push-primer].

{% alert note %}
Once you accept or decline the prompt, you'll need to delete and reinstall the website to your homescreen to be able to show the prompt again.
{% endalert %}

![A push prompt asking to "allow" or "don't allow" Notifications][safari-push-prompt-img]{: style="max-width:40%"}

For example:

```typescript
import { requestPushPermission } from "@braze/web-sdk";

button.onclick = function(){
requestPushPermission(() => {
console.log(`User accepted push prompt`);
}, (temporary) => {
console.log(`User ${temporary ? "temporarily dismissed" : "permanently denied"} push prompt`);
});
};
```


## Next steps

Next, send yourself a [test message][test-message] to validate the integration. Once your integration is complete you can use our [no-code push primer messages][push-primer] to optimize your push opt-in rates.

[webkit-release-notes]: https://webkit.org/blog/13878/web-push-for-web-apps-on-ios-and-ipados/
[safari-release-notes]: https://developer.apple.com/documentation/safari-release-notes/safari-16_4-release-notes
[manifest-file]: https://developer.mozilla.org/en-US/docs/Web/Manifest
[app-switcher]: https://support.apple.com/en-us/HT202070
[add-to-homescreen]: https://support.apple.com/guide/iphone/bookmark-favorite-webpages-iph42ab2f3a7/ios#iph4f9a47bbc
[web-push-integration]: {{site.baseurl}}/developer_guide/platform_integration_guides/web/push_notifications/integration/
[service-worker]: {{site.baseurl}}/developer_guide/platform_integration_guides/web/push_notifications/integration/#step-1-configure-your-sites-service-worker
[test-message]: {{site.baseurl}}/user_guide/engagement_tools/campaigns/testing_and_more/sending_test_messages/
[push-primer]: {{site.baseurl}}/user_guide/message_building_by_channel/push/push_primer_messages/
[requestPushPermission]: https://js.appboycdn.com/web-sdk/latest/doc/modules/braze.html#requestpushpermission
[add-to-homescreen-img]: /assets/img/push_implementation_guide/add-to-homescreen.png
[safari-push-prompt-img]: /assets/img/push_implementation_guide/safari-mobile-push-prompt.png
5 changes: 5 additions & 0 deletions _docs/_developer_guide/platform_wide/feature_flags.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,9 @@ guide_featured_list:
link: /docs/developer_guide/platform_wide/feature_flags/use_cases/
fa_icon: fas fa-paint-brush
---

To use feature flags, ensure your SDKs are up to date with at least these minimum versions:

{% sdk_min_versions android:24.2.0 web:4.6.0 swift:5.9.0 %}

<br><br>
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
nav_title: Airbyte
article_title: Airbyte
description: "This article covers the Braze and Airbyte integration. Airbyte is an open-source data integration engine that helps you consolidate your data in your data warehouses, lakes, and databases, forwarding real-time events from Airbyte to Braze."
alias: /partners/actioniq/
alias: /partners/airbyte/
page_type: partner
search_tag: Airbyte

Expand Down
Loading