# キャンペーンの管理

> Tapjoy の Reporting API を使用して広告キャンペーンを管理すると、広告セットの設定、入札額、イベント設定、アプリケーション固有の設定を確認および更新してキャンペーンのパフォーマンスを最適化できます。

Reporting API を使用して、キャンペーンを管理し、イベントと広告セットの設定の詳細を確認できます。

## 前提条件##prerequisites

[こちら](./api-authentication.md) の手順に従って、API で認証する必要があります。

* Reporting API によるレポートデータの取得については、[Reporting API - アドバタイザ](./reporting-api-advertiser.md) を参照してください。
* Reporting API のエラー処理と制限事項については、[Reporting API のベストプラクティス](./reporting-api-best-practices.md) を参照してください。

## 広告セットの管理##manage-your-ad-sets

入札額、ターゲティングデータ、キャンペーン状態など、広告セット設定の詳細を確認します。

参照情報: [Advertiser#adSets](https://api.tapjoy.com/graphql/docs/object/advertiser#adsets) フィールド、[AdSet](https://api.tapjoy.com/graphql/docs/object/adset?category=advertisers) タイプ

以下のクエリは、ID、入札額、キャンペーン目標とともに最大 50 件の広告セットを返します。

```graphql
query {
  advertiser {
    adSets(first: 50) {
      edges {
        node {
          id
          bidding {
            amount
          }
          campaign {
            objective
          }
        }
      }
      pageInfo {
        endCursor
        hasNextPage
      }
    }
  }
}
```

反応は、使用可能な結果が増えるかどうかを示すページ処理情報を持つ広告セットノードのリストを返します。

```graphql
{
  "data": {
    "advertiser": {
      "adSets": {
        "edges": [
          {
            "node": {
              "id": "00000000-0000-0000-0000-000000000000",
              "bidding": {
                "amount": 0.02
              },
              "campaign": {
                "objective": "VIEWS"
              }
            }
          },
          {
            "node": {
              "id": "00000000-0000-0000-0000-000000000001",
              "bidding": {
                "amount": 0.04
              },
              "campaign": {
                "objective": "VIEWS"
              }
            }
          }
        ],
        "pageInfo": {
          "endCursor": "Mg==",
          "hasNextPage": false
        }
      }
    }
  }
}
```

### 広告セットの入札額の変更##change-the-bid-of-an-ad-set

> **Note:**
>
> 返された入札額は、マイクロ単位 (100 万分の 1 ドル) で表されます。詳細については、Money スカラータイプの [ドキュメント](https://api.tapjoy.com/graphql/docs/scalar/money/) を参照してください。

参照情報: [AdSetBiddingUpdateInput](https://api.tapjoy.com/graphql/docs/input_object/adsetbiddingupdateinput/) タイプ

以下の変更により、特定の広告セットの入札額が更新されます。広告セット ID と新しい入札額をマイクロ単位で指定します。

```graphql
mutation {
  updateAdSetBidding(input: {
    id: "00000000-0000-0000-0000-000000000000",
    bidding: {amount: 1000000}
  }) {
    bidding {
      amount
    }
  }
}
```

反応によって、更新された入札額がマイクロ単位で確認されます。

```graphql
{
  "data": {
    "bidding": {
      "amount": 1000000
    }
  }
}
```

## マルチリワードイベントの管理##manage-your-multi-reward-events

入札額、イベント名、イベントがリニアかどうかなど、マルチリワードオファーのイベントレベル情報を確認できます。

> **Note:**
>
> 入札額、状態、またはコンバージョン数に関係なく、広告セットでのすべてのイベントが返されます。

参照情報: [MultiRewardEngagementEvent](https://api.tapjoy.com/graphql/docs/object/multirewardengagementevent/) タイプ

以下のクエリは、イベント名、値、入札額など、特定の広告セットに設定されたすべてのイベントを返します。

```graphql
{
  adSet(id: "00000000-0000-0000-0000-000000000000") {
    multiRewardEngagementSettings {
      events {
        eventName
        eventValue
        amount
      }
    }
  }
}
```

反応は、広告セットごとにグループ化されたエンゲージメントイベント設定のリストを返します。

```graphql
{
  "data": {
    "adSet": {
      "multiRewardEngagementSettings": [
        {
          "events": [
            {
              "eventName": "level_#",
              "eventValue": "5",
              "amount": 0
            },
            {
              "eventName": "level_#",
              "eventValue": "10",
              "amount": 480000
            },
            }
          ]
        }
      ]
    }
  }
}
```

### マルチリワードイベントの作成と削除##create-and-delete-multi-reward-events

> **Note:**
>
> *MultiRewardEngagementEvents* の作成と削除は、1 回のミューテーションで行われます。*AdSet* ID と、少なくとも 2 つの *MultiRewardEngagementEvents* のリストを指定する必要があります。イベントを無効にするには、***disable: true*** 属性を加えます。誤って削除することを防ぐために、イベントを無効にする場合でも、*eventName* と *eventValue* は必須です。

参照情報: [AdSetBiddingUpdateInput](https://api.tapjoy.com/graphql/docs/input_object/adsetbiddingupdateinput/) タイプ、[MultiRewardEngagementEventInput](https://api.tapjoy.com/graphql/docs/input_object/multirewardengagementeventinput) タイプ

以下の変更では、1回の操作で特定の広告セットに対する複数の報酬エンゲージメントイベントを作成、更新、または無効にします。

```graphql
mutation {
  updateAdSetBidding(
    input:{
      id: "00000000-0000-0000-0000-000000000000"
      bidding: {
        multiRewardEngagementEvents: [
          {
            eventName:"TUTORIAL_COMPLETE",
            eventValue: "",
            amount: 2200000
          },
          {
            eventName:"LEVEL_ONE",
            eventValue: "",
            amount: 12200000
          },
          {
            eventName:"LEVEL_TWO",
            eventValue: "",
            disable: true
          }
        ]
      }
    }
  ) {
    bidding {
      multiRewardEngagementEvents {
        eventName
        eventValue
        amount
      }
    }
  }
}
```

反応は、変換後に残ったアクティブなイベント（ディセーブルになったイベントを除く）を返します。

```graphql
{
  "data": {
    "updateAdSetBidding": {
      "bidding": {
        "multiRewardEngagementEvents": [
          {
            "eventName": "TUTORIAL_COMPLETE",
            "eventValue": "",
            "amount": 2200000
          },
          {
            "eventName": "LEVEL_ONE",
            "eventValue": "",
            "amount": 12200000
          }
        ]
      }
    }
  }
}
```

## アプリ固有の設定の管理##manage-your-app-specific-configuration

パブリッシャーアプリ固有の入札が有効になっているマルチリワードオファーのイベントレベル情報を参照してください。入札額、イベント名、イベントの線形性などのイベント情報をパブリッシャーアプリ別に返します。

> **Note:**
>
> パブリッシャーアプリ固有ではないイベント設定は、null アプリの下に表示されます。

参照情報: [MultiRewardEngagementEvent](https://api.tapjoy.com/graphql/docs/object/multirewardengagementevent/) タイプ、[AppReference](https://api.tapjoy.com/graphql/docs/object/appreference) タイプ

以下のクエリは、パブリッシャーアプリケーションごとにグループ化された特定の広告セットのマルチリワードイベント設定を返します。特定のアプリケーションに結び付いていないイベントは、null アプリケーション エントリーの下にリストされます。

```graphql
{
  adSet(id: "00000000-0000-0000-0000-000000000000") {
    multiRewardEngagementSettings {
      app {
        bundleId
      }
      events {
        eventName
        eventValue
        amount
      }
    }
  }
}
```

反応は、各パブリッシャーアプリケーションのイベント設定と、null アプリケーションの下にリストされたアプリケーション固有ではない設定を返します。

```graphql
{
  "data": {
    "adSet": {
      "multiRewardEngagementSettings": [
        {
          "app": null,
          "events": [
            {
              "eventName": "level_#",
              "eventValue": "5",
              "amount": 0
            },
            {
              "eventName": "level_#",
              "eventValue": "10",
              "amount": 480000
            },
          ]
        },
        {
          "app": {
            "bundleId": "com.app.example"
          },
          "events": [
            {
              "eventName": "level_#",
              "eventValue": "10",
              "amount": 520000
            },
            {
              "eventName": "level_#",
              "eventValue": "30",
              "amount": 1680000
            },
          ]
        }
      ]
    }
  }
}
```

### アプリごとのイベント設定の作成と削除##create-and-delete-per-app-event-configurations

> **Note:**
>
> *MultiRewardEngagementEvents* と同様に、*AppBiddingGroups* の作成と削除は 1 回のミューテーションで行われます。パブリッシャーの *AppReference* ID を 1 つ以上と、*MultiRewardEngagementEvents* のリストを 2 つ以上指定する必要があります。これらのイベントの額は、指定されたパブリッシャーの *AppReference* 内でコンバージョンが発生したときに、最上位レベルで設定された価値の代わりに使用されます。

イベントまたはアプリごとの入札グループを無効にするには、***disable: true*** をオブジェクトに追加します。アプリごとの入札グループを無効にすると、その子イベントが自動的に無効になります。イベントを無効にする場合は、誤って削除することを防ぐために、*eventName* と *eventValue* が必要です。

参照情報: [AdSetBiddingUpdateInput](https://api.tapjoy.com/graphql/docs/input_object/adsetbiddingupdateinput/) タイプ、[AppBiddingGroupInput](https://api.tapjoy.com/graphql/docs/input_object/appbiddinggroupinput) タイプ、[MultiRewardEngagementEventInput](https://api.tapjoy.com/graphql/docs/input_object/multirewardengagementeventinput) タイプ、[AppReference](https://api.tapjoy.com/graphql/docs/object/appreference) タイプ

以下の変更では、アプリケーションごとの入札グループと、それに関連する複数の報酬イベントを、1回の操作で特定の広告セットに対して作成、更新、または無効にします。

```graphql
mutation {
  updateAdSetBidding(
    input:{
      id: "00000000-0000-0000-0000-000000000000"
      bidding: {
        perAppBidGroups: [{
          pubAppId:"<example_publisher_app_id>"
          multiRewardEngagementEvents: [
            {
              eventName:"TUTORIAL_COMPLETE",
              eventValue: "",
              amount: 5500000
            },
            {
              eventName:"LEVEL_ONE",
              eventValue: "",
              disable: true,
            }  
          ]
        },
        {
          pubAppId:"<example_publisher_app_id_2>",
          disable: true
        }],
        multiRewardEngagementEvents: [
          {
            eventName:"TUTORIAL_COMPLETE",
            eventValue: "",
            amount: 2200000
          },
          {
            eventName:"LEVEL_ONE",
            eventValue: "",
            amount: 12200000
          },
          {
            eventName:"LEVEL_TWO",
            eventValue: "",
            disable: true
          }
        ]
      }
    }
  ) {
    bidding {
      multiRewardEngagementEvents {
        eventName
        eventValue
        amount
      }
      perAppBidGroups {
          pubApp {
            id
            name
          }
        }
        multiRewardEngagementEvents {
          eventName
          eventValue
          amount
      }
    }
  }
}
```

反応は、アクティブなトップレベルのイベントと、変換後に残ったアプリケーションごとの入札グループを返します。

```graphql
{
  "data": {
    "updateAdSetBidding": {
      "bidding": {
        "multiRewardEngagementEvents": [
          {
            "eventName": "TUTORIAL_COMPLETE",
            "eventValue": "",
            "amount": 2200000
          },
          {
            "eventName":"LEVEL_ONE",
            "eventValue": "",
            "amount": 12200000
          }
        ],
        "perAppBidGroups": [
          {
            "pubApp": {
              "id": "example_publisher_app_id",
              "name": "Example Publisher App"
            },
            "multiRewardEngagementEvents": [
              {
                "eventName": "TUTORIAL_COMPLETE",
                "eventValue": "",
                "amount": 5500000
              },
              {
                "eventName": "LEVEL_ONE",
                "eventValue": "",
                "amount": 15500000
              }
            ]
          }
        ]
      }
    }
  }
}
```
