diff --git a/src/main/java/org/embulk/input/google_ads/GoogleAdsReporter.java b/src/main/java/org/embulk/input/google_ads/GoogleAdsReporter.java index 764f55d..efd65bb 100644 --- a/src/main/java/org/embulk/input/google_ads/GoogleAdsReporter.java +++ b/src/main/java/org/embulk/input/google_ads/GoogleAdsReporter.java @@ -7,6 +7,7 @@ import com.fasterxml.jackson.databind.node.JsonNodeType; import com.fasterxml.jackson.databind.node.ObjectNode; import com.google.ads.googleads.lib.GoogleAdsClient; +import com.google.ads.googleads.v16.errors.GoogleAdsException; import com.google.ads.googleads.v16.resources.CustomerName; import com.google.ads.googleads.v16.services.CustomerServiceClient; import com.google.ads.googleads.v16.services.GoogleAdsRow; @@ -15,6 +16,8 @@ import com.google.ads.googleads.v16.services.SearchGoogleAdsRequest; import com.google.ads.googleads.v16.services.SearchGoogleAdsStreamRequest; import com.google.ads.googleads.v16.services.SearchGoogleAdsStreamResponse; +import com.google.api.gax.rpc.DeadlineExceededException; +import com.google.api.gax.rpc.PermissionDeniedException; import com.google.auth.oauth2.UserCredentials; import com.google.common.base.CaseFormat; import com.google.protobuf.Descriptors; @@ -29,6 +32,7 @@ import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -315,6 +319,9 @@ private List getLoginCustomerIds(String customerId) .filter(loginCustomerClient -> loginCustomerClient.customerClientId.equals(customerId)) .map(loginCustomerClient -> Long.valueOf(loginCustomerClient.loginCustomerId)) .collect(Collectors.toList()); + } catch (GoogleAdsException | DeadlineExceededException | PermissionDeniedException e) { + logger.info("ignore invalid customer [customer id: {}]", customerId, e); + return Collections.emptyList(); } } @@ -331,6 +338,9 @@ private List getLoginCustomerClients(String customerId) .map(GoogleAdsRow::getCustomerClient) .map(customerClient -> new LoginCustomerClient(customerId, customerClient.getId())) .collect(Collectors.toList()); + } catch (GoogleAdsException | DeadlineExceededException | PermissionDeniedException e) { + logger.info("ignore invalid customer [customer id: {}]", customerId, e); + return Collections.emptyList(); } }