рейтинг топ-9 по версии КП
Следить за своим списком дел или распорядком дня на бумажном листке уже не очень актуально, и тем более не слишком удобно. Решением может быть цифровое средство отслеживания ваших задач и планов, но как каким образом найти именно то, которое будет полностью отвечать вашими потребностями?
К счастью, множество приложений для планирования задач предлагают полноценные функции, которые зачастую бесплатны и доступны для устройств iOS и Android. Мы подобрали 9 самых оптимальных и удобных приложений для планирования распорядка дня и отслеживания задач, которые доступны для скачивания в 2022 году.
Рейтинг топ-9 по версии КП
1. Any.do
Any.do. Фото: any.doAny.do — отличное приложение с простым и понятным интерфейсом, которое обеспечивает быстрое и простое управление задачами и даже интегрируется с приложением iOS Reminders. Таким образом, вы можете сообщить Siri напоминание, и оно появится в Any.do. Однако синхронизация работает только в одном направлении: удаление задач из Any. do не приведет к его удалению из приложения напоминаний для iPhone, но если вы используете Any.do в качестве основного приложения, это не будет проблемой. Есть также дополнительные удобные функции, такие как автоматическая сортировка списков продуктов и «планировка дня», чтобы помочь расставить приоритеты для задач.
Синхронизация между ПК, планшетом и телефоном — еще одно приятное дополнение к поддержке iOS и Android. За переход на премиум-версию требуется ежемесячная плата в размере 3,50$ для Android и 5$ для iOS, но она расширяет возможности приложения благодаря неограниченным повторяющимся задачам, цветным меткам и флажкам, напоминаниям о местоположении и 100 ГБ для хранения файлов.
Плюсы и минусы
Хорошая интеграция со смартфоном, кросс-платформенность
Цветовая палитра только в платной версии
Google Play
App Store
2. Google Tasks
Google Tasks. Фото: GoogleGoogle Tasks такой же простой, как и список дел на бумаге. Это потрясающе минималистичное и хорошо разработанное приложение, которое делает именно то, что должно, и не более того. Вы можете создавать задачи, составлять их описание, а затем добавлять подзадачи. Они появляются в маркированном списке, и можно пометить каждую подзадачу завершенной, когда придет время. Каждая задача находится под списком, и количество списков, которые вы можете создать, не ограничено.
Вы можете иметь список покупок, список дел и многое другое. В обмен на простоту Google Tasks теряем некоторые более глубокие теги и организационные функции, которые вы можете найти в других приложениях. Задачи Google доступны на iOS и Android. Если вы используете Gmail в Интернете, вы можете увидеть обзор своих задач в правом краю интерфейса, рядом с приложениями Календарь и Google Keep.
Плюсы и минусы
Бесплатность, простой интерфейс
Ограниченные возможности детализации и планирования
Google Play
App Store
3.
TodoistTodoist. Фото: todoist.com/ru/Если вам нужно специальное приложение со списком дел, то к Todoist стоит присмотреться. Это одно из крупнейших приложений с огромным количеством пользователей и проверенной годами эффективностью. Вы можете зарегистрироваться с помощью своего профиля в Facebook или учетной записи Google, и начать работу так же просто, как ввести свою первую задачу и нажать «Отправить».
Можно установить крайний срок выполнения, а также назначить приоритет задаче, или положить ее в группу схожих задач. Выполнение включает в себя установку галочки рядом с задачей, и есть определенное удовлетворение от этого действия и его анимации. Настройка напоминаний о задачах, дополнительные активные проекты, комментарии к задачам и автоматическое резервное копирование — все это дополнительные функции, а подписка на Todoist Premium будет приносить вам около 29$ в год. Тем не менее, если вы опробовали его и считаете, что оно того стоит, то 29$ – это разумно для годовой цены.
Плюсы и минусы
Популярность, большое количество настроек
Ограниченная функциональность в бесплатной версии
Google Play
App Store
Evernote — еще один список задач, который содержит множество других опций, и, вместе с тем, это приложение для заметок. Он поддерживает несколько способов делать заметки и напоминания, включая голосовые заметки, полные списки и фотографии. Тем не менее, Evernote делает еще один шаг вперед благодаря возможности добавлять видео и прикреплять документы Word или PDF-файлы к своим спискам. Как и в случае с Google Keep, каждый раз, когда вы добавляете что-то в Evernote, он будет синхронизироваться на всех ваших устройствах, но в отличие от Keep, есть опция автономного доступа к вашим файлам — но только если вы платите за версию Premium.
Evernote бесплатен в версии Evernote Basic, и стоит 8$ в месяц или 70$в год за Evernote Premium. Но у него есть целый ряд дополнительных опций, таких как автономный доступ, дополнительное хранилище и возможность добавить поддержку паролей для блокировки ваших ноутбуков. Тем не менее, только вы можете решить, стоит ли это ваших денег или нет, и мы всегда рекомендуем какое-то время использовать бесплатную версию, чтобы оценить, стоит ли вам улучшать ее.
Плюсы и минусы
Возможность прикрепления медиа-файлов, синхронизация на всех устройствах
Ограниченная функциональность в бесплатной версии
Google Play
App Store
5. Microsoft To-Do
Microsoft To-Do. Фото: todo.microsoft.comОрганизационные инструменты редко существуют в «вакууме». Если вы подключены к экосистеме Microsoft с помощью электронной почты Outlook и работы в Office, вам может быть интересно узнать, что у Microsoft есть собственное приложение для ведения дел.
Microsoft To-Do, созданная командой Wunderlist после того, как Microsoft приобрела это приложение в 2015 году. Продукт от «мелкомягких» поразительно похож на Wunderlist — и это неплохо; постановка новых задач проста, и она предлагает почти то же самое с точки зрения инструментов и функций. Microsoft To-Do отличается тем, что делает акцент на My Day, а именно на идее, что вы начинаете каждый день с чистого листа, а в начале каждого дня уделяете время тому, чтобы записать, чего вы хотите достичь в этот день. Это философия жизни без суеты, и она направлена на то, чтобы пользователи сосредоточились на том, что происходит здесь и сейчас. Это подходит не для всех, и если вы любите планировать заранее, то Microsoft To-Do это тоже позволяет. В него даже встроен интеллектуальный инструмент подсказок, который предложит вам задачи на основе вашей предыдущей записи.
Кажется, в будущем Microsoft To-Do будет синхронизироваться с Wunderlist, и вы сможете импортировать задачи Wunderlist, если вы будете переходить из этого приложения. В будущем планируется интеграция с другими службами Microsoft, что тоже очень удобно.
Плюсы и минусы
Простота использования, синхронизация с сервисами Microsoft
Пока не весь функционал доступен
Google Play
App Store
6. Bear
Bear. Фото: bear.appЕсли вы предпочитаете хранить свои заметки и список дел вместе, Bear может быть идеальным приложением.
Существует традиционная строка меню, которая позволяет форматировать текст, а также есть возможность использовать стилус для внесения небольших быстрых изменений. Вы также можете группировать списки и заметки по хэштегам, что облегчает поиск всех ваших задач. Bear доступен для iOS, MacOS и WatchOS. Вы можете использовать Bear бесплатно, но если хотите синхронизировать свои устройства, то придется платить 15$ в год. К сожалению, в разработке нет приложения для Android.
Плюсы и минусы
Удобство использования
Платная синхронизация, только для iOS
App Store
7. IkeIke. Фото: play.google.comПредположительно, приложение основано на организационном методе 34-го президента США Дуайта Айка Эйзенхауэра. Ядро приложения основано на приоритете; пометьте самые неотложные задачи как таковые и постройте свой день на работе с наиболее важными из них, сформировав «матрицу приоритетов».
Это обретает больше смысла, когда вы углубляетесь в приложение. Вы можете прикреплять изображения к задачам, что означает, что повторяющиеся задачи становятся гораздо более удобными для восприятия. Вы также можете прикреплять голосовые заметки к задачам, устанавливать напоминания на основе местоположения и настраиваемые звуковые празднования, которые воспроизводятся при выполнении задачи.
Обновление до Ike Pro — это единовременный платеж в размере 2$, который открывает доступ к напоминаниям о местонахождении, аудиозаписи и всем настраиваемым тегам, а также несколько дополнительных функций.
Плюсы и минусы
Недорогая Pro версия, интересный подход к приоритету задач
Ограниченные возможность долгосрочного планирования
Google Play
8.
Habitica: Gamify Your TasksHabitica: Gamify Your Tasks. Фото: habitica.comВозможно, вы подумали, что приложение со списком текущих дел не может быть сильно разнообразным – это не так.
Habitica — это совершенно другой подход к списку дел, который становится очевидным с момента загрузки приложения. Вместо того, чтобы попросить вас выполнить первое задание, вас попросят создать персонажа. Habitica использует игровой RPG-стиль, чтобы мотивировать вас на выполнение ваших повседневных задач. Выполняйте задания, и ваш персонаж получит опыт и золото, которые можно потратить на то, чтобы сделать его более мощным. Не пытайтесь обмануть систему — на основе нескольких вопросов, заданных во время создания вашего персонажа, Habitica назначит вам несколько заданий, чтобы вы начали. Не в состоянии выполнить свои ежедневные задачи, и ваш аватар получит урон!
Habitica немного сложнее в настройке, с системой различных типов заданий и наград, в которых нужно разобраться, прежде чем вы действительно сможете приступить к работе, но если вы увлечены этой идеей, то это стоит потраченного времени.
Плюсы и минусы
Увлекательная игра-мотивация, нестандартный подход к задачам
Сложность в настройке
Google Play
App Store
Cal Calendar недавно появился на рынке мобильных приложений (Android, iOS). Это детище команды разработчиков Any.do, которое обладает впечатляющей функциональностью и продуманным дизайном. Приложение поставляется с множеством функций, включая поддержку Exchange и Google Calendar, виджеты, запись голоса и многое другое.
Календарь Cal имеет прямую интеграцию с Any.Do To-Do List, который дает вам уникальный тандем из двух приложений. Помимо расширенной функциональности, Cal Calendar прост в использовании. Создание событий очень просто и быстро. Более того, в зависимости от названия события, приложение автоматически добавляет контакты и данные геолокации в описание записи. Вы даже можете импортировать свои списки и записи из Any. do.
Еще одна приятная вещь — этот инструмент доступен бесплатно, поэтому вы можете использовать его, не тратя ни копейки на программное обеспечение.
Плюсы и минусы
Синхронизация с Any.do, простота использования, бесплатность
— Больше функций календаря, чем планировщика задач
Google Play
Как выбрать планировщик задач
Все приложения в этой статье являются отличными инструментами управления задачами, но в то же время они очень разные. У всех нас есть свой собственный способ работы и свои требования, поэтому вам необходимо решить, какое из этих приложений отвечает вашим потребностям в полной мере.
Для этого советуем сравнить каждое приложение по следующим критериям:
- Кросс-платформенность. Количество платформ, на которых доступно каждое приложение.
- Функции стимулирования производительности. Наличие ключевых функций повышения производительности и предоставляемых ими фишек.
- Удобство использования. Простота и интуитивность интерфейса приложения и его функций.
- Лучшее соотношение цены и качества. Сколько функций вы получаете за платную версию, и нужна ли она в принципе.
Надеемся, что теперь вы знаете, какие приложения для управления списками дел/задач вам пригодятся, и теперь выбор правильного инструмента для ваших нужд станет намного проще. Даже если вы в конечном итоге не воспользуетесь одной из рекомендаций из этого списка, у вас должно быть четкое представление о том, какие приложения доступны и какие из них будут работать лучшего всего.
У большинства приложений в этой статье есть бесплатные версии, которые вы можете использовать, чтобы попробовать их самостоятельно — так что скачивайте те, которые, по вашему мнению, имеют потенциал, и посмотрите, как у вас получится.
Найдя ваше любимое приложение со списком дел, вы можете перейти на более продуктивный рабочий процесс и начать добавлять другие инструменты в свой арсенал для повышения производительности.
Планировщик ключевых слов Google: сбор семантики и частотки
Планировщик ключевых слов (Google Keywords Planner) — это бесплатный инструмент от Google, внедренный в общий пакет сервиса Google Реклама. Он позволяет выполнить следующие задачи:
- ✅ собрать частотку запросов за указанный период;
- ✅ сравнить динамику изменения частоты ключа за указанный период;
- ✅ найти новую семантику в своей нише благодаря отчетам по трендам.
Инструмент разрабатывался прежде всего для помощи в управлении рекламными кампаниями в Google Ads, однако те, кто делают ставку на органический трафик, также могут использовать его для своих целей. Планировщик будет особенно полезен тем, у кого нет свободного бюджета для оплаты дорогостоящих сайтов для аналитики типа Ахрефс, ведь он бесплатный. Он может полностью заменить все инструменты для работы с семантикой, хоть и имеет ряд недочетов.
Инструкция: подключение планировщика бесплатно
Шаг первый: Зайти в планировщик и авторизоваться через свой аккаунт Google. Сделать это можно по адресу https://ads.google.com/.
Шаг второй: Перейдите в раздел Tools and Settings > Keyword Planner.
Шаг третий: В открывшемся окне выберите раздел Get search volume and forecasts, чтобы получить частотку интересующих ключей. Про раздел поиска новых КС поговорим позже.
Шаг четвертый: Вставьте несколько ключевых слов или загрузите файл.
Шаг пятый: В загрузившейся странице будет отображена примерная статистика ключевых слов, которые вы вписали.
В этой последней вкладке есть немного больше инструментов для настройки вашего статистики поискового запроса: возможность указать диапазон дат для отображения частотки, указание гео, языка и даже возможность сразу создать рекламную кампанию. Подробнее эту страничку описано в разделе тут. Однако сеошнику, который хочет просто выгрузить для себе количество показов в месяц, необходимо выполнить еще несколько действий.
Настройка “калибровки” частотки
В инструменте Google Keywords Planner есть один странный момент — вместо того, чтобы сразу показать примерную частотку ключа, он показывает диапазон.
А чтобы увидеть более точную цифру, необходимо просто… скачать данные в формате CSV или Google-таблице. Именно при скачивании отчета появляется четкая, но округленная месячная частотка за выбранный диапазон.
Обзор раздела поиска новых ключей
В этом разделе предлагается подобрать ключи, по которым можно продвигать сайт и привлекать дополнительный трафик. Чтобы получить подсказки от поисковика, можно воспользоваться двумя опциями: вставить уже известные вам КС, например ВЧ, или же вставить сайт.
Чтобы настроить поиск новых ключей правильно, не забудьте указать гео, также можно скорректировать период, за который отображается частотка. На панеле “Broaden your search” можно конкретизировать и расширить требования к новым ключам.
В получаемом тут отчете есть различная информация, а том числе приблизительная цена за клик, если вдруг вы захотите настроить контекстную рекламу. Однако в нашем случае интересна органика. Чтобы получить точные, а не примерные данные по количеству запросов в месяц, надо опять просто скачать отчет в виде таблицы.
Обзор раздела про получение частотки
- ✅ Среднее количество поиска за месяц/Average monthly searches (если ключ сезонный, то будет зависеть от выбранного диапазона дат). Следует также отметить, что Google группирует частотку похожих ключевіх слов и суммирует ее. Например, для ключей “Планировщик Гугл” и “Гугл планировщик” частотка будет общая усредненная, потому что семантически и по интенту это один и тот же запрос.
- ✅ Изменения за 3 месяца/Three month change — процент уменьшения или увеличения частотки у ключа за 3 месяца.
- ✅ Помесячное сравнение за год/YoY change — изменение в частотке сравнительно с тем же месяцем год назад.
- ✅ Конкуренция/Competition — конкурентность ключа.
- ✅ Процент платных объявлений/Ad impression share — процент соотношения платных показов к органическим.
- ✅ Ставка для показа, нижняя планка/Top of page bid (low range).
- ✅ Ставка для показа, максимальная планка/Top of page bid (high range).
- ✅ Статус в аккаунте/Account status — есть ли данный ключ в кампаниях, запущенных/настроенных в аккаунтах.
Для добычи органического трафика нужна информация по первым четырем показателям, остальное предназначено для тех, кто желает настраивать платные кампании.
Практика
Создаем на практике план употребления ключей с частоткой для seo-статьи и прогнозируем количество трафика при выходе в топ-1. Наши действия должны выглядеть примерно таким образом:
Первый шаг: собираем весь пул ключей. Для этого идем в раздел Discover new keywords, выбираем гео (в нашем случае — Украина), язык (русский) и вписываем несколько интуитивных ключей, связанных с темой статьи.
- ✅ Гугл планировщик;
- ✅ Планировщик;
- ✅ keyword planner.
После этого нажимаем кнопку “Get result” и получаем список рекомендуемых ключей.
Напоминание: точная частотка будет отображаться после выгрузки файла, например в формате Гугл-таблица.
Второй пункт связан с систематизацией ключевых слов. Необходимо тщательно изучить все предложенные ключи и откинуть все то, что не подходит по смыслу или может стать причиной каннибализации. Например в нашем случае нам по смыслу не подойдут ключи “1с планировщик”, “бесплатный планировщик” и подобное. Также я рекомендую убрать слишком длинные ключевые фразы с низкой частоткой. Причиной такого действия можно назвать алгоритм Гугла, который ищет документы в интернете не по прямому совпадению, а по семантическому. Таким образом хорошая статья с основными ключами без длинных грамматически неправильных ключевых фраз будет лучше ранжироваться, чем низкокачественная статься, напичканная фразами.
Третий шаг — после систематизации ключевых слов составить таблицу с релевантными словами и их частоткой.
Четвертый шаг — формирования контент-плана для статьи с учетом самых высокочастотных ключей по теме. Об этом процессе нужна отдельная статья.
Таким образом, для нашей новой статьи для блога про сеошку рассчитан трафик в размере 1400 читателей в месяц при занятии первой позиции в выдаче. Это все в русскоязычной выдаче с установленной геолокацией в границах Украины. Информация о том, сколько в процентном соотношении можно получить кликов с первой позиции достаточно спорная и отличается в зависимости от ниши, интента, внешнего вида выдачи и многих других факторов. Я для данного рассчета взяла условие, что на первую позицию будут кликать 10% юзеров. Связанно это с тем, что данные ключи подразумевают поиск конкретного инструмента, а не информационной статьи. Кроме прочего, если пользователи действительно ищут инструкцию, они чаще всего могут пройтись по всем результатам первой-второй страницы, а не только первой позиции.
Быстрые ответы
Как пользоваться Google Keywords Planner?
Залогинетьсь в инструменте https://ads.google.com/ и на верхней панели выберите пункт Tools and Setting > Keywords Planner. После перехода в инструмент вставьте интересующие вас ключи для получения частотки или рекомендаций.
Как увидеть точную частотку в планировщике?
После ввода ключевых слов в Планировщике, просто скачайте файл в формате Google Таблица — там будут более точные данные по частотке, а не просто диапазон.
Для чего используется Google Keyword Planner?
Google Keyword Planner используется для получения точной усредненной частотки по ключевым словам в поисковой системе Google, а также для планирования рекламных кампаний по продвижению. Таким образом инструмент поможет как для увеличения органического бесплатного трафика, так и для добычи платных лидов.
Подпишись!
Да, тебе очень понравился контент на сайте, но… ты никогда ни на что не подписываешься, правильно? Пожалуйста, сделай исключение для меня. Я сильно ебашу для того, чтобы сайт не только рос, но также этот был максимально качественным. Поддержи не проект — поддержи конкретно меня в моем стремлении писать классно.
Подписаться
как работать с инструментом — ppc.world
6550 https://ppc.world/uploads/images/7a/f4/5dfa366267ad7-money.jpg 2019-12-19 2019-12-19 Google Ads ppc.world https://ppc.world/ https://ppc.world/build/resources/img/logo-v2.png 160 31- Google Ads 1
- 19. 12.2019
- 9114
- 1
- Для специалистов
Избранное
Планировщик результатов в Google Ads позволяет определить допустимое увеличение затрат на рекламу при росте спроса, понять резервы роста в кампаниях и правильно распределить бюджет. Подробно о том, как это сделать с помощью Планировщика, рассказывает Мария Ярыгина из украинского агентства Adindex.ua.
Masha Yarygina Adindex.ua
Планировщик результатов (эффективности) — довольно новый инструмент в Google Ads, который помогает специалистам оценить изменения бюджета и понять, как они повлияют на эффективность кампаний. С его помощью можно:
-
Определить необходимый уровень расходов для достижения желаемых результатов по кликам, конверсиям или ценности конверсии.
-
Понять, как лучше распределить бюджет между кампаниями, чтобы достигнуть необходимых KPI.
-
Воспользоваться более детализированными настройками для каждой кампании. Например, добавить ключевые слова и посмотреть, как изменятся показатели.
Инструмент работает не со всеми стратегиями и типами кампаний. Основные требования к кампаниям:
-
активность не менее 72 часов;
-
не менее трех кликов за последние семь дней;
-
получена хотя бы одна конверсия за последние семь дней;
-
кампании со стратегиями: «Назначение цены за клик вручную», «Оптимизированная цена за клик и целевая цена за конверсию».
На этом рерайт текста из справки Google хочется закончить. Подробную инструкцию с информацией «куда где нажать» можно изучить в позвол.
Рассмотрим реальные ситуации, когда можно применить инструмент, и проанализируем, что он нам предлагает.
Вот несколько целей, которые можно решить с помощью Планировщика результатов:
-
Определить варианты увеличения бюджета в период сезонного пика при условии сохранения допустимой CPA.
-
Понять резервы роста в кампаниях, по которым нет возможности увидеть прогнозы даже в Планировщике ключевых слов из-за особенных настроек:
-
Распределить бюджет между кампаниями так, чтобы получить больше конверсий.
Рассмотрим каждую цель подробнее.
Допустимое увеличение бюджета при росте спроса
Определить оптимальное увеличение бюджета в период сезонного пика при сохранении допустимой CPA в пределах 100 грн.
Период для прогноза: март — август 2020 года.
Конверсии: покупки на сайте.
Выбираем необходимые кампании и заполняем поля для создания нового плана. В этом случае в периоде для прогноза указаны март — август 2020 года. Это период наибольшего спроса в анализируемой нише товаров. Цель пока не выбираем, ее можно будет указать позже.
Выбор периода, показателя и цели для создания нового планаНажимаем на кнопку «Новый план» и смотрим, что предлагает система. По умолчанию показываются текущие настройки (показатели) за последние шесть месяцев: расходы, CPA, конверсии. Также видно, что три кампании не включены в план, так как не хватает конверсий для прогноза. Система предлагает указать коэффициент конверсии для расчета количества конверсий.
Текущие настройки (показатели) в планеВнизу страницы, под графиком, указываем коэффициент конверсии для «выпавших» кампаний.
Кампании, для которых необходимо указать коэффициент конверсииПри клике на каждую кампанию предлагается выбрать коэффициент конверсии вручную или за последние шесть месяцев, или за такой же период, как в прогнозе, но прошлого года. В нашем случае логичней выбрать показатель прошлого года. И так делаем в каждой кампании, чтобы добавить их в план.
Указание коэффициента конверсии для каждой кампании
Далее выбираем показатель для графика. Нам важно ориентироваться на CPA, поэтому наглядней будет выбрать «Самая низкая средняя цена за конверсию». Также кликаем в конец графика для понимания максимально возможного результата.
Указание показателя для графикаСпускаемся в самый низ плана и видим, что максимальные расходы составят 81 400 грн при CPA 133 грн. При этом конверсий будет получено на 151 больше. Такой план нам не подходит, так как есть условие: допустимая CPA — в пределах 100 грн.
Показатели эффективности при максимальных расходахТак как CPA не подходит, поднимаемся вверх плана и указываем необходимую цель. Можно выбрать предложенные варианты за разные периоды или указать цель вручную.
Указание цели для планаКогда цель выбрана, система предложит при увеличении бюджета до 59 400 грн получить на 132 конверсии больше по цене за конверсию 100 грн (на 36 грн больше текущей CPA). Данный план нам подходит, поэтому можно его сохранить до наступления сезона и передать клиенту в качестве прогноза.
Оптимальный план при допустимой CPAНа вкладке «Сравнение» можно визуализировать показатели и более наглядно оценить полученные прогнозы.
Вкладка «Сравнение»Поиск потенциала роста в поисковых кампаниях
Понять резервы роста в кампаниях, по которым нет возможности увидеть прогнозы даже в Планировщике ключевых слов из-за особенных настроек:
Поисковые кампании с таргетингом на аудитории клиентов
Период для прогноза: январь — март 2020 года.
Конверсии: логины и подключения к программе лояльности.
Таргетинг: загруженные списки адресов и телефонов целевой аудитории.
После выбора кампаний и заполнения полей с периодом и показателем создаем новый план. Изначально система показывает текущие настройки (показатели).
Текущие настройки (показатели) в планеДалее наводим курсор на максимальный охват и обращаем внимание на то, как меняется количество конверсий, расходы и CPA. Система предлагает получить 50 000 конверсий по 2,35 грн при увеличении расходов до 117 000 грн.
Максимальный охват в планеЛиния графика практически не растет, поэтому нужно смотреть, как меняются в динамике конверсии и расходы. При наведении курсора ближе к середине графика видно, что при бюджете 61 000 можно получить такое же количество конверсий, как и при максимальных расходах, то есть CPA будет ниже и составит 1,2 грн.
Оптимальный план на графикеВыбираем более оптимальный вариант и переходим в «Сравнение». На диаграммах визуально понятно, что запланированные настройки оптимальнее, чем текущие.
Вкладка «Сравнение»Динамические поисковые кампании
Период для прогноза: январь — март 2020 года.
Конверсии: покупки на сайте.
Таргетинг: цель динамической рекламы — все страницы сайта.
Выбираем нужную динамическую кампанию и формируем план. Сравниваем показатели при текущих настройках и максимальном прогнозе. При росте бюджета более чем в 5 раз (с 8 000 до 44 000 грн) CPA прогнозируется выше в 2 раза. Прогноз дал понимание максимальных возможностей динамической кампании, и эту информацию можно учесть при распределении бюджета между кампаниями.
Показатели при текущих настройках и максимальном прогнозеОптимальное разделение бюджета между кампаниями
Распределить бюджет между кампаниями так, чтобы получить больше конверсий.
Период для прогноза: январь — март 2020 года.
Конверсии: покупки на сайте.
Выбираем все доступные для прогноза кампании и создаем новый план. Изначально в плане показываются текущие настройки (показатели) и предлагается оптимизировать расходы. После их оптимизации система распределяет бюджет так, что при тех же расходах может быть получено на 154 конверсии больше, а CPA снизится на 27 грн.
Оптимальный план, предложенный планировщиком за счет распределения бюджета между кампаниямиДля детального анализа рекомендуется перейти в каждую кампанию: на боковой панели откроются развернутые настройки, благодаря которым показатели изменились. На рисунке ниже видно, что в одной из кампаний система предлагает увеличить CPC на 50%. За счет этого расходы и количество конверсий изменятся.
Предложенные настройки для одной кампанииТак нужно проанализировать каждую кампанию, в которой есть изменения, и сделать выводы о применении предложенных корректировок.
Вместо заключения
При работе с Планировщиков результатов важно понимать, что все прогнозы сохраняются автоматически, но только в плане. Настройки кампаний в аккаунте Google Ads не меняются. Чтобы применить спланированные прогнозы, необходимо скачать план и затем с помощью Редактора Google Ads загрузить изменения в кампании.
Также Google предупреждает о том, что в прогнозах показана только потенциальная эффективность кампаний и улучшение результатов не гарантируется.
Уведомление Планировщика результатовВ процессе работы с инструментом мы отметили для себя несколько недостатков:
-
Создание плана недоступно для некоторых типов кампаний и стратегий. Это неудобно, так как при составлении прогнозов для всего аккаунта необходимо учесть данные из плана, а также самостоятельно планировать результат по другим кампаниям и прибавить его к кампаниям из плана.
-
Нельзя изменить текущие настройки на настройки за любой выбранный период. Например, выбрать период для текущего результата — тот, что больше подходит для анализа.
-
Негибкое управление показателем «Конверсии». За длительный период работы кампанией в столбец «Конверсии» могут импортироваться разные цели, которые со временем становятся неактуальными. Это влияет на корректность прогнозируемых результатов эффективности.
-
Неточность данных. Показатели текущих настроек в плане не всегда совпадали с реальными результатами по проектам. В некоторых случаях расхождения данных достигали 50%.
Планировщик результатов в Google Ads помогает прогнозировать показатели на следующий год, квартал или месяц. Можно ориентироваться на максимальный охват, как было раскрыто в примерах, а можно на графике увидеть изменение KPI при росте бюджета на 20, 30, 50% и т. д. Это удобный и простой инструмент для составления прогноза в существующих кампаниях даже несмотря на недостатки.
О том, как были применены планы и насколько Google в своих оценках «говорит правду», читайте в следующих кейсах.
А если у кого-то уже есть опыт работы с инструментом и идеи, для каких целей его можно использовать, — welcome в комментарии.
Так-с… Мы вас не узнаём! Зайдёте под своим аккаунтом?
Уже захожу Зарегистрировать аккаунт
Вы сможете:
- читать все материалы на ppc.world;
- добавлять лучшие статьи в Избранное;
- оставлять комментарии;
- получать рекомендации актуальных материалов.
Читайте также
Ко всем статьям
Пакет планировщика— cloud.
google.com/go/scheduler/apiv1beta1 — Пакеты Go- Пример использования
- Использование клиента
- Использование контекста
Планировщик пакетов — это автоматически созданный пакет для API облачного планировщика.
Создает задания и управляет ими по регулярному повторяющемуся расписанию.
ПРИМЕЧАНИЕ. Этот пакет находится в стадии бета-тестирования. Он нестабилен и может быть изменен.
Пример использования ¶
Чтобы начать работу с этим пакетом, создайте клиент.
ctx := context.Background() // Этот фрагмент был сгенерирован автоматически, и его следует рассматривать только как шаблон кода. // Для работы потребуются модификации: // - Для инициализации запроса могут потребоваться правильные значения/значения в диапазоне. // — может потребоваться указание региональных конечных точек при создании клиента службы, как показано на рисунке: // https://pkg. go.dev/cloud.google.com/go#hdr-Client_Options c, ошибка: = scheduler.NewCloudSchedulerClient (ctx) если ошибка != ноль { // TODO: Обработать ошибку. } отложить c.Close()
Клиент будет использовать ваши учетные данные приложения по умолчанию. Клиенты должны использоваться повторно, а не создаваться по мере необходимости. Методы Client безопасны для одновременного использования несколькими горутинами. Возвращенный клиент должен быть закрыт, когда он используется.
Использование клиента ¶
Ниже приведен пример вызова API с вновь созданным клиентом.
ctx := context.Background() // Этот фрагмент был сгенерирован автоматически, и его следует рассматривать только как шаблон кода. // Для работы потребуются модификации: // - Для инициализации запроса могут потребоваться правильные значения/значения в диапазоне. // — может потребоваться указание региональных конечных точек при создании клиента службы, как показано на рисунке: // https://pkg.go.dev/cloud.google. com/go#hdr-Client_Options c, ошибка: = scheduler.NewCloudSchedulerClient (ctx) если ошибка != ноль { // TODO: Обработать ошибку. } отложить c.Close() запрос: = &schedulrpb.ListJobsRequest{ // TODO: Заполнить поля структуры запроса. // См. https://pkg.go.dev/cloud.google.com/go/scheduler/apiv1beta1/schedulerpb#ListJobsRequest. } это := c.ListJobs(ctx, req) за { соответственно, ошибка := it.Next() если ошибка == iterator.Done { ломать } если ошибка != ноль { // TODO: Обработать ошибку. } // TODO: Использовать соотв. _ = соответственно }
Использование контекста ¶
ctx, переданный NewCloudSchedulerClient, используется для запросов аутентификации и для создания базового соединения, но не используется для последующих вызовов. Отдельные методы на клиенте используют данный им ctx.
Чтобы закрыть открытое соединение, используйте метод Close().
Для получения информации об установке крайних сроков, повторном использовании контекстов и многом другом. посетите страницу https://pkg. go.dev/cloud.google.com/go.
- func DefaultAuthScopes() []строка
- введите CloudSchedulerCallOptions
- введите CloudSchedulerClient
- func NewCloudSchedulerClient (ctx context.Context, opts … option.ClientOption) (* CloudSchedulerClient, ошибка)
- func NewCloudSchedulerRESTClient (ctx context.Context, opts … option.ClientOption) (* CloudSchedulerClient, ошибка)
- func (c *CloudSchedulerClient) Close() ошибка
- func (c *CloudSchedulerClient) Connection() *grpc.ClientConndreprecated
- func (c *CloudSchedulerClient) CreateJob(ctx context.Context, req *schedulerpb.CreateJobRequest, opts …gax.CallOption) (*schedulerpb.Job, ошибка)
- func (c *CloudSchedulerClient) DeleteJob (ctx context.Context, req *schedulerpb.DeleteJobRequest, opts …gax.CallOption) ошибка
- func (c *CloudSchedulerClient) GetJob(ctx context. Context, req *schedulerpb.GetJobRequest, opts …gax.CallOption) (*schedulerpb.Job, ошибка)
- func (c *CloudSchedulerClient) ListJobs(ctx context.Context, req *schedulerpb.ListJobsRequest, opts …gax.CallOption) *JobIterator
- func (c *CloudSchedulerClient) PauseJob(ctx context.Context, req *schedulerpb.PauseJobRequest, opts …gax.CallOption) (*schedulerpb.Job, ошибка)
- func (c *CloudSchedulerClient) ResumeJob(ctx context.Context, req *schedulerpb.ResumeJobRequest, opts …gax.CallOption) (*schedulerpb.Job, ошибка)
- func (c *CloudSchedulerClient) RunJob(ctx context.Context, req *schedulerpb.RunJobRequest, opts …gax.CallOption) (*schedulerpb.Job, ошибка)
- func (c *CloudSchedulerClient) UpdateJob(ctx context.Context, req *schedulerpb.UpdateJobRequest, opts …gax.CallOption) (*schedulerpb.Job, ошибка)
- введите JobIterator
- func (it *JobIterator) Next() (*schedulerpb. Job, ошибка)
- func (it *JobIterator) PageInfo() *iterator.PageInfo
- CloudSchedulerClient.CreateJob
- CloudSchedulerClient.DeleteJob
- CloudSchedulerClient.GetJob
- CloudSchedulerClient.ListJobs
- CloudSchedulerClient.PauseJob
- CloudSchedulerClient.ResumeJob
- CloudSchedulerClient.RunJob
- CloudSchedulerClient.UpdateJob
- Ньюклаудсчедулерклиент
- НьюклаудсчедулерRESTClient
Этот раздел пуст.
Этот раздел пуст.
func DefaultAuthScopes() []string
DefaultAuthScopes сообщает набор областей проверки подлинности по умолчанию для использования с этим пакетом.
тип CloudSchedulerCallOptions struct { ListJobs []gax.CallOption GetJob []gax.CallOption CreateJob []gax.CallOption UpdateJob []gax.CallOption Удалить Задание []gax.CallOption PauseJob []gax.CallOption ResumeJob []gax.CallOption RunJob []gax. CallOption }
CloudSchedulerCallOptions содержит параметры повтора для каждого метода CloudSchedulerClient.
тип CloudSchedulerClient структура { // Параметры вызова для этой службы. CallOptions *CloudSchedulerCallOptions // содержит отфильтрованные или неэкспортированные поля }
CloudSchedulerClient — это клиент для взаимодействия с Cloud Scheduler API. Методы, кроме Close, могут вызываться одновременно. Однако поля не должны изменяться одновременно с вызовами методов.
API Cloud Scheduler позволяет внешним объектам надежно планировать асинхронные задания.
func NewCloudSchedulerClient(ctx context.Context, opts ...option.ClientOption) (*CloudSchedulerClient, ошибка)
NewCloudSchedulerClient создает новый клиент облачного планировщика на основе gRPC. Возвращенный клиент должен быть закрыт, когда он используется для очистки его базовых соединений.
API Cloud Scheduler позволяет внешним объектам надежно планировать асинхронные задания.
Пример ¶основной пакет импорт ( "контекст" планировщик "cloud.google.com/go/scheduler/apiv1beta1" ) основная функция () { ctx := контекст. Фон () // Этот фрагмент был сгенерирован автоматически, и его следует рассматривать только как шаблон кода. // Для работы потребуются модификации: // - Для инициализации запроса могут потребоваться правильные значения/значения в диапазоне. // — может потребоваться указание региональных конечных точек при создании клиента службы, как показано на рисунке: // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options c, ошибка: = scheduler.NewCloudSchedulerClient (ctx) если ошибка != ноль { // TODO: Обработать ошибку. } отложить c.Close() // TODO: использовать client. _ = с }
Выход:
func NewCloudSchedulerRESTClient(ctx context.Context, opts ...option.ClientOption) (*CloudSchedulerClient, ошибка)
NewCloudSchedulerRESTClient создает новый остаточный клиент облачного планировщика.
API Cloud Scheduler позволяет внешним объектам надежно планировать асинхронные задания.
Пример ¶основной пакет импорт ( "контекст" планировщик "cloud.google.com/go/scheduler/apiv1beta1" ) основная функция () { ctx := контекст. Фон () // Этот фрагмент был сгенерирован автоматически, и его следует рассматривать только как шаблон кода. // Для работы потребуются модификации: // - Для инициализации запроса могут потребоваться правильные значения/значения в диапазоне. // — может потребоваться указание региональных конечных точек при создании клиента службы, как показано на рисунке: // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options c, ошибка: = scheduler.NewCloudSchedulerRESTClient (ctx) если ошибка != ноль { // TODO: Обработать ошибку. } отложить c.Close() // TODO: использовать client. _ = с }
Выход:
func (c *CloudSchedulerClient) Ошибка Close()
Close закрывает соединение со службой API. Пользователь должен вызывать это, когда клиент больше не нужен.
func (c *CloudSchedulerClient) Connection() *grpc. ClientConn
Connection возвращает соединение со службой API.
Устарело: соединения теперь объединены в пул, поэтому этот метод не всегда вернуть тот же ресурс.
func (c *CloudSchedulerClient) CreateJob(ctx context.Context, req *schedulerpb.CreateJobRequest, opts ...gax.CallOption) (*schedulerpb.Job, ошибка)
CreateJob создает задание.
Пример ¶основной пакет импорт ( "контекст" планировщик "cloud.google.com/go/scheduler/apiv1beta1" schedulerpb "cloud.google.com/go/scheduler/apiv1beta1/schedulerpb" ) основная функция () { ctx := контекст. Фон () // Этот фрагмент был сгенерирован автоматически, и его следует рассматривать только как шаблон кода. // Для работы потребуются модификации: // - Для инициализации запроса могут потребоваться правильные значения/значения в диапазоне. // — может потребоваться указание региональных конечных точек при создании клиента службы, как показано на рисунке: // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options c, ошибка: = scheduler. NewCloudSchedulerClient (ctx) если ошибка != ноль { // TODO: Обработать ошибку. } отложить c.Close() запрос: = &schedulrpb.CreateJobRequest{ // TODO: Заполнить поля структуры запроса. // См. https://pkg.go.dev/cloud.google.com/go/scheduler/apiv1beta1/schedulerpb#CreateJobRequest. } соответственно, ошибка: = c.CreateJob (ctx, req) если ошибка != ноль { // TODO: Обработать ошибку. } // TODO: Использовать соотв. _ = соответственно }
Выход:
func (c *CloudSchedulerClient) DeleteJob(ctx context.Context, req *schedulerpb.DeleteJobRequest, opts ...gax.CallOption) ошибка
DeleteJob удаляет задание.
Пример ¶основной пакет импорт ( "контекст" планировщик "cloud.google.com/go/scheduler/apiv1beta1" schedulerpb "cloud.google.com/go/scheduler/apiv1beta1/schedulerpb" ) основная функция () { ctx := контекст. Фон () // Этот фрагмент был сгенерирован автоматически, и его следует рассматривать только как шаблон кода. // Для работы потребуются модификации: // - Для инициализации запроса могут потребоваться правильные значения/значения в диапазоне. // — может потребоваться указание региональных конечных точек при создании клиента службы, как показано на рисунке: // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options c, ошибка: = scheduler.NewCloudSchedulerClient (ctx) если ошибка != ноль { // TODO: Обработать ошибку. } отложить c.Close() запрос: = &schedulrpb.DeleteJobRequest{ // TODO: Заполнить поля структуры запроса. // См. https://pkg.go.dev/cloud.google.com/go/scheduler/apiv1beta1/schedulerpb#DeleteJobRequest. } ошибка = c.DeleteJob (ctx, req) если ошибка != ноль { // TODO: Обработать ошибку. } }
Выход:
func (c *CloudSchedulerClient) GetJob(ctx context.Context, req *schedulerpb.GetJobRequest, opts ...gax.CallOption) (*schedulerpb.Job, ошибка)
GetJob получает задание.
Пример ¶основной пакет импорт ( "контекст" планировщик "cloud.google.com/go/scheduler/apiv1beta1" schedulerpb "cloud.google.com/go/scheduler/apiv1beta1/schedulerpb" ) основная функция () { ctx := контекст. Фон () // Этот фрагмент был сгенерирован автоматически, и его следует рассматривать только как шаблон кода. // Для работы потребуются модификации: // - Для инициализации запроса могут потребоваться правильные значения/значения в диапазоне. // — может потребоваться указание региональных конечных точек при создании клиента службы, как показано на рисунке: // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options c, ошибка: = scheduler.NewCloudSchedulerClient (ctx) если ошибка != ноль { // TODO: Обработать ошибку. } отложить c.Close() запрос: = &schedulrpb.GetJobRequest{ // TODO: Заполнить поля структуры запроса. // См. https://pkg.go.dev/cloud.google.com/go/scheduler/apiv1beta1/schedulerpb#GetJobRequest. } соответственно, ошибка: = c.GetJob (ctx, req) если ошибка != ноль { // TODO: Обработать ошибку. } // TODO: Использовать соотв. _ = соответственно }
Выход:
func (c *CloudSchedulerClient) ListJobs(ctx context.Context, req *schedulerpb.ListJobsRequest, opts . ..gax.CallOption) *JobIterator
ListJobs перечисляет задания.
Пример ¶основной пакет импорт ( "контекст" планировщик "cloud.google.com/go/scheduler/apiv1beta1" schedulerpb "cloud.google.com/go/scheduler/apiv1beta1/schedulerpb" "google.golang.org/api/iterator" ) основная функция () { ctx := контекст. Фон () // Этот фрагмент был сгенерирован автоматически, и его следует рассматривать только как шаблон кода. // Для работы потребуются модификации: // - Для инициализации запроса могут потребоваться правильные значения/значения в диапазоне. // — может потребоваться указание региональных конечных точек при создании клиента службы, как показано на рисунке: // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options c, ошибка: = scheduler.NewCloudSchedulerClient (ctx) если ошибка != ноль { // TODO: Обработать ошибку. } отложить c.Close() запрос: = &schedulrpb.ListJobsRequest{ // TODO: Заполнить поля структуры запроса. // См. https://pkg.go.dev/cloud.google.com/go/scheduler/apiv1beta1/schedulerpb#ListJobsRequest. } это := c.ListJobs(ctx, req) за { соответственно, ошибка := it.Next() если ошибка == iterator.Done { ломать } если ошибка != ноль { // TODO: Обработать ошибку. } // TODO: Использовать соотв. _ = соответственно } }
Выход:
func (c *CloudSchedulerClient) PauseJob(ctx context.Context, req *schedulerpb.PauseJobRequest, opts ...gax.CallOption) (*schedulerpb.Job, ошибка)
PauseJob приостанавливает задание.
Если задание приостановлено, система прекратит его выполнение. пока он не будет снова включен через ResumeJob. состояние задания сохраняется в state; если поставить на паузу будет установлено значение Job.State.PAUSED. Задание должно находиться в состоянии Job.State.ENABLED. быть поставленным на паузу.
Пример ¶основной пакет импорт ( "контекст" планировщик "cloud.google.com/go/scheduler/apiv1beta1" schedulerpb "cloud.google.com/go/scheduler/apiv1beta1/schedulerpb" ) основная функция () { ctx := контекст. Фон () // Этот фрагмент был сгенерирован автоматически, и его следует рассматривать только как шаблон кода. // Для работы потребуются модификации: // - Для инициализации запроса могут потребоваться правильные значения/значения в диапазоне. // — может потребоваться указание региональных конечных точек при создании клиента службы, как показано на рисунке: // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options c, ошибка: = scheduler.NewCloudSchedulerClient (ctx) если ошибка != ноль { // TODO: Обработать ошибку. } отложить c.Close() req := &schedulrpb.PauseJobRequest{ // TODO: Заполнить поля структуры запроса. // См. https://pkg.go.dev/cloud.google.com/go/scheduler/apiv1beta1/schedulerpb#PauseJobRequest. } соответственно, ошибка := c.PauseJob(ctx, req) если ошибка != ноль { // TODO: Обработать ошибку. } // TODO: Использовать соотв. _ = соответственно }
Выход:
func (c *CloudSchedulerClient) ResumeJob(ctx context.Context, req *schedulerpb.ResumeJobRequest, opts ...gax.CallOption) (*schedulerpb.Job, ошибка)
ResumeJob возобновляет задание.
Этот метод повторно активирует задание после того, как оно было поставлено в состояние Job. State.PAUSED. состояние задания хранится в Job.state; после вызова этого метода он будет установлено значение Job.State.ENABLED. Работа должна быть в Job.State.PAUSED для возобновления.
Пример ¶основной пакет импорт ( "контекст" планировщик "cloud.google.com/go/scheduler/apiv1beta1" schedulerpb "cloud.google.com/go/scheduler/apiv1beta1/schedulerpb" ) основная функция () { ctx := контекст. Фон () // Этот фрагмент был сгенерирован автоматически, и его следует рассматривать только как шаблон кода. // Для работы потребуются модификации: // - Для инициализации запроса могут потребоваться правильные значения/значения в диапазоне. // — может потребоваться указание региональных конечных точек при создании клиента службы, как показано на рисунке: // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options c, ошибка: = scheduler.NewCloudSchedulerClient (ctx) если ошибка != ноль { // TODO: Обработать ошибку. } отложить c.Close() req := &schedulrpb.ResumeJobRequest{ // TODO: Заполнить поля структуры запроса. // См. https://pkg.go.dev/cloud.google.com/go/scheduler/apiv1beta1/schedulerpb#ResumeJobRequest. } соответственно, ошибка: = c.ResumeJob (ctx, req) если ошибка != ноль { // TODO: Обработать ошибку. } // TODO: Использовать соотв. _ = соответственно }
Выход:
func (c *CloudSchedulerClient) RunJob(ctx context.Context, req *schedulerpb.RunJobRequest, opts ...gax.CallOption) (*schedulerpb.Job, ошибка)
RunJob принудительно запускает задание сейчас.
При вызове этого метода Cloud Scheduler отправит задание даже если задание уже запущено.
Пример ¶основной пакет импорт ( "контекст" планировщик "cloud.google.com/go/scheduler/apiv1beta1" schedulerpb "cloud.google.com/go/scheduler/apiv1beta1/schedulerpb" ) основная функция () { ctx := контекст. Фон () // Этот фрагмент был сгенерирован автоматически, и его следует рассматривать только как шаблон кода. // Для работы потребуются модификации: // - Для инициализации запроса могут потребоваться правильные значения/значения в диапазоне. // — может потребоваться указание региональных конечных точек при создании клиента службы, как показано на рисунке: // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options c, ошибка: = scheduler.NewCloudSchedulerClient (ctx) если ошибка != ноль { // TODO: Обработать ошибку. } отложить c.Close() запрос: = &schedulrpb.RunJobRequest{ // TODO: Заполнить поля структуры запроса. // См. https://pkg.go.dev/cloud.google.com/go/scheduler/apiv1beta1/schedulerpb#RunJobRequest. } соответственно, ошибка: = c.RunJob (ctx, req) если ошибка != ноль { // TODO: Обработать ошибку. } // TODO: Использовать соотв. _ = соответственно }
Выход:
func (c *CloudSchedulerClient) UpdateJob(ctx context.Context, req *schedulerpb.UpdateJobRequest, opts ...gax.CallOption) (*schedulerpb.Job, ошибка)
UpdateJob обновляет задание.
В случае успеха возвращается обновленное задание. Если работа делает не существует, возвращается NOT_FOUND.
Если UpdateJob не возвращается успешно, возможно, job должен находиться в состоянии Job. State.UPDATE_FAILED. Работа в этом состоянии может не быть казненным. В этом случае повторите запрос UpdateJob. пока не будет получен успешный ответ.
Пример ¶основной пакет импорт ( "контекст" планировщик "cloud.google.com/go/scheduler/apiv1beta1" schedulerpb "cloud.google.com/go/scheduler/apiv1beta1/schedulerpb" ) основная функция () { ctx := контекст. Фон () // Этот фрагмент был сгенерирован автоматически, и его следует рассматривать только как шаблон кода. // Для работы потребуются модификации: // - Для инициализации запроса могут потребоваться правильные значения/значения в диапазоне. // — может потребоваться указание региональных конечных точек при создании клиента службы, как показано на рисунке: // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options c, ошибка: = scheduler.NewCloudSchedulerClient (ctx) если ошибка != ноль { // TODO: Обработать ошибку. } отложить c.Close() запрос: = &schedulrpb.UpdateJobRequest{ // TODO: Заполнить поля структуры запроса. // См. https://pkg. go.dev/cloud.google.com/go/scheduler/apiv1beta1/schedulerpb#UpdateJobRequest. } соответственно, ошибка: = c.UpdateJob (ctx, req) если ошибка != ноль { // TODO: Обработать ошибку. } // TODO: Использовать соотв. _ = соответственно }
Выход:
тип JobIterator struct { // Ответ — это необработанный ответ для текущей страницы. // Он должен быть приведен к типу ответа RPC. // Вызов Next() или InternalFetch() обновляет это значение. Интерфейс ответа{} // InternalFetch предназначен только для использования облачными библиотеками Google. // Он не является частью стабильного интерфейса этого пакета. // // InternalFetch возвращает результаты одного вызова базового RPC. // Количество результатов не превышает pageSize. // Если результатов больше нет, nextPageToken пуст, а err равен нулю. Функция InternalFetch (pageSize int, pageToken string) (результаты []*schedulerpb.Job, nextPageToken string, ошибка err) // содержит отфильтрованные или неэкспортированные поля }
JobIterator управляет потоком *schedulerpb. Job.
func (it *JobIterator) Next() (*schedulerpb.Job, ошибка)
Next возвращает следующий результат. Его второе возвращаемое значение — iterator.Done, если больше нет полученные результаты. Как только Next вернет Done, все последующие вызовы вернут Done.
func (*JobIterator) Информация о странице ¶
func (it *JobIterator) PageInfo() *iterator.PageInfo
PageInfo поддерживает нумерацию страниц. Подробнее см. в пакете google.golang.org/api/iterator.
google-cloud-scheduler · PyPI
Описание проекта
API Cloud Scheduler: позволяет настроить запланированные единицы работы, которые будут выполняться в определенное время или через регулярные промежутки времени. Эти рабочие единицы широко известны как задания cron. Типичные варианты использования могут включать ежедневную отправку отчетов по электронной почте, обновление некоторых кэшированных данных каждые 10 минут или обновление некоторой сводной информации один раз в час.
Документация клиентской библиотеки
Документация по продукту
Быстрый старт
Чтобы использовать эту библиотеку, сначала необходимо выполнить следующие шаги:
Выберите или создайте проект Cloud Platform.
Включите выставление счетов для вашего проекта.
Включить API облачного планировщика.
Настройка аутентификации.
Установка
Установите эту библиотеку в виртуальную среду с помощью pip. virtualenv — это инструмент для создавать изолированные среды Python. Основная проблема, которую он решает, является одной из зависимости и версии, и косвенно разрешения.
С помощью virtualenv эту библиотеку можно установить без необходимости установки системы. установить разрешения и не конфликтовать с установленной системой зависимости.
Образцы кода и фрагменты кода
Образцы и фрагменты коданаходятся в папке Samples/.
Поддерживаемые версии Python
Наши клиентские библиотеки совместимы со всеми текущими активными и отладочными версиями Питон.
Python >= 3,7
Неподдерживаемые версии Python
Питон <= 3,6
Если вы используете версию Python, мы рекомендуем вам как можно скорее обновить ее до активно поддерживаемой версии.
Mac/Linux
пипс установить виртуалэнв virtualenv <ваша-окружение> источник/bin/активировать /bin/pip установить google-cloud-scheduler
Windows
пипс установить виртуалэнв virtualenv <ваша-окружение>\Scripts\activate \Scripts\pip.exe установить google-cloud-scheduler
Следующие шаги
Прочтите документацию по клиентской библиотеке для Cloud Scheduler API чтобы увидеть другие доступные методы на клиенте.
Прочтите документацию по продукту Cloud Scheduler API, чтобы узнать подробнее о продукте и см. практические руководства.
Просмотрите этот файл README, чтобы просмотреть полный список облачных API, которые мы охватываем.
Детали проекта
Эта версия
2.7.3
2.7.2
2.7.1
2.7.0
2.6.4
2.6.3
2.6.2
2.6.1
2.6.0
2.5.0
2.4.0
2.3.4
2.3.3
2.3.2
2.3.1
2.3.0
2.2.0
2.1.1
2.1.0
2.0.0
1.3.2
1.3.1
1.3.0
1.2.1
1.2.0
1.1.0
1.0.0
0.3.0
0.2.0
0.1.0
Загрузить файлы
Загрузить файл для вашей платформы. Если вы не уверены, что выбрать, узнайте больше об установке пакетов.
Исходный дистрибутив
облачный планировщик Google-2.7.3.tar.gz (87,5 КБ посмотреть хеши)
Загружено источник
Встроенный дистрибутив
google_cloud_scheduler-2.7.3-py2.py3-none-any.whl (99,4 КБ посмотреть хеши)
Загружено ру2
ру3
Закрывать
Хэши для google-cloud-scheduler-2.7.3.tar.gz
Алгоритм | Дайджест хэша | |
---|---|---|
SHA256 | 11ceb9decf54c865e41c246b1148f862a09c6485c0953b27a0c86ccd05b7e0c0 | |
МД5 | ca08529d77098c5ec8354a43a39b21ac | |
БЛЕЙК2-256 | fe8dc157810d774f591f044500b0f56d61ff52ad14b4e3df33cd03f71bc7110d |
Закрывать
Хэши для google_cloud_scheduler-2.
7.3-py2.py3-none-any.whlАлгоритм | Дайджест хэша | |
---|---|---|
ША256 | 4c7af65edb974c901e316b039fab3e162eebfb9c1bc1bbf4d8eab2baebce41df | |
МД5 | e967c1715ae39d4c3a0f68fdf60b960a | |
БЛЕЙК2-256 | e33177c8b67bdc4a630af1a498ae43d0f050b2bb5e737e89c6a5b89a1b5bf1c8 |
Планирование задач на платформе Google Cloud Platform (GCP)
Парк Гринвич — 2008 г. — фотография сделана мнойНесколько лет назад я построил пару простых конвейеров импорта данных, управляемых событиями, используя асинхронные API для автоматизации некоторых мои действия по импорту данных. Я большой поклонник бессерверных решений и наносервисов, таких как AWS Lambda или Google Cloud Functions (GCF). Однако при использовании функций вы должны знать об определенных ограничениях и ограничениях. Таким ограничением является тайм-аут, равный 9минут для GCF и 15 минут для AWS Lambda на момент написания этой статьи.
Давайте предположим, что мы запускаем задание импорта данных с асинхронным API из облачной функции, и нам нужно дождаться завершения задания импорта. Что делать, если время обработки превышает время ожидания функции?
Одна вещь, которую мы можем сделать, это разделить логику на 2 части. Сначала мы используем функцию для запуска задания (например, загрузку файла), а затем планируем другую функцию для проверки хода выполнения позже.
На момент создания этого решения в AWS существовало несколько сервисов для планирования задач. Например, сообщение SQS может быть отправлено в очередь задержки с подпиской на функцию AWS Lambda для получения сообщения после настроенной задержки.
В Google Cloud Platorm (GCP) в то время не существовало очередей с задержкой.
Что я тогда использовал? И как бы я поступил сегодня? Ответы вы найдете ниже.
Краткая история служб планировщика и очереди задач на GCP
В 2008 году Google анонсировала Google App Engine (GAE) как новый инструмент разработчика, который позволяет вам запускать свои веб-приложения в инфраструктуре Google, не заботясь о базовых ресурсах. На протяжении многих лет Google создавал различные облачные сервисы и связывал их с App Engine.
Если вам нужна служба, связанная с App Engine, например App Engine Cron или Task Queues , вам необходимо создать приложение App Engine, даже если вы не хотите запускать свое приложение в App Engine.
Тем временем Google начал выделять эти службы из App Engine в отдельную службу.
Однако некоторые службы по-прежнему — по крайней мере частично — связаны с App Engine, например Cloud Scheduler — служба планировщика задач (cron) GCP, где в проекте GCP необходимо создать пустое приложение App Engine, прежде чем вы сможете использовать эту услугу.
«Облачный планировщик в настоящее время доступен во всех регионах, поддерживаемых App Engine. Чтобы использовать Cloud Scheduler, ваш облачный проект должен содержать приложение App Engine, расположенное в одном из поддерживаемых регионов. Если в вашем проекте нет приложения App Engine, вы должны его создать».
Обзор Cloud Scheduler
Это не должно мешать вам использовать Cloud Scheduler с вашими решениями, отличными от App Engine, но вы можете столкнуться с трудностями, например, вы не сможете изменить регион вашего App Engine приложение после создания, и вы должны принять, что различные ресурсы, такие как, например. сервисные аккаунты будут предоставлены Google для вашего приложения App Engine в вашем проекте GCP.
Это не относится к Облачным задачам (было: Очереди задач).
Cloud Tasks — это полностью управляемая служба очередей с целями HTTP или GCP App Engine, которая позволяет вам отделять части работы, которые могут выполняться асинхронно, вне основного потока приложения.
Cloud Tasks больше не требуется приложение App Engine в проекте GCP.
16 декабря 2020 г.
Облачные задачи — примечания к выпуску
«Взаимосвязь между вашими очередями и вашим приложением App Engine изменилась. Если ваши очереди управляют только задачами с HTTP-целями, вам больше не нужно иметь включенное приложение App Engine».
Варианты использования
С помощью облачного планировщика различные задания можно планировать с помощью выражений планировщика CRON. Его можно использовать для любого задания, которое должно выполняться по определенному расписанию, например:
.- Автоматизируйте действия инфраструктуры, такие как запуск или остановка виртуальных машин вычислительного экземпляра.
- Запуск пакетных рабочих нагрузок, таких как конвейеры приема данных.
- Вызывать цели App Engine или любые конечные точки HTTP на GCP или где угодно.
- Публиковать сообщения в темах Pub/Sub по расписанию.
Мне нравится Cloud Scheduler за его надежную доставку и гибкую политику повторных попыток.
С другой стороны, Cloud Tasks — это полностью управляемая служба очереди с целями HTTP или GCP App Engine, которая позволяет вам отделять части работы, которые могут выполняться асинхронно, вне основного потока приложения.
Cloud Tasks предоставляет такие функции, как планирование, дедупликация задач, настраиваемая политика повторных попыток, ограничение скорости нисходящего потока и сохранение задач до 31 дня.
Облачные задачи не дают надежных гарантий относительно времени доставки задач , поэтому они не подходят для интерактивного приложения, в котором пользователь ожидает результата.
Возможный вариант использования возможности планирования задач Cloud Tasks можно увидеть на следующей диаграмме.
Планирование задач на Google Cloud Platform с помощью Cloud Tasks.Как видно на диаграмме, облачная функция может инициировать асинхронную операцию и запланировать запуск другой функции облачными задачами один раз в более позднее время. После выполнения задачи она удаляется из очереди.
Давайте рассмотрим эти службы с разных точек зрения в следующих разделах.
Планирование задач/заданий
Облачный планировщик
Для планирования задания с помощью Cloud Scheduler необходимо указать выражение cron с использованием формата unix cron и часовой пояс . Максимальная частота, которую можно запланировать, составляет 1 минуту. Также можно выбрать часовые пояса, в которых не соблюдается переход на летнее время.
Настройка частоты заданий и часового пояса в Cloud Scheduler.Служба продолжит выполнение задания, пока оно не будет удалено. Невозможно настроить задание для однократного запуска или завершения после N вхождений. Однако при необходимости задание может быть удалено самой вызываемой целью (например, облачной функцией HTTP).
Облачные задачи
В этой статье основное внимание уделяется запланированным задачам, поэтому мы не будем рассматривать случай, когда задачу нужно отправить немедленно.
Функция планирования Cloud Tasks отличается от обычной службы планировщика, поскольку задача может быть запущена Cloud Tasks один раз в указанное время в будущем. Расписание должно быть установлено на уровне задачи с использованием формата RFC3339 UTC, поэтому при необходимости для задач в очереди могут быть установлены разные расписания. максимальное время планирования для задачи составляет 30 дней от текущей даты и времени . Невозможно настроить повторяющиеся задачи, и мы не можем определить расписание на основе CRON. Для этого варианта использования проверьте Cloud Scheduler.
Единственный случай, когда задача будет отправлена обработчику более одного раза, — это когда обработчику не удается использовать задачу, а Cloud Tasks повторяет попытку доставить неудачную задачу.
Пример допустимого расписания с максимальным (9) цифрами дробной части:
2021-10-02T15:01:13.123456789Z
Я хотел бы, чтобы Google реализовал в будущем возможность настраивать расписание на уровне очереди. Например, доставляйте каждое задание через 10 минут после добавления в очередь. Такая возможность уже существует на AWS: очередь задержки SQS. Возможность использовать относительное время, например, например. Через 5 минут тоже было бы полезно.
Конечные точки (цели)
Облачный планировщик
Поддерживаемые цели заданий Cloud Scheduler:
.- Конечная точка HTTP
- Цель App Engine
- Pub/Sub
Облачные задачи
- Конечная точка HTTP
- Цель App Engine
Подход к целям HTTP или App Engine одинаков для Cloud Scheduler и Cloud Tasks.
Для HTTP целью может быть любая общая конечная точка HTTP на GCP или в другом месте. Чтобы настроить цель, HTTP-метод , URL-адрес и содержимое тела должны быть указаны. Заголовки HTTP также могут быть настроены. Также поддерживается защита цели, об этом будет рассказано далее в этой статье.
В случае успеха обработчик должен отправить службе код ответа HTTP из диапазона 2xx (успех) , в противном случае служба снова вызовет обработчик в соответствии с настроенными параметрами повтора.
Cloud Scheduler поддерживает дополнительная цель: Pub/Sub , чего нет в Cloud Tasks. Чтобы использовать это, необходимо выбрать тело сообщения и тему в рамках одного проекта.
Pub/Sub интегрирован со многими другими службами GCP, поэтому Cloud Scheduler можно использовать в качестве планировщика для запуска конвейеров или любого другого пользовательского случая, когда в качестве триггера требуется сообщение Pub/Sub.
Обработка ошибок и повторные попытки
Обе службы обеспечивают гибкий подход к повторным попыткам с политикой отсрочки.
Облачный планировщик
Параметры повтора задания настраиваются при создании задания.
Повторите настройку задания планировщика в консоли Google Cloud.Облачные задачи
Конфигурация повторных попыток для облачных задач задается для уровня очереди (а не для отдельных задач) при создании очереди.
Повторите настройку очереди облачных задач в консоли Google Cloud.Обработчик может подтвердить задачу, вернув ответ об успешном выполнении . Задача с ответом об ошибке от обработчика повторяется.
Кроме того, крайний срок отправки может быть установлен для каждой задачи, чтобы облачные задачи могли пометить попытку как неудачную и повторить задачу в соответствии с конфигурацией повторной попытки в случае тайм-аута обработчика.
Безопасность (аутентификация с помощью целей HTTP)
Чтобы безопасно вызывать конечную точку Google с помощью задания планировщика или облачной задачи, вы можете использовать краткосрочные учетные данные учетной записи службы , которые могут быть либо токеном OIDC , либо токеном OAuth , автоматически добавляемым службами облачных задач или планировщика. . Это делается на уровне задания/задачи (а не на уровне очереди).
Чтобы использовать токен OIDC , необходимо указать аудиторию (обычно это корневой URL-адрес обработчика) и адрес электронной почты сервисной учетной записи . Для OAuth необходимы область действия и учетная запись службы электронной почты. Учетная запись службы должна быть локальной и создана в том же проекте GCP, что и облачная задача или задание планировщика.
Конечная точка может находиться в том же или в другом проекте GCP, при условии, что учетной записи службы предоставлены необходимые разрешения для вызова конечной точки (например, Cloud Functions Invoker).
Но как Cloud Scheduler или Cloud Tasks могут получить токен без предоставления учетных данных, таких как, например. ключевой файл?
Когда вы включаете Cloud Scheduler или Cloud Tasks API, Google создает учетную запись службы по умолчанию для этих служб с разрешением, необходимым для создания токенов заголовков от имени вашей учетной записи службы клиента для аутентификации в настроенной цели HTTP.
Аутентификация целевого обработчика HTTP с помощью Cloud Tasks и Cloud Scheduler
Google рекомендует использовать токены OIDC для любого обработчика , работающего в Google Cloud , например, облачной функции или службы Cloud Run. Для API Google , размещенных на *.googleapis.com, требуется токен OAuth .
Надежность
Облачный планировщик
Google говорит, что Cloud Scheduler — это планировщик заданий cron корпоративного уровня . Они гарантируют доставку по крайней мере один раз к настроенному целевому заданию. Те, кто работает с облачными решениями для обмена сообщениями, знают, что именно это обычно гарантируют провайдеры, используя стандартные настройки (стандартные очереди AWS, стандартные темы SNS и т. д.). Есть нет ровно один раз вариант доставки предоставляется Cloud Scheduler. Цель задания должна быть сделана идемпотентной , чтобы гарантировать, что сообщение будет обработано только один раз.
См. профессиональный совет от Google по созданию идемпотентных функций.
Облачные задачи
Заказ не гарантируется
Google не дает никаких гарантий и не прилагает никаких усилий для выполнения задач в каком-либо конкретном порядке. Исключения — это запланированные задачи, которые будут выполняться в указанное время.
Хотя бы один раз доставка
Аналогично заданиям Cloud Scheduler, «в ситуациях, когда необходимо найти компромисс между гарантированным выполнением и дублирующим выполнением, служба облачных задач ошибается в сторону гарантированного выполнения, поэтому может произойти дублирование выполнения». (Облачные задачи — распространенные ловушки)
Чтобы снизить риск, рекомендуется разработать идемпотентные обработчики, которые можно выполнять несколько раз с одной и той же задачей без изменения конечного результата.
Дедупликация задач
Cloud Tasks предлагает функцию, помогающую избежать добавления одной и той же задачи дважды на стороне производителя за счет сохранения окна дедупликации задач . Добавление задачи с тем же идентификатором, что и у существующей или недавно удаленной задачи, приведет к тому, что служба отклонит ее. Идентификатор задачи является необязательным, но для использования функции дедупликации идентификатор задачи должен быть явно указан производителем.
Дедупликация задачи остается в силе в течение примерно 1 часа после удаления задачи.
Если вам не нужна дедупликация задач, не указывайте идентификаторы задач явно при добавлении задач в очередь.
Обратите внимание, что эта функция предотвращает дублирование задач только на стороне производителя. На стороне обработчика обеспечивается хотя бы однократная доставка.
Квоты и лимиты
Для Cloud Scheduler на момент написания этой статьи применяется ограничение 500 запросов API в минуту . Количество рабочих мест ограничено 1000 на проект, но может быть увеличено до 5000 . Максимальный размер задания ограничен в 1 МБ .
Для очередей Cloud Tasks пользователь может определить скорость отправки и количество одновременных задач, которые могут быть отправлены для очереди. Максимальная скорость отправки очереди (скорость, с которой задачи могут быть отправлены из очереди) составляет 90 654 500 задач, отправляемых в секунду на очередь 90 655, а максимально допустимое значение для 90 654 максимального количества одновременных задач составляет 5 000 90 655 . Если вам нужна диспетчеризация с более высокой скоростью или вам нужно больше одновременных задач, вы можете использовать несколько очередей. Максимальный размер задачи, которую можно добавить в очередь, составляет 1 МБ .
Ограничения
Одна константа, которую я бы выделил в связи с Cloud Scheduler , заключается в том, что он все еще не полностью отделен от App Engine. Для использования Cloud Scheduler по-прежнему требуется создание пустой службы App Engine в проекте , даже если ваша рабочая нагрузка не требует App Engine. Это может привести к трудностям, например, вы не сможете изменить регион своего приложения App Engine после его создания, и вам придется принять, что различные ресурсы, такие как, например, сервисные аккаунты будут автоматически предоставлены Google для вашего приложения App Engine в вашем проекте GCP.
Для Облачных задач Я обнаружил, что удаленную очередь невозможно воссоздать с тем же проектом с тем же именем в течение 7 дней после удаления .
Цены
Цены на Cloud Scheduler основаны на количестве определений заданий, а не на количестве выполненных заданий. Его стоимость составляет 90 654 $0,10 за задание в месяц 90 655 . Если задание удаляется через 1 день после создания, оно стоит 0,003 доллара США.
3 задания в месяц на расчетный счет бесплатно .
Облачные задачи ‘ тарификация основана на количестве операций. Оплачиваемые операции: 90 654 вызовов API 90 655 и 90 654 попытки доставки push-уведомлений 90 655 . Создание задачи и доставка к цели — это как минимум 2 операции в зависимости от размера задачи. Задачи разделены по 32 КБ в целях ценообразования. Также добавляются регулярные сетевые расходы.
Стоимость составляет 0,40 доллара США за 1 миллион операций (до 5 миллиардов операций), но первые 1 миллион операций бесплатны .
Как обсуждалось в статье, обе службы предоставляют гибкие решения корпоративного уровня для планирования задач/заданий.
У них есть некоторые общие возможности (например, целевая аутентификация, подход с повторными попытками), и есть случаи использования, когда можно использовать любую из этих служб, но у каждой службы есть свои плюсы и минусы.
С точки зрения планирования задач/заданий Cloud Tasks подходит для случаев использования, когда операция должна выполняться один раз в определенное время, когда расписание — конкретная дата и время — указывается издателем задачи.
Cloud Scheduler лучше подходит для планирования повторяющихся задач с помощью cron.
Для решения с асинхронным API, описанного во введении, я создал задание Cloud Scheduler после запуска задания импорта. Затем планировщик активировал облачную функцию для проверки хода выполнения задания импорта в более позднее время. Я удалил задание планировщика в случае успеха, в противном случае я позволил ему запуститься снова на основе расписания cron несколько раз. В любом случае задание должно быть удалено обработчиком.
Сегодня я воспользуюсь сервисом Cloud Tasks для той же задачи, чтобы запланировать выполнение функции через X минут после запуска задания импорта, чтобы проверить ход выполнения задания позже.
Облачные задачи | Облачный планировщик | |
---|---|---|
Пример использования | — Отделяйте части работы, которые можно выполнять асинхронно — от основной рабочей нагрузки до асинхронного. – Помощь в повышении трафика за счет удаления задач, не связанных с пользователем, из основного пользовательского потока — Управление частотой вызовов сторонних API — Выполнение задач в будущем в запланированное время доставки | — Запуск/остановка виртуальных машин вычислительного экземпляра в определенное время дня. — Запуск конвейеров по расписанию. — Планирование любой рабочей нагрузки, которая может быть запущена через HTTP. |
Конечные точки (целевые) | – HTTP (в Google или где-либо еще) – HTTP для App Engine | – HTTP (для Google или в другом месте) – Pub/Sub – App Engine HTTP |
Расписание | — Запускать один раз в фиксированное время в будущем. — Максимальный график составляет 30 дней. | — повторяющиеся задачи, запланированные с использованием CRON-подобных выражений. — одна минута — наименьший поддерживаемый интервал. |
Ценообразование | 0,40 доллара США за 1 миллион операций (до 5 миллиардов операций) + обычные сетевые расходы | Выставление счетов основано на определении задания: 0,10 доллара США за задание в месяц (0,003 доллара США в день) |
Free quota | First 1 million operations, chunked at 32 kB, per month are free | 3 jobs per month are free per billing account |
Task/job size | 1 MB | 1 МБ (минус ~1 КБ накладных расходов на запросы) |
Пропускная способность | – Макс. 500 задач, отправленных в секунду на очередь. – Макс. 5000 одновременных задач. | – Макс. 500 запросов API в минуту. – Макс. 5000 рабочих мест на проект. |
Целевая аутентификация | — Заголовок аутентификации — токены OIDC или OAuth3, добавленные службой — Пользовательская аутентификация с заголовками HTTP | |
Обработка ошибок | Повтор с политикой отсрочки (мин. |