UNPKG

@anjir/app-google-search-console

Version:

مدیریت و تحلیل وب‌سایت در Google Search Console

95 lines 5.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.searchAnalytics = void 0; const tslib_1 = require("tslib"); const apps_framework_1 = require("@anjir/apps-framework"); const __1 = require("../../"); const common_1 = require("../common"); const dayjs_1 = tslib_1.__importDefault(require("dayjs")); exports.searchAnalytics = (0, apps_framework_1.createAction)({ auth: __1.googleSearchConsoleAuth, name: 'search_analytics', displayName: 'تحلیل جستجو', description: 'دریافت داده‌های ترافیک وب‌سایت از Google Search Console برای تحلیل عملکرد در نتایج جستجو', props: { siteUrl: common_1.commonProps.siteUrl, startDate: apps_framework_1.Property.DateTime({ displayName: 'تاریخ شروع', description: 'تاریخ شروع دوره زمانی مورد نظر برای درخواست (به فرمت YYYY-MM-DD)', required: true, defaultValue: new Date().toISOString().split('T')[0], }), endDate: apps_framework_1.Property.DateTime({ displayName: 'تاریخ پایان', description: 'تاریخ پایان دوره زمانی مورد نظر برای درخواست (به فرمت YYYY-MM-DD)', required: true, defaultValue: new Date().toISOString().split('T')[0], }), dimensions: apps_framework_1.Property.Array({ displayName: 'ابعاد', description: 'ابعادی برای گروه‌بندی نتایج. مثال: ["query", "page", "country", "device", "searchAppearance", "date"]', required: false, }), filters: apps_framework_1.Property.Array({ displayName: 'فیلترها', description: 'فیلترهای اختیاری برای اعمال به داده‌ها. فیلترها برای محدود کردن نتایج به زیرمجموعه خاص استفاده می‌شوند.', properties: { dimension: apps_framework_1.Property.ShortText({ displayName: 'Dimension', description: 'بُعدی برای فیلتر کردن (مثال: query, page, country, device)', required: true, }), operator: apps_framework_1.Property.ShortText({ displayName: 'عملگر', description: 'عملگر فیلتر برای اعمال (مثال: equals, contains)', required: true, }), expression: apps_framework_1.Property.ShortText({ displayName: 'عبارت', description: 'عبارتی برای مقایسه با dimension', required: true, }), }, required: false, }), aggregationType: apps_framework_1.Property.ShortText({ displayName: 'نوع تجمیع', description: 'نحوه تجمیع داده‌ها. گزینه‌ها شامل "auto", "byPage", "byProperty" می‌باشند.', required: false, }), rowLimit: apps_framework_1.Property.Number({ displayName: 'محدودیت ردیف', description: 'حداکثر تعداد ردیف‌هایی که بازگردانده می‌شود', required: false, }), startRow: apps_framework_1.Property.Number({ displayName: 'ردیف شروع', description: 'اولین ردیفی که بازگردانده می‌شود. از این پارامتر برای صفحه‌بندی نتایج استفاده کنید.', required: false, }), }, run(context) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const webmasters = (0, __1.createAuthClient)(context.auth.access_token); const filters = context.propsValue.filters; const res = yield webmasters.searchanalytics.query({ siteUrl: context.propsValue.siteUrl, requestBody: { startDate: (0, dayjs_1.default)(context.propsValue.startDate).format('YYYY-MM-DD'), endDate: (0, dayjs_1.default)(context.propsValue.endDate).format('YYYY-MM-DD'), dimensions: context.propsValue.dimensions, dimensionFilterGroups: filters.map((filter) => ({ dimension: filter.dimension, operator: filter.operator, expression: filter.expression, })), aggregationType: context.propsValue.aggregationType, rowLimit: context.propsValue.rowLimit, startRow: context.propsValue.startRow, }, }); return res; }); }, }); //# sourceMappingURL=search-analytics.js.map