שלב 1: הגדרת Google Cloud Platform (GCP)
אזהרה: ייתכן שנאכפים על ידי לאכוף (ECP) בפרויקטים של GCP שבבעלות Google. במקרה כזה, ההתקנה תיכשל ותהיה לך בקשה למפתח אבטחה. כדי להימנע מכך, כדאי ליצור פרויקט GCP חדש (יחלפו כ-24 שעות עד שאפשר יהיה למצוא את הפרויקט ב-ECP), או להשתמש בפרויקט ציבורי שלא נאכף בזמן שאנחנו מנסים למצוא פתרון קבוע לבעיה הזו.
1.1 בחירה או יצירה של פרויקט GCP
תוכלו ליצור פרויקט חדש ב-Google Cloud Platform או להשתמש בפרויקט קיים. פותחים את הקובץ כדי לוודא שאפשר לראות את שם הפרויקט בחלק העליון של הדף.
שלב 2: מתקינים את TCRM
2.1 בקשת גישה לתיקיית קוד TCRM
עד ש-TCRM יהיה בקוד פתוח וזמין חיצונית, יש צורך בהרשאת שכפול לכל שימוש. שלחו את הבקשה באמצעות הטופס הזה כדי לקבל גישה לשכפול התיקייה של קוד ה-TCRM.
2.2 התקנת TCRM
לוחצים על הסמל של Cloud Shell בפינה השמאלית העליונה של הדף כדי לפתוח את שורת הפקודה של GCP.
מריצים את הפקודה הבאה במעטפת כדי לשכפל את התיקייה של קוד ה-TCRM:
git clone https://github.com/google/TaglessCRM.git
עכשיו, מריצים את הפקודה הבאה:
cd TaglessCRM && sh setup.sh --project_id=$GOOGLE_CLOUD_PROJECT
הערה: הפקודה הזו תבצע את שלושת השלבים הבאים:
- ליצור סביבה וירטואלית ב-Python ולהתקין את כל חבילות ה-Python הנדרשות.
- מפעילים את ממשקי ה-API הנדרשים ב-Cloud בפרויקט GCP.
- יצירת סביבה של Cloud Composer ופריסת DAG DAGs בתוכה.
הערה: תהליך ההתקנה אמור להימשך כשעתיים. יש להמתין עד לסיום הפעלת הסקריפט.
שלב 3: מגדירים זרימת אוויר ומגדירים משתנים
3.1 הגדרת חיבור BigQuery
כדי לקרוא נתונים מ-BigQuery, צריך לקשר את חשבון השירות לחיבור של BigQuery.
לוחצים על 'זהות' ← 'חשבונות שירות'. לאחר מכן לוחצים על שלוש הנקודות שלצד חשבון השירות שמתחיל ב-tcrm-sa
ובוחרים באפשרות 'יצירת מפתח ← JSON' ← 'יצירה'.
פותחים את המַפתח שהורדתם בעורך טקסט ומעתיקים את קובץ ה-JSON שבתוכו.
חוזרים אל Airflow (מלחין ← Airflow) ובוחרים באפשרות Admin → Connections.
לוחצים על סמל העיפרון לצד החיבור bigquery_default
.
הערה: ברירת המחדל של שם החיבור היא bigquery_default
. אם אתם משתמשים בשם חיבור אחר ל-BigQuery, חשוב להגדיר את המשתנים של monitoring_bq_conn_id
ושל bq_conn_id
זרימת האוויר (משתנים, לא חיבורים) עם שם החיבור החדש.
טיפ: לפרטים נוספים על ניהול חיבורי Airflow, קראו בדף הזה.
מדביקים את קובץ ה-JSON של חשבון השירות בשדה JSON של קובץ JSON ולוחצים על 'שמירה'.
3.2 הגדרת המשתנים באמצעות ממשק המשתמש של Airflow
פותחים את התפריט בפינה הימנית העליונה של המסך. לאחר מכן לחצו על
Composer
כדי לפתוח את הדף סביבות מלחין.במסך 'מלחין', חפשו את השורה
tcrm-env
בשם בצד שמאל של הרשימה. בשורה הזו, לוחצים על הקישורAirflow
כדי לפתוח את מסוף Airflow.במסוף Airflow, לוחצים על האפשרות
Admin
בסרגל התפריטים העליון ובוחרים באפשרותVariables
מהתפריט הנפתח.במסך של המשתנים, לוחצים על
Create
.כדי להוסיף משתנה חדש, מזינים את השם של מפתח המשתנה ואת הערך שלו, ואז לוחצים על
save
. עיינו ב-2 השלבים הבאים כדי לראות אילו משתנים נדרשים לכל DAG.
3.3 הגדרת משתני DAG כלליים
הטבלה הבאה כוללת את המשתנים הכלליים שנדרשים לכל יחידות ה-DAG.
למשתנים האלה כבר הוגדרו באופן אוטומטי ערכי ברירת מחדל, כך שאין צורך לשנות דבר אם ערכי ברירת המחדל מתאימים לצרכים שלכם. עם זאת, תמיד אפשר לשנות את המשתנים האלה על ידי הגדרת משתנה של זרימת אוויר עם אותו Variable Name
לערך אחר.
כדי שלהגדרות DAG שונות יהיו תצורות שונות, חלק מהשמות של המשתנים
יכללו את שם ה-DAG כקידומת. חשוב להחליף את החלק <DAG Name>
ולהשתמש בשם הנכון של DAG.
לדוגמה: כדי להגדיר את משתנה התזמון עבור tcrm_gcs_to_ga
DAG, השתמשו בשם המשתנה מהטבלה הבאה <DAG Name>_schedule
וצרו משתנה בשם tcrm_gcs_to_ga_schedule
. כדי לתזמן את DAG tcrm_gcs_to_ads_oc
, יש ליצור משתנה בשם tcrm_gcs_to_ads_oc_schedule
.
ניתן למצוא את שם ה-DAG בממשק המשתמש של Airflow בכרטיסייה 'DAG':
3.3.1 טבלה של משתנים כלליים
שם משתנה | ערך ברירת מחדל | פרטי המשתנה |
---|---|---|
<DAG_Name>_retries |
0 |
מספר שלם. מספר הפעמים ש-Airflow תנסה להריץ מחדש את ה-DAG אם הוא ייכשל. מומלץ לשמור על ערך זהה של אפס, כי ל-TCRM יש מנגנון ניסיון חוזר משלה. עם זאת, הגדרת מספר שלם אחר לא תגרום לשגיאות, אבל היא לא תנסה לשלוח מחדש אירועים שנכשלו. |
<DAG_Name>_retry_delay |
3 |
מספר שלם. מספר הדקות בין כל DAG להפעלה מחדש. |
<DAG_Name>_schedule |
@once |
לוח זמנים קצר. בקטע 3.3.2 תזמון DAG יש מידע נוסף על תזמון DAG. |
<DAG_Name>_is_retry |
1 |
1 להפעלה, 0 להשבתה. האם על ה-DAG לנסות שוב לשלוח אירועים שנכשלו בעבר לאותו מקור פלט. זהו ניסיון פנימי נוסף לשלוח אירועים שנכשלו מהפעלות דומות קודמות. הבדיקה שונה מניסיון ההפעלה מחדש של DAG כולו. למידע נוסף, ניתן לעיין בקטע ניסיון נוסף במנגנון במדריך השימוש הזה. |
<DAG_Name>_is_run |
1 |
1 להפעלה, 0 להשבתה. האם ה-DAG צריך לכלול הפעלה מרכזית. ניתן להשבית את האפשרות הזו אם המשתמש רוצה לדלג על ההפעלה הראשית ולבצע רק את הפעולה החוזרת. מידע נוסף זמין בקטע הפעלה במדריך השימוש הזה. |
<DAG_Name>_enable_run_report |
0 |
1 להפעלה, 0 להשבתה. מציין אם ה-DAG יחזיר דוח הרצה או לא. לא לכל המידע האישי (DAG) יש דוחות. מידע נוסף זמין בקטע דוחות במדריך השימוש הזה. |
<DAG_Name>_enable_monitoring |
1 |
1 להפעלה, 0 להשבתה. מידע נוסף זמין בקטע מעקב במדריך השימוש הזה. |
monitoring_dataset |
tcrm_monitoring_dataset |
מזהה מערך הנתונים של טבלת המעקב. |
monitoring_table |
tcrm_monitoring_table |
שם הטבלה של טבלת המעקב. |
monitoring_bq_conn_id |
bigquery_default |
מזהה החיבור של BigQuery לטבלת המעקב. מספר זה יכול להיות שונה ממזהה החיבור BQ, או להזין אותו בנפרד. |
3.3.2 תזמון DAG
כדי להגדיר את מתזמן המשימות, צריך ליצור משתנה לוח זמנים לכל DAG שרוצים לתזמן. שם המשתנה צריך להתחיל בשם DAG, ואז _schedule
.
ערך המשתנה צריך להיות המרווח שאיתו רוצים לתזמן את DAG. למשל:
הוסיפו את התו @once כדי להריץ את DAG רק פעם אחת, או את הערך @daily
או @weekly
כדי להגדיר את DAG כך שיפעל בהתאם. היעזרו במדריך הזה כדי לברר מהן האפשרויות הזמינות.
המשתנים האלה הם אופציונליים. אם לא הוגדרו משתני תזמון, לוח הזמנים של ברירת המחדל לכל DAG הוא @once
.
3.4 הגדרת משתני DAG ספציפיים
הקטע הנפתח מציין אילו משתנים נדרשים להפעלת כל DAG. אתם צריכים להגדיר משתנים רק עבור ה-DAG שבו אתם מתכננים להשתמש.
3.4.1tcrm_bq_to_ga
DAG
כדי להריץ את ה-DAG tcrm_bq_to_ga
, יש להגדיר את המשתנים הבאים:
bq_dataset_id
: השם של מערך הנתונים ב-BigQuery שמכיל את הנתונים. דוגמה:my_dataset
bq_table_id
: השם של טבלת BigQuery שמכיל את הנתונים. דוגמה:my_table
ga_tracking_id
: מזהה לצורכי מעקב של Google Analytics. דוגמה:UA-123456789-1
3.4.2tcrm_gcs_to_ga
DAG
כדי להפעיל את ה-DAG tcrm_gcs_to_ga
, יש להגדיר את המשתנים הבאים:
gcs_bucket_name
: שם קטגוריה של Cloud Storage. דוגמה:my_bucket
gcs_bucket_prefix
: הנתיב לתיקיית הנתונים שבתוך הקטגוריה. דוגמה:folder/sub_folder
gcs_content_type
(אופציונלי): סוג התוכן ב-Cloud Storage.JSON
אוCSV
.ga_tracking_id
: מזהה לצורכי מעקב של Google Analytics. דוגמה:UA-123456789-1
3.4.3tcrm_bq_to_ads_oc
DAG
כדי להפעיל את ה-DAG tcrm_bq_to_ads_oc
, יש להגדיר את המשתנים הבאים:
bq_dataset_id
: השם של מערך הנתונים ב-BigQuery שמכיל את הנתונים. דוגמה:my_dataset
bq_table_id
: השם של טבלת BigQuery שמכיל את הנתונים. דוגמה:my_table
ads_credentials
: פרטי האימות ב-Google AdWords API זמינים במאמר 3.5.1 יצירת מחרוזת YAML של ads_credentials לאימות של Google Ads.
3.4.4 tcrm_gcs_to_ads_oc
DAG
כדי להפעיל את ה-DAG tcrm_gcs_to_ads_oc
, יש להגדיר את המשתנים הבאים:
gcs_bucket_name
: שם קטגוריה של Cloud Storage. דוגמה:my_bucket
gcs_bucket_prefix
: הנתיב לתיקיית הנתונים שבתוך הקטגוריה. דוגמה:folder/sub_folder
gcs_content_type
(אופציונלי): סוג התוכן ב-Cloud Storage.JSON
אוCSV
.ads_credentials
: פרטי האימות ב-Google AdWords API זמינים במאמר 3.5.1 יצירת מחרוזת YAML של ads_credentials לאימות של Google Ads.
3.5 אימות מול Google Platforms
3.5.1 יצירת מחרוזת YAML של ads_credentials לאימות Google Ads
כדי לאמת את עצמכם מול Google Ads, תצטרכו ליצור מחרוזת בפורמט YAML ולשמור אותה כפרמטר של Airflow. הפרמטר הזה ישמש את TCRM לאימות בין TCRM לבין Google Ads. פורמט המחרוזת הוא:
developer_token: abcd
client_id: test.apps.googleusercontent.com
client_secret: secret
refresh_token: 1//token
login_customer_id: 1234567890
use_proto_plus: True
login_customer_id מופיע בפינה השמאלית העליונה, מעל הודעת האימייל, אחרי ההתחברות ל-Google Ads. מספר הלקוח צריך להיות מספר של חשבון ניהול (MCC) שכולל את חשבונות Google Ads שרוצים להפוך לאוטומטיים.
המאפיין developer_token מופיע במרכז ה-API לאחר שנכנסתם לחשבון Google Ads שלכם.
client_id ו-client_secret אפשר ליצור בדף ממשקי ה-API והשירותים במסוף ה-GCP.
אפשר ליצור את refresh_token בדרכים הבאות:
מריצים את הסקריפט של Python עם הפרמטרים הנדרשים במסוף.
python generate_refresh_token.py --client_id INSERT_CLIENT_ID --client_secret INSERT_CLIENT_SECRET
לוחצים על הקישור.
- בוחרים את חשבון האימייל עם ההרשאה לשנות את נתוני Google Ads, ולוחצים על 'אישור'.
- מעתיקים את הקוד ומדביקים אותו במסוף אחרי הקוד. אסימון הרענון יופיע למטה.
שלב 4: הכנת הנתונים לשליחה
4.1 הכנת הנתונים ל-Google Analytics (GA)
הערה: הדרישות המפורטות מפורטות ב-Measurement Protocol API.
יש 3 אפשרויות לשלוח נתונים ל-Google Analytics:
באמצעות BigQuery בעזרת DAG
tcrm_bq_to_ga
בטבלה של SQL.מ-Google Cloud Storage עם DAG
tcrm_gcp_to_ga
בפורמט JSON.
{"cid": "12345.67890", "t":"event", "ec": "video", "ea": "play", "el": "holiday", "ev": "300" }
{"cid": "12345.67891", "t":"event", "ec": "video", "ea": "play", "el": "holiday", "ev": "301" }
{"cid": "12345.67892", "t":"event", "ec": "video", "ea": "play", "el": "holiday", "ev": "302" }
{"cid": "12345.67893", "t":"event", "ec": "video", "ea": "play", "el": "holiday", "ev": "303" }
- מ-Google Cloud Storage עם DAG
tcrm_gcp_to_ga
בפורמט CSV.
cid,t,ec,ea,el,ev
12345.67890,event,video,play,holiday,300
12345.67891,event,video,play,holiday,301
12345.67892,event,video,play,holiday,302
12345.67893,event,video,play,holiday,303
אזהרה: כדי לוודא ש-GA יקבל את הנתונים שנשלחים מ-TCRM, צריך להגדיר את סינון הבוטים של Google Analytics. כדי לעשות זאת, עוברים אל Admin -> View Settings -> Bot
Filtering
בממשק המשתמש של Google Analytics ומבטלים את הסימון של 'החרגת כל ההיטים מבוטים ומסורקים ידועים'.
4.2 הכנת הנתונים להמרה אופליין ב-Google Ads
יש 3 אפשרויות לשליחת הנתונים ל-Google Ads:
באמצעות BigQuery בעזרת DAG
tcrm_bq_to_ads_oc
בטבלה של SQL.מ-Google Cloud Storage עם DAG
tcrm_gcs_to_ads_oc
בפורמט JSON.
{"conversionName": "my_conversion_1", "conversionTime":"20191030 122301 Asia/Calcutta", "conversionValue": "0.47", "googleClickId": "gclid1"}
{"conversionName": "my_conversion_1", "conversionTime":"20191030 122401 Asia/Calcutta", "conversionValue": "0.37", "googleClickId": "gclid2"}
{"conversionName": "my_conversion_2", "conversionTime":"20191030 122501 Asia/Calcutta", "conversionValue": "0.41", "googleClickId": "gclid3"}
{"conversionName": "my_conversion_2", "conversionTime":"20191030 122601 Asia/Calcutta", "conversionValue": "0.17", "googleClickId": "gclid4"}
- מ-Google Cloud Storage עם DAG
tcrm_gcp_to_ads_oc
בפורמט CSV.
conversionName,conversionTime,conversionValue,googleClickId
my_conversion_1,20191030 122301 Asia/Calcutta,0.47,gclid1
my_conversion_1,20191030 122401 Asia/Calcutta,0.37,gclid2
my_conversion_2,20191030 122501 Asia/Calcutta,0.41,gclid3
my_conversion_2,20191030 122601 Asia/Calcutta,0.17,gclid4
שלב 5: הפעלת TCRM
במסוף Airflow, לוחצים על האפשרות DAGs
בסרגל התפריטים העליון. ברשימה שמימין, מוצאים את ה-DAG שרוצים להפעיל. אחר כך לוחצים על הלחצן Play
בצד שמאל של הרשימה.