Skip to content

Instantly share code, notes, and snippets.

@kartikv11
Last active August 20, 2025 12:17
Show Gist options
  • Select an option

  • Save kartikv11/707352f1e5189951e144b40863961a8c to your computer and use it in GitHub Desktop.

Select an option

Save kartikv11/707352f1e5189951e144b40863961a8c to your computer and use it in GitHub Desktop.
Google Ads Preview Pull
import com.google.ads.googleads.lib.GoogleAdsClient;
import com.google.ads.googleads.v21.resources.Ad;
import com.google.ads.googleads.v21.services.GoogleAdsServiceClient;
import com.google.ads.googleads.v21.services.SearchGoogleAdsRequest;
import com.google.ads.googleads.v21.services.SearchGoogleAdsResponse;
import com.google.ads.googleads.v21.resources.GoogleAdsRow;
public class AdImagePreviewFetcher {
public static String fetchAdImagePreview(GoogleAdsClient googleAdsClient, long customerId, long adId) {
String query = String.format(
"SELECT ad.id, ad.type, ad.image_ad.image_url, " +
"ad.responsive_display_ad.marketing_images, ad.responsive_display_ad.logo_images " +
"FROM ad WHERE ad.id = %d", adId);
try (GoogleAdsServiceClient googleAdsServiceClient = googleAdsClient.getLatestVersion().createGoogleAdsServiceClient()) {
SearchGoogleAdsRequest request = SearchGoogleAdsRequest.newBuilder()
.setCustomerId(Long.toString(customerId))
.setQuery(query)
.build();
SearchGoogleAdsResponse response = googleAdsServiceClient.search(request);
for (GoogleAdsRow googleAdsRow : response.getResultsList()) {
Ad ad = googleAdsRow.getAd();
switch (ad.getType()) {
case IMAGE_AD:
return "Image Ad URL: " + ad.getImageAd().getImageUrl();
case RESPONSIVE_DISPLAY_AD:
StringBuilder previewUrls = new StringBuilder();
previewUrls.append("Marketing Images:\n");
ad.getResponsiveDisplayAd().getMarketingImagesList()
.forEach(imageAsset -> previewUrls.append(imageAsset.getImageUrl()).append("\n"));
previewUrls.append("Logo Images:\n");
ad.getResponsiveDisplayAd().getLogoImagesList()
.forEach(imageAsset -> previewUrls.append(imageAsset.getImageUrl()).append("\n"));
return previewUrls.toString();
default:
return "No image preview available for this ad type.";
}
}
return "Ad not found.";
} catch (Exception e) {
e.printStackTrace();
return "Error fetching ad image preview: " + e.getMessage();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment