# 广告系列管理

> 使用 Tapjoy Reporting API 管理广告系列，包括查看和更新广告集配置、出价金额、事件设置和特定于应用的设置，从而优化广告系列效果。

Reporting API 可用于管理广告系列并查看事件和广告集的配置详细信息。

## 先决条件##prerequisites

您必须按照[此处](./api-authentication.md)的步骤通过 API 的身份验证。

* 如需了解如何通过 Reporting API 获取报告数据，请参阅 [Reporting API - Advertiser](./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) 类型

以下查询最多返回 50 个广告集及其 ID、出价金额和广告系列目标。

```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:**
>
> 返回的出价金额以微单位表示（1/1,000,000 美元）。如需了解更多信息，请参阅货币标量类型[文档](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* 的操作在单次变更中完成。您必须提供 *AdSet* ID 以及至少包含两个 *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) 类型

以下突变会在单个操作中为指定的广告集创建、更新或禁用多重奖励参与事件。

```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) 类型

以下查询返回指定的广告集的多奖励事件配置，按发布者app分组。未绑定到指定的app的事件列在 null app条入口。

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

响应返回每个发布者 app 的事件配置，以及 null app 下列出的任何非特定 app 配置。

```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* 的操作在单次变更中完成。您必须提供至少一个发行商 *AppReference* ID 以及至少包含两个 *MultiRewardEngagementEvents* 的列表。当转化发生在给定发行商 *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) 类型

以下突变会在单个操作中为指定的广告集创建、更新或禁用每个 app 广告组及其关联的多重奖励事件。

```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
      }
    }
  }
}
```

响应返回突变后剩余的激活顶级事件和每个 app 出价组。

```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
              }
            ]
          }
        ]
      }
    }
  }
}
```
