> For the complete documentation index, see [llms.txt](https://documentation.pushly.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.pushly.com/pushly-ja/integration/webpusshu/sdk/methods.md).

# SDKメソッド

## オプトインプロンプトを手動でトリガーする

プラットフォーム経由でオプトインプロンプトの自動トリガーを無効にすることもできます。この場合、独自の基準に基づいてプロンプトを表示するようにします（例: 訪問者が特定のリンクをクリックした後、特定のページを訪れた後など）。

プロンプトのトリガーは、 `show_prompt` イベントを、訪問者が目的のアクションを実行したときに呼び出すだけで簡単に行えます。

```javascript
pushly('show_prompt', { checkEligibility: true })
```

現在の購読状況や頻度制限にかかわらずプロンプトを表示したい場合（つまり、ベルやカスタムプロンプトを手動で表示する場合）は、以下のコードに簡略化できます。

```javascript
pushly('show_prompt')
```

## 購読者のプロフィールに属性を追加する

購読者のプロフィールに属性を追加し、後からその属性に基づいてセグメンテーションを行えます。たとえば、特定の種類のニュース（例: 政治、スポーツ）に関心のある訪問者にタグを付けて、特定の通知を配信したい場合があります。

```javascript
pushly('profile', {
  'is_paying_subscriber': true,
  'interests': ['poltics', 'news']
});
```

{% hint style="info" %}
プロパティ値はスカラー値またはスカラー値の配列にできます。
{% endhint %}

プロパティの値を配列として保存している場合は、 `profile_append` および `profile_remove` メソッドを使って値を追加または削除できます。

```javascript
// 購読者の関心に 'sports' を追加
pushly('profile_append', {
  'interests': ['sports']
});

// 購読者の関心から 'fashion' と 'news' を削除
pushly('profile_remove', {
  'interests': ['fashion', 'news']
});
```

{% hint style="warning" %}
〜を使用するプロパティ `profile_append` 提供された最新の20件の値のみを保存します。
{% endhint %}

## 購読者のプロフィールにページのキーワード／タグを追加する

訪問する各ページごとに、購読者のプロフィールにページのキーワード／タグを追加できます。これらのタグは、その後のセグメンテーションで、訪問回数と最近性に基づいてタグを訪れた購読者のコホートを作成するために使用できます。例: 「過去30日間に少なくとも4回、『Astrology』タグの付いたページを訪問した購読者」。

```javascript
pushly('page_tag_visit', ['Tag1', 'Tag2', 'Tag3']);
```

## 購読者のユーザーIDを取得する

{% hint style="warning" %}
このメソッドは、SDK が完全に読み込まれた後にのみ利用できます。この SDK メソッドは、 `on_ready` イベント内にラップする必要があります。
{% endhint %}

次のコードを実行して、ユーザーの Pushly ID を取得します。これは一時的な ID で頻繁に変わる可能性があるため、長期的な訪問者識別には使用しないでください。

```javascript
pushly('on_ready', function() {
    PushlySDK.getUser().getId();
});
```

## 購読者の外部IDを設定する

購読者に一意のユーザーIDを提供することで、後から API 経由でその購読者とやり取りできるようになります。

外部IDを指定する方法は2つあります:

#### SDK 初期化時

推奨される方法は、SDK の初期化時に外部IDを指定することです。これには、 `load` 関数にコードを1行追加する必要があります。以下のスクリプトにある新しい `externalId` の行に注目してください:

```javascript
<script src="https://cdn.p-n.io/pushly-sdk.min.js?domain_key=DOMAIN_KEY" async></script>
<script>
  var PushlySDK = window.PushlySDK || [];
  function pushly() { PushlySDK.push(arguments) }
  pushly('load', {
    domainKey: 'DOMAIN_KEY',
    externalId: 'REPLACE_WITH_USER_ID'
  });
</script>
```

#### 別のメソッド呼び出しで

または、SDK の読み込み後ならいつでも、以下のコードで外部IDを指定できます:

```javascript
pushly('external_id', 'h7bwKwuE3');
```

購読者の外部IDが設定されたら、私たちのチームと連携して双方向の自動データ同期を設定できます。以下のユースケースは、パブリッシャーがサーバー間リクエストを通じて外部IDを利用する一般的な方法です:

* 個々の購読者に対してプログラムで通知を送信する
* 購読解除リクエストを処理する
* 購読者に対するプロフィール属性やイベントの追加・削除

## 購読者の外部IDを削除する

購読者から外部IDの関連付けを解除したい場合は、次の JavaScript を実行します:

```javascript
pushly('deregister_external_id');
```

## 訪問者がすでに購読済みかどうかを判定する

{% hint style="warning" %}
このメソッドは、SDK が完全に読み込まれた後にのみ利用できます。この SDK メソッドは、 `on_ready` イベント内にラップする必要があります。
{% endhint %}

訪問者がすでにプッシュ通知を購読しているか確認したい場合は、次の JavaScript を使用できます:

```javascript
pushly('on_ready', function() {
    await PushlySDK.isUserSubscribed();
});
```

この呼び出しの結果はブール値になります `true` または `false` で、訪問者の購読状態を表します。

{% hint style="info" %}
次の `on_ready` イベントの使用により、SDK が操作可能な状態であることを確認してください。
{% endhint %}

## 訪問者がプロンプト表示の対象かどうかを判定する

{% hint style="warning" %}
このメソッドは、SDK が完全に読み込まれた後にのみ利用できます。この SDK メソッドは、 `on_ready` イベント内にラップする必要があります。
{% endhint %}

訪問者がプッシュ権限のプロンプト表示条件をすべて満たしているか確認する必要がある場合は、次の JavaScript を実行します:

```javascript
pushly('on_ready', function() {
    await PushlySDK.isUserEligibleToPrompt();
});
```

この呼び出しの結果はブール値になります `true` または `false` 訪問者に権限ダイアログを表示できるかどうかを表します。

{% hint style="info" %}
次の `on_ready` イベントの使用により、SDK が操作可能な状態であることを確認してください。
{% endhint %}

## プロンプトを抑制・許可する

自動プロンプトを使用しているが、実行時に一時的にプロンプトをブロックする必要がある場合、たとえばチェックアウト、ペイウォール、その他のモーダルフローが有効な間は、必要に応じてプロンプトを抑制し、その後再度有効にできます。自動プロンプトの設定自体は通常どおり維持され、抑制は実行時に一時停止するだけです。

フローが始まったらプロンプトを抑制します（例: チェックアウトのモーダルが開くとき）:

```javascript
pushly('suppress_prompts')
```

フローが終了したら再びプロンプトを許可します（例: モーダルが閉じるか完了したとき）:

```javascript
pushly('allow_prompts')
```

現在プロンプトが抑制されているか確認するには:

```javascript
pushly('get_prompting_suppressed_state', (isSuppressed) => { ... })
```

抑制中は、 автомат? no. 翻訳: 抑制中はプロンプトは表示されません。自動プロンプトも手動の `show_prompt` 呼び出しも表示されません。画面上にすでに表示されているプロンプトは非表示になりません。抑制は新しいプロンプトの表示を防ぐだけです。

{% hint style="info" %}
抑制状態はメモリ上に保持されます。シングルページアプリ（SPA）のナビゲーションをまたいで維持され、完全なページ再読み込みで自動的にクリアされるため、 `allow_prompts` の呼び出しを失敗しても、訪問者が永久にプロンプトを表示できない状態になることはありません。
{% endhint %}

を呼び出すと `allow_prompts`、プロンプトに設定された表示遅延がすでに経過していれば、対象のプロンプトはしばらくして表示されます。そうでない場合は、遅延が満たされた時点で表示されます。抑制中に経過した時間も遅延時間に含まれます。

{% hint style="warning" %}
`suppress_prompts` / `allow_prompts` は `pause_notifications` / `resume_notifications`とは同じではありません。プロンプトの抑制は、オプトイン **プロンプト** が表示されるかどうかを制御します。一方、通知の一時停止は、すでに購読済みの訪問者に対するプッシュ **配信** を制御するソフトな購読解除です。
{% endhint %}

## ユーザーの通知を一時停止／再開する（ソフトな購読解除）

次のメソッドを呼び出すことで、ユーザーの通知を一時停止できます:

```javascript
pushly('pause_notifications')
```

ユーザーの通知を再開する場合は、次のメソッドを呼び出します:

```javascript
pushly('resume_notifications')
```

ユーザーの通知が現在一時停止されているか確認するには:

```javascript
pushly('get_notifications_paused_state', (isPaused) => { ... })
```

## ユーザーを完全に削除する

ユーザーをすべての通知とトラッキングから除外したい場合は、次のメソッドを実行します:

```javascript
pushly('request_user_deletion');
```

{% hint style="warning" %}
このメソッドはソフトな購読解除としてのみ機能します。購読者が Cookie を削除すると、再び通知をオプトインする可能性があります。
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://documentation.pushly.com/pushly-ja/integration/webpusshu/sdk/methods.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
