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