Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var AdwordsUrls = {
- store: '/reports/adwords/{0}/ajax/{1}',
- chart: '/reports/adwords/{0}/csvChart/{1}',
- widget: '/widgets/addFromStat/{0}/{1}/adwords',
- csv: '/reports/adwords/{0}/csv/{1}'
- };
- Global.settings.adwords = function () {
- var currencyFormat = function (val, meta, rec, rowId, colId, store) {
- var st = store.store || store,
- currency, info;
- if (undefined == val) {
- return 'н/у';
- }
- currency = (st.tbarValues && st.tbarValues.currency && st.tbarValues.currency.length) ? st.tbarValues.currency : PHP_VARS.adwords.currency;
- info = PHP_VARS.currencies[currency];
- return Ext.String.format('{0}{1}{2}', info.prefix, number_format(val, 2), info.postfix);
- };
- return {
- showTbarTagsFilter: true,
- selection: {
- url: Ext.String.format('/reports/adwords/{0}/select_campaigns', PHP_VARS.clientId),
- params: {},
- model: 'model_select_adwords',
- fields: [
- {name: 'campaign_id', type: 'int'},
- {name: 'name', type: 'string'},
- {name: 'status', type: 'string'}
- ],
- idProperty: 'campaign_id',
- columns: [{
- text: __('Id кампании'),
- width: 120,
- filter: {
- type: 'multinumber',
- operators: ['in', 'not_in'],
- },
- sortable: true,
- dataIndex: 'campaign_id'
- }, {
- text: __('Кампания'),
- flex: 1,
- filter: 'multistring',
- sortable: true,
- dataIndex: 'name',
- renderer: rendererCampaignWithTags
- }, {
- text: __('Статус'),
- flex: 1,
- sortable: true,
- dataIndex: 'status',
- renderer: function (val) {
- var trans = {
- ENABLED: __('Активна'),
- PAUSED: __('Приостановлена'),
- REMOVED: __('Удалена')
- },
- value = trans[val];
- return value || val;
- },
- filter: {
- type: 'list',
- options: [
- ['ENABLED', __('Активна')],
- ['PAUSED', __('Приостановлена')],
- ['REMOVED', __('Удалена')]
- ]
- }
- }]
- },
- controlColumns: {
- orderGroups: [
- __('Измерения Google Adwords'),
- __('Метрики Google Adwords'),
- __('Метрики Аналитики'),
- __('Метрики Аналитических систем, CallTracking'),
- __('Пользовательские метрики')
- ],
- getGroupMetric: function (metric) {
- var addAdwordsMetrics = [
- 'keyword_first_page_cpc',
- 'keyword_top_of_page_cpc',
- 'keyword_first_position_cpc',
- 'keyword_quality_score',
- 'awsc:estimated_total_conversions',
- 'awsg:estimated_total_conversions',
- 'metric:Adwords_CPC',
- 'metric:Adwords_CTR',
- 'metric:Adwords_CTR_Top',
- 'metric:Adwords_CTR_Other',
- 'metric:Adwords_Avg_Position',
- 'metric:Adwords_Quality_Score',
- 'metric:Adwords_First_Page_CPC',
- 'metric:Adwords_Top_Of_Page_CPC',
- 'metric:Adwords_First_Position_CPC',
- 'metric:Adwords_Impression_Share_Search'
- ],
- addAnalyticsMetrics = [
- 'metric:Pageviews_Per_Session',
- 'metric:Avg_Session_Duration',
- 'metric:BR_total'
- ];
- if (0 == metric.indexOf('aw:') || Ext.Array.contains(addAdwordsMetrics, metric)) {
- return __('Метрики Google Adwords');
- } else if (0 == metric.indexOf('g:') || Ext.Array.contains(addAnalyticsMetrics, metric)) {
- return __('Метрики Аналитики');
- } else if (0 == metric.indexOf('metric:')) {
- return __('Пользовательские метрики');
- } else if (0 == metric.indexOf('orders:')) {
- return __('Метрики Аналитических систем, CallTracking');
- }
- return __('Измерения Google Adwords');
- }
- },
- excludeColumns: [
- 'aw:avg_position',
- 'aw:quality_score',
- 'aw:first_page_cpc',
- 'aw:top_of_page_cpc',
- 'aw:first_position_cpc'
- ],
- tabs: {
- campaigns: {
- title_tab: __('Кампании'),
- title_chart: __('Диаграмма метрик кампаний'),
- urlStore: Ext.String.format(AdwordsUrls.store, PHP_VARS.clientId, 'campaigns'),
- urlChart: Ext.String.format(AdwordsUrls.chart, PHP_VARS.clientId, 'campaigns'),
- urlCsv: Ext.String.format(AdwordsUrls.csv, PHP_VARS.clientId, 'campaigns'),
- urlWidget: Ext.String.format(AdwordsUrls.widget, PHP_VARS.clientId, 'campaigns'),
- showSeries: [
- 'aw:sum',
- 'aw:clicks',
- 'g:transactions',
- 'metric:ДОЛЯ_ПОКАЗОВ_СПЕЦ'
- ],
- showColumns: [
- 'campaign_id',
- 'campaign_name',
- 'aw:sum',
- 'aw:clicks',
- 'aw:shows',
- //'aw:converted_clicks',
- //'awsc:estimated_total_conversions',
- 'g:transactions',
- 'metric:ДОЛЯ_ПОКАЗОВ_СПЕЦ',
- 'metric:CTR_поиск_спец'
- ],
- fields: [
- {name: 'fakeId', type: 'string'},
- {name: 'date', type: 'date'},
- {name: 'week', type: 'string'},
- {name: 'month', type: 'string'},
- {name: 'year', type: 'int'},
- {name: 'campaign_id', type: 'int'},
- {name: 'campaign_name', type: 'string'},
- {name: 'campaign_status', type: 'string'}
- ],
- columns: [{
- text: __('Дата'),
- width: 90,
- sortable: true,
- groupable: false,
- dataIndex: 'date',
- renderer: rendererDateColumn
- }, {
- text: __('Id кампании'),
- width: 115,
- align: 'right',
- filter: {
- type: 'multinumber',
- operators: ['in', 'not_in'],
- needCreateStore: {}
- },
- sortable: true,
- groupable: false,
- dataIndex: 'campaign_id'
- }, {
- text: __('Кампания'),
- width: 300,
- filter: {
- type: 'multistring',
- needCreateStore: {}
- },
- sortable: true,
- hideable: false,
- groupable: false,
- dataIndex: 'campaign_name',
- renderer: rendererCampaignWithTags
- }, {
- text: __('Статус'),
- flex: 0.5,
- sortable: true,
- groupable: false,
- dataIndex: 'campaign_status',
- renderer: function (val) {
- var trans = {
- ENABLED: __('Активна'),
- PAUSED: __('Приостановлена'),
- REMOVED: __('Удалена')
- },
- value = trans[val];
- return value || val;
- },
- filter: {
- type: 'list',
- options: [
- ['ENABLED', __('Активна')],
- ['PAUSED', __('Приостановлена')],
- ['REMOVED', __('Удалена')]
- ]
- }
- }, {
- text: __('Стратегия К50'),
- flex: 0.7,
- filter: filterStrategy,
- sortable: true,
- groupable: false,
- dataIndex: 'strategy_id',
- renderer: rendererStrategy
- }],
- store_config: {
- fillParams: function (params) {
- var store = this,
- tabs = store.my_grid.getTabs(),
- inclTags = tabs.down('#id_tags_include').getValue(),
- exclTags = tabs.down('#id_tags_exclude').getValue(),
- filter = {};
- if (inclTags.length) {
- filter.in = k50Stat.Tags.findIds(inclTags, 'adwords', 'campaigns');
- }
- if (exclTags.length) {
- filter.not_in = k50Stat.Tags.findIds(exclTags, 'adwords', 'campaigns');
- }
- if (Ext.Object.getKeys(filter).length) {
- params.campaign_id = Ext.JSON.encode(filter);
- } else {
- delete params.campaign_id;
- }
- return params;
- },
- isValidParams: function (params) {
- return !!(params && params.grouping && params.grouping.length);
- }
- },
- forceSelectCampaign: false
- },
- groups: {
- title_tab: __('Группы объявлений'),
- title_chart: __('Диаграмма метрик групп объявлений выбранных кампаний'),
- urlStore: Ext.String.format(AdwordsUrls.store, PHP_VARS.clientId, 'groups'),
- urlChart: Ext.String.format(AdwordsUrls.chart, PHP_VARS.clientId, 'groups'),
- urlCsv: Ext.String.format(AdwordsUrls.csv, PHP_VARS.clientId, 'groups'),
- urlWidget: Ext.String.format(AdwordsUrls.widget, PHP_VARS.clientId, 'groups'),
- showSeries: [
- 'aw:sum',
- 'aw:clicks',
- 'g:transactions',
- 'metric:ДОЛЯ_ПОКАЗОВ_СПЕЦ'
- ],
- showColumns: [
- 'group_id',
- 'group_name',
- 'group_active',
- 'aw:sum',
- 'aw:clicks',
- 'aw:shows',
- //'aw:converted_clicks',
- //'awsg:estimated_total_conversions',
- 'g:transactions',
- 'metric:ДОЛЯ_ПОКАЗОВ_СПЕЦ',
- 'metric:CTR_поиск_спец'
- ],
- fields: [
- {name: 'fakeId', type: 'string'},
- {name: 'date', type: 'date'},
- {name: 'week', type: 'string'},
- {name: 'month', type: 'string'},
- {name: 'year', type: 'int'},
- {name: 'group_id', type: 'int'},
- {name: 'group_name', type: 'string'},
- {name: 'group_status', type: 'string'},
- {name: 'group_bid', type: 'number'},
- //{name: 'group_active', type: 'boolean'},
- {name: 'campaign_id', type: 'int'},
- {name: 'campaign_name', type: 'string'}
- ],
- columns: [{
- text: __('Дата'),
- width: 90,
- sortable: true,
- groupable: false,
- dataIndex: 'date',
- renderer: rendererDateColumn
- }, {
- text: __('Id группы'),
- width: 130,
- align: 'right',
- filter: {
- type: 'multinumber',
- operators: ['in', 'not_in'],
- needCreateStore: {}
- },
- sortable: true,
- dataIndex: 'group_id'
- }, {
- text: __('Id кампании'),
- width: 115,
- align: 'right',
- sortable: true,
- groupable: false,
- dataIndex: 'campaign_id'
- }, {
- text: __('Кампания'),
- width: 300,
- sortable: true,
- groupable: false,
- dataIndex: 'campaign_name',
- renderer: rendererCampaignWithTags
- }, {
- text: __('Название группы'),
- width: 300,
- filter: 'multistring',
- sortable: true,
- hideable: false,
- dataIndex: 'group_name'
- }, {
- text: __('Статус группы'),
- width: 50,
- sortable: true,
- dataIndex: 'group_status',
- renderer: function (val) {
- var trans = {
- ENABLED: __('Активна'),
- PAUSED: __('Приостановлена'),
- REMOVED: __('Удалена')
- },
- value = trans[val];
- return value || val;
- },
- filter: {
- type: 'list',
- options: [
- ['ENABLED', __('Активна')],
- ['PAUSED', __('Приостановлена')],
- ['REMOVED', __('Удалена')]
- ]
- }
- }, {
- text: __('Ставка для группы'),
- flex: 1,
- align: 'right',
- filter: true,
- sortable: true,
- groupable: false,
- dataIndex: 'group_bid',
- renderer: currencyFormat
- }],
- grid_config: {
- viewConfig: {
- emptyText: __('Пусто... Добавьте кампании (слева)'),
- deferEmptyText: false
- }
- }
- },
- ads: {
- title_tab: __('Объявления'),
- title_chart: __('Диаграмма метрик объявлений выбранных кампаний'),
- urlStore: Ext.String.format(AdwordsUrls.store, PHP_VARS.clientId, 'ads'),
- urlChart: Ext.String.format(AdwordsUrls.chart, PHP_VARS.clientId, 'ads'),
- urlCsv: Ext.String.format(AdwordsUrls.csv, PHP_VARS.clientId, 'ads'),
- urlWidget: Ext.String.format(AdwordsUrls.widget, PHP_VARS.clientId, 'ads'),
- showSeries: [
- 'aw:sum',
- 'aw:clicks',
- 'g:transactions',
- 'metric:ДОЛЯ_ПОКАЗОВ_СПЕЦ'
- ],
- showColumns: [
- 'ad_id',
- 'ad_type',
- 'ad_status',
- 'aw:sum',
- 'aw:clicks',
- 'aw:shows',
- 'g:transactions',
- 'metric:ДОЛЯ_ПОКАЗОВ_СПЕЦ',
- 'metric:CTR_поиск_спец'
- ],
- fields: [
- {name: 'fakeId', type: 'string'},
- {name: 'date', type: 'date'},
- {name: 'week', type: 'string'},
- {name: 'month', type: 'string'},
- {name: 'year', type: 'int'},
- {name: 'ad_id', type: 'int'},
- {name: 'ad_type', type: 'string'},
- {name: 'ad_k50_type', type: 'string'},
- {name: 'ad_k50_subtype', type: 'string'},
- {name: 'ad_status', type: 'string'},
- {name: 'approval_status', type: 'string'},
- {name: 'approval_status', type: 'string'},
- {name: 'ad_url', type: 'string'},
- {name: 'display_url', type: 'string'},
- {name: 'path1', type: 'string'},
- {name: 'path2', type: 'string'},
- {name: 'headline', type: 'string'},
- {name: 'headline_part1', type: 'string'},
- {name: 'headline_part2', type: 'string'},
- {name: 'short_headline', type: 'string'},
- {name: 'long_headline', type: 'string'},
- {name: 'description', type: 'string'},
- {name: 'description1', type: 'string'},
- {name: 'description2', type: 'string'},
- {name: 'device_preference_int', type: 'int'},
- {name: 'tracking_url_template', type: 'string'},
- {name: 'campaign_id', type: 'int'},
- {name: 'campaign_name', type: 'string'},
- {name: 'group_id', type: 'int'},
- {name: 'group_name', type: 'string'}
- ],
- columns: [{
- text: __('Дата'),
- width: 90,
- sortable: true,
- groupable: false,
- dataIndex: 'date',
- renderer: rendererDateColumn
- }, {
- text: __('Id объявления'),
- width: 100,
- align: 'right',
- filter: {
- type: 'multinumber',
- operators: ['in', 'not_in'],
- needCreateStore: {}
- },
- sortable: true,
- hideable: false,
- groupable: false,
- dataIndex: 'ad_id'
- }, {
- text: __('Adwords тип объявления'),
- width: 300,
- sortable: true,
- hideable: false,
- groupable: false,
- dataIndex: 'ad_type',
- filter: {
- type: 'list',
- options: [
- ['EXPANDED_TEXT_AD', 'EXPANDED_TEXT_AD'],
- ['TEXT_AD', 'TEXT_AD'],
- ['DYNAMIC_SEARCH_AD', 'DYNAMIC_SEARCH_AD'],
- ['CALL_ONLY_AD', 'CALL_ONLY_AD'],
- ['RESPONSIVE_DISPLAY_AD', 'RESPONSIVE_DISPLAY_AD'],
- ['IMAGE_AD', 'IMAGE_AD'],
- ['TEMPLATE_AD', 'TEMPLATE_AD'],
- ['THIRD_PARTY_REDIRECT_AD', 'THIRD_PARTY_REDIRECT_AD'],
- ]
- }
- }, {
- text: __('K50 тип объявления'),
- width: 300,
- sortable: true,
- groupable: false,
- dataIndex: 'ad_k50_type',
- filter: {
- type: 'list',
- options: [
- ['DEPRECATED_K50_AD_TYPE', __('Устаревший формат объявления')],
- ['IMAGE_K50_AD_TYPE', __('Графическое объявление')],
- ['PRODUCT_K50_AD_TYPE', __('Товарное объявление')],
- ['TEXT_K50_AD_TYPE', __('Текстовое объявление')],
- ['RICH_MEDIA_K50_AD_TYPE', __('Объявления RichMedia')],
- ['DYNAMIC_SEARCH_K50_AD_TYPE', __('Динамическое поисковое объявление')],
- ['CALL_ONLY_K50_AD_TYPE', __('Только номер телефона')],
- ['RESPONSIVE_DISPLAY_K50_AD_TYPE', __('Адаптивное объявление')],
- ['VIDEO_K50_AD_TYPE', __('Видеообъявления')],
- ['LIGHTBOX_K50_AD_TYPE', __('Лайтбокс')],
- ['MEDIA_K50_AD_TYPE', __('Медийное объявление')],
- ['GMAIL_K50_AD_TYPE', __('Реклама Gmail')],
- ['APPLICATIONS_K50_AD_TYPE', __('Реклама приложений')],
- ['TEMPLATE_K50_AD_TYPE', __('Шаблонное объявление')],
- ['UNKNOWN_K50_AD_TYPE', __('Неизвестный формат объявления')],
- ]
- },
- renderer: function (val) {
- var trans = {
- DEPRECATED_K50_AD_TYPE: __('Устаревший формат объявления'),
- IMAGE_K50_AD_TYPE: __('Графическое объявление'),
- PRODUCT_K50_AD_TYPE: __('Товарное объявление'),
- TEXT_K50_AD_TYPE: __('Текстовое объявление'),
- RICH_MEDIA_K50_AD_TYPE: __('Объявления RichMedia'),
- DYNAMIC_SEARCH_K50_AD_TYPE: __('Динамическое поисковое объявление'),
- CALL_ONLY_K50_AD_TYPE: __('Только номер телефона'),
- RESPONSIVE_DISPLAY_K50_AD_TYPE: __('Адаптивное объявление'),
- VIDEO_K50_AD_TYPE: __('Видеообъявления'),
- LIGHTBOX_K50_AD_TYPE: __('Лайтбокс'),
- MEDIA_K50_AD_TYPE: __('Медийное объявление'),
- GMAIL_K50_AD_TYPE: __('Реклама Gmail'),
- APPLICATIONS_K50_AD_TYPE: __('Реклама приложений'),
- TEMPLATE_K50_AD_TYPE: __('Шаблонное объявление'),
- UNKNOWN_K50_AD_TYPE: __('Неизвестный формат объявления'),
- },
- value = trans[val];
- return value || val;
- }
- }, {
- text: __('Подтип шаблонного объявления'),
- width: 300,
- sortable: true,
- groupable: false,
- dataIndex: 'ad_k50_subtype',
- filter: {
- type: 'list',
- options: [
- ['IN_STREAM_K50_AD_SUBTYPE', __('Объявление In-stream')],
- ['TRUE_VIEW_IN_SEARCH_K50_AD_SUBTYPE', 'TrueView in-search'],
- ['YOUTUBE_PROMOTED_VIDEOS_ON_GOOGLE_SEARCH_K50_AD_SUBTYPE', __('Продвижение youtube роликов на поиске Google')],
- ['IN_VIDEO_K50_AD_SUBTYPE', __('Объявление In-video')],
- ['GMAIL_IMAGE_K50_AD_SUBTYPE', __('Шаблон для Gmail: изображение')],
- ['GMAIL_MULTI_PRODUCT_K50_AD_SUBTYPE', __('Шаблон для Gmail: несколько товаров')],
- ['GMAIL_SINGLE_PROMOTION_K50_AD_SUBTYPE', __('Шаблон для Gmail: однократное объявление')],
- ['APP_ENGAGEMENT_K50_AD_SUBTYPE', __('Объявление, ориентированное на взаимодействие с мобильным приложением')],
- ['APP_INSTALL_K50_AD_SUBTYPE', __('Объявление, ориентированное на установку приложения')],
- ['APP_REENGAGEMENT_K50_AD_SUBTYPE', __('Объявление, ориентированное на повторное взаимодействие с мобильным приложением')],
- ['APP_INSTALL_CUSTOM_HTML5_K50_AD_SUBTYPE', __('HTML5 Объявление, ориентированное на установку приложения')],
- ['APP_IMAGE_ENGAGEMENT_K50_AD_SUBTYPE', __('Графическое объявление, ориентированное на взаимодействие с мобильным приложением')],
- ['APP_IMAGE_INSTALL_K50_AD_SUBTYPE', __('Графическое объявление, ориентированное на установку приложения')],
- ['APP_VIDEO_INSTALL_K50_AD_SUBTYPE', __('Видеообъявление с функцией установки приложения')],
- ]
- },
- renderer: function (val) {
- var trans = {
- IN_STREAM_K50_AD_SUBTYPE: __('Объявление In-stream'),
- TRUE_VIEW_IN_SEARCH_K50_AD_SUBTYPE: 'TrueView in-search',
- YOUTUBE_PROMOTED_VIDEOS_ON_GOOGLE_SEARCH_K50_AD_SUBTYPE: __('Продвижение youtube роликов на поиске Google'),
- IN_VIDEO_K50_AD_SUBTYPE: __('Объявление In-video'),
- GMAIL_IMAGE_K50_AD_SUBTYPE: __('Шаблон для Gmail: изображение'),
- GMAIL_MULTI_PRODUCT_K50_AD_SUBTYPE: __('Шаблон для Gmail: несколько товаров'),
- GMAIL_SINGLE_PROMOTION_K50_AD_SUBTYPE: __('Шаблон для Gmail: однократное объявление'),
- APP_ENGAGEMENT_K50_AD_SUBTYPE: __('Объявление, ориентированное на взаимодействие с мобильным приложением'),
- APP_INSTALL_K50_AD_SUBTYPE: __('Объявление, ориентированное на установку приложения'),
- APP_REENGAGEMENT_K50_AD_SUBTYPE: __('Объявление, ориентированное на повторное взаимодействие с мобильным приложением'),
- APP_INSTALL_CUSTOM_HTML5_K50_AD_SUBTYPE: __('HTML5 Объявление, ориентированное на установку приложения'),
- APP_IMAGE_ENGAGEMENT_K50_AD_SUBTYPE: __('Графическое объявление, ориентированное на взаимодействие с мобильным приложением'),
- APP_IMAGE_INSTALL_K50_AD_SUBTYPE: __('Графическое объявление, ориентированное на установку приложения'),
- APP_VIDEO_INSTALL_K50_AD_SUBTYPE: __('Видеообъявление с функцией установки приложения'),
- },
- value = trans[val],
- templateId;
- if (!value && val.length && ~val.indexOf('TEMPLATE_K50_AD_SUBTYPE_')) {
- templateId = val.replace('TEMPLATE_K50_AD_SUBTYPE_', '');
- value = 'ID: ' + templateId;
- }
- return value || val;
- }
- }, {
- text: __('Id кампании'),
- width: 115,
- align: 'right',
- sortable: true,
- groupable: false,
- dataIndex: 'campaign_id'
- }, {
- text: __('Кампания'),
- width: 300,
- sortable: true,
- groupable: true,
- dataIndex: 'campaign_name',
- renderer: rendererCampaignWithTags
- }, {
- text: __('Id группы'),
- width: 130,
- align: 'right',
- filter: {
- type: 'multinumber',
- operators: ['in', 'not_in'],
- needCreateStore: {}
- },
- sortable: true,
- groupable: false,
- dataIndex: 'group_id'
- }, {
- text: __('Наименование группы'),
- width: 300,
- filter: 'multistring',
- sortable: true,
- groupable: true,
- dataIndex: 'group_name'
- }, {
- text: __('Статус объявления'),
- flex: 1,
- sortable: true,
- groupable: false,
- dataIndex: 'ad_status',
- renderer: function (val) {
- var trans = {
- ENABLED: __('Активно'),
- PAUSED: __('Приостановлено'),
- DISABLED: __('Отключено')
- },
- value = trans[val];
- return value || val;
- },
- filter: {
- type: 'list',
- options: [
- ['ENABLED', __('Активно')],
- ['PAUSED', __('Приостановлено')],
- ['DISABLED', __('Отключено')]
- ]
- }
- }, {
- text: __('Статус одобрения'),
- flex: 1,
- sortable: true,
- groupable: false,
- dataIndex: 'approval_status',
- renderer: function (val) {
- var trans = {
- APPROVED: __('Одобрено'),
- DISAPPROVED: __('Отклонено'),
- FAMILY_SAFE: __('Одобрено - family safe'),
- NON_FAMILY_SAFE: __('Одобрено - non-family safe'),
- PORN: __('Одобрено - контент для взрослых'),
- UNCHECKED: __('Ожидает модерации'),
- UNKNOWN: __('- нет данных -')
- },
- value = trans[val];
- return value || val;
- },
- filter: {
- type: 'list',
- options: [
- ['APPROVED', __('Одобрено')],
- ['DISAPPROVED', __('Отклонено')],
- ['FAMILY_SAFE', __('Одобрено - family safe')],
- ['NON_FAMILY_SAFE', __('Одобрено - non-family safe')],
- ['PORN', __('Одобрено - контент для взрослых')],
- ['UNCHECKED', __('Ожидает модерации')],
- ['UNKNOWN', __('- нет данных -')]
- ]
- }
- }, {
- text: __('URL объявления'),
- flex: 1,
- filter: 'multistring',
- sortable: true,
- dataIndex: 'ad_url'
- }, {
- text: __('Отображаемый URL'),
- flex: 1,
- filter: 'multistring',
- sortable: true,
- dataIndex: 'display_url'
- }, {
- text: __('Путь 1'),
- flex: 1,
- filter: 'multistring',
- sortable: true,
- dataIndex: 'path1'
- }, {
- text: __('Путь 2'),
- flex: 1,
- filter: 'multistring',
- sortable: true,
- dataIndex: 'path2'
- }, {
- text: __('Заголовок объявления'),
- flex: 1,
- filter: 'multistring',
- sortable: true,
- dataIndex: 'headline'
- }, {
- text: __('Заголовок 1'),
- flex: 1,
- filter: 'multistring',
- sortable: true,
- dataIndex: 'headline_part1'
- }, {
- text: __('Заголовок 2'),
- flex: 1,
- filter: 'multistring',
- sortable: true,
- dataIndex: 'headline_part2'
- }, {
- text: __('Краткий заголовок'),
- flex: 1,
- filter: 'multistring',
- sortable: true,
- dataIndex: 'short_headline'
- }, {
- text: __('Длинный заголовок'),
- flex: 1,
- filter: 'multistring',
- sortable: true,
- dataIndex: 'long_headline'
- }, {
- text: __('Описание'),
- flex: 1,
- filter: 'multistring',
- sortable: true,
- dataIndex: 'description'
- }, {
- text: __('Строка описания 1'),
- flex: 1,
- filter: 'multistring',
- sortable: true,
- dataIndex: 'description1'
- }, {
- text: __('Строка описания 2'),
- flex: 1,
- filter: 'multistring',
- sortable: true,
- dataIndex: 'description2'
- }, {
- text: __('Шаблон отслеживания'),
- flex: 1,
- filter: 'multistring',
- sortable: true,
- dataIndex: 'tracking_url_template'
- }, {
- text: __('Адаптировано для моб. устройств'),
- flex: 1,
- sortable: true,
- dataIndex: 'device_preference_int',
- renderer: function (val) {
- var trans = {
- 0: __('не адаптировано'),
- 30001: __('адаптировано'),
- },
- value = trans[val];
- return value || val;
- },
- filter: {
- type: 'list',
- options: [
- [0, __('не адаптировано')],
- [30001, __('адаптировано')],
- ]
- }
- }],
- grid_config: {
- viewConfig: {
- emptyText: __('Пусто... Добавьте кампании (слева)'),
- deferEmptyText: false
- }
- }
- },
- keywords: {
- title_tab: __('Ключи'),
- title_chart: __('Диаграмма метрик ключей выбранных кампаний'),
- urlStore: Ext.String.format(AdwordsUrls.store, PHP_VARS.clientId, 'keywords'),
- urlChart: Ext.String.format(AdwordsUrls.chart, PHP_VARS.clientId, 'keywords'),
- urlCsv: Ext.String.format(AdwordsUrls.csv, PHP_VARS.clientId, 'keywords'),
- urlWidget: Ext.String.format(AdwordsUrls.widget, PHP_VARS.clientId, 'keywords'),
- showSeries: [
- 'aw:sum',
- 'aw:clicks',
- 'g:transactions',
- 'metric:ДОЛЯ_ПОКАЗОВ_СПЕЦ'
- ],
- showColumns: [
- 'keyword_id',
- 'keyword_text_view',
- 'keyword_bid',
- 'aw:sum',
- 'aw:clicks',
- 'aw:shows',
- //'aw:converted_clicks',
- 'g:transactions',
- 'metric:ДОЛЯ_ПОКАЗОВ_СПЕЦ',
- 'metric:CTR_поиск_спец'
- ],
- fields: [
- {name: 'fakeId', type: 'string'},
- {name: 'date', type: 'date'},
- {name: 'week', type: 'string'},
- {name: 'month', type: 'string'},
- {name: 'year', type: 'int'},
- {name: 'k50id', type: 'int'},
- {name: 'keyword_id', type: 'int'},
- {name: 'keyword_text_view', type: 'string'},
- {name: 'keyword_bid', type: 'number'},
- {name: 'keyword_status', type: 'string'},
- {name: 'match_type', type: 'string'},
- {name: 'destination_url', type: 'string'},
- {name: 'keyword_first_page_cpc', type: 'number'},
- {name: 'keyword_top_of_page_cpc', type: 'number'},
- {name: 'keyword_first_position_cpc', type: 'number'},
- {name: 'keyword_quality_score', type: 'int'},
- {name: 'campaign_id', type: 'int'},
- {name: 'campaign_name', type: 'string'},
- {name: 'group_id', type: 'int'},
- {name: 'group_name', type: 'string'},
- {name: 'group_bid', type: 'number'}
- ],
- columns: [{
- text: __('Дата'),
- width: 90,
- sortable: true,
- groupable: false,
- dataIndex: 'date',
- renderer: rendererDateColumn
- }, {
- text: __('Id ключа'),
- width: 95,
- align: 'right',
- filter: {
- type: 'multinumber',
- operators: ['in', 'not_in'],
- needCreateStore: {}
- },
- sortable: true,
- groupable: false,
- dataIndex: 'keyword_id'
- }, {
- text: 'k50id',
- width: 60,
- align: 'right',
- filter: {
- type: 'multinumber',
- operators: ['in', 'not_in'],
- needCreateStore: {}
- },
- sortable: true,
- groupable: false,
- dataIndex: 'k50id'
- }, {
- text: __('Id кампании'),
- width: 115,
- align: 'right',
- sortable: true,
- groupable: false,
- dataIndex: 'campaign_id'
- }, {
- text: __('Кампания'),
- width: 300,
- sortable: true,
- groupable: true,
- dataIndex: 'campaign_name',
- renderer: rendererCampaignWithTags
- }, {
- text: __('Id группы'),
- width: 130,
- align: 'right',
- filter: {
- type: 'multinumber',
- operators: ['in', 'not_in'],
- needCreateStore: {}
- },
- sortable: true,
- groupable: false,
- dataIndex: 'group_id'
- }, {
- text: __('Наименование группы'),
- width: 300,
- filter: 'multistring',
- sortable: true,
- groupable: true,
- dataIndex: 'group_name'
- }, {
- text: __('Ставка для группы'),
- flex: 1,
- align: 'right',
- filter: true,
- sortable: true,
- groupable: false,
- dataIndex: 'group_bid',
- renderer: currencyFormat
- }, {
- text: __('Ключевое слово'),
- width: 300,
- filter: 'multistring',
- sortable: true,
- hideable: false,
- groupable: false,
- dataIndex: 'keyword_text_view'
- }, {
- text: 'URL',
- width: 300,
- filter: 'multistring',
- sortable: true,
- groupable: false,
- dataIndex: 'destination_url'
- }, {
- text: __('Тип соответствия'),
- width: 300,
- sortable: true,
- groupable: false,
- dataIndex: 'match_type',
- filter: {
- type: 'list',
- options: [
- ['BROAD', __('Широкое')],
- ['PHRASE', __('Фразовое')],
- ['EXACT', __('Точное')]
- ]
- },
- renderer: function (val) {
- var trans = {
- BROAD: __('Широкое'),
- PHRASE: __('Фразовое'),
- EXACT: __('Точное')
- },
- value = trans[val];
- return value || val;
- }
- }, {
- text: __('Ставка ключа'),
- flex: 1,
- align: 'right',
- filter: true,
- sortable: true,
- groupable: false,
- dataIndex: 'keyword_bid',
- renderer: currencyFormat
- }, {
- text: __('Ставка для первой страницы'),
- flex: 1,
- align: 'right',
- filter: true,
- sortable: true,
- groupable: false,
- dataIndex: 'keyword_first_page_cpc',
- renderer: currencyFormat
- }, {
- text: __('Ставка для показа вверху страницы'),
- flex: 1,
- align: 'right',
- filter: true,
- sortable: true,
- groupable: false,
- dataIndex: 'keyword_top_of_page_cpc',
- renderer: currencyFormat
- }, {
- text: __('Ставка 1го места вверху страницы'),
- flex: 1,
- align: 'right',
- filter: true,
- sortable: true,
- groupable: false,
- dataIndex: 'keyword_first_position_cpc',
- renderer: currencyFormat
- }, {
- text: __('Показатель Качества'),
- flex: 1,
- align: 'right',
- filter: true,
- sortable: true,
- groupable: false,
- dataIndex: 'keyword_quality_score'
- }, {
- text: __('Статус ключа'),
- flex: 1,
- //align: 'right',
- sortable: true,
- groupable: false,
- dataIndex: 'keyword_status',
- renderer: function (val) {
- var trans = {
- ENABLED: __('Активен'),
- PAUSED: __('Приостановлен'),
- REMOVED: __('Удален')
- },
- value = trans[val];
- return value || val;
- },
- filter: {
- type: 'list',
- options: [
- ['ENABLED', __('Активен')],
- ['PAUSED', __('Приостановлен')],
- ['REMOVED', __('Удален')]
- ]
- }
- }],
- grid_config: {
- viewConfig: {
- emptyText: __('Пусто... Добавьте кампании (слева)'),
- deferEmptyText: false
- }
- }
- }
- }
- };
- }();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement