> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Campaign

> Google Ads キャンペーンを開始または一時停止し、名前、1日の予算、終了日を変更します。

Ayrshare で作成した Google Ads キャンペーンを開始または一時停止し、名前を変更し、1日の予算または終了日を変更します。

<ul>
  <li>少なくとも1つのフィールドを送信してください。1回のリクエスト内のすべての変更は、まとめて適用されるか、まったく適用されないかのどちらかです。</li>
  <li>キャンペーンの作成後に `type`、`accountId`、`euPoliticalAdvertising` を変更することはできません。</li>
  <li>`Idempotency-Key` は不要です。同じ変更をもう一度送信しても、同じ値が設定されるだけです。</li>
  <li>レスポンスはキャンペーンの `campaignStatus` を返します。その他のフィールドを読み取るには [Get Campaign](https://www.ayrshare.com/docs/apis/ads/google/get-campaign.md) を使用してください。</li>
</ul>

## ヘッダーパラメータ

**Authorization** `string` *required*

[API Key](https://www.ayrshare.com/docs/apis/overview.md#authorization) of the Primary Profile.

Format: `Authorization: Bearer API_KEY`
**Profile-Key** `string`

[Profile Key](https://www.ayrshare.com/docs/apis/overview.md#profile-key-format) of a User Profile.

Format: `Profile-Key: PROFILE_KEY`

## パスパラメータ

**id** `string` *required*

キャンペーンの作成時に返された `campaignId`。

## ボディパラメータ

**status** `string`

`active` または `paused`。`status: "paused"` のみを送信するリクエストは、Ayrshare が Google の広告を一時停止している場合でもブロックされません。

**name** `string`

新しいキャンペーン名。1～255文字で、改行は含められません。

**budget** `object`

`{ "amount": number }`: 1日あたりの新しい支出額。広告アカウントの通貨で指定し、小数点以下は最大2桁です。Google Ads で予算を他のキャンペーンと共有しているキャンペーンでは `code: 101` が返されます。共有予算は Google Ads で変更してください。

**schedule** `object`

`{ "end": string }`: 新しい終了日。ISO 形式の日付(`2026-11-30`)または日時で指定します。Google は広告アカウントのタイムゾーンで日単位のスケジュールを設定するため、キャンペーンはその日の 23:59:59 に停止します。開始日と同じ日は指定できますが、それより前の日は指定できません。

## エラー

| コード | 発生条件 |
| - | - |
| `101` | フィールドが送信されていない、フィールドが無効である、または予算が他のキャンペーンと共有されている。`details` にどれに該当するかが示されます。 |
| `205` | Google が変更を拒否した。`details` に変更すべき内容が示されます。 |
| `400` | キャンペーンがお客様のものではない、存在しない、または Google Ads で削除されている。連携した Google ユーザーが広告アカウントにアクセスできない場合や、Google Ads へのアクセスが取り消された場合も同様です。 |
| `370` | Google がリクエストを完了できなかった。もう一度お試しください。 |

```bash cURL theme={"system"}
curl \
-H "Authorization: Bearer API_KEY" \
-H "Content-Type: application/json" \
-X PUT https://api.ayrshare.com/api/ads/google/campaigns/21534567890 \
-d '{"status": "active", "budget": { "amount": 30 }}'
```

```javascript JavaScript theme={"system"}
const API_KEY = "API_KEY";

fetch("https://api.ayrshare.com/api/ads/google/campaigns/21534567890", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({"status": "active", "budget": { "amount": 30 }})
})
  .then((res) => res.json())
  .then((json) => console.log(json))
  .catch(console.error);
```

```python Python theme={"system"}
import requests

headers = {
    "Authorization": "Bearer API_KEY",
}

payload = {"status": "active", "budget": { "amount": 30 }}

r = requests.put("https://api.ayrshare.com/api/ads/google/campaigns/21534567890", headers=headers, json=payload)

print(r.json())
```

```php PHP theme={"system"}
<?php
$payload = <<<'JSON'
{"status": "active", "budget": { "amount": 30 }}
JSON;

$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => "https://api.ayrshare.com/api/ads/google/campaigns/21534567890",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "PUT",
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer API_KEY",
        "Content-Type: application/json"
    ],
    CURLOPT_POSTFIELDS => $payload
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
    echo "cURL Error: " . $err;
} else {
    echo $response;
}
?>
```

```csharp C# theme={"system"}
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        var client = new HttpClient();
        client.DefaultRequestHeaders.Add("Authorization", "Bearer API_KEY");

        var payload = """
            {"status": "active", "budget": { "amount": 30 }}
            """;

        var response = await client.PutAsync(
            "https://api.ayrshare.com/api/ads/google/campaigns/21534567890",
            new StringContent(payload, Encoding.UTF8, "application/json"));
        var content = await response.Content.ReadAsStringAsync();

        Console.WriteLine(content);
    }
}
```

```go Go theme={"system"}
package main

import (
    "fmt"
    "io"
    "net/http"
    "strings"
)

func main() {
    payload := `{"status": "active", "budget": { "amount": 30 }}`

    req, _ := http.NewRequest("PUT", "https://api.ayrshare.com/api/ads/google/campaigns/21534567890", strings.NewReader(payload))
    req.Header.Add("Authorization", "Bearer API_KEY")
    req.Header.Add("Content-Type", "application/json")

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
```

```java Java theme={"system"}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class UpdateCampaign {
    public static void main(String[] args) throws Exception {
        String payload = """
            {"status": "active", "budget": { "amount": 30 }}
            """;

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api.ayrshare.com/api/ads/google/campaigns/21534567890"))
            .header("Authorization", "Bearer API_KEY")
            .header("Content-Type", "application/json")
            .PUT(HttpRequest.BodyPublishers.ofString(payload))
            .build();

        HttpResponse<String> response = HttpClient.newHttpClient()
            .send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
```

```ruby Ruby theme={"system"}
require 'net/http'
require 'uri'

uri = URI.parse('https://api.ayrshare.com/api/ads/google/campaigns/21534567890')

request = Net::HTTP::Put.new(uri)
request['Authorization'] = 'Bearer API_KEY'
request['Content-Type'] = 'application/json'
request.body = <<~JSON
  {"status": "active", "budget": { "amount": 30 }}
JSON

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end

puts response.body
```

```json 200: Success theme={"system"}
{
  "status": "success",
  "platform": "google",
  "campaignId": "21534567890",
  "campaignStatus": "active"
}
```

```json 400: Shared Budget theme={"system"}
{
  "action": "request",
  "status": "error",
  "code": 101,
  "message": "Missing or incorrect parameters. Please verify with the docs. https://www.ayrshare.com/docs/apis",
  "details": "This campaign uses a budget shared with other campaigns in Google Ads. Change the shared budget in Google Ads."
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.