---
title: "Branch"
description: "Branch と Adapty を統合して、ディープリンクとアプリのコンバージョンを追跡します。"
---

[Branch](https://www.branch.io/) を使うと、さまざまなデバイス・チャネル・プラットフォームをまたいでユーザーへのリーチ、エンゲージメント、効果測定ができます。あらゆるデバイス・チャネル・プラットフォームで機能する専用リンクを通じて、モバイル収益を高めるために設計された使いやすいプラットフォームです。

Adapty は、ストアからの[サブスクリプションイベント](events)を一か所で追跡できる完全なデータセットを提供します。Adapty を使えば、サブスクライバーの行動を簡単に把握し、好みを理解した上で、ターゲットを絞った効果的なコミュニケーションに役立てることができます。

Adapty と Branch の連携は、主に 2 つの方法で動作します。

1. **Branch からアトリビューションデータを受信する**  
    Branch 連携を設定すると、Adapty は Branch からアトリビューションデータを受信し始めます。このデータはユーザーのプロファイルページで簡単に確認できます。

    
      <img src="/assets/shared/img/49f4aa7-CleanShot_2023-08-11_at_17.36.072x.webp"
      style={{
        border: '1px solid #727272', /* border width and color */
        width: '700px', /* image width */
        display: 'block', /* for alignment */
        margin: '0 auto' /* center alignment */
      }}
    />
    

2. **サブスクリプションイベントを Branch に送信する**  
   Adapty は、連携で設定されたすべてのサブスクリプションイベントを Branch に送信できます。これにより、Branch ダッシュボード内でこれらのイベントを追跡し、獲得キャンペーンと紐付けることができます。

## 連携のセットアップ \{#set-up-integration\}

### Adapty を Branch に接続する \{#connect-adapty-to-branch\}

Branch を連携するには、Adapty ダッシュボードの [Integrations > Branch](https://app.adapty.io/integrations/branch) に移動し、トグルをオンにして各フィールドに入力してください。

  <img src="/assets/shared/img/817a051-CleanShot_2023-08-11_at_15.54.372x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

**Branch Key** の値を取得するには、Branch の [Account Settings](https://dashboard.branch.io/account-settings/profile) を開き、**Branch Key** フィールドを確認してください。Adapty ダッシュボードの **Key test**（サンドボックス用）または **Key live**（本番用）フィールドに使用します。Branch 側では、Live と Test の環境を切り替えて適切なキーを取得してください。

  <img src="/assets/shared/img/130e58b-CleanShot_2023-08-11_at_15.24.162x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

### イベントとタグを設定する \{#configure-events-and-tags\}

認証情報の下には、Adapty から Branch に送信できるイベントが 3 つのグループに分かれています。必要なものをオンにするだけです。Adapty が提供するイベントの全一覧は[こちら](events)で確認できます。

収益（Apple/Google の手数料差し引き後）または売上金額のみでイベントを送信できます。また、ユーザーの通貨でレポートするチェックボックスもあります。

  <img src="/assets/shared/img/a645cf8-CleanShot_2023-08-11_at_15.18.282x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

Adapty が提供するデフォルトのイベント名を使用することを推奨します。ただし、必要に応じてイベント名を変更することも可能です。

Adapty はサーバー間連携を使って Branch にサブスクリプションイベントを送信するため、Branch ダッシュボードですべてのサブスクリプションイベントを確認し、獲得キャンペーンと紐付けることができます。

### アプリを Branch に接続する \{#connect-your-app-to-branch\}

1. `.setIntegrationIdentifier()` SDK メソッドを呼び出して接続を初期化します。Branch の Identity ID を `customerUserId` パラメータに渡すことができます。

  ---
no_index: true
---

import Callout from '../../../components/Callout.astro';

<Callout type="note">
サードパーティSDKはユーザーIDを非同期で生成します。`Adapty.activate()` の実行時にIDがまだ準備できていない場合があります。**Customer User ID** がこれらのSDKのいずれかから取得される場合は、IDなしで `Adapty.activate()` を呼び出してください。IDが取得できたら、`setIntegrationIdentifier()` を呼び出し、次にCUIDで `identify()` を呼び出してください。
</Callout>

  <Tabs groupId="current-os" queryString>
  <TabItem value="swift" label="iOS (Swift)" default>

  ```swift showLineNumbers
  do {
      // Adapty SDK 4.x
      try await Adapty.setIntegrationIdentifier(.branchId(<BRANCH_IDENTITY_ID>))
      // Adapty SDK 3.x
      try await Adapty.setIntegrationIdentifier(
          key: "branch_id", 
          value: <BRANCH_IDENTITY_ID>
      )
  } catch {
      // handle the error
  }
  ```
  </TabItem>
  <TabItem value="kotlin" label="Android (Kotlin)" default>

  ```kotlin showLineNumbers
  // login and update attribution and identifier
  Branch.getAutoInstance(this)
      .setIdentity("YOUR_USER_ID") { referringParams, error ->
          referringParams?.let { data ->
              Adapty.updateAttribution(data, "branch") { error ->
                  if (error != null) {
                      //handle the error
                  }
              }
          }
      }

  // logout
  Branch.getAutoInstance(context).logout()
  ```
  </TabItem>
  <TabItem value="flutter" label="Flutter" default>
  ```javascript showLineNumbers
  import 'package:flutter_branch_sdk/flutter_branch_sdk.dart';

  FlutterBranchSdk.setIdentity('YOUR_USER_ID');
  ```
  </TabItem>
  <TabItem value="unity" label="Unity (C#)" default>
  ```csharp showLineNumbers
  Branch.setIdentity("your user id");
  ```
  </TabItem>
  <TabItem value="rn" label="React Native (TS)" default>

  ```typescript showLineNumbers
  import branch from 'react-native-branch';

  branch.setIdentity('YOUR_USER_ID');
  ```

  </TabItem>
  </Tabs>

2. `.updateAttribution()` メソッドを使用してアトリビューションデータを保存します。前のステップで Branch のユーザー ID を指定しなかった場合は、ここで `networkUserId` パラメータに渡してください。

  <Tabs groupId="current-os" queryString>
  <TabItem value="swift" label="iOS (Swift)" default>

  ```swift showLineNumbers
  class YourBranchImplementation {
      func initializeBranch() {
          // Pass the attribution you receive from the initializing method of Branch iOS SDK to Adapty.
          Branch.getInstance().initSession(launchOptions: launchOptions) { (data, error) in
              if let data {
                  // Adapty SDK 4.x
                  Adapty.updateAttribution(data, source: .branch)
                  // Adapty SDK 3.x
                  Adapty.updateAttribution(data, source: "branch")
              }
          }
      }
  }
  ```
  </TabItem>
  <TabItem value="kotlin" label="Android (Kotlin)" default>

  ```kotlin showLineNumbers
  //everything is in the above snippet for Android
  ```
  </TabItem>
  <TabItem value="flutter" label="Flutter (Dart)" default>

  ```javascript showLineNumbers
  try {
      await Adapty().setIntegrationIdentifier(
          key: "branch_id", 
          value: <BRANCH_IDENTITY_ID>,
      );
  } on AdaptyError catch (adaptyError) {
      // handle the error
  } catch (e) {
      // handle the error
  }
  ```
  </TabItem>
  <TabItem value="unity" label="Unity (C#)" default>

  ```csharp showLineNumbers
  using AdaptySDK;

  Branch.initSession(delegate(Dictionary<string, object> parameters, string error) {
      string attributionString = JsonUtility.ToJson(parameters);
      
      Adapty.UpdateAttribution(
        attributionString, 
        "branch", 
        (error) => {
          // handle the error
      });
  });
  ```
  </TabItem>
  <TabItem value="rn" label="React Native (TS)" default>

  ```typescript showLineNumbers
  import { adapty, AttributionSource } from 'react-native-adapty';
  import branch from 'react-native-branch';

  branch.subscribe({
    enComplete: ({
      params,
    }) => {
      adapty.updateAttribution(params, "branch");
    },
  });
  ```

  </TabItem>
  </Tabs>

## イベント構造 \{#event-structure\}

Adapty は、[**Branch Integration ページ**](https://app.adapty.io/integrations/branch)の **Events names** セクションで設定された内容に従って、選択したイベントを Branch に送信します。各イベントは次のような構造になっています：

```json
{
  "branch_key": "key_live_kaFuWw8WvY7n1ss7...",
  "name": "PURCHASE",
  "user_data": {
    "os": "iOS",
    "developer_identity": "user_12345",
    "country": "US",
    "ip": "192.168.100.1",
    "idfa": "00000000-0000-0000-0000-000000000000",
    "idfv": "00000000-0000-0000-0000-000000000000",
    "aaid": "00000000-0000-0000-0000-000000000000"
  },
  "event_data": {
    "transaction_id": "GPA.3383-4699-1373-07113",
    "revenue": 9.99,
    "currency": "USD"
  },
  "custom_data": {
    "vendor_product_id": "yearly.premium.6999",
    "original_transaction_id": "GPA.3383-4699-1373-07113",
    "store": "play_store",
    "environment": "production"
  }
}
```

各パラメータの説明：

| パラメータ                      | 型      | 説明                                                                                                                    |
|:-------------------------------|:-------|:------------------------------------------------------------------------------------------------------------------------|
| `branch_key`                   | String | Branch Key。                                                                                                            |
| `name`                         | String | Branch イベント名（Adapty イベントからマッピングされたもの。例："PURCHASE"）。                                            |
| `user_data`                    | Object | ユーザー情報。                                                                                                          |
| `user_data.os`                 | String | "Android" または "iOS"。                                                                                                |
| `user_data.developer_identity` | String | ユーザーの Customer User ID。                                                                                           |
| `user_data.country`            | String | ユーザーの IP に基づく国コード。                                                                                        |
| `user_data.ip`                 | String | ユーザーの IP アドレス。                                                                                                |
| `user_data.idfa`               | String | **iOS のみ**。広告主向け識別子（ID for Advertisers）。                                                                  |
| `user_data.idfv`               | String | **iOS のみ**。ベンダー向け識別子（ID for Vendors）。                                                                    |
| `user_data.aaid`               | String | **Android のみ**。Google 広告 ID。                                                                                      |
| `event_data`                   | Object | 標準イベント指標（PURCHASE など該当イベントにのみ含まれます）。                                                          |
| `event_data.transaction_id`    | String | ストアのトランザクション ID。                                                                                           |
| `event_data.revenue`           | Float  | 収益額。                                                                                                                |
| `event_data.currency`          | String | 通貨コード（例："USD"）。                                                                                               |
| `custom_data`                  | Object | 詳細なイベント属性（利用可能なすべての[イベントフィールド](webhook-event-types-and-fields#for-most-event-types)を含みます）。 |