4.4 إدارة الحملات

مقدمة


من المهم منح التجّار القدرة على إجراء تغييرات على حملاتهم. بعد إنشائها. الجوانب الأكثر أهمية التي يجب أن يكونوا قادرين على تغييرها هي على النحو التالي:

  • الميزانية
  • الحالة (إيقاف مؤقت، تفعيل، إزالة)
  • الاستهداف الجغرافي (موصى به ولكنه اختياري)
  • أي حقل آخر أدرجته في واجهة إنشاء الحملة

إرشادات تجربة المستخدم


اعرض قائمة الحملات في صفحة النظرة العامة وعلى صفحة منفصلة كجزء من تقارير أداء الحملة. اسمح للمستخدمين بإيقاف الحملات مؤقتًا وحذفها وتعديلها.

pmax_campaign

يجب أن يسمح تعديل الحملة للتاجر بتعديل الحقول نفسها التي قدّمنا مدخلات حوله أثناء إنشاء الحملة. مثال على كيف يمكن أن كما هو موضح أدناه:

edit_pmax

الإرشادات الفنية


بعد إنشاء "حملة الأداء الأفضل للبيع بالتجزئة"، يمكنك تغيير إعدادات الحملة التالية:

  • اسم الحملة
  • ميزانية الحملة
  • حالة الحملة
  • معايير استهداف الحملة

يمكنك العثور على نظرة عامة تفصيلية حول كيفية تغيير الموارد في دليل المطوِّر. يمكنك تغيير مورد معيّن باستخدام الخدمة التي تم الكشف عنها. نقطة نهاية لتغيير هذا المورد (على سبيل المثال، CampaignService.MutateCampaigns) أو التغيير عبر عدة عناصر الموارد باستخدام وظيفة التغيير المجمّع المتاحة باستخدام نقطة النهاية GoogleAdsService.Mutate.

نقترح متى أمكن التغيير بشكل مجمّع لتقليل عدد العمليات المطلوبة لتحديث الحملة. مع وضع ذلك في الاعتبار، يجب عليك تصميم البنية الأساسية حول استخدام نقطة نهاية GoogleAdsService.Mutate بدلاً من ذلك من نقاط نهاية الموارد الفردية. وهذا يؤدي أيضًا إلى تسهيل الوظائف في المستقبل.

تفترض الأمثلة اللاحقة أن لديك أرقام التعريف ذات الصلة التي تم تخزينها في دليل قاعدة البيانات.

اسم الحملة

لتعديل اسم حملة، عليك تغيير Campaign.name. .

يجب ألا يحتوي النص على أي قيم فارغة (نقطة الرمز 0x0)، أو خلاصة سطر NL (نقطة الرمز 0xA). أو أحرف الرجوع إلى أول السطر (نقطة الرمز 0xD).

ميزانية الحملة

من أفضل الممارسات تعديل ميزانية حالية بدلاً من استبدال بميزانية جديدة. ويضمن ذلك إنفاق حملتك على النحو المتوقّع لا يؤدي إلى العرض الزائد.

يجب عليك فقط تحديث قيمة الميزانية وعدم تغيير أي حقول أخرى، زيادة قيمة الإنفاق اليومي.

Python
budget_resource_name = client.get_service(
        "CampaignBudgetService"
    ).campaign_budget_path(customer_id, budget_id)

mutate_operation = client.get_type("MutateOperation")
campaign_budget = mutate_operation.campaign_budget_operation.update

campaign_budget.resource_name = budget_resource_name

# update the budget amount to the new value

campaign_budget.amount_micros = 50000000

client.copy_from(
    mutate_operation.campaign_budget_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_budget._pb),
)
return mutate_operation

حالة الحملة

لتعديل حالة (تفعيل/إيقاف مؤقت/إزالة) لحملة، يجب تغيير Campaign.status وتعيين الحالة الملائمة من تعداد CampaignStatus

يمكنك العثور على مثال على تغيير حالة الحملة في نموذج الرمز البرمجي تعديل الحملة.

معايير الحملة

عند تعديل معايير الحملة، ستحتاج فقط إلى توفير إمكانية تحديث المعايير التي تظهر للمستخدم، يكون هذا على الأقل الاستهداف الجغرافي وربما استهداف اللغة. يمكنك العثور على مثال على تحديث معيار حملة في نموذج رمز تحديث معدِّل عروض الأسعار لمعيار الحملة.

لتحديث معايير الاستهداف الجغرافي، يجب تحديث CampaignCriterion.location إلى قيمة ثابت الاستهداف الجغرافي الجديد.

Python
criterion_rname = client.get_service(
    "CampaignCriterionService"
    ).campaign_criterion_path(
    customer_id, campaign_id, criterion_id
)

mutate_operation = client.get_type("MutateOperation")
campaign_criterion = mutate_operation.campaign_criterion_operation.update

campaign_criterion.resource_name = criterion_rname

# Set the geo to the update geo targeting

campaign_criterion.location.geo_target_constant = (
   geo_target_constant_service.geo_target_constant_path("1022762")
) # Brooklyn

client.copy_from(
    mutate_operation.campaign_criterion_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_criterion._pb),
)
return mutate_operation

لتحديث معايير استهداف اللغة، يجب تحديث قيمة القيمة CampaignCriterion.language مع ثابت اللغة الجديد.

Python
campaign_criterion_service = client.get_service("CampaignCriterionService")

criterion_rname = campaign_criterion_service.campaign_criterion_path(
   customer_id, campaign_id, criterion_id
)

mutate_operation = client.get_type("MutateOperation")
campaign_criterion = mutate_operation.campaign_criterion_operation.update

campaign_criterion.resource_name = criterion_rname

# Set the language to the updated language
# For a list of all language codes, see:
# https://developers.google.com/google-ads/api/data/codes-formats#languages
campaign_criterion.language.language_constant = (
    googleads_service.language_constant_path("1000")
)  # English

client.copy_from(
    mutate_operation.campaign_criterion_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_criterion._pb),
)
return mutate_operation