@anjir/app-google-search-console
Version:
مدیریت و تحلیل وبسایت در Google Search Console
95 lines • 5.03 kB
JavaScript
"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