SDK

PushPushGo SDK is a software development kit that allows you to integrate web push without our integration script, but with customization possibilities.

Setup

  1. Place PushPushGo service worker with your project Id in sw.js file on the website server.

sw.js
importScripts('https://cdn.pushpushgo.com/$projectId/worker.js');
  1. Copy SDK script and place it in the website source code. Integration script has to be placed in the section of website's DOM structure.

index.html
<head>
    <script src="https://cdn.pushpushgo.com/scripts/sdk.js"></script>
</head>
  1. Initialize SDK client.

const config = {
  projectId: $projectId,
  vapidPublicKey: $vapidPublicKey,
  isHTTPS: $isHTTPS,
  endpoint: 'https://api.pushpushgo.com',
  swPath?: $serviceWorkerPath,
  websitePushId?: $websitePushId,
};

const client = new ppg.sdk.Client(config);
parameter
type
description

projectId

string

required

vapidPublicKey

string

required

isHTTPS

boolean

required, whetver your website address has http or https protocol

endpoint

string

required, value: https://api.pushpushgo.com

websitePushId

string

optional, for Safari < 16 integration

swPath

string

optional, path to sw.js file when other than root

Push notifications

isPushSupport(): Promise<void>

Check if the browser supports web push notifications.

checkPermission(): Promise<boolean>

Check for native permission.

Subscription

register(options?: ISubscribeOptions): Promise<string>

Register new subscriber - show popup dialog or native permission window

returns subscriberId

parameter
type
description

fields

{ customId?: string}

optional

tags

string[]

optional

isSubscribed(): Promise<boolean>

Check if subscriber is registered

getId(): Promise<string>

returns subscriberId

unsubscribe(): Promise<void>

Unsubscribe existing subscriber at database

Custom Id

setCustomId(customId: string | number): Promise<void>

Sets customId in cloned store

getCustomId(): Promise<string>

returns subscriber's customId

Labels

appendTags(tags: string[]): Promise<string[]>

Append tags to store. For tag with labels support use labelName:tagName syntax.

parameter
type
description

tags

string[]

getTags(): Promise<string[]>

returns current subscriber's tags

removeTags(tags: string[]): Promise<string[]>

Remove tag(s) by label from store For labels support please use 'labelName:tagName' syntax

getTagsToRemove(): Promise<string[]>

returns subscriber's tags to remove

Session data

setSelector(selectorName: string, value: string | number | null | boolean): Promise<void>

Set selector value - field must be declared in application first

clearState(): void

Clear state, reset values

Beacons

send(immediately?: boolean): Promise<boolean>

Set beacon to send on event before unload

Last updated

Was this helpful?