#node.js #google-api #google-ads-api
#node.js #google-api #google-ads-api
Вопрос:
Надеюсь, вы в безопасности и в порядке в это время пандемии. Я разрабатываю некоторые функциональные возможности для извлечения данных из Google ads с помощью google-ads-node. Но пока я столкнулся с одной проблемой.
Error: 3 INVALID_ARGUMENT: Invalid customer ID '... .... ...'.
Однако он установлен правильно в аккаунте ads.
Пожалуйста, поймите меня беспорядочной картинкой.
Код, который я использовал, выглядит следующим образом.
const auth = await authenticateGoogle(`keys/${process.env.GOOGLE_YT3_API_CREDENTIAL_PATH}`, 'installed');
const client = new GoogleAdsClient({
access_token: auth.credentials.access_token,
developer_token: process.env.DEV_TOKEN,
parseResults: true,
});
const service = client.getService("GoogleAdsService", { useStreaming: true });
const request = new SearchGoogleAdsStreamRequest();
request.setQuery(`
SELECT
campaign.resource_name,
metrics.impressions,
segments.date
FROM
campaign
WHERE
segments.date BETWEEN "2019-01-01" AND "2020-01-01"
`);
request.setCustomerId(process.env.CUSTOMER_ID);
const call = service.searchStream(request);
const chunks = [];
call.on("error", err => reject(err));
call.on("data", (chunk) => chunks.push(chunk));
call.on("end", () => resolve(chunks));
Не могли бы вы помочь мне, как я могу решить эту проблему, пожалуйста?
Спасибо.
Ответ №1:
Единственное, что вам нужно, это передать CustomerID без тире (-). Более конкретно, вам просто нужно передать CustomerID с XXXXXXXXXX
помощью format вместо XXX-XXX-XXXX
.
Комментарии:
1. Вы, дорогой пользователь stack overflow, заслуживаете медали. Я не нашел этого нигде в документации
Ответ №2:
google-ads-api нужны client_id и login_customer_id.
я думаю, что CUSTOMER_ID нужно изменить как «client_customer_Id», а не «login_customer_id»
Ответ №3:
Для тех, кто оказался здесь в 2021 .. «google-ads-node» больше не получает поддержки от Opteo, теперь они поддерживают библиотеку «google-ads-api», созданную ими самими.