> ## 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.

# تحديث حملة

> ابدأ حملة Google Ads أو أوقفها مؤقتًا، أو أعد تسميتها، أو غيّر ميزانيتها اليومية أو تاريخ انتهائها.

ابدأ حملة Google Ads أنشأتها عبر Ayrshare أو أوقفها مؤقتًا، أو أعد تسميتها، أو غيّر ميزانيتها اليومية أو تاريخ انتهائها.

<ul>
  <li>أرسل حقلًا واحدًا على الأقل. تُطبَّق جميع التغييرات في الطلب الواحد معًا أو لا يُطبَّق أي منها.</li>
  <li>لا يمكنك تغيير `type` أو `accountId` أو `euPoliticalAdvertising` بعد إنشاء الحملة.</li>
  <li>لا حاجة إلى `Idempotency-Key`: إرسال التغيير نفسه مرة أخرى يضبط القيم نفسها.</li>
  <li>تُعيد الاستجابة قيمة `campaignStatus` للحملة. استخدم [الحصول على حملة](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 }`: المبلغ الجديد المراد إنفاقه يوميًا، بعملة حساب الإعلانات، بمنزلتين عشريتين على الأكثر. الحملة التي شاركت ميزانيتها مع حملات أخرى في 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.