TCRM इंस्टॉलेशन मार्गदर्शिका

पहला चरण: Google Cloud Platform (GCP) सेट अप करना

चेतावनी: Google के मालिकाना हक वाले GCP प्रोजेक्ट, लागू करने वाला (ईसीपी) लागू कर सकता है. इस स्थिति में, सुरक्षा कुंजी की मदद से इंस्टॉल नहीं किया जा सकेगा. इससे बचने के लिए, एक नया GCP प्रोजेक्ट बनाएं (ECP को आपका प्रोजेक्ट ढूंढने में करीब 24 घंटे लगते हैं). इसके अलावा, आप किसी ऐसे सार्वजनिक प्रोजेक्ट का भी इस्तेमाल कर सकते हैं जो लागू न होने के बावजूद, इस समस्या का स्थायी हल ढूंढने की कोशिश करता है.

1.1 GCP प्रोजेक्ट चुनें या बनाएं

नया Google Cloud Platform प्रोजेक्ट बनाएं, या कोई मौजूदा प्रोजेक्ट इस्तेमाल करें. इसे खोलें और पक्का करें कि आपको प्रोजेक्ट का नाम, पेज पर सबसे ऊपर दिख रहा है.

दूसरा चरण: टीसीएफ़ इंस्टॉल करें

2.1 टीसीएफ़ के कोड फ़ोल्डर का ऐक्सेस पाने का अनुरोध करें

जब तक टीसीआर को ओपन सोर्स नहीं किया जाएगा और बाहरी तौर पर इस्तेमाल नहीं किया जा सकेगा, तब तक हर इस्तेमाल के लिए क्लोनिंग की अनुमति ज़रूरी होगी. टीसीएफ़ के कोड फ़ोल्डर को क्लोन करने का ऐक्सेस पाने के लिए, यह अनुरोध सबमिट करें.

2.2 टीसीएफ़ इंस्टॉल करें

  1. GCP कमांड लाइन खोलने के लिए, पेज के सबसे ऊपर दाएं कोने में मौजूद Cloud Shell आइकॉन पर क्लिक करें.

  2. TCRM कोड फ़ोल्डर को क्लोन करने के लिए, शेल में यह निर्देश चलाएं:

      git clone https://github.com/google/TaglessCRM.git
    

  3. इसके बाद, यह निर्देश चलाएं:

      cd TaglessCRM && sh setup.sh --project_id=$GOOGLE_CLOUD_PROJECT
    

ध्यान दें: यह निर्देश नीचे दिए गए तीन चरणों को पूरा करेगा:

  1. Python वर्चुअल एनवायरमेंट बनाएं और सभी ज़रूरी Python पैकेज इंस्टॉल करें.
  2. GCP प्रोजेक्ट में ज़रूरी क्लाउड एपीआई चालू करें.
  3. 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 यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके वैरिएबल सेट अप करना

  1. स्क्रीन के सबसे ऊपर, बाईं ओर मौजूद मेन्यू को खोलें. इसके बाद, कंपोज़र एनवायरमेंट पेज खोलने के लिए, Composer पर क्लिक करें.

  2. कंपोज़र स्क्रीन में, सूची की बाईं ओर tcrm-env नाम की पंक्ति ढूंढें. उस लाइन में, Airflow कंसोल खोलने के लिए, Airflow लिंक पर क्लिक करें.

  3. Airflow कंसोल में, सबसे ऊपर मौजूद मेन्यू बार में, Admin विकल्प पर क्लिक करें, फिर ड्रॉप-डाउन मेन्यू में से Variables चुनें.

  4. वैरिएबल स्क्रीन में, Create पर क्लिक करें.

  5. नया वैरिएबल जोड़ने के लिए, वैरिएबल कुंजी का नाम और वैल्यू डालें. इसके बाद, 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 डीएजी चलाने के लिए, ये वैरिएबल सेट करें:

3.4.4 tcrm_gcs_to_ads_oc डीएजी

tcrm_gcs_to_ads_oc डीएजी चलाने के लिए, ये वैरिएबल सेट करें:

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 स्क्रिप्ट को टर्मिनल में ज़रूरी पैरामीटर के साथ चलाएं. python generate_refresh_token.py --client_id INSERT_CLIENT_ID --client_secret INSERT_CLIENT_SECRET

  • लिंक पर क्लिक करें.

  • वह ईमेल खाता चुनें जिसमें आपके Google Ads डेटा को बदलने की अनुमति है और 'अनुमति दें' पर क्लिक करें.

  • कोड की कॉपी करें और कोड के बाद इसे टर्मिनल में चिपकाएं. रीफ़्रेश टोकन को नीचे दिखाया जाएगा.

चौथा चरण: भेजने के लिए डेटा तैयार करना

4.1 Google Analytics (GA) के लिए डेटा तैयार करना

ध्यान दें: सभी ज़रूरी शर्तों के बारे में जानने के लिए, मेज़रमेंट प्रोटोकॉल एपीआई देखें.

GA को अपना डेटा भेजने के लिए, आप इन तीन विकल्पों में से चुन सकते हैं:

  1. SQL टेबल फ़ॉर्मैट में tcrm_bq_to_ga डीएजी का इस्तेमाल करके BigQuery से.

  2. 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" }
  1. 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 को डेटा भेजने के लिए, इन तीन विकल्पों में से कोई एक चुनें:

  1. SQL टेबल फ़ॉर्मैट में tcrm_bq_to_ads_oc डीएजी का इस्तेमाल करके BigQuery से.

  2. 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"}
  1. 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 बटन पर क्लिक करके उसे चलाएं.