طريقة إنشاء صورة من Vertex AI وتحميلها إلى "إعلانات Google"

1. مقدمة

ما الذي ستنشئه

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

المعلومات التي ستطّلع عليها

  • طريقة إنشاء الصور من GCP وVertex AI
  • كيفية تحميل الصور إلى "إعلانات Google"
  • كيفية استخدامها في "إعلانات Google"

المتطلبات

  • حساب "إعلانات Google"
  • حساب Google Cloud Platform

2. الحصول على بيانات اعتماد "إعلانات Google"

هذا الجزء مطلوب للحصول على مواد عرض الصور من "إعلانات Google". للوصول إلى "إعلانات Google" من Colab، تحتاج إلى بيانات الاعتماد المناسبة.

إنشاء بيانات الاعتماد -> إنشاء "معرِّف عميل OAuth" -> تطبيق الويب

للحصول على بيانات الاعتماد المناسبة لربط "إعلانات Google"، عليك الوصول إلى بيانات الاعتماد في السحابة الإلكترونية.

إذا لم تكن قد أعددت شاشة الموافقة، عليك إعداد شاشة الموافقة أولاً.

  1. نوع المستخدم: مستخدم خارجي
  2. حالة النشر: في مرحلة الإنتاج

6ecf963c5957379d.png

إضافة معرّف الموارد المنتظم (URI) التالي إلى "معرّفات الموارد المنتظمة (URI) المعتمَدة لإعادة التوجيه"

ضع معرّف الموارد المنتظم (URI) أسفله كلقطة الشاشة أدناه.

https://developers.google.com/oauthplayground

b5d054a6cac40869.png

نسخ معرِّف العميل وسر العميل

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

c8578bf54ade7cee.png

3- إنشاء الرمز المميّز لإعادة التحميل

الوصول إلى ساحة بروتوكول OAuth

يمكنك بسهولة إصدار رمز مميز لإعادة التحميل المؤقت في مساحة بروتوكول OAuth.

انتقِل إلى الإعدادات وتحقَّق من "استخدم بيانات اعتماد OAuth الخاصة بك". بعد الحصول على معرِّف عميل OAuth وسر العميل من الفصل السابق، يمكنك وضعهما في مربّعات النص المقابلة. ace79f71603a922.png

ad82eca7a99c446c.png

إضافة النطاق

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

eff5408ba160aad1.png

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

إنشاء الرمز المميّز لإعادة التحميل

انقر على "رمز تفويض Exchange للرموز المميّزة"، وسيظهر لك الرمز المميّز لإعادة التحميل.

e8c6860d61ad73fd.png

4. إعداد Colab لتنفيذ الرمز البرمجي

Colab هو دفتر ملاحظات مفيد يتضمّن لغة Python. يوفر الخيار الافتراضي قدرًا هائلاً من طاقة الحوسبة. يمكنك أيضًا استخدام أي نظام أساسي لطلب واجهة برمجة تطبيقات REST الخاصة بـ Google Cloud Vertex AI.

يُرجى الانتقال إلى https://colab.research.google.com/ لاستخدامه.

انتقِل إلى [ملف ← ملاحظة جديدة] وابدأ في كتابة رموز جديدة.

6b95020b3d3369ae.png

إذا قمت بالنقر فوق دفتر ملاحظات جديد، فسترى الورقة الجديدة جاهزة لك.

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

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)

في حال الانتظار بضع ثوانٍ، ستظهر لك النتيجة. الأمر بسيط جدًا!

dec38d2d3f7faab8.png

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". إليك لقطة شاشة نموذجية.

7f2fb6063e5ae675.png

9. تهانينا

تهانينا، لقد أنشأت بنجاح مواد عرض صور رائعة من الصور الحالية.

لقد تعلمت

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