본문 바로가기

Spring Boot

[Google API + Springboot] adsense 수익정보 취득

반응형

1. Google AdSense API 클라이언트 라이브러리를 포함하도록 다음 종속성을 pom.xml 파일에 추가합니다:

<dependency>
   <groupId>com.google.apis</groupId>
   <artifactId>google-api-services-adsense</artifactId>
   <version>v1-rev2020-06-12</version>
</dependency>

 

2. 서비스 클래스를 만들어 AdSense API로 API 호출을 수행합니다. 이 클래스에서 API 클라이언트를 초기화하고 API 요청을 수행하려면 다음 코드를 포함해야 합니다:

import com.google.api.services.adsense.AdSense;
import com.google.api.services.adsense.model.AdSenseReportsGenerateResponse;

public class AdSenseService {
   private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
   private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();

   public AdSenseReportsGenerateResponse generateReport(String accountId, String startDate, String endDate) throws Exception {
      AdSense adsense = new AdSense.Builder(HTTP_TRANSPORT, JSON_FACTORY, null)
            .setApplicationName("SpringBootAdSenseIntegration")
            .build();
      AdSense.Reports.Generate request = adsense.reports().generate(accountId, startDate, endDate);
      request.setMetric(Arrays.asList("EARNINGS"));
      request.setDimension(Arrays.asList("DATE"));
      return request.execute();
   }
}

 

3. 스프링 부트 응용 프로그램에서 서비스 클래스를 사용하여 AdSense 수익 정보를 가져와 보기에 표시합니다.

@Controller
public class AdSenseController {
   private AdSenseService adSenseService;

   @Autowired
   public AdSenseController(AdSenseService adSenseService) {
      this.adSenseService = adSenseService;
   }

   @GetMapping("/adsense-revenue")
   public String getAdSenseRevenue(Model model) {
      try {
         AdSenseReportsGenerateResponse response = adSenseService.generateReport("ACCOUNT_ID", "YYYY-MM-DD", "YYYY-MM-DD");
         List<List<Object>> rows = response.getRows();
         if (rows != null) {
            List<String> dates = new ArrayList<>();
            List<Double> earnings = new ArrayList<>();
            for (List<Object> row : rows) {
               dates.add(row.get(0).toString());
               earnings.add(Double.parseDouble(row.get(1).toString()));
            }
            model.addAttribute("dates", dates);
            model.addAttribute("earnings", earnings);
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
      return "adsense-revenue";
   }
}

이전에 Google Cloud Console에서 API 키를 가져와 응용 프로그램이 AdSense API에 액세스할 수 있도록 권한을 부여해야 합니다.

반응형