Search code examples
web-scrapingadmobadspolicyattribution

Ads has been disabled by Scraped content (Admob)


Some months ago I've launched a app about recipes with youtube API, so the user can read the recipe and watch the video. The videos and recipes are not made by me, but I have permission to use all of them in my app and their attribution is write at the ending of the recipes. This week I have received this warning from AdMob:

**Valuable inventory: Scraped content**

As stated in our Program policies, we may not show Google ads on pages or apps with little or no value and/or excessive advertising to the user. This includes pages or apps that are scraping or rewriting of content from other sources without adding value. Please see Google’s Webmaster quality guidelines for thin content with little or no added value for more information.

For more information, review the following resources:

Policy tips for creating high quality sites (part 1)
Policy tips for creating high quality sites (part 2)
Webmaster quality guidelines
AdSense Program policies

In AdSense policies is clear that if there is a Attribution to the owner it is not considered scraping. How can I make an aproppiated attribution to avoid this?

I can't just write with my words all the recipes on the app, and I have other 6 apps similar to this one.

My app: Receitas de Frango deliciosas

The actual attribution at the ending of the recipe (Receita por:) The actual attribution at the ending of the recipe (Receita por:)


Solution

  • I have fixed it!

    To avoid being detected as a simple scratched content, turn the TextView with the copied content into multiple CheckBoxes. In my case, as a recipe apps I have implemented that in the ingredients, so each line break is a CheckBox.

    Create a empty LinearLayout in the xml file:

                <LinearLayout
                android:id="@+id/checkBoxesid"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"></LinearLayout>
    

    After that turn the String from the TextView, that you suspect to be scratched, into a String array and multiple checkboxes in that LinearLayout.

    String[] ingredient = ingredients.split("\n");
        ArrayList<CheckBox> checkBoxList = new ArrayList<>();
        LinearLayout myLinearLayout = findViewById(R.id.checkBoxesid);
    
        if(ingredient != null) {
            for(String ingredient1 : ingredient) {
                CheckBox checkBox = new CheckBox(getApplicationContext());
                checkBox.setText(ingredient1);
                checkBoxList.add(checkBox);
                myLinearLayout.addView(checkBox);
            }};