पहला चरण: Google Cloud Platform (GCP) सेट अप करना
चेतावनी: Google के मालिकाना हक वाले GCP प्रोजेक्ट, लागू करने वाला (ईसीपी) लागू कर सकता है. इस स्थिति में, सुरक्षा कुंजी की मदद से इंस्टॉल नहीं किया जा सकेगा. इससे बचने के लिए, एक नया GCP प्रोजेक्ट बनाएं (ECP को आपका प्रोजेक्ट ढूंढने में करीब 24 घंटे लगते हैं). इसके अलावा, आप किसी ऐसे सार्वजनिक प्रोजेक्ट का भी इस्तेमाल कर सकते हैं जो लागू न होने के बावजूद, इस समस्या का स्थायी हल ढूंढने की कोशिश करता है.
1.1 GCP प्रोजेक्ट चुनें या बनाएं
नया Google Cloud Platform प्रोजेक्ट बनाएं, या कोई मौजूदा प्रोजेक्ट इस्तेमाल करें. इसे खोलें और पक्का करें कि आपको प्रोजेक्ट का नाम, पेज पर सबसे ऊपर दिख रहा है.
दूसरा चरण: टीसीएफ़ इंस्टॉल करें
2.1 टीसीएफ़ के कोड फ़ोल्डर का ऐक्सेस पाने का अनुरोध करें
जब तक टीसीआर को ओपन सोर्स नहीं किया जाएगा और बाहरी तौर पर इस्तेमाल नहीं किया जा सकेगा, तब तक हर इस्तेमाल के लिए क्लोनिंग की अनुमति ज़रूरी होगी. टीसीएफ़ के कोड फ़ोल्डर को क्लोन करने का ऐक्सेस पाने के लिए, यह अनुरोध सबमिट करें.
2.2 टीसीएफ़ इंस्टॉल करें
GCP कमांड लाइन खोलने के लिए, पेज के सबसे ऊपर दाएं कोने में मौजूद Cloud Shell आइकॉन पर क्लिक करें.
TCRM कोड फ़ोल्डर को क्लोन करने के लिए, शेल में यह निर्देश चलाएं:
git clone https://github.com/google/TaglessCRM.git
इसके बाद, यह निर्देश चलाएं:
cd TaglessCRM && sh setup.sh --project_id=$GOOGLE_CLOUD_PROJECT
ध्यान दें: यह निर्देश नीचे दिए गए तीन चरणों को पूरा करेगा:
- Python वर्चुअल एनवायरमेंट बनाएं और सभी ज़रूरी Python पैकेज इंस्टॉल करें.
- GCP प्रोजेक्ट में ज़रूरी क्लाउड एपीआई चालू करें.
- Cloud Composer का एनवायरमेंट बनाएं और उसमें टीसीएफ़ के डीएजी का इस्तेमाल करें.
ध्यान दें: इंस्टॉल करने की प्रोसेस में करीब दो घंटे लगेंगे. कृपया स्क्रिप्ट के चलने तक इंतज़ार करें.
तीसरा चरण: Airflow कॉन्फ़िगर करना और वैरिएबल सेट अप करना
3.1 BigQuery कनेक्शन सेट अप करें
BigQuery से डेटा पढ़ने के लिए, आपको अपने सेवा खाते को BigQuery कनेक्शन से लिंक करना होगा.
पहचान → सेवा खाते पर क्लिक करें. इसके बाद, tcrm-sa
से शुरू होने वाले सेवा खाते के बगल में मौजूद तीन बिंदुओं पर क्लिक करें. इसके बाद, बनाएं कुंजी → JSON →
बनाएं चुनें.
डाउनलोड की गई कुंजी को टेक्स्ट एडिटर में खोलें और उसमें JSON को कॉपी करें.
Airflow (Composer → Airflow) पर वापस जाएं और एडमिन → कनेक्शन चुनें.
कनेक्शन bigquery_default
के बगल में मौजूद पेंसिल आइकॉन पर क्लिक करें.
ध्यान दें: डिफ़ॉल्ट कनेक्शन नाम bigquery_default
है. अगर BigQuery के कनेक्शन के लिए किसी दूसरे नाम का इस्तेमाल किया जा रहा है, तो कृपया नए कनेक्शन के नाम के साथ, monitoring_bq_conn_id
और bq_conn_id
एयरफ़्लो वैरिएबल (वैरिएबल के बजाय, कनेक्शन) ज़रूर सेट करें.
सलाह: Airflow कनेक्शन मैनेज करने के बारे में ज़्यादा जानकारी के लिए, यह पेज देखें.
सेवा खाते के JSON को Keyfile JSON फ़ील्ड में चिपकाएं और 'सेव करें' पर क्लिक करें.
3.2 Airflow यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके वैरिएबल सेट अप करना
स्क्रीन के सबसे ऊपर, बाईं ओर मौजूद मेन्यू को खोलें. इसके बाद, कंपोज़र एनवायरमेंट पेज खोलने के लिए,
Composer
पर क्लिक करें.कंपोज़र स्क्रीन में, सूची की बाईं ओर
tcrm-env
नाम की पंक्ति ढूंढें. उस लाइन में, Airflow कंसोल खोलने के लिए,Airflow
लिंक पर क्लिक करें.Airflow कंसोल में, सबसे ऊपर मौजूद मेन्यू बार में,
Admin
विकल्प पर क्लिक करें, फिर ड्रॉप-डाउन मेन्यू में सेVariables
चुनें.वैरिएबल स्क्रीन में,
Create
पर क्लिक करें.नया वैरिएबल जोड़ने के लिए, वैरिएबल कुंजी का नाम और वैल्यू डालें. इसके बाद,
save
पर क्लिक करें. हर डीएजी के लिए ज़रूरी वैरिएबल देखने के लिए अगले दो चरण देखें.
3.3 सामान्य DAG वैरिएबल कॉन्फ़िगर करें
इस टेबल में, सभी डीएजी के लिए ज़रूरी सामान्य वैरिएबल शामिल हैं.
उन वैरिएबल के लिए, डिफ़ॉल्ट वैल्यू अपने-आप पहले से सेट होती हैं. इसलिए, अगर डिफ़ॉल्ट वैल्यू आपकी ज़रूरतों के हिसाब से हों, तो आपको कोई बदलाव करने की ज़रूरत नहीं है. हालांकि, जब चाहें Variable Name
के वैरिएबल की जगह, Airflow वैरिएबल सेट करके, इन वैरिएबल को बदला जा सकता है.
अलग-अलग DAG को अलग-अलग कॉन्फ़िगरेशन की अनुमति देने के लिए, कुछ अलग-अलग
नाम के प्रीफ़िक्स को DAG नाम दिया जाएगा. कृपया पक्का करें कि आपने
<DAG Name>
वाले हिस्से को बदल दिया है और सही DAG नाम इस्तेमाल किया है.
उदाहरण के लिए, tcrm_gcs_to_ga
डीएजी के लिए शेड्यूल वैरिएबल सेट करने के लिए, नीचे दी गई टेबल <DAG Name>_schedule
से वैरिएबल का नाम लें और tcrm_gcs_to_ga_schedule
नाम का एक वैरिएबल बनाएं. tcrm_gcs_to_ads_oc
डीएजी शेड्यूल करने के लिए, tcrm_gcs_to_ads_oc_schedule
नाम का एक वैरिएबल बनाएं.
DAG नाम, DAG टैब में Airflow यूज़र इंटरफ़ेस (यूआई) में देखा जा सकता है:
3.3.1 सामान्य वैरिएबल टेबल
वैरिएबल का नाम | डिफ़ॉल्ट मान | वैरिएबल की जानकारी |
---|---|---|
<DAG_Name>_retries |
0 |
पूरी संख्या. एयरफ़्लो, विफल होने पर DAG को फिर से चलाने की कोशिश करेगा. हमारा सुझाव है कि आप इसे 0 पर रखें, क्योंकि टीसीआरएम में फिर से कोशिश करने का अपना तरीका है. इसे किसी दूसरे पूर्णांक पर सेट करने से कोई गड़बड़ी नहीं होगी. हालांकि, यह पहले पूरे न हो पाने वाले इवेंट को फिर से भेजने की कोशिश नहीं करेगा. |
<DAG_Name>_retry_delay |
3 |
पूरी संख्या. हर DAG को फिर से चलाए जाने के बीच मिनटों की संख्या. |
<DAG_Name>_schedule |
@once |
DAG शेड्यूल. DAG को शेड्यूल करने के तरीके के बारे में ज़्यादा जानकारी के लिए, 3.3.2 DAG शेड्यूल करना सेक्शन देखें. |
<DAG_Name>_is_retry |
1 |
1 सेटिंग चालू है, 0 सेटिंग बंद है. डीएजी को पहले जो इवेंट अपलोड नहीं हुए थे उन्हें फिर से उसी आउटपुट सोर्स को भेजने की कोशिश करनी चाहिए या नहीं. पिछली बार एक जैसी 'शेयर की गई ड्राइव' से पूरे न हो पाने वाले इवेंट भेजने की यह एक अंदरूनी कोशिश है. यह पूरे डीएजी में एयरफ़्लो के फिर से कोशिश करने से अलग है. ज़्यादा जानकारी के लिए, इस्तेमाल करने की इस गाइड का फिर से कोशिश करने का तरीका सेक्शन देखें. |
<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 कनेक्शन आईडी. यह इनपुट बीक्यू कनेक्शन आईडी से मिलता-जुलता या अलग हो सकता है. |
3.3.2 DAG शेड्यूल करना
DAG शेड्यूलर सेट अप करने के लिए, हर उस DAG के लिए एक शेड्यूल वैरिएबल बनाएं जिसे आपको शेड्यूल करना है. वैरिएबल का नाम DAG नाम से शुरू होना चाहिए और इसके बाद
_schedule
होना चाहिए.
वैरिएबल का मान वह अंतराल होना चाहिए, जिस पर आप अपना DAG शेड्यूल करना चाहते हैं. उदाहरण के लिए:
DAG को सिर्फ़ एक बार चलाने के लिए @Once को शामिल करें या ज़रूरत के हिसाब से DAG को चलाने के लिए, @daily
या @weekly
डालें. शेड्यूल करने के लिए उपलब्ध सभी विकल्पों के बारे में जानने के लिए,
यह गाइड देखें.
ये वैकल्पिक वैरिएबल हैं. अगर शेड्यूल वैरिएबल सेट नहीं हैं, तो सभी डीएजी के लिए
डिफ़ॉल्ट शेड्यूल @once
है.
3.4 खास DAG वैरिएबल कॉन्फ़िगर करना
नीचे दिए गए सेक्शन से पता चलता है कि हर डीएजी चलाने के लिए किन वैरिएबल की ज़रूरत है. आपको सिर्फ़ उन डीएजी के लिए वैरिएबल सेट अप करने होंगे जिनका इस्तेमाल करना है.
3.4.1 tcrm_bq_to_ga
डीएजी
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.2 tcrm_gcs_to_ga
डीएजी
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.3 tcrm_bq_to_ads_oc
डीएजी
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 Google Ads प्रमाणीकरण के लिए ads_क्रेडेंशियल YAML स्ट्रिंग बनाएं ज़्यादा जानकारी के लिए देखें.
3.4.4 tcrm_gcs_to_ads_oc
डीएजी
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 Google Ads प्रमाणीकरण के लिए ads_क्रेडेंशियल YAML स्ट्रिंग बनाएं ज़्यादा जानकारी के लिए देखें.
3.5 Google प्लैटफ़ॉर्म के लिए पुष्टि करना
3.5.1 Google Ads की पुष्टि करने के लिए, ads_क्रेडेंशियल YAML स्ट्रिंग बनाएं
Google Ads के सामने खुद को प्रमाणित करने के लिए, आपको एक YAML फ़ॉर्मैट बनाना होगा और उसे एक Airflow पैरामीटर के तौर पर सेव करना होगा. 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
Google Ads में लॉग इन करने के बाद, login_customer_id आपके ईमेल के सबसे ऊपर दाईं ओर मौजूद होता है. ग्राहक आईडी, एक एमसीसी खाता आईडी होनी चाहिए जिसमें वे Google Ads खाते शामिल हों जिन्हें आप ऑटोमेट करना चाहते हैं.
Google Ads एमसीसी खाते में लॉग इन करने के बाद, developer_token की जानकारी एपीआई सेंटर में मिलती है.
client_id और client_secret, GCP कंसोल में मौजूद API और सेवाएं पेज में बनाए जा सकते हैं.
रीफ़्रेश करें_टोकन को ये तरीके अपनाकर जनरेट किया जा सकता है:
Python स्क्रिप्ट को टर्मिनल में ज़रूरी पैरामीटर के साथ चलाएं.
python generate_refresh_token.py --client_id INSERT_CLIENT_ID --client_secret INSERT_CLIENT_SECRET
लिंक पर क्लिक करें.
- वह ईमेल खाता चुनें जिसमें आपके Google Ads डेटा को बदलने की अनुमति है और 'अनुमति दें' पर क्लिक करें.
- कोड की कॉपी करें और कोड के बाद इसे टर्मिनल में चिपकाएं. रीफ़्रेश टोकन को नीचे दिखाया जाएगा.
चौथा चरण: भेजने के लिए डेटा तैयार करना
4.1 Google Analytics (GA) के लिए डेटा तैयार करना
ध्यान दें: सभी ज़रूरी शर्तों के बारे में जानने के लिए, मेज़रमेंट प्रोटोकॉल एपीआई देखें.
GA को अपना डेटा भेजने के लिए, आप इन तीन विकल्पों में से चुन सकते हैं:
SQL टेबल फ़ॉर्मैट में
tcrm_bq_to_ga
डीएजी का इस्तेमाल करके BigQuery से.JSON फ़ॉर्मैट में
tcrm_gcp_to_ga
डीएजी का इस्तेमाल करके Google Cloud Storage से.
{"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" }
- CSV फ़ॉर्मैट में
tcrm_gcp_to_ga
डीएजी का इस्तेमाल करके Google Cloud Storage में जाएं.
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, टीसीआरएम से भेजे गए डेटा को स्वीकार करे, यह पक्का करने के लिए आपको GA
का बॉट फ़िल्टर करना होगा. ऐसा करने के लिए, अपने Google Analytics यूज़र इंटरफ़ेस (यूआई)
और को जानें “पहचाने गए बॉट और स्पाइडर के सभी हिट निकालें” में Admin -> View Settings -> Bot
Filtering
पर जाएं.
4.2 Google Ads ऑफ़लाइन रूपांतरण के लिए डेटा तैयार करना
Google Ads को डेटा भेजने के लिए, इन तीन विकल्पों में से कोई एक चुनें:
SQL टेबल फ़ॉर्मैट में
tcrm_bq_to_ads_oc
डीएजी का इस्तेमाल करके BigQuery से.JSON फ़ॉर्मैट में
tcrm_gcs_to_ads_oc
डीएजी का इस्तेमाल करके Google Cloud Storage से.
{"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"}
- CSV फ़ॉर्मैट में
tcrm_gcp_to_ads_oc
डीएजी का इस्तेमाल करके Google Cloud Storage में जाएं.
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
पांचवां चरण: टीसीएफ़ चलाएं
Airflow कंसोल में, सबसे ऊपर दिए गए मेन्यू बार में DAGs
विकल्प पर क्लिक करें. बाईं ओर दी गई सूची में वह DAG ढूंढें जिसे आप चलाना चाहते हैं. इसके बाद, सूची की दाईं ओर मौजूद, Play
बटन पर क्लिक करके उसे चलाएं.