نود Google Ads در N8N
نود Google Ads در N8N یکی از کاربردیترین نودها برای اتصال ورکفلوهای اتوماسیون به حساب تبلیغاتی گوگل است. با این نود میتوانید اطلاعات کمپینها، گروههای تبلیغاتی، کلمات کلیدی، تبلیغات و گزارشهای عملکردی را از Google Ads دریافت کنید و در کنار نودهایی مثل Google Sheets، Slack، Telegram، Email، CRM، دیتابیس یا ابزارهای تحلیلی استفاده کنید.
این نود برای تیمهای مارکتینگ، آژانسهای تبلیغاتی، مدیران کمپین و توسعهدهندگانی مناسب است که میخواهند گزارشگیری، مانیتورینگ، هشداردهی و حتی بخشی از مدیریت کمپینهای گوگل ادز را خودکار کنند.
معرفی نود در N8N
نود Google Ads یک نود Integration و Action در N8N است. این نود به شما اجازه میدهد از طریق Google Ads API به دادههای حساب تبلیغاتی گوگل دسترسی داشته باشید و عملیات مختلفی مثل دریافت اطلاعات مشتریان، کمپینها، گزارشها و دادههای عملکردی را انجام دهید.
دستهبندی نود
- نوع نود: Integration
- کارکرد اصلی: اتصال به Google Ads API
- نوع اجرا: Action، یعنی در پاسخ به اجرای ورکفلو یا خروجی نودهای قبلی اجرا میشود
- Trigger نیست: این نود بهصورت مستقیم رویدادهای Google Ads را مانیتور نمیکند، اما میتوانید با Cron، Schedule Trigger یا Webhook آن را در زمانهای مشخص اجرا کنید
کاربرد اصلی نود
کاربرد اصلی نود Google Ads در N8N دریافت و مدیریت دادههای تبلیغاتی است. برای مثال میتوانید هر روز هزینه کمپینها را بررسی کنید، کمپینهایی با نرخ تبدیل پایین را شناسایی کنید، گزارش عملکرد را به Google Sheets منتقل کنید یا در صورت عبور هزینه از یک مقدار مشخص، به تیم مارکتینگ هشدار ارسال کنید.
پیشنیازهای استفاده
- داشتن حساب Google Ads فعال
- داشتن دسترسی مناسب به حساب تبلیغاتی یا حساب Manager
- فعال بودن Google Ads API در Google Cloud Console
- داشتن OAuth Client ID و OAuth Client Secret
- داشتن Developer Token برای Google Ads API
- تنظیم Credential مربوط به Google Ads در N8N
- دانستن Customer ID حساب Google Ads، معمولاً بهصورت عددی و بدون خط تیره
موارد استفاده
نود Google Ads در پروژههای اتوماسیون مارکتینگ کاربردهای زیادی دارد. در ادامه چند سناریوی واقعی و عملی برای استفاده از این نود آمده است.
گزارشگیری روزانه از کمپینها
یکی از رایجترین استفادهها، دریافت گزارش روزانه از کمپینها و ذخیره آن در Google Sheets است. در این سناریو، ورکفلو هر روز اجرا میشود، دادههای Google Ads را میخواند و خروجی را به شیت گزارش منتقل میکند.
- Schedule Trigger: اجرای روزانه ورکفلو
- Google Ads: دریافت اطلاعات هزینه، کلیک، نمایش و کانورژن
- Code یا Set: فرمتکردن دادهها و تبدیل cost_micros به واحد پولی
- Google Sheets: ثبت گزارش در فایل اکسل آنلاین
ارسال هشدار هزینه بالا به Slack یا Telegram
اگر هزینه کمپین از یک مقدار مشخص بیشتر شود، میتوانید به تیم مارکتینگ هشدار ارسال کنید. این کار باعث میشود هزینههای غیرعادی سریعتر شناسایی شوند.
- Google Ads: دریافت هزینه کمپینها
- IF: بررسی اینکه هزینه بیشتر از مقدار مجاز است یا نه
- Slack یا Telegram: ارسال هشدار به تیم
مانیتورینگ کمپینهای با عملکرد ضعیف
میتوانید کمپینهایی را پیدا کنید که هزینه زیادی دارند اما تبدیل کمی ایجاد کردهاند. این سناریو برای کنترل CPA و بهینهسازی بودجه تبلیغاتی بسیار مهم است.
- دریافت دادههای کمپین بر اساس بازه زمانی مشخص
- محاسبه CPA با نود Code
- فیلتر کمپینهای با CPA بالا
- ارسال گزارش به ایمیل یا ذخیره در دیتابیس
ساخت داشبورد اختصاصی تبلیغات
با ترکیب Google Ads و دیتابیسهایی مثل PostgreSQL، MySQL یا ابزارهایی مثل Airtable و Notion، میتوانید داشبورد اختصاصی برای تیم خود بسازید.
- Google Ads: دریافت داده خام
- Code: پاکسازی و استانداردسازی داده
- PostgreSQL یا MySQL: ذخیره دادهها
- Metabase، Looker Studio یا Grafana: نمایش داشبورد
اتصال دادههای Google Ads به CRM
اگر دادههای فروش یا لیدها در CRM ذخیره میشوند، میتوانید دادههای هزینه و عملکرد Google Ads را با اطلاعات فروش ترکیب کنید تا نرخ بازگشت سرمایه تبلیغات یا ROAS دقیقتری محاسبه شود.
- دریافت هزینه و کلیک از Google Ads
- دریافت لید یا فروش از CRM
- تطبیق دادهها بر اساس کمپین، تاریخ یا UTM
- محاسبه ROAS و ارسال گزارش به تیم فروش و مارکتینگ
پارامترها و تنظیمات
پارامترهای نود Google Ads ممکن است بسته به نسخه N8N و نسخه Google Ads API کمی متفاوت باشند، اما ساختار اصلی تنظیمات معمولاً شامل Credential، Resource، Operation، Customer ID، Query، فیلترها و گزینههای خروجی است.
تنظیمات Credential
برای استفاده از نود Google Ads باید ابتدا Credential مربوط به Google Ads را در N8N بسازید. این Credential معمولاً بر پایه OAuth2 کار میکند.
| نام پارامتر | نوع داده | توضیح کاربرد | مثال عملی |
|---|---|---|---|
| Credential | Object | اتصال احراز هویتشده به Google Ads API | Google Ads OAuth2 Account |
| Client ID | String | شناسه OAuth Client که از Google Cloud Console دریافت میشود | 1234567890-example.apps.googleusercontent.com |
| Client Secret | String | کلید محرمانه OAuth Client | GOCSPX-xxxxxxxxxxxx |
| Developer Token | String | توکن توسعهدهنده برای دسترسی به Google Ads API | AbCdEfGhIjKlMnOpQrSt |
| Login Customer ID | String یا Number | شناسه حساب Manager، زمانی که از MCC برای دسترسی به حسابهای دیگر استفاده میکنید | 1234567890 |
| OAuth Redirect URL | URL | آدرسی که باید در Google Cloud Console بهعنوان Authorized Redirect URI ثبت شود | https://n8n.example.com/rest/oauth2-credential/callback |
پارامتر Resource
پارامتر Resource مشخص میکند میخواهید با کدام بخش از Google Ads کار کنید. در نسخههای مختلف نود ممکن است گزینهها متفاوت باشند، اما منابع رایج شامل موارد زیر هستند.
| نام Resource | نوع داده | توضیح کاربرد | مثال عملی |
|---|---|---|---|
| Customer | Options | کار با حسابهای مشتری و دریافت اطلاعات حساب تبلیغاتی | دریافت لیست حسابهای قابل دسترسی |
| Campaign | Options | دریافت یا مدیریت اطلاعات کمپینها | دریافت کمپینهای فعال |
| Ad Group | Options | کار با گروههای تبلیغاتی داخل کمپینها | بررسی وضعیت Ad Groupها |
| Ad | Options | دریافت اطلاعات تبلیغات | گزارش از تبلیغات فعال و غیرفعال |
| Keyword یا Criterion | Options | دریافت اطلاعات کلمات کلیدی و معیارهای هدفگیری | شناسایی کلمات کلیدی با هزینه بالا |
| Report یا Query | Options | اجرای کوئری GAQL برای دریافت گزارشهای سفارشی | دریافت کلیک، ایمپرشن، هزینه و کانورژن بر اساس تاریخ |
پارامتر Operation
Operation مشخص میکند روی Resource انتخابشده چه عملیاتی انجام شود. همه عملیاتها برای همه Resourceها در دسترس نیستند.
| نام Operation | نوع داده | توضیح کاربرد | مثال عملی |
|---|---|---|---|
| Get | Options | دریافت یک آیتم مشخص بر اساس ID | دریافت اطلاعات یک کمپین با Campaign ID |
| Get Many یا List | Options | دریافت چندین آیتم از یک Resource | دریافت همه کمپینهای فعال |
| Search | Options | جستجو با استفاده از Google Ads Query Language یا GAQL | گزارش هزینه کمپینها در ۳۰ روز اخیر |
| Create | Options | ایجاد آیتم جدید، در صورت پشتیبانی نسخه نود و API | ساخت یک Ad Group جدید |
| Update | Options | ویرایش اطلاعات یک آیتم موجود | تغییر وضعیت کمپین به Paused |
| Remove یا Delete | Options | حذف یا غیرفعالسازی یک آیتم، در صورت پشتیبانی | حذف یک criterion یا متوقفکردن یک آیتم |
پارامتر Customer ID
| نام پارامتر | نوع داده | توضیح کاربرد | مثال عملی |
|---|---|---|---|
| Customer ID | String یا Number | شناسه حساب Google Ads که عملیات روی آن انجام میشود. بهتر است بدون خط تیره وارد شود. | 9876543210 |
شناسه Customer ID در رابط Google Ads معمولاً به شکل 987-654-3210 نمایش داده میشود، اما در API و N8N بهتر است آن را به شکل 9876543210 وارد کنید.
پارامتر Query یا GAQL Query
یکی از مهمترین قابلیتهای نود Google Ads امکان اجرای کوئریهای GAQL است. GAQL یا Google Ads Query Language زبان مخصوص گوگل برای گزارشگیری از دادههای Google Ads است.
| نام پارامتر | نوع داده | توضیح کاربرد | مثال عملی |
|---|---|---|---|
| Query | String | کوئری GAQL برای تعیین فیلدها، منبع داده، شرطها و مرتبسازی | SELECT campaign.id, campaign.name, metrics.clicks FROM campaign |
نمونه کوئری برای دریافت عملکرد کمپینها در ۷ روز اخیر:
SELECT campaign.id, campaign.name, campaign.status, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions, segments.dateFROM campaignWHERE segments.date DURING LAST_7_DAYSORDER BY metrics.cost_micros DESCپارامترهای فیلتر و محدودسازی خروجی
| نام پارامتر | نوع داده | توضیح کاربرد | مثال عملی |
|---|---|---|---|
| Return All | Boolean | اگر فعال باشد همه نتایج ممکن دریافت میشود و صفحهبندی بهصورت خودکار انجام میشود | true |
| Limit | Number | حداکثر تعداد آیتمهایی که دریافت میشود | 100 |
| Date Range | Options یا String | بازه زمانی گزارش، معمولاً با GAQL یا فیلترهای داخلی مشخص میشود | LAST_30_DAYS یا 2024-01-01 تا 2024-01-31 |
| Status | Options | فیلتر وضعیت آیتمها مثل فعال، متوقف یا حذفشده | ENABLED |
| Fields | Multi Options یا String | فیلدهایی که باید در خروجی برگردند | campaign.name، metrics.clicks، metrics.cost_micros |
| Page Size | Number | تعداد رکوردهای هر صفحه در درخواستهای صفحهبندیشده | 1000 |
پارامترهای رایج برای Campaign
| نام پارامتر | نوع داده | توضیح کاربرد | مثال عملی |
|---|---|---|---|
| Campaign ID | String یا Number | شناسه کمپین برای دریافت یا ویرایش یک کمپین مشخص | 123456789 |
| Name | String | نام کمپین، در عملیات ساخت یا ویرایش استفاده میشود | Search – Brand – Tehran |
| Status | Options | وضعیت کمپین | ENABLED، PAUSED، REMOVED |
| Advertising Channel Type | Options | نوع کانال تبلیغاتی | SEARCH، DISPLAY، SHOPPING، VIDEO، PERFORMANCE_MAX |
| Start Date | Date | تاریخ شروع کمپین | 2024-05-01 |
| End Date | Date | تاریخ پایان کمپین | 2024-05-31 |
| Budget | Number | بودجه کمپین، معمولاً در ساختار API با واحد micros یا منبع Campaign Budget مدیریت میشود | 50000000 برای 50 واحد پولی در cost_micros |
پارامترهای رایج برای Ad Group
| نام پارامتر | نوع داده | توضیح کاربرد | مثال عملی |
|---|---|---|---|
| Ad Group ID | String یا Number | شناسه گروه تبلیغاتی | 222333444 |
| Campaign ID | String یا Number | شناسه کمپینی که Ad Group داخل آن قرار دارد | 123456789 |
| Name | String | نام گروه تبلیغاتی | Keywords – CRM Software |
| Status | Options | وضعیت گروه تبلیغاتی | ENABLED یا PAUSED |
| CPC Bid | Number | مقدار پیشنهاد کلیک، معمولاً به micros در API تبدیل میشود | 2000000 برای 2 واحد پولی |
پارامترهای رایج برای Keyword یا Criterion
| نام پارامتر | نوع داده | توضیح کاربرد | مثال عملی |
|---|---|---|---|
| Criterion ID | String یا Number | شناسه معیار یا کلمه کلیدی | 555666777 |
| Keyword Text | String | متن کلمه کلیدی | خرید نرم افزار CRM |
| Match Type | Options | نوع تطبیق کلمه کلیدی | EXACT، PHRASE، BROAD |
| Negative | Boolean | مشخص میکند کلمه کلیدی منفی است یا نه | true |
| Status | Options | وضعیت کلمه کلیدی یا criterion | ENABLED، PAUSED، REMOVED |
نکات مهم هنگام پیکربندی
- Customer ID را بدون خط تیره وارد کنید.
- اگر از حساب Manager استفاده میکنید، Login Customer ID باید شناسه حساب Manager باشد.
- Developer Token در حالت Basic یا Standard باید اجازه دسترسی مناسب داشته باشد.
- بعضی عملیاتهای مدیریتی مثل Create یا Update ممکن است در نسخه نود شما وجود نداشته باشند یا نیازمند دسترسیهای بیشتر باشند.
- مقدار هزینه در Google Ads API معمولاً با فیلد cost_micros برمیگردد. برای تبدیل به واحد پولی عادی، مقدار را بر 1,000,000 تقسیم کنید.
- در GAQL، همه فیلدها را نمیتوان با هم ترکیب کرد. بعضی metricها، segmentها و resourceها ناسازگار هستند.
- تاریخها در Google Ads معمولاً با فرمت YYYY-MM-DD استفاده میشوند.
- برای گزارشهای حجیم بهتر است از Limit، فیلتر تاریخ و اجرای مرحلهای استفاده شود.
ورودیها و خروجیها
ورودیهای نود
نود Google Ads میتواند بدون ورودی خاص از نود قبلی اجرا شود، به شرطی که پارامترهای لازم مثل Customer ID و Query بهصورت ثابت در نود تنظیم شده باشند. همچنین میتوانید مقادیر را از نودهای قبلی با Expression دریافت کنید.
نمونه ورودی از نود قبلی:
{ "customerId": "9876543210", "dateRange": "LAST_7_DAYS", "minCost": 100000000}نمونه استفاده از Expression در فیلد Customer ID:
{{$json.customerId}}خروجیهای نود
خروجی نود بسته به Resource، Operation و Query متفاوت است. در حالت گزارشگیری، هر ردیف نتیجه معمولاً بهعنوان یک item در خروجی N8N برمیگردد.
نمونه خروجی برای گزارش کمپینها:
[ { "campaign": { "id": "123456789", "name": "Search - Brand", "status": "ENABLED" }, "metrics": { "impressions": "15420", "clicks": "823", "costMicros": "245000000", "conversions": 31.5 }, "segments": { "date": "2024-05-15" } }, { "campaign": { "id": "987654321", "name": "Search - Generic", "status": "PAUSED" }, "metrics": { "impressions": "8420", "clicks": "312", "costMicros": "189000000", "conversions": 8 }, "segments": { "date": "2024-05-15" } }]نمونه تبدیل cost_micros به هزینه واقعی
برای تبدیل cost_micros به عدد قابل فهم، میتوانید از نود Code استفاده کنید.
return items.map(item => { const costMicros = Number(item.json.metrics.costMicros || item.json.metrics.cost_micros || 0); item.json.cost = costMicros / 1000000; return item;});ساختار رایج دادههای خروجی
| بخش خروجی | توضیح | مثال |
|---|---|---|
| campaign | اطلاعات کمپین | campaign.id، campaign.name، campaign.status |
| adGroup | اطلاعات گروه تبلیغاتی | adGroup.id، adGroup.name |
| adGroupAd | اطلاعات تبلیغ | adGroupAd.ad.id، adGroupAd.status |
| metrics | شاخصهای عملکرد | clicks، impressions، costMicros، conversions |
| segments | بخشبندی دادهها | date، device، network |
| customer | اطلاعات حساب مشتری | customer.id، customer.descriptiveName |
نکات پیشرفته و ترفندها
استفاده از GAQL برای گزارشهای دقیقتر
به جای دریافت ساده لیست کمپینها، بهتر است برای گزارشگیری از GAQL استفاده کنید. GAQL کنترل بیشتری روی فیلدها، فیلترها، بازه زمانی و مرتبسازی میدهد.
نمونه گزارش کمپینها به تفکیک دستگاه:
SELECT campaign.id, campaign.name, segments.device, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversionsFROM campaignWHERE segments.date DURING LAST_30_DAYSORDER BY metrics.clicks DESCمحاسبه شاخصهای سفارشی با نود Code
Google Ads بسیاری از metricها را ارائه میدهد، اما گاهی بهتر است شاخصهای اختصاصی خودتان را محاسبه کنید؛ مثل CTR، CPC، CPA یا ROAS.
return items.map(item => { const metrics = item.json.metrics || {}; const clicks = Number(metrics.clicks || 0); const impressions = Number(metrics.impressions || 0); const conversions = Number(metrics.conversions || 0); const cost = Number(metrics.costMicros || metrics.cost_micros || 0) / 1000000; item.json.calculated = { cost, ctr: impressions > 0 ? clicks / impressions : 0, cpc: clicks > 0 ? cost / clicks : 0, cpa: conversions > 0 ? cost / conversions : null }; return item;});کنترل هزینه با شرطهای خودکار
میتوانید با نود IF شرایطی تعریف کنید که اگر هزینه کمپین از حد مشخص بیشتر شد و تبدیل کمتر از مقدار مورد انتظار بود، هشدار ارسال شود یا وضعیت کمپین برای بررسی به یک شیت منتقل شود.
- شرط اول: cost بیشتر از 100
- شرط دوم: conversions کمتر از 3
- خروجی true: ارسال پیام هشدار به Slack
- خروجی false: ادامه بدون اقدام
استفاده از Split In Batches برای حسابهای بزرگ
اگر چندین Customer ID یا تعداد زیادی کمپین دارید، بهتر است از Split In Batches استفاده کنید تا درخواستها مرحلهبهمرحله ارسال شوند و احتمال برخورد با محدودیتهای API کمتر شود.
ترکیب با Error Trigger
برای ورکفلوهای مهم، Error Trigger را فعال کنید تا اگر درخواست Google Ads با خطا مواجه شد، خطا در Slack، Email یا Telegram گزارش شود.
ذخیرهسازی تاریخچه برای تحلیل بلندمدت
اگر هر روز دادههای Google Ads را در دیتابیس ذخیره کنید، میتوانید تحلیلهای بلندمدت انجام دهید؛ مثلاً روند هزینه، تغییرات CPA، رشد کلیک یا افت کانورژن را بررسی کنید.
استفاده از Manager Account
برای آژانسهایی که چندین حساب تبلیغاتی را مدیریت میکنند، استفاده از Google Ads Manager Account بسیار مهم است. در این حالت، Login Customer ID معمولاً شناسه MCC است و Customer ID همان حسابی است که میخواهید دادههایش را دریافت کنید.
محدودیتها و خطاها
محدودیتهای رایج
- نود Google Ads به Developer Token معتبر نیاز دارد.
- بعضی دسترسیها فقط برای توکنهای تأییدشده در سطح مناسب فعال هستند.
- همه عملیاتهای Google Ads API لزوماً در نود آماده N8N وجود ندارند.
- برای عملیاتهای خیلی خاص ممکن است نیاز به استفاده از HTTP Request و Google Ads API بهصورت مستقیم باشد.
- GAQL محدودیتهایی در ترکیب فیلدها، segmentها و metricها دارد.
- حجم زیاد داده ممکن است باعث کندی ورکفلو یا برخورد با محدودیت نرخ درخواست شود.
- دادههای Google Ads ممکن است با تأخیر پردازش شوند و اعداد نهایی همان لحظه در دسترس نباشند.
- هزینهها در API معمولاً با micros برمیگردند و باید تبدیل شوند.
خطای DEVELOPER_TOKEN_NOT_APPROVED
این خطا زمانی رخ میدهد که Developer Token شما هنوز تأیید نشده یا سطح دسترسی کافی ندارد.
- وضعیت Developer Token را در Google Ads API Center بررسی کنید.
- برای دسترسی عملیاتی، توکن باید سطح مناسب داشته باشد.
- اگر در حالت تست هستید، مطمئن شوید از حسابهای مجاز تست استفاده میکنید.
خطای USER_PERMISSION_DENIED
این خطا نشان میدهد کاربری که OAuth را متصل کرده، دسترسی کافی به Customer ID موردنظر ندارد.
- بررسی کنید کاربر OAuth به حساب Google Ads دسترسی دارد.
- اگر از MCC استفاده میکنید، Login Customer ID را درست تنظیم کنید.
- Customer ID را با حسابهایی که کاربر به آنها دسترسی دارد تطبیق دهید.
خطای INVALID_CUSTOMER_ID
این خطا معمولاً به دلیل اشتباه در فرمت Customer ID رخ میدهد.
- Customer ID را بدون خط تیره وارد کنید.
- از واردکردن فاصله یا کاراکتر اضافی خودداری کنید.
- مطمئن شوید Customer ID مربوط به حساب Google Ads است، نه Google Cloud Project.
خطای GAQL Syntax Error
اگر کوئری GAQL اشتباه باشد یا فیلدهای ناسازگار انتخاب شده باشند، API خطای syntax یا validation برمیگرداند.
- نام فیلدها را با مستندات رسمی Google Ads API بررسی کنید.
- از ترکیب segmentها و metricهای ناسازگار خودداری کنید.
- کوئری را ابتدا ساده بنویسید و سپس مرحلهبهمرحله فیلدها را اضافه کنید.
خطای RESOURCE_EXHAUSTED یا Rate Limit
این خطا زمانی رخ میدهد که تعداد درخواستها زیاد باشد یا محدودیت API پر شده باشد.
- از Split In Batches استفاده کنید.
- بین درخواستها Wait قرار دهید.
- بازههای زمانی کوچکتر انتخاب کنید.
- فیلدهای غیرضروری را از Query حذف کنید.
خطای AUTHENTICATION_ERROR
این خطا به مشکل در OAuth، Client ID، Client Secret یا توکن دسترسی مربوط است.
- Credential را دوباره Connect کنید.
- Authorized Redirect URI را در Google Cloud Console بررسی کنید.
- مطمئن شوید Google Ads API در پروژه Google Cloud فعال است.
- در صورت تغییر دامنه N8N، Redirect URL را بهروزرسانی کنید.
ایده ها
- سیستم هشدار هوشمند بودجه: هر روز هزینه کمپینها بررسی شود و اگر هزینه از سقف مشخص بالاتر رفت، پیام هشدار به Slack یا Telegram ارسال شود.
- داشبورد اتوماتیک عملکرد تبلیغات: دادههای Google Ads هر شب وارد دیتابیس شوند و در Looker Studio یا Metabase نمایش داده شوند.
- گزارش هفتگی برای مشتریان آژانس: برای هر Customer ID گزارش جداگانه ساخته شود و بهصورت PDF یا ایمیل برای مشتری ارسال شود.
- شناسایی کمپینهای کمبازده: کمپینهایی که CPA بالا و conversion پایین دارند بهصورت خودکار در یک Google Sheet ثبت شوند.
- ترکیب Google Ads با CRM: هزینه تبلیغات با فروش واقعی CRM ترکیب شود تا ROAS واقعی برای هر کمپین محاسبه شود.
