1. مقدمة
ما ستنشئه
في هذا الدرس التطبيقي حول الترميز، ستتعرّف على كيفية إنشاء صور باستخدام Vertex AI وإرسالها إلى "إعلانات Google" حتى يمكن استخدام مواد العرض كصور في الحملات.
ما ستتعلمه
- كيفية إنشاء صور من GCP وVertex AI
- كيفية تحميل الصور إلى "إعلانات Google"
- كيفية استخدامها في "إعلانات Google"
المتطلبات
- حساب "إعلانات Google"
- حساب Google Cloud Platform
2. الحصول على بيانات اعتماد "إعلانات Google"
هذا الجزء مطلوب للحصول على مواد عرض الصور من "إعلانات Google". للوصول إلى "إعلانات Google" من Colab، يجب أن تكون لديك بيانات اعتماد مناسبة.
إنشاء بيانات اعتماد -> إنشاء "معرّف عميل OAuth" -> تطبيق ويب
للحصول على بيانات الاعتماد المناسبة لربط حساب "إعلانات Google"، عليك الوصول إلى بيانات اعتماد Cloud.
إذا لم تكن قد أعددت شاشة الموافقة، عليك إعدادها أولاً.
- نوع المستخدم: خارجي
- حالة النشر: في مرحلة الإنتاج

أضِف معرّف الموارد المنتظم (URI) التالي إلى "معرّفات الموارد المنتظمة (URI) المعتمَدة لإعادة التوجيه"
ضَع عنوان URI أدناه كما هو موضّح في لقطة الشاشة أدناه.
https://developers.google.com/oauthplayground

نسخ معرّف العميل والرمز السري للعميل
يمكنك الحصول على معرّف العميل وسر العميل.

3- إنشاء رمز مميّز لإعادة التحميل
الوصول إلى OAuth Playground
يمكنك بسهولة إصدار رمز مميز مؤقت لإعادة التحميل في OAuth Playground.
انتقِل إلى الإعدادات، وضَع علامة في المربّع "استخدام بيانات اعتماد OAuth الخاصة بك". بعد الحصول على معرّف عميل OAuth وسر العميل من الفصل السابق، يمكنك وضعهما في مربّعات النص المناسبة. 

إضافة النطاق
يمكنك إضافة النطاق https://www.googleapis.com/auth/adwords في المساحة أدناه.

انقر على "تفويض واجهات برمجة التطبيقات"، وستظهر لك الشاشة التالية.
إنشاء رمز مميز لإعادة التحميل
انقر على "تبديل رمز التفويض بالرموز المميزة"، وسترى الرمز المميز لإعادة التحميل.

4. إعداد Colab لتنفيذ الرمز
Colab هو دفتر ملاحظات للرموز البرمجية سهل الاستخدام ومزوّد بلغة Python. يوفّر الخيار التلقائي قدرًا كبيرًا من إمكانات الحوسبة. يمكنك أيضًا استخدام أي منصة لطلب واجهة REST API الخاصة بمنصة Google Cloud Vertex AI.
يُرجى الانتقال إلى https://colab.research.google.com/ لاستخدامها.
انتقِل إلى [ملف → ملاحظة جديدة] وابدأ في كتابة رموز جديدة.

إذا نقرت على "دفتر ملاحظات جديد"، ستظهر لك الورقة الجديدة الجاهزة للاستخدام.
5- إنشاء صورة من خلال Google Cloud Vertex AI
استيراد المكتبات
!pip install requests google-ads
أولاً، ثبِّت المكتبات الخاصة بـ "إعلانات Google" وطلبات واجهة برمجة التطبيقات. عليك إعادة تشغيل بيئة التشغيل بعد تثبيت المكتبات.
يمكنك أيضًا تحميل المكتبات الأساسية.
import requests
import json
import base64
from google.ads import googleads
from google.colab import auth
from IPython.display import display, Image
الحصول على المصادقة
سيُطلب منك منح الإذن لحسابك على Google.
auth.authenticate_user()
access_token = !gcloud auth print-access-token
access_token = access_token[0]
بعد منح نفسك الإذن، ستكون جاهزًا لاستدعاء واجهات Google Cloud API.
6. إنشاء صورة من Vertex AI
إعداد الطلب وطلب POST
أولاً، يجب أن يكون لديك معرّف مشروع Google Cloud. يمكنك الحصول عليه من Google Cloud. تحتاج إلى طلب نصي، ويمكنك أيضًا تحديد عدد الصور التي تحتاج إليها. لمزيد من الخيارات، يُرجى الرجوع إلى المستندات الرسمية.
PROJECT_ID = 'abcdefg' # Your GCP project ID
TEXT_PROMPT = 'cat computer' # Your prompt goes here.
IMAGE_COUNT = 4 # You will get 4 images as a result.
يمكنك كتابة أي شيء داخل طلب النص. نريد هنا إنشاء صور تتضمّن قطة وجهاز كمبيوتر معًا في صورة واحدة.
url = f"https://us-central1-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/us-central1/publishers/google/models/imagegeneration:predict"
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json; charset=utf-8"
}
data = {
"instances": [
{
"prompt": TEXT_PROMPT
}
],
"parameters": {
"sampleCount": IMAGE_COUNT
}
}
طلب إنشاء صورة
عندما تصبح مستعدًا للحصول على ملف json، يمكنك الآن طلب إنشاء الصورة. في ما يلي طلب http نموذجي.
response = requests.post(url, headers=headers, data=json.dumps(data))
if response.status_code == 200:
response_data = response.json()
for prediction in response_data.get('predictions', []):
image_data = base64.b64decode(prediction['bytesBase64Encoded'])
display(Image(data=image_data))
else:
print("Request failed:", response.status_code, response.text)
إذا انتظرت بضع ثوانٍ، ستحصل على النتيجة. الأمر بسيط جدًا.

7. الربط بحساب "إعلانات Google"
الربط بحسابك على "إعلانات Google"
يجب أن يكون لديك رمز مميز للمطوِّر من "إعلانات Google". يمكنك تقديم طلب للحصول على رمز مطوّر أساسي أو عادي، ولكن يتوفّر أيضًا رمز اختبار لأغراض الاختبار. انتقِل إلى حسابك الإداري (مركز عملائي). في علامة التبويب "الأدوات والإعدادات"، سيظهر لك "مركز واجهة برمجة التطبيقات". في قسم واجهة برمجة التطبيقات، ستعثر على الرمز المميّز.
يجب أن يكون معرّف العميل وسر العميل ورموز التحديث جاهزة في الفصل السابق.
credentials = {
"developer_token": "ABCDEFG",
"client_id": "123456789012-abcd1234.apps.googleusercontent.com",
"client_secret": "GOCSPX-abcd1234-abcd1234-abcd1234",
"refresh_token": "1//abcdefghijklmnopqrstuvwxyz",
"use_proto_plus": True
}
بعد ضبط بيانات الاعتماد، يمكنك تحميل GoogleAdsService API. يكون رقم تعريف العميل عادةً بالتنسيق xxx-xxxx-xxx، ولكن يجب إزالة الشرطة "-".
client = googleads.client.GoogleAdsClient.load_from_dict(credentials, version='v13')
googleads_service = client.get_service("GoogleAdsService")
customer_id = "1234567890"
طلب بيانات من حساب "إعلانات Google"
يمكنك الآن إجراء الاختبار باستخدام googleads_service. لنستعلم عن أنواع مواد العرض المتوفّرة في حساب "إعلانات Google".
query = (
'''
SELECT
ad_group_ad.ad.id,
ad_group_ad.ad.app_ad.headlines,
ad_group_ad.ad.app_ad.descriptions,
ad_group_ad.ad.app_ad.images
FROM ad_group_ad
''')
response = googleads_service.search(customer_id=customer_id, query=query)
for googleads_row in response:
print(googleads_row)
ستظهر لك قائمة مواد العرض في حساب "إعلانات Google" بتنسيق json. إذا رأيت شيئًا مثل
ad_group_ad {
`images { asset: "customers/1234567890/assets/09876543210" }`
}
8. تحميل مادة عرض صورة إلى "إعلانات Google"
تحميل
في الخطوة الأخيرة، سنحمّل مواد العرض التي تم إنشاؤها إلى "إعلانات Google".
for prediction in response_data.get('predictions', []):
image_base64 = prediction['bytesBase64Encoded']
image_bytes = base64.b64decode(image_base64)
asset_service = client.get_service('AssetService')
asset_operation = client.get_type('AssetOperation')
asset = asset_operation.create
asset.type_ = client.enums.AssetTypeEnum.IMAGE
asset.image_asset.data = image_bytes
asset.name = "cats"
asset_service.mutate_assets(customer_id=customer_id, operations=[asset_operation])
بعد بضع ثوانٍ، ستتمكّن من الاطّلاع على مادة العرض التي تم تحميلها من خلال واجهة المستخدم الأمامية في "إعلانات Google". إليك لقطة الشاشة النموذجية.

9- تهانينا
تهانينا، لقد نجحت في إنشاء مواد عرض صور جميلة من الصورة الحالية.
لقد تعلّمت
- كيفية إنشاء مواد عرض صور من خلال الذكاء الاصطناعي التوليدي (Vertex AI)
- كيفية تحميل الصور إلى "إعلانات Google" واستخدامها كمواد عرض صور